Open MichaelJBerk opened 3 weeks ago
firebase-functions-test: 5.0.1
firebase-functions: 3.3.0
firebase-admin: 12.2.0
When calling a wrapped function set to a Gen 2 Firestore trigger, the function will receive the value for the exampleDocumentSnapshot, rather than the actual value provided by the test:
exampleDocumentSnapshot
/// Test Code test("Write Item V2", async () => { const db = getFirestore() const path = `items/${generateTempId()}` const data = {name: "MyTest"} await db.doc(path).set(data) testEnv.firestore.exampleDocumentSnapshotChange() const wrapped = testEnv.wrap(myOnWriteTrigger) const beforeSnap = testEnv.firestore.makeDocumentSnapshot({name:'blah'}, path) const afterSnap = testEnv.firestore.makeDocumentSnapshot(data, path) const change = testEnv.makeChange(beforeSnap, afterSnap) await wrapped(change) }) /// Cloud Function export const myOnWriteTrigger = onDocumentWritten("items/{itemid}", async (event) => { ///This will output "{ aString: 'foo', anObject: { a: 'qux', b: 'faz' }, aNumber: 7 }" console.log(event.data.after.data()) ///... }
I've created a sample project with the issue at [https://github.com/MichaelJBerk/FirestoreFunctionsTriggerBug](). View the readme for details
event.data.after.data() should contain the data provided in the test
event.data.after.data()
event.data.after.data() contains the exampleDocumentSnapshot value ({ aString: 'foo', anObject: { a: 'qux', b: 'faz' }, aNumber: 7 })
{ aString: 'foo', anObject: { a: 'qux', b: 'faz' }, aNumber: 7 }
Lol I thought I was just doing something wrong.
Version info
firebase-functions-test: 5.0.1
firebase-functions: 3.3.0
firebase-admin: 12.2.0
Test case
When calling a wrapped function set to a Gen 2 Firestore trigger, the function will receive the value for the
exampleDocumentSnapshot
, rather than the actual value provided by the test:Steps to reproduce
I've created a sample project with the issue at [https://github.com/MichaelJBerk/FirestoreFunctionsTriggerBug](). View the readme for details
Expected behavior
event.data.after.data()
should contain the data provided in the testActual behavior
event.data.after.data()
contains theexampleDocumentSnapshot
value ({ aString: 'foo', anObject: { a: 'qux', b: 'faz' }, aNumber: 7 }
)