[go: nahoru, domu]

Skip to content
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

Divide everything into v1, v2, and common (unexported). #1149

Merged
merged 11 commits into from
Jun 27, 2022
Prev Previous commit
Next Next commit
Remove __trigger (#1150)
* Remove __trigger

* Lint fixes
  • Loading branch information
inlined committed Jun 26, 2022
commit 1dc221eb5a07a49143a4ad4e175d787a5cc4c999
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
53 changes: 26 additions & 27 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,22 +267,19 @@ 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@`);
});

it('should set a null serviceAccountEmail if service account is set to `default`', () => {
Expand All @@ -296,7 +291,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 +312,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 +325,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 +482,11 @@ 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