UNPKG

@vivianhealth/braze-segment-debounce

Version:

Segment utilities to debounce data before it reaches the Braze destination

155 lines (138 loc) 4.27 kB
"use strict"; var _index = require("./index"); var getPayloadProperty = function getPayloadProperty(payload, prop) { return payload[prop]; }; describe('debouncePayloads', function () { test('debounces payload', function () { var payload = { userId: 1, traits: { firstName: 'Test', lastName: 'User' } }; var _debouncePayloads = (0, _index.debouncePayloads)(payload, payload, getPayloadProperty), nextPayload = _debouncePayloads.nextPayload, newOrUpdatedTraits = _debouncePayloads.newOrUpdatedTraits; expect(nextPayload).toBe(null); expect(newOrUpdatedTraits).toBe(null); }); test('debounces payload with anonymousId', function () { var payload = { anonymousId: 1, traits: { firstName: 'Test', lastName: 'User' } }; var _debouncePayloads2 = (0, _index.debouncePayloads)(payload, payload, getPayloadProperty), nextPayload = _debouncePayloads2.nextPayload, newOrUpdatedTraits = _debouncePayloads2.newOrUpdatedTraits; expect(nextPayload).toBe(null); expect(newOrUpdatedTraits).toBe(null); }); test('debounces payload with traits', function () { var payload = { traits: { firstName: 'Test', lastName: 'User' } }; var _debouncePayloads3 = (0, _index.debouncePayloads)(payload, payload, getPayloadProperty), nextPayload = _debouncePayloads3.nextPayload, newOrUpdatedTraits = _debouncePayloads3.newOrUpdatedTraits; expect(nextPayload).toBe(null); expect(newOrUpdatedTraits).toBe(null); }); test('debounces payload with new anonymousId', function () { var payload1 = { userId: 1, traits: { firstName: 'Test', lastName: 'User' } }; var payload2 = { userId: 1, anonymousId: 2, traits: { firstName: 'Test', lastName: 'User' } }; var _debouncePayloads4 = (0, _index.debouncePayloads)(payload1, payload2, getPayloadProperty), nextPayload = _debouncePayloads4.nextPayload, newOrUpdatedTraits = _debouncePayloads4.newOrUpdatedTraits; expect(nextPayload).toEqual(payload2); expect(newOrUpdatedTraits).toBe(null); }); test('debounces payload with new traits', function () { var payload1 = { userId: 1, traits: { firstName: 'Test', lastName: 'User' } }; var payload2 = { userId: 1, traits: { phoneNumber: '123-45678', address: '1 Main St' } }; var _debouncePayloads5 = (0, _index.debouncePayloads)(payload1, payload2, getPayloadProperty), nextPayload = _debouncePayloads5.nextPayload, newOrUpdatedTraits = _debouncePayloads5.newOrUpdatedTraits; expect(nextPayload).toEqual(payload2); expect(newOrUpdatedTraits).toEqual({ phoneNumber: '123-45678', address: '1 Main St' }); }); test('debounces payload with different traits', function () { var payload1 = { userId: 1, traits: { firstName: 'Test', lastName: 'User' } }; var payload2 = { userId: 1, traits: { firstName: 'Test', lastName: 'Tester' } }; var _debouncePayloads6 = (0, _index.debouncePayloads)(payload1, payload2, getPayloadProperty), nextPayload = _debouncePayloads6.nextPayload, newOrUpdatedTraits = _debouncePayloads6.newOrUpdatedTraits; expect(nextPayload).toEqual(payload2); expect(newOrUpdatedTraits).toEqual({ lastName: 'Tester' }); }); test('debounces payload with different array traits', function () { var payload1 = { userId: 1, traits: { colors: ['blue', 'orange', 'red'] } }; var payload2 = { userId: 1, traits: { colors: ['blue', 'orange', 'red', 'green'] } }; var _debouncePayloads7 = (0, _index.debouncePayloads)(payload1, payload2, getPayloadProperty), nextPayload = _debouncePayloads7.nextPayload, newOrUpdatedTraits = _debouncePayloads7.newOrUpdatedTraits; expect(nextPayload).toEqual(payload2); expect(newOrUpdatedTraits).toEqual({ colors: ['blue', 'orange', 'red', 'green'] }); }); });