Skip to content

Commit d6d05aa

Browse files
authored
Revert Remove __trigger (#1274)
1 parent 5c038e6 commit d6d05aa

30 files changed

+1526
-345
lines changed

spec/v1/cloud-functions.spec.ts

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ describe("makeCloudFunction", () => {
4141
legacyEventType: "providers/provider/eventTypes/event",
4242
};
4343

44-
it("should put a __endpoint on the returned CloudFunction", () => {
44+
it("should put a __trigger/__endpoint on the returned CloudFunction", () => {
4545
const cf = makeCloudFunction({
4646
provider: "mock.provider",
4747
eventType: "mock.event",
@@ -50,6 +50,14 @@ describe("makeCloudFunction", () => {
5050
handler: () => null,
5151
});
5252

53+
expect(cf.__trigger).to.deep.equal({
54+
eventTrigger: {
55+
eventType: "mock.provider.mock.event",
56+
resource: "resource",
57+
service: "service",
58+
},
59+
});
60+
5361
expect(cf.__endpoint).to.deep.equal({
5462
...MINIMAL_V1_ENDPOINT,
5563
platform: "gcfv1",
@@ -64,9 +72,17 @@ describe("makeCloudFunction", () => {
6472
});
6573
});
6674

67-
it("should have legacy event type in __endpoint if provided", () => {
75+
it("should have legacy event type in __trigger/__endpoint if provided", () => {
6876
const cf = makeCloudFunction(cloudFunctionArgs);
6977

78+
expect(cf.__trigger).to.deep.equal({
79+
eventTrigger: {
80+
eventType: "providers/provider/eventTypes/event",
81+
resource: "resource",
82+
service: "service",
83+
},
84+
});
85+
7086
expect(cf.__endpoint).to.deep.equal({
7187
...MINIMAL_V1_ENDPOINT,
7288
platform: "gcfv1",

spec/v1/function-builder.spec.ts

Lines changed: 50 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import { expect } from "chai";
2424
import { clearParams, defineSecret } from "../../src/params";
2525

2626
import * as functions from "../../src/v1";
27-
import { ResetValue } from "../../src/common/options";
2827

2928
describe("FunctionBuilder", () => {
3029
before(() => {
@@ -41,6 +40,7 @@ describe("FunctionBuilder", () => {
4140
.auth.user()
4241
.onCreate((user) => user);
4342

43+
expect(fn.__trigger.regions).to.deep.equal(["us-east1"]);
4444
expect(fn.__endpoint.region).to.deep.equal(["us-east1"]);
4545
});
4646

@@ -50,6 +50,7 @@ describe("FunctionBuilder", () => {
5050
.auth.user()
5151
.onCreate((user) => user);
5252

53+
expect(fn.__trigger.regions).to.deep.equal(["us-east1", "us-central1"]);
5354
expect(fn.__endpoint.region).to.deep.equal(["us-east1", "us-central1"]);
5455
});
5556

@@ -68,6 +69,17 @@ describe("FunctionBuilder", () => {
6869
.auth.user()
6970
.onCreate((user) => user);
7071

72+
expect(fn.__trigger.regions).to.deep.equal([
73+
"us-central1",
74+
"us-east1",
75+
"us-east4",
76+
"europe-west1",
77+
"europe-west2",
78+
"europe-west3",
79+
"asia-east2",
80+
"asia-northeast1",
81+
]);
82+
7183
expect(fn.__endpoint.region).to.deep.equal([
7284
"us-central1",
7385
"us-east1",
@@ -93,6 +105,8 @@ describe("FunctionBuilder", () => {
93105
expect(fn.__endpoint.availableMemoryMb).to.deep.equal(256);
94106
expect(fn.__endpoint.timeoutSeconds).to.deep.equal(90);
95107
expect(fn.__endpoint.eventTrigger.retry).to.deep.equal(true);
108+
expect(fn.__trigger.availableMemoryMb).to.deep.equal(256);
109+
expect(fn.__trigger.timeout).to.deep.equal("90s");
96110
});
97111

98112
it("should allow SecretParams in the secrets array and convert them", () => {
@@ -104,6 +118,11 @@ describe("FunctionBuilder", () => {
104118
.auth.user()
105119
.onCreate((user) => user);
106120

121+
expect(fn.__trigger.secrets).to.deep.equal([
122+
{
123+
name: "API_KEY",
124+
},
125+
]);
107126
expect(fn.__endpoint.secretEnvironmentVariables).to.deep.equal([
108127
{
109128
key: "API_KEY",
@@ -136,6 +155,9 @@ describe("FunctionBuilder", () => {
136155
.auth.user()
137156
.onCreate((user) => user);
138157

158+
expect(fn.__trigger.regions).to.deep.equal(["europe-west2"]);
159+
expect(fn.__trigger.availableMemoryMb).to.deep.equal(256);
160+
expect(fn.__trigger.timeout).to.deep.equal("90s");
139161
expect(fn.__endpoint.region).to.deep.equal(["europe-west2"]);
140162
expect(fn.__endpoint.availableMemoryMb).to.deep.equal(256);
141163
expect(fn.__endpoint.timeoutSeconds).to.deep.equal(90);
@@ -151,6 +173,9 @@ describe("FunctionBuilder", () => {
151173
.auth.user()
152174
.onCreate((user) => user);
153175

176+
expect(fn.__trigger.regions).to.deep.equal(["europe-west1"]);
177+
expect(fn.__trigger.availableMemoryMb).to.deep.equal(256);
178+
expect(fn.__trigger.timeout).to.deep.equal("90s");
154179
expect(fn.__endpoint.region).to.deep.equal(["europe-west1"]);
155180
expect(fn.__endpoint.availableMemoryMb).to.deep.equal(256);
156181
expect(fn.__endpoint.timeoutSeconds).to.deep.equal(90);
@@ -223,6 +248,7 @@ describe("FunctionBuilder", () => {
223248
.runWith({ ingressSettings: "ALLOW_INTERNAL_ONLY" })
224249
.https.onRequest(() => undefined);
225250

251+
expect(fn.__trigger.ingressSettings).to.equal("ALLOW_INTERNAL_ONLY");
226252
expect(fn.__endpoint.ingressSettings).to.equal("ALLOW_INTERNAL_ONLY");
227253
});
228254

@@ -245,11 +271,8 @@ describe("FunctionBuilder", () => {
245271
.auth.user()
246272
.onCreate((user) => user);
247273

248-
if (!(fn.__endpoint.vpc instanceof ResetValue)) {
249-
expect(fn.__endpoint.vpc.connector).to.equal("test-connector");
250-
} else {
251-
expect.fail("__endpoint.vpc unexpectedly set to RESET_VALUE");
252-
}
274+
expect(fn.__trigger.vpcConnector).to.equal("test-connector");
275+
expect(fn.__endpoint.vpc).to.deep.equal({ connector: "test-connector" });
253276
});
254277

255278
it("should allow a vpcConnectorEgressSettings to be set", () => {
@@ -261,11 +284,11 @@ describe("FunctionBuilder", () => {
261284
.auth.user()
262285
.onCreate((user) => user);
263286

264-
if (!(fn.__endpoint.vpc instanceof ResetValue)) {
265-
expect(fn.__endpoint.vpc.egressSettings).to.equal("PRIVATE_RANGES_ONLY");
266-
} else {
267-
expect.fail("__endpoint.vpc unexpectedly set to RESET_VALUE");
268-
}
287+
expect(fn.__trigger.vpcConnectorEgressSettings).to.equal("PRIVATE_RANGES_ONLY");
288+
expect(fn.__endpoint.vpc).to.deep.equal({
289+
connector: "test-connector",
290+
egressSettings: "PRIVATE_RANGES_ONLY",
291+
});
269292
});
270293

271294
it("should throw an error if user chooses an invalid vpcConnectorEgressSettings", () => {
@@ -292,17 +315,22 @@ describe("FunctionBuilder", () => {
292315
.onCreate((user) => user);
293316

294317
expect(fn.__endpoint.serviceAccountEmail).to.equal(serviceAccount);
318+
expect(fn.__trigger.serviceAccountEmail).to.equal(serviceAccount);
295319
});
296320

297321
it("should allow a serviceAccount to be set with generated service account email", () => {
298322
const serviceAccount = "test-service-account@";
323+
const projectId = process.env.GCLOUD_PROJECT;
299324
const fn = functions
300325
.runWith({
301326
serviceAccount,
302327
})
303328
.auth.user()
304329
.onCreate((user) => user);
305330

331+
expect(fn.__trigger.serviceAccountEmail).to.equal(
332+
`test-service-account@${projectId}.iam.gserviceaccount.com`
333+
);
306334
expect(fn.__endpoint.serviceAccountEmail).to.equal(`test-service-account@`);
307335
});
308336

@@ -315,7 +343,8 @@ describe("FunctionBuilder", () => {
315343
.auth.user()
316344
.onCreate((user) => user);
317345

318-
expect(fn.__endpoint.serviceAccountEmail).to.equal("default");
346+
expect(fn.__trigger.serviceAccountEmail).to.be.null;
347+
expect(fn.__endpoint.serviceAccountEmail).to.equal(serviceAccount);
319348
});
320349

321350
it("should throw an error if serviceAccount is set to an invalid value", () => {
@@ -337,6 +366,7 @@ describe("FunctionBuilder", () => {
337366
.onCreate((user) => user);
338367

339368
expect(fn.__endpoint.availableMemoryMb).to.deep.equal(4096);
369+
expect(fn.__trigger.availableMemoryMb).to.deep.equal(4096);
340370
});
341371

342372
it("should allow labels to be set", () => {
@@ -349,6 +379,9 @@ describe("FunctionBuilder", () => {
349379
.auth.user()
350380
.onCreate((user) => user);
351381

382+
expect(fn.__trigger.labels).to.deep.equal({
383+
"valid-key": "valid-value",
384+
});
352385
expect(fn.__endpoint.labels).to.deep.equal({
353386
"valid-key": "valid-value",
354387
});
@@ -504,22 +537,20 @@ describe("FunctionBuilder", () => {
504537
.auth.user()
505538
.onCreate((user) => user);
506539

507-
expect(fn.__endpoint.secretEnvironmentVariables).to.deep.equal([
508-
{
509-
key: "API_KEY",
510-
},
511-
]);
540+
expect(fn.__trigger.secrets).to.deep.equal(secrets);
541+
expect(fn.__endpoint.secretEnvironmentVariables).to.deep.equal([{ key: secrets[0] }]);
512542
});
513543

514544
it("should throw error given secrets expressed with full resource name", () => {
515-
const sp = defineSecret("projects/my-project/secrets/API_KEY");
516-
517545
expect(() =>
518546
functions.runWith({
519547
secrets: ["projects/my-project/secrets/API_KEY"],
520548
})
521549
).to.throw();
550+
});
522551

552+
it("should throw error given invalid secret config", () => {
553+
const sp = defineSecret("projects/my-project/secrets/API_KEY");
523554
expect(() =>
524555
functions.runWith({
525556
secrets: [sp],

spec/v1/providers/analytics.spec.ts

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,10 @@ describe("Analytics Functions", () => {
4848
.analytics.event("event")
4949
.onLog((event) => event);
5050

51+
expect(fn.__trigger.regions).to.deep.equal(["us-east1"]);
52+
expect(fn.__trigger.availableMemoryMb).to.deep.equal(256);
53+
expect(fn.__trigger.timeout).to.deep.equal("90s");
54+
5155
expect(fn.__endpoint.region).to.deep.equal(["us-east1"]);
5256
expect(fn.__endpoint.availableMemoryMb).to.deep.equal(256);
5357
expect(fn.__endpoint.timeoutSeconds).to.deep.equal(90);
@@ -57,6 +61,14 @@ describe("Analytics Functions", () => {
5761
it("should return a trigger/endpoint with appropriate values", () => {
5862
const cloudFunction = analytics.event("first_open").onLog(() => null);
5963

64+
expect(cloudFunction.__trigger).to.deep.equal({
65+
eventTrigger: {
66+
eventType: "providers/google.firebase.analytics/eventTypes/event.log",
67+
resource: "projects/project1/events/first_open",
68+
service: "app-measurement.com",
69+
},
70+
});
71+
6072
expect(cloudFunction.__endpoint).to.deep.equal({
6173
...MINIMAL_V1_ENDPOINT,
6274
platform: "gcfv1",
@@ -293,14 +305,18 @@ describe("Analytics Functions", () => {
293305
});
294306

295307
describe("process.env.GCLOUD_PROJECT not set", () => {
296-
it("should not throw if __endpoint is not accessed", () => {
308+
it("should not throw if __trigger is not accessed", () => {
297309
expect(() => analytics.event("event").onLog(() => null)).to.not.throw(Error);
298310
});
299311

300312
it("should throw when __endpoint is accessed", () => {
301313
expect(() => analytics.event("event").onLog(() => null).__endpoint).to.throw(Error);
302314
});
303315

316+
it("should throw when trigger is accessed", () => {
317+
expect(() => analytics.event("event").onLog(() => null).__trigger).to.throw(Error);
318+
});
319+
304320
it("should not throw when #run is called", () => {
305321
const cf = analytics.event("event").onLog(() => null);
306322

0 commit comments

Comments
 (0)