firebase / firebase/firebase-functions-test

test: exercise real firebase-functions majors in CI, not just the pinned devDep

Open
#333 2 comments 0 reactions 0 assignees View on GitHub
type: enhancement
Dominant language
TypeScript
Stars
248
Forks
63
PR merge metrics
No merged PRs in 30d

Description

### Context

#310 happened because firebase-functions@7.x changed the emitted wrapper shape (rest-param functions, `run.length === 0`) and nothing in CI noticed: devDeps pin `firebase-functions: ^4.9.0`, so the suite only ever runs against 4.9.0 while the peer range allows `>=4.9.0`.

The regression test added in #311 simulates the v7 shape with hand-built mocks. That's the right thing for a unit test, but mocks encode our belief about the dependency's shape; if a future major changes the shape again, the mocks stay green while `wrap()` breaks for users, same failure mode as #310.

### Proposal

Add a CI matrix dimension installing multiple firebase-functions majors (at minimum: lowest supported 4.9.0 and latest 7.x) and run the unit + integration suites against each. Alternative: a second install step swapping in latest before a re-run.

Detection-focused: the goal is that the next arity/shape drift in firebase-functions fails a build here instead of shipping.

Contributor guide

Open the contributing guide

Research direction

Start by locating the CI configuration and the commands that run the unit and integration suites. Add coverage for firebase-functions 4.9.0 and the latest 7.x release, then verify both matrix jobs run successfully and that dependency shape or arity drift can fail the build.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
ci-cd, testing
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
58/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.