Skip to content

Wrapped Gen 2 Firestore Trigger receives incorrect data  #238

@MichaelJBerk

Description

@MichaelJBerk

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:

/// 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()) ///... } 

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 test

Actual behavior

event.data.after.data() contains the exampleDocumentSnapshot value ({ aString: 'foo', anObject: { a: 'qux', b: 'faz' }, aNumber: 7 })

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions