[FR] firebase-functions-test multiple snapshots in wrapped functions

Open
#201 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
45/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Quiet
Tech stack
firebase, typescript
Domain
backend, testing

Research direction

Start with the wrapped function API shown in the example and the makeDocumentSnapshot calls, then trace how the current wrapper accepts a snapshot. Check how background functions handle event data and determine the expected shape for multiple snapshots. Done means a wrapped function can receive snapshots from multiple collections, with tests covering the demonstrated array input.

Written by the indexing model from the issue text.

Description

triaged type: feature request

Is your feature request related to a problem? Please describe.
I'm using firebase-functions-test package to locally mock firestore data and test non-http functions. However, on of my functions works with data in multiple collections, which based on the docs and articles I've found doesn't seem to be supported.

Describe the solution you'd like
When calling my wrapped function(s), I'd like to be able to pass in multiple document snapshots.

Describe alternatives you've considered
If I am to continue using the firebase-functions-test package, I could consider creating a chain of background functions that each work with documents from a single collection. I haven't seen anything saying whether that's a good approach so for all I know that might actually be the preferred way to do this, though it feels weird to me.

Another option would be to not use firebase-functions-test package and instead run my tests against the emulator. I had been doing this before but wanted to move away from that.

Additional context
Here is a code sample of what I'm looking to do, not sure that it's valid Typescript but hopefully it demonstrate the goal.

const snap1 = test.firestore.makeDocumentSnapshot({
  ...
}, "users/1");

const snap2 = test.firestore.makeDocumentSnapshot({
  ...
}, "users/2");

await wrapped([snap1, snap2], { // <-- Notice the array of snapshots
  ..
});
Dominant language
TypeScript
Stars
248
Forks
63
PR merge metrics
No merged PRs in 30d

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from firebase/firebase-functions-test

All issues in firebase/firebase-functions-test

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.