From 30d68a8594100bfcd7089229f9821d29c3af5194 Mon Sep 17 00:00:00 2001 From: Sam Date: Wed, 30 Jun 2021 14:46:51 +0100 Subject: [PATCH 1/3] Add missing properties to Auth functions context --- CHANGELOG.md | 1 + src/emulator/auth/cloudFunctions.ts | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0e71b404de7..01deffe4f14 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1 +1,2 @@ - Support loading Firebase Functions packaged as an ES module. (#3485) +- Add missing properties to Authentication functions `context` in the Functions emulator. (#3536) diff --git a/src/emulator/auth/cloudFunctions.ts b/src/emulator/auth/cloudFunctions.ts index 828f5a3ab2c..7804d012bf7 100644 --- a/src/emulator/auth/cloudFunctions.ts +++ b/src/emulator/auth/cloudFunctions.ts @@ -1,3 +1,6 @@ +import * as uuid from "uuid"; + +import { EventContext } from "firebase-functions"; import { Client } from "../../apiv2"; import { EmulatorInfo, Emulators } from "../types"; @@ -7,6 +10,10 @@ import { UserInfo } from "./state"; type AuthCloudFunctionAction = "create" | "delete"; +type CreateEvent = EventContext & { + data: UserInfoPayload; +}; + export class AuthCloudFunction { private logger = EmulatorLogger.forEmulator(Emulators.AUTH); private functionsEmulatorInfo?: EmulatorInfo; @@ -54,9 +61,16 @@ export class AuthCloudFunction { private createEventRequestBody( action: AuthCloudFunctionAction, userInfoPayload: UserInfoPayload - ): { eventType: string; data: UserInfoPayload } { + ): CreateEvent { return { + eventId: uuid.v4(), eventType: `providers/firebase.auth/eventTypes/user.${action}`, + resource: { + name: `projects/${this.projectId}`, + service: "firebaseauth.googleapis.com", + }, + params: {}, + timestamp: new Date().toISOString(), data: userInfoPayload, }; } From bfc811fa2715fb2961da3f107f7c7647944a35cd Mon Sep 17 00:00:00 2001 From: Sam Date: Wed, 30 Jun 2021 15:27:41 +0100 Subject: [PATCH 2/3] Fix test --- src/test/emulators/cloudFunctions.spec.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/test/emulators/cloudFunctions.spec.ts b/src/test/emulators/cloudFunctions.spec.ts index ec4b59c8588..6ef7625af71 100644 --- a/src/test/emulators/cloudFunctions.spec.ts +++ b/src/test/emulators/cloudFunctions.spec.ts @@ -21,10 +21,17 @@ describe("cloudFunctions", () => { nock.cleanAll(); }); - it("should make a request to the functions emulator", async () => { + it.only("should make a request to the functions emulator", async () => { nock("http://1.1.1.1:4") .post("/functions/projects/project-foo/trigger_multicast", { - eventType: `providers/firebase.auth/eventTypes/user.create`, + eventId: /.*/, + eventType: "providers/firebase.auth/eventTypes/user.create", + resource: { + name: "projects/project-foo", + service: "firebaseauth.googleapis.com", + }, + params: {}, + timestamp: /.*/, data: { uid: "foobar", metadata: {}, customClaims: {} }, }) .reply(200, {}); From 60feaa035a5cf93e7da27ae9212b49baf70cb295 Mon Sep 17 00:00:00 2001 From: Sam Stern Date: Thu, 1 Jul 2021 17:38:15 +0100 Subject: [PATCH 3/3] Update src/test/emulators/cloudFunctions.spec.ts Co-authored-by: Yuchen Shi --- src/test/emulators/cloudFunctions.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/emulators/cloudFunctions.spec.ts b/src/test/emulators/cloudFunctions.spec.ts index 6ef7625af71..83a9571a435 100644 --- a/src/test/emulators/cloudFunctions.spec.ts +++ b/src/test/emulators/cloudFunctions.spec.ts @@ -21,7 +21,7 @@ describe("cloudFunctions", () => { nock.cleanAll(); }); - it.only("should make a request to the functions emulator", async () => { + it("should make a request to the functions emulator", async () => { nock("http://1.1.1.1:4") .post("/functions/projects/project-foo/trigger_multicast", { eventId: /.*/,