firebase / firebase/firebase-functions-test
test: exercise real firebase-functions majors in CI, not just the pinned devDep
- 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
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