UNPKG

@flashcoffee/fcbraze

Version:
111 lines 4.27 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const core_1 = require("../core"); describe('BrazeService constructor', () => { const oldEnv = process.env; afterEach(() => { process.env = oldEnv; }); it('should throw error when there is no required env', () => { expect(function () { new core_1.BrazeService(); }).toThrow(new Error('BRAZE_BASE_URL or BRAZE_API_KEY environment is missing')); }); it('should initiated successfully when required env been set', () => { process.env = Object.assign(Object.assign({}, process.env), { BRAZE_BASE_URL: 'https://some-rest-endpoint.braze.com', BRAZE_API_KEY: 'your-api-key-here' }); const braze = new core_1.BrazeService(); jest.spyOn(braze, 'api'); expect(braze.api).toBeTruthy(); }); }); describe('BrazeService methods', () => { const oldEnv = process.env; let braze; let apiPostSpy; beforeEach(() => { jest.resetModules(); process.env = Object.assign(Object.assign({}, process.env), { BRAZE_BASE_URL: 'https://some-rest-endpoint.braze.com', BRAZE_API_KEY: 'your-api-key-here' }); braze = new core_1.BrazeService(); apiPostSpy = jest.spyOn(braze.api, 'post'); apiPostSpy.mockImplementation(() => Promise.resolve({})); }); afterEach(() => { process.env = oldEnv; }); it('trackUser', async () => { const payload = { attributes: [{ external_id: '000' }], events: [{ external_id: '000', name: 'some name', time: '2020-12-10T08:01:59.000Z' }], purchases: [{ external_id: '000', product_id: 'XXX', currency: 'SGD', price: 123, quantity: 123, time: '2020-12-10T08:01:59.000Z' }], }; await braze.trackUser(payload); expect(apiPostSpy).toHaveBeenCalled(); expect(apiPostSpy).toBeCalledWith('/users/track', payload); }); it('patchUserAttributes', async () => { const payload = [{ external_id: '000' }]; await braze.patchUserAttributes(payload); expect(apiPostSpy).toHaveBeenCalled(); expect(apiPostSpy).toBeCalledWith('/users/track', { attributes: payload }); }); it('patchUserEvents', async () => { const payload = [{ external_id: '000', name: 'some name', time: '2020-12-10T08:01:59.000Z' }]; await braze.patchUserEvents(payload); expect(apiPostSpy).toHaveBeenCalled(); expect(apiPostSpy).toBeCalledWith('/users/track', { events: payload }); }); it('patchUserPurchases', async () => { const payload = [{ external_id: '000', product_id: 'XXX', currency: 'SGD', price: 123, quantity: 123, time: '2020-12-10T08:01:59.000Z' }]; await braze.patchUserPurchases(payload); expect(apiPostSpy).toHaveBeenCalled(); expect(apiPostSpy).toBeCalledWith('/users/track', { purchases: payload }); }); it('triggerCampaign', async () => { const payload = { campaign_id: '000', broadcast: true }; await braze.triggerCampaign(payload); expect(apiPostSpy).toHaveBeenCalled(); expect(apiPostSpy).toBeCalledWith('/campaigns/trigger/send', payload); }); it('triggerCanvas', async () => { const payload = { canvas_id: '000', broadcast: true }; await braze.triggerCanvas(payload); expect(apiPostSpy).toHaveBeenCalled(); expect(apiPostSpy).toBeCalledWith('/canvas/trigger/send', payload); }); it('exportUser', async () => { const payload = { external_ids: ['000'], fields_to_export: ['first_name'] }; await braze.exportUser(payload); expect(apiPostSpy).toHaveBeenCalled(); expect(apiPostSpy).toBeCalledWith('/users/export/ids', payload); }); }); //# sourceMappingURL=core.test.js.map