diff --git a/spec/providers/firestore.spec.ts b/spec/providers/firestore.spec.ts index 12f552b..34cd169 100644 --- a/spec/providers/firestore.spec.ts +++ b/spec/providers/firestore.spec.ts @@ -88,6 +88,34 @@ describe('providers/firestore', () => { expect(snapshot.data().ref.toString()).to.equal(ref.toString()); }); + it('should use firebaseApp projectId in makeDocumentSnapshot options', async () => { + const customApp = firebase.initializeApp( + { + projectId: 'custom-project', + }, + 'custom-firestore-app' + ); + + try { + const snapshot = test.firestore.makeDocumentSnapshot( + { + email_address: 'test@test.com', + }, + 'collection/doc-id', + { firebaseApp: customApp } + ); + + expect(snapshot.data()).to.deep.equal({ + email_address: 'test@test.com', + }); + expect(snapshot.ref.formattedName).to.equal( + 'projects/custom-project/databases/(default)/documents/collection/doc-id' + ); + } finally { + await customApp.delete(); + } + }); + it('should use host name from FIRESTORE_EMULATOR_HOST env in clearFirestoreData', async () => { process.env.FIRESTORE_EMULATOR_HOST = 'not-local-host:8080'; diff --git a/src/providers/firestore.ts b/src/providers/firestore.ts index a15945a..61e0167 100644 --- a/src/providers/firestore.ts +++ b/src/providers/firestore.ts @@ -76,9 +76,9 @@ export function makeDocumentSnapshot( ) { let firestoreService; let project; - if (has(options, 'app')) { + if (has(options, 'firebaseApp')) { firestoreService = firestore(options.firebaseApp); - project = get(options, 'app.options.projectId'); + project = get(options, 'firebaseApp.options.projectId'); } else { firestoreService = firestore(testApp().getApp()); project = process.env.GCLOUD_PROJECT;