Skip to content

Remove __trigger #1150

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Jun 24, 2022
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
Remove __trigger
  • Loading branch information
inlined committed Jun 17, 2022
commit a9b94d2d9ec64aa021fa697a26bc8f7a18dae5d4
2 changes: 1 addition & 1 deletion integration_test/firebase.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,4 @@
"source": "functions",
"codebase": "integration-tests"
}
}
}
20 changes: 2 additions & 18 deletions spec/v1/cloud-functions.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ describe('makeCloudFunction', () => {
legacyEventType: 'providers/provider/eventTypes/event',
};

it('should put a __trigger/__endpoint on the returned CloudFunction', () => {
it('should put a __endpoint on the returned CloudFunction', () => {
const cf = makeCloudFunction({
provider: 'mock.provider',
eventType: 'mock.event',
Expand All @@ -50,14 +50,6 @@ describe('makeCloudFunction', () => {
handler: () => null,
});

expect(cf.__trigger).to.deep.equal({
eventTrigger: {
eventType: 'mock.provider.mock.event',
resource: 'resource',
service: 'service',
},
});

expect(cf.__endpoint).to.deep.equal({
platform: 'gcfv1',
eventTrigger: {
Expand All @@ -71,17 +63,9 @@ describe('makeCloudFunction', () => {
});
});

it('should have legacy event type in __trigger/__endpoint if provided', () => {
it('should have legacy event type in __endpoint if provided', () => {
const cf = makeCloudFunction(cloudFunctionArgs);

expect(cf.__trigger).to.deep.equal({
eventTrigger: {
eventType: 'providers/provider/eventTypes/event',
resource: 'resource',
service: 'service',
},
});

expect(cf.__endpoint).to.deep.equal({
platform: 'gcfv1',
eventTrigger: {
Expand Down
51 changes: 25 additions & 26 deletions spec/v1/function-builder.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ describe('FunctionBuilder', () => {
.auth.user()
.onCreate((user) => user);

expect(fn.__trigger.regions).to.deep.equal(['us-east1']);
expect(fn.__endpoint.region).to.deep.equal(['us-east1']);
});

it('should allow multiple supported regions to be set', () => {
Expand All @@ -48,7 +48,7 @@ describe('FunctionBuilder', () => {
.auth.user()
.onCreate((user) => user);

expect(fn.__trigger.regions).to.deep.equal(['us-east1', 'us-central1']);
expect(fn.__endpoint.region).to.deep.equal(['us-east1', 'us-central1']);
});

it('should allow all supported regions to be set', () => {
Expand All @@ -66,7 +66,7 @@ describe('FunctionBuilder', () => {
.auth.user()
.onCreate((user) => user);

expect(fn.__trigger.regions).to.deep.equal([
expect(fn.__endpoint.region).to.deep.equal([
'us-central1',
'us-east1',
'us-east4',
Expand All @@ -88,9 +88,9 @@ describe('FunctionBuilder', () => {
.auth.user()
.onCreate((user) => user);

expect(fn.__trigger.availableMemoryMb).to.deep.equal(256);
expect(fn.__trigger.timeout).to.deep.equal('90s');
expect(fn.__trigger.failurePolicy).to.deep.equal({ retry: {} });
expect(fn.__endpoint.availableMemoryMb).to.deep.equal(256);
expect(fn.__endpoint.timeoutSeconds).to.deep.equal(90);
expect(fn.__endpoint.eventTrigger.retry).to.deep.equal(true);
});

it("should apply a default failure policy if it's aliased with `true`", () => {
Expand All @@ -103,7 +103,7 @@ describe('FunctionBuilder', () => {
.auth.user()
.onCreate((user) => user);

expect(fn.__trigger.failurePolicy).to.deep.equal({ retry: {} });
expect(fn.__endpoint.eventTrigger.retry).to.deep.equal(true);
});

it('should allow both supported region and valid runtime options to be set', () => {
Expand All @@ -116,9 +116,9 @@ describe('FunctionBuilder', () => {
.auth.user()
.onCreate((user) => user);

expect(fn.__trigger.regions).to.deep.equal(['europe-west2']);
expect(fn.__trigger.availableMemoryMb).to.deep.equal(256);
expect(fn.__trigger.timeout).to.deep.equal('90s');
expect(fn.__endpoint.region).to.deep.equal(['europe-west2']);
expect(fn.__endpoint.availableMemoryMb).to.deep.equal(256);
expect(fn.__endpoint.timeoutSeconds).to.deep.equal(90);
});

it('should allow both valid runtime options and supported region to be set in reverse order', () => {
Expand All @@ -131,9 +131,9 @@ describe('FunctionBuilder', () => {
.auth.user()
.onCreate((user) => user);

expect(fn.__trigger.regions).to.deep.equal(['europe-west1']);
expect(fn.__trigger.availableMemoryMb).to.deep.equal(256);
expect(fn.__trigger.timeout).to.deep.equal('90s');
expect(fn.__endpoint.region).to.deep.equal(['europe-west1']);
expect(fn.__endpoint.availableMemoryMb).to.deep.equal(256);
expect(fn.__endpoint.timeoutSeconds).to.deep.equal(90);
});

it('should fail if supported region but invalid runtime options are set (reverse order)', () => {
Expand Down Expand Up @@ -205,7 +205,7 @@ describe('FunctionBuilder', () => {
.runWith({ ingressSettings: 'ALLOW_INTERNAL_ONLY' })
.https.onRequest(() => {});

expect(fn.__trigger.ingressSettings).to.equal('ALLOW_INTERNAL_ONLY');
expect(fn.__endpoint.ingressSettings).to.equal('ALLOW_INTERNAL_ONLY');
});

it('should throw an error if user chooses an invalid ingressSettings', () => {
Expand All @@ -229,7 +229,7 @@ describe('FunctionBuilder', () => {
.auth.user()
.onCreate((user) => user);

expect(fn.__trigger.vpcConnector).to.equal('test-connector');
expect(fn.__endpoint.vpc.connector).to.equal('test-connector');
});

it('should allow a vpcConnectorEgressSettings to be set', () => {
Expand All @@ -241,9 +241,7 @@ describe('FunctionBuilder', () => {
.auth.user()
.onCreate((user) => user);

expect(fn.__trigger.vpcConnectorEgressSettings).to.equal(
'PRIVATE_RANGES_ONLY'
);
expect(fn.__endpoint.vpc.egressSettings).to.equal('PRIVATE_RANGES_ONLY');
});

it('should throw an error if user chooses an invalid vpcConnectorEgressSettings', () => {
Expand All @@ -269,21 +267,20 @@ describe('FunctionBuilder', () => {
.auth.user()
.onCreate((user) => user);

expect(fn.__trigger.serviceAccountEmail).to.equal(serviceAccount);
expect(fn.__endpoint.serviceAccountEmail).to.equal(serviceAccount);
});

it('should allow a serviceAccount to be set with generated service account email', () => {
const serviceAccount = 'test-service-account@';
const projectId = process.env.GCLOUD_PROJECT;
const fn = functions
.runWith({
serviceAccount,
})
.auth.user()
.onCreate((user) => user);

expect(fn.__trigger.serviceAccountEmail).to.equal(
`test-service-account@${projectId}.iam.gserviceaccount.com`
expect(fn.__endpoint.serviceAccountEmail).to.equal(
`test-service-account@`
);
});

Expand All @@ -296,7 +293,7 @@ describe('FunctionBuilder', () => {
.auth.user()
.onCreate((user) => user);

expect(fn.__trigger.serviceAccountEmail).to.be.null;
expect(fn.__endpoint.serviceAccountEmail).to.equal('default');
});

it('should throw an error if serviceAccount is set to an invalid value', () => {
Expand All @@ -317,7 +314,7 @@ describe('FunctionBuilder', () => {
.auth.user()
.onCreate((user) => user);

expect(fn.__trigger.availableMemoryMb).to.deep.equal(4096);
expect(fn.__endpoint.availableMemoryMb).to.deep.equal(4096);
});

it('should allow labels to be set', () => {
Expand All @@ -330,7 +327,7 @@ describe('FunctionBuilder', () => {
.auth.user()
.onCreate((user) => user);

expect(fn.__trigger.labels).to.deep.equal({
expect(fn.__endpoint.labels).to.deep.equal({
'valid-key': 'valid-value',
});
});
Expand Down Expand Up @@ -487,7 +484,9 @@ describe('FunctionBuilder', () => {
.auth.user()
.onCreate((user) => user);

expect(fn.__trigger.secrets).to.deep.equal(secrets);
expect(fn.__endpoint.secretEnvironmentVariables).to.deep.equal([{
key: 'API_KEY',
}]);
});

it('should throw error given secrets expressed with full resource name', () => {
Expand Down
22 changes: 4 additions & 18 deletions spec/v1/providers/analytics.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -47,10 +47,6 @@ describe('Analytics Functions', () => {
.analytics.event('event')
.onLog((event) => event);

expect(fn.__trigger.regions).to.deep.equal(['us-east1']);
expect(fn.__trigger.availableMemoryMb).to.deep.equal(256);
expect(fn.__trigger.timeout).to.deep.equal('90s');

expect(fn.__endpoint.region).to.deep.equal(['us-east1']);
expect(fn.__endpoint.availableMemoryMb).to.deep.equal(256);
expect(fn.__endpoint.timeoutSeconds).to.deep.equal(90);
Expand All @@ -60,15 +56,6 @@ describe('Analytics Functions', () => {
it('should return a trigger/endpoint with appropriate values', () => {
const cloudFunction = analytics.event('first_open').onLog(() => null);

expect(cloudFunction.__trigger).to.deep.equal({
eventTrigger: {
eventType:
'providers/google.firebase.analytics/eventTypes/event.log',
resource: 'projects/project1/events/first_open',
service: 'app-measurement.com',
},
});

expect(cloudFunction.__endpoint).to.deep.equal({
platform: 'gcfv1',
eventTrigger: {
Expand Down Expand Up @@ -322,11 +309,10 @@ describe('Analytics Functions', () => {

describe('handler namespace', () => {
describe('#onLog', () => {
it('should return an empty trigger/endpoint', () => {
it('should return an empty endpoint', () => {
const cloudFunction = functions.handler.analytics.event.onLog(
() => null
);
expect(cloudFunction.__trigger).to.deep.equal({});
expect(cloudFunction.__endpoint).to.be.undefined;
});

Expand Down Expand Up @@ -369,15 +355,15 @@ describe('Analytics Functions', () => {
});

describe('process.env.GCLOUD_PROJECT not set', () => {
it('should not throw if __trigger is not accessed', () => {
it('should not throw if __endpoint is not accessed', () => {
expect(() => analytics.event('event').onLog(() => null)).to.not.throw(
Error
);
});

it('should throw when trigger is accessed', () => {
it('should throw when __endpoint is accessed', () => {
expect(
() => analytics.event('event').onLog(() => null).__trigger
() => analytics.event('event').onLog(() => null).__endpoint
).to.throw(Error);
});

Expand Down
Loading