firebase / firebase-functions-test

MIT License
231 stars 48 forks source link

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

Open garrettlove8 opened 1 year ago

garrettlove8 commented 1 year ago

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
  ..
});