UNPKG

@google/events

Version:
313 lines (312 loc) 11.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const chai_1 = require("chai"); const RemoteConfigEventData_1 = require("../firebase/remoteconfig/v1/RemoteConfigEventData"); /** * JSON objects that are similar to what you'd see from a POST request. */ const PUBSUB_DATA = { message: { data: Buffer.from('Pub/Sub data').toString('base64'), messageId: 'my-message-id', publishTime: '2020-08-14T20:50:04.994Z', }, subscription: 'projects/my-project/subscriptions/cre-us-central1-pubsub-trigger-5-sub-000', }; const BUILD_EVENT_DATA = { timeout: '660s', createTime: '1993-07-25T02:32:41.388Z', tags: ['dolor exercitation', 'sit id consequat', 'dolore eu sit irure esse'], buildTriggerId: 'my-trigger-id', logUrl: 'http://example.com', images: ['http://example.com', 'http://example.com'], projectId: 'quis minim est laborum ex', queueTtl: '660s', }; const FIRESTORE_DATA = { oldValue: { createTime: '2020-04-23T09:58:53.211035Z', fields: { 'another test': { stringValue: 'asd', }, count: { integerValue: 3, }, foo: { stringValue: 'bar', }, }, name: 'projects/project-id/databases/(default)/documents/gcf-test/2Vm2mI1d0wIaK2Waj5to', updateTime: '2020-04-23T12:00:27.247187Z', }, updateMask: { fieldPaths: ['count'], }, value: { createTime: '2020-04-23T09:58:53.211035Z', fields: { 'another test': { stringValue: 'asd', }, count: { integerValue: 4, }, foo: { stringValue: 'bar', }, }, name: 'projects/project-id/databases/(default)/documents/gcf-test/2Vm2mI1d0wIaK2Waj5to', updateTime: '2020-04-23T12:00:27.247187Z', }, }; const SCHEDULER_DATA = { customData: 'bXkgYmFzZTY0IGRhdGE=', }; const STORAGE_DATA = { bucket: 'some-bucket', contentType: 'text/plain', crc32c: 'rTVTeQ==', etag: 'CNHZkbuF/ugCEAE=', generation: 1587627537231057, id: 'some-bucket/folder/Test.cs/1587627537231057', kind: 'storage#object', md5Hash: 'kF8MuJ5+CTJxvyhHS1xzRg==', mediaLink: 'https://www.googleapis.com/download/storage/v1/b/some-bucket/o/folder%2FTest.cs?generation=1587627537231057\u0026alt=media', metageneration: 1, name: 'folder/Test.cs', selfLink: 'https://www.googleapis.com/storage/v1/b/some-bucket/o/folder/Test.cs', size: 352, storageClass: 'MULTI_REGIONAL', timeCreated: '2020-04-23T07:38:57.230Z', timeStorageClassUpdated: '2020-04-23T07:38:57.230Z', updated: '2020-04-23T07:38:57.230Z', }; const LOG_ENTRY_DATA = { insertId: '9frck8cf9j', logName: 'projects/test-project/logs/cloudaudit.googleapis.com%2Factivity', protoPayload: { authenticationInfo: { principalEmail: 'robot@test-project.iam.gserviceaccount.com', principalSubject: 'user:robot@test-project.iam.gserviceaccount.com', serviceAccountKeyName: '//iam.googleapis.com/projects/test-project/serviceAccounts/robot@test-project.iam.gserviceaccount.com/keys/90f662482321f1ca8e82ea675b1a1c30c1fe681f', }, authorizationInfo: [ { granted: true, permission: 'pubsub.topics.create', resource: 'projects/test-project', resourceAttributes: {}, }, ], methodName: 'google.pubsub.v1.Publisher.CreateTopic', requestMetadata: { callerIp: '192.168.0.1', callerNetwork: '//compute.googleapis.com/projects/google.com:my-laptop/global/networks/__unknown__', callerSuppliedUserAgent: 'google-cloud-sdk', destinationAttributes: {}, requestAttributes: { auth: {}, time: '2020-06-30T16:14:47.600710407Z', }, }, resourceLocation: { currentLocations: [ 'asia-east1', 'asia-northeast1', 'asia-southeast1', 'australia-southeast1', 'europe-north1', 'europe-west1', 'europe-west2', 'europe-west3', 'europe-west4', 'us-central1', 'us-central2', 'us-east1', 'us-east4', 'us-west1', 'us-west2', 'us-west3', 'us-west4', ], }, resourceName: 'projects/test-project/topics/test-auditlogs-source', serviceName: 'pubsub.googleapis.com', }, receiveTimestamp: '2020-06-30T16:14:48.401489148Z', resource: { labels: { project_id: 'test-project', topic_id: 'projects/test-project/topics/test-auditlogs-source', }, type: 'pubsub_topic', }, timestamp: '2020-06-30T16:14:47.593398572Z', }; const ANALYTICS_DATA = { userDim: { appInfo: { appId: 'com.example.exampleapp', appInstanceId: 'aaabbb11122233344455566677788899', appPlatform: 'ANDROID', appStore: 'com.android.vending', appVersion: '1.67', }, bundleInfo: { bundleSequenceId: 58, serverTimestampOffsetMicros: 875910, }, deviceInfo: { deviceCategory: 'mobile', deviceModel: 'SM-A307G', deviceTimeZoneOffsetSeconds: -10800, mobileBrandName: 'Samsung', mobileMarketingName: 'Galaxy A30s', mobileModelName: 'SM-A307G', platformVersion: '10', resettableDeviceId: 'aaaaaa-1111-bbbb-2222-dddddddddddd', userDefaultLanguage: 'es-us', }, firstOpenTimestampMicros: 1606882687506000, geoInfo: { city: 'Burzaco', continent: '005', country: 'Argentina', region: 'Buenos Aires Province', }, userId: '0123456789abcdef0123456789abcdef', userProperties: { completed_tutorial: { setTimestampUsec: 1606948068187909, value: { stringValue: 'true' }, }, first_open_time: { setTimestampUsec: 1606882688381909, value: { intValue: 1606885200000 }, }, last_level: { index: 10, setTimestampUsec: 1606952210498909, value: { stringValue: 'school' }, }, user_id: { setTimestampUsec: 1606955180040909, value: { stringValue: 'abcdef0123456789abcdef0123456789' }, }, }, }, eventDim: [ { date: '20201202', name: 'session_start', params: { engaged_session_event: { intValue: 1 }, firebase_conversion: { intValue: 1 }, firebase_event_origin: { stringValue: 'auto' }, firebase_screen: { stringValue: 'app_menu' }, firebase_screen_class: { stringValue: 'AppActivity' }, firebase_screen_id: { intValue: -2415111648950109400 }, ga_session_id: { intValue: 1606965190 }, ga_session_number: { intValue: 7 }, session_engaged: { intValue: 1 }, }, previousTimestampMicros: 1606951997533000, timestampMicros: 160695519124690, }, ], }; const AUTH_DATA = { email: 'test@nowhere.com', metadata: { createTime: '2020-05-26T10:42:27Z', lastSignInTime: '2020-05-29T11:00:00Z', }, providerData: [ { email: 'test@nowhere.com', providerId: 'password', uid: 'test@nowhere.com', }, ], uid: 'UUpby3s4spZre6kHsgVSPetzQ8l2', }; const DATABASE_DATA = { data: { deeply: { nested: { text: 'This is deeply nested', text2: 'Second value', }, }, grandchild: 'other changed', }, delta: { deeply: { abc: 'def', }, }, }; const REMOTE_CONFIG_DATA = { updateOrigin: RemoteConfigEventData_1.UpdateOriginEnum.Console, updateTime: '2020-11-16T16:35:33.569229Z', updateType: RemoteConfigEventData_1.UpdateTypeEnum.IncrementalUpdate, updateUser: { name: 'Ut ad aute', email: 'test@nowhere.com', imageUrl: 'http://google.com/favicon.ico', }, versionNumber: 5, rollbackSource: 75404139, description: 'minim reprehenderit Lorem qui proident', }; describe('Event Types', () => { describe('cloud', () => { it('Audit Log: should work with a basic Audit Log sample', () => { const tsExample = LOG_ENTRY_DATA; (0, chai_1.expect)(tsExample.timestamp).to.equal('2020-06-30T16:14:47.593398572Z'); }); it('Cloud Build: should work with a basic Build sample', () => { const tsExample = BUILD_EVENT_DATA; (0, chai_1.expect)(tsExample.buildTriggerId).to.equal('my-trigger-id'); }); it('Firestore: should work with a basic Firestore sample', () => { var _a; const tsExample = FIRESTORE_DATA; (0, chai_1.expect)((_a = tsExample.value) === null || _a === void 0 ? void 0 : _a.name).to.equal('projects/project-id/databases/(default)/documents/gcf-test/2Vm2mI1d0wIaK2Waj5to'); }); it('Pub/Sub: should work with a basic Pub/Sub sample', () => { var _a; const tsExample = PUBSUB_DATA; (0, chai_1.expect)((_a = tsExample === null || tsExample === void 0 ? void 0 : tsExample.message) === null || _a === void 0 ? void 0 : _a.data).to.equal(Buffer.from('Pub/Sub data').toString('base64')); }); it('Scheduler: should work with a basic Scheduler sample', () => { const tsExample = SCHEDULER_DATA; (0, chai_1.expect)(tsExample.customData).to.equal('bXkgYmFzZTY0IGRhdGE='); }); it('Storage: should work with a basic Storage sample', () => { const tsExample = STORAGE_DATA; (0, chai_1.expect)(tsExample.bucket).to.equal('some-bucket'); }); }); describe('firebase', () => { it('Analytics: should work with a basic Analytics sample', () => { var _a; const tsExample = ANALYTICS_DATA; (0, chai_1.expect)((_a = tsExample.userDim) === null || _a === void 0 ? void 0 : _a.userId).to.equal('0123456789abcdef0123456789abcdef'); }); it('Auth: should work with a basic Auth sample', () => { const tsExample = AUTH_DATA; (0, chai_1.expect)(tsExample.uid).to.equal('UUpby3s4spZre6kHsgVSPetzQ8l2'); }); it('Database: should work with a basic Database sample', () => { const tsExample = DATABASE_DATA; const delta = tsExample === null || tsExample === void 0 ? void 0 : tsExample.delta; (0, chai_1.expect)(delta.deeply.abc).to.equal('def'); }); it('Remote Config: should work with a basic Remote Config sample', () => { const tsExample = REMOTE_CONFIG_DATA; (0, chai_1.expect)(tsExample.rollbackSource).to.equal(75404139); }); }); });