From e357141d22e5296b6d1cda2e763ac24abfcb66e6 Mon Sep 17 00:00:00 2001 From: shrouti1507 <60211312+shrouti1507@users.noreply.github.com> Date: Mon, 22 Jul 2024 11:10:05 +0530 Subject: [PATCH] feat: braze source event mapping (#3527) * feat: braze source event mapping * feat: delete unnecessary code * fix: removing the duplicate code from v0 route * fix: shortened the test cases --- src/v0/sources/braze/eventMapping.json | 1 - src/{v0 => v1}/sources/braze/ignore.json | 0 src/{v0 => v1}/sources/braze/mapping.json | 0 src/{v0 => v1}/sources/braze/transform.js | 29 +- test/__tests__/braze_source.test.js | 30 - test/__tests__/data/braze_source_input.json | 243 ---- test/__tests__/data/braze_source_output.json | 288 ---- test/integrations/sources/braze/common.ts | 30 + test/integrations/sources/braze/data.ts | 1252 ++++++++++++++++++ 9 files changed, 1297 insertions(+), 576 deletions(-) delete mode 100644 src/v0/sources/braze/eventMapping.json rename src/{v0 => v1}/sources/braze/ignore.json (100%) rename src/{v0 => v1}/sources/braze/mapping.json (100%) rename src/{v0 => v1}/sources/braze/transform.js (79%) delete mode 100644 test/__tests__/braze_source.test.js delete mode 100644 test/__tests__/data/braze_source_input.json delete mode 100644 test/__tests__/data/braze_source_output.json create mode 100644 test/integrations/sources/braze/common.ts create mode 100644 test/integrations/sources/braze/data.ts diff --git a/src/v0/sources/braze/eventMapping.json b/src/v0/sources/braze/eventMapping.json deleted file mode 100644 index 0967ef424bc..00000000000 --- a/src/v0/sources/braze/eventMapping.json +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/src/v0/sources/braze/ignore.json b/src/v1/sources/braze/ignore.json similarity index 100% rename from src/v0/sources/braze/ignore.json rename to src/v1/sources/braze/ignore.json diff --git a/src/v0/sources/braze/mapping.json b/src/v1/sources/braze/mapping.json similarity index 100% rename from src/v0/sources/braze/mapping.json rename to src/v1/sources/braze/mapping.json diff --git a/src/v0/sources/braze/transform.js b/src/v1/sources/braze/transform.js similarity index 79% rename from src/v0/sources/braze/transform.js rename to src/v1/sources/braze/transform.js index e3d72000235..771c5887b33 100644 --- a/src/v0/sources/braze/transform.js +++ b/src/v1/sources/braze/transform.js @@ -3,17 +3,15 @@ const get = require('get-value'); const path = require('path'); const fs = require('fs'); const { TransformationError } = require('@rudderstack/integrations-lib'); -const { formatTimeStamp, removeUndefinedAndNullValues } = require('../../util'); -const Message = require('../message'); +const { + formatTimeStamp, + removeUndefinedAndNullValues, + getHashFromArray, +} = require('../../../v0/util'); +const Message = require('../../../v0/sources/message'); // import mapping json using JSON.parse to preserve object key order const mapping = JSON.parse(fs.readFileSync(path.resolve(__dirname, './mapping.json'), 'utf-8')); - -// if we need to map braze event name to something else. blank as of now -const eventNameMap = JSON.parse( - fs.readFileSync(path.resolve(__dirname, './eventMapping.json'), 'utf-8'), -); - // ignored properties // to be deleted from the field `event.properties` as already mapped // using mapping.json @@ -21,7 +19,7 @@ const ignoredProperties = JSON.parse( fs.readFileSync(path.resolve(__dirname, './ignore.json'), 'utf-8'), ); -const processEvent = (event) => { +const processEvent = (event, eventMapping) => { const messageType = 'track'; if (event.event_type) { @@ -32,7 +30,7 @@ const processEvent = (event) => { message.setEventType(messageType); // set event name - const eventName = eventNameMap[eventType] || eventType; + const eventName = eventMapping[eventType] || eventType; message.setEventName(eventName); // map event properties based on mapping.json @@ -68,14 +66,17 @@ const processEvent = (event) => { throw new TransformationError('Unknown event type from Braze'); }; -const process = (events) => { +const process = (inputEvent) => { + const { event, source } = inputEvent; + const { customMapping } = source.Config; + const eventMapping = getHashFromArray(customMapping, 'from', 'to', false); const responses = []; // Ref: Custom Currents Connector Partner Dev Documentation.pdf - const eventList = Array.isArray(events) && events.length > 0 ? events[0].events : events.events; - eventList.forEach((event) => { + const eventList = Array.isArray(event) && event.length > 0 ? event[0].events : event.events; + eventList.forEach((singleEvent) => { try { - const resp = processEvent(event); + const resp = processEvent(singleEvent, eventMapping); if (resp) { responses.push(removeUndefinedAndNullValues(resp)); } diff --git a/test/__tests__/braze_source.test.js b/test/__tests__/braze_source.test.js deleted file mode 100644 index 009b650578d..00000000000 --- a/test/__tests__/braze_source.test.js +++ /dev/null @@ -1,30 +0,0 @@ -const integration = "braze"; -const name = "Braze"; - -const fs = require("fs"); -const path = require("path"); - -const version = "v0"; - -const transformer = require(`../../src/${version}/sources/${integration}/transform`); - -const inputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_source_input.json`) -); -const outputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_source_output.json`) -); - -const inputData = JSON.parse(inputDataFile); -const expectedData = JSON.parse(outputDataFile); - -inputData.forEach((input, index) => { - it(`${name} Tests: payload: ${index}`, () => { - try { - const output = transformer.process(input); - expect(output).toEqual(expectedData[index]); - } catch (error) { - expect(error.message).toEqual(expectedData[index].message); - } - }); -}); diff --git a/test/__tests__/data/braze_source_input.json b/test/__tests__/data/braze_source_input.json deleted file mode 100644 index aef068229b1..00000000000 --- a/test/__tests__/data/braze_source_input.json +++ /dev/null @@ -1,243 +0,0 @@ -[ - [ - { - "events": [ - { - "event_type": "users.messages.inappmessage.Click", - "id": "a1234567-89ab-cdef-0123-456789abcdef", - "time": 1607988752, - "user": { - "user_id": "0123456789abcdef01234567", - "external_user_id": "user_id", - "device_id": "fedcba87-6543-210f-edc-ba9876543210", - "timezone": "America/Chicago" - }, - "properties": { - "app_id": "01234567-89ab-cdef-0123-456789abcdef", - "campaign_id": "11234567-89ab-cdef-0123-456789abcdef", - "campaign_name": "Test Campaign", - "message_variation_id": "c1234567-89ab-cdef-0123-456789abcdef", - "platform": "android", - "os_version": "Android (N)", - "device_model": "Nexus 5X", - "button_id": "0", - "send_id": "f123456789abcdef01234567" - } - }, - { - "event_type": "users.messages.pushnotification.Send", - "id": "a1234567-89ab-cdef-0123-456789abcdef", - "time": 1477502783, - "user": { - "user_id": "0123456789abcdef01234567", - "external_user_id": "user_id", - "device_id": "fedcba87-6543-210f-edc-ba9876543210", - "timezone": "America/Chicago" - }, - "properties": { - "app_id": "01234567-89ab-cdef-0123-456789abcdef", - "platform": "ios", - "campaign_id": "11234567-89ab-cdef-0123-456789abcdef", - "campaign_name": "Test Campaign", - "message_variation_id": "c1234567-89ab-cdef-0123-456789abcdef", - "send_id": "f123456789abcdef01234567", - "dispatch_id": "01234567-89ab-cdef-0123-456789abcdef" - } - }, - { - "event_type": "users.messages.email.Open", - "id": "a1234567-89ab-cdef-0123-456789abcdef", - "time": 1477502783, - "user": { - "user_id": "0123456789abcdef01234567", - "external_user_id": "user_id", - "timezone": "America/Chicago" - }, - "properties": { - "campaign_id": "11234567-89ab-cdef-0123-456789abcdef", - "campaign_name": "Test Campaign", - "dispatch_id": "12345qwert", - "message_variation_id": "c1234567-89ab-cdef-0123-456789abcdef", - "email_address": "test@test.com", - "send_id": "f123456789abcdef01234567", - "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36" - } - }, - { - "event_type": "users.messages.sms.Delivery", - "id": "a1234567-89ab-cdef-0123-456789abcdef", - "time": 1477502783, - "user": { - "user_id": "0123456789abcdef01234567", - "external_user_id": "user_id", - "timezone": "America/Chicago" - }, - "properties": { - "campaign_id": "11234567-89ab-cdef-0123-456789abcdef", - "campaign_name": "Test Campaign", - "dispatch_id": "12345qwert", - "message_variation_id": "c1234567-89ab-cdef-0123-456789abcdef", - "to_phone_number": "+16462345678", - "subscription_group_id": "41234567-89ab-cdef-0123-456789abcdef", - "from_phone_number": "+12123470922" - } - }, - { - "event_type": "users.messages.inappmessage.Click", - "id": "a1234567-89ab-cdef-0123-456789abcdef", - "time": 1477502783, - "user": { - "user_id": "0123456789abcdef01234567", - "external_user_id": "user_id", - "device_id": "fedcba87-6543-210f-edc-ba9876543210", - "timezone": "America/Chicago" - }, - "properties": { - "app_id": "01234567-89ab-cdef-0123-456789abcdef", - "canvas_id": "11234567-89ab-cdef-0123-456789abcdef", - "canvas_name": "My Cool Campaign", - "canvas_variation_id": "31234567-89ab-cdef-0123-456789abcdef", - "canvas_step_id": "41234567-89ab-cdef-0123-456789abcdef", - "platform": "android", - "os_version": "Android (N)", - "device_model": "Nexus 5X", - "button_id": "0", - "send_id": "f123456789abcdef01234567" - } - }, - { - "event_type": "users.messages.pushnotification.Send", - "id": "a1234567-89ab-cdef-0123-456789abcdef", - "time": 1477502783, - "user": { - "user_id": "0123456789abcdef01234567", - "external_user_id": "user_id", - "device_id": "fedcba87-6543-210f-edc-ba9876543210", - "timezone": "America/Chicago" - }, - "properties": { - "app_id": "01234567-89ab-cdef-0123-456789abcdef", - "platform": "ios", - "canvas_id": "11234567-89ab-cdef-0123-456789abcdef", - "canvas_name": "My Cool Campaign", - "canvas_variation_id": "31234567-89ab-cdef-0123-456789abcdef", - "canvas_step_id": "41234567-89ab-cdef-0123-456789abcdef", - "send_id": "f123456789abcdef01234567", - "dispatch_id": "01234567-89ab-cdef-0123-456789abcdef" - } - }, - { - "event_type": "users.messages.email.Open", - "id": "a1234567-89ab-cdef-0123-456789abcdef", - "time": 1477502783, - "user": { - "user_id": "0123456789abcdef01234567", - "external_user_id": "user_id", - "timezone": "America/Chicago" - }, - "properties": { - "canvas_id": "11234567-89ab-cdef-0123-456789abcdef", - "canvas_name": "My Cool Canvas", - "canvas_variation_id": "31234567-89ab-cdef-0123-456789abcdef", - "canvas_step_id": "41234567-89ab-cdef-0123-456789abcdef", - "dispatch_id": "12345qwert", - "email_address": "test@test.com", - "send_id": "f123456789abcdef01234567", - "user_agent": "Mozilla/5.0(Macintosh;IntelMacOSX10_13_5)AppleWebKit/537.36(KHTML,likeGecko)Chrome/67.0.3396.99Safari/537.36" - } - }, - { - "event_type": "users.messages.sms.Delivery", - "id": "a1234567-89ab-cdef-0123-456789abcdef", - "time": 1477502783, - "user": { - "user_id": "0123456789abcdef01234567", - "external_user_id": "user_id", - "timezone": "America/Chicago" - }, - "properties": { - "canvas_id": "11234567-89ab-cdef-0123-456789abcdef", - "canvas_name": "MyCoolCanvas", - "canvas_variation_id": "31234567-89ab-cdef-0123-456789abcdef", - "canvas_step_id": "41234567-89ab-cdef-0123-456789abcdef", - "dispatch_id": "12345qwert", - "to_phone_number": "+16462345678", - "subscription_group_id": "41234567-89ab-cdef-0123-456789abcdef", - "from_phone_number": "+12123470922" - } - }, - { - "event_type": "users.behaviors.CustomEvent", - "id": "a1234567-89ab-cdef-0123-456789abcdef", - "time": 1477502783, - "user": { - "user_id": "0123456789abcdef01234567", - "external_user_id": "user_id", - "device_id": "fedcba87-6543-210f-edc-ba9876543210", - "timezone": "America/Chicago" - }, - "properties": { - "app_id": "01234567-89ab-cdef-0123-456789abcdef", - "platform": "ios", - "os_version": "iOS10.3.1", - "device_model": "iPhone7Plus", - "name": "customeventname", - "ad_id": "01234567-89ab-cdef-0123-456789abcdef", - "ad_id_type": "roku_ad_id", - "ad_tracking_enabled": true, - "custom_properties": { - "stringpropertyname": "a", - "numberpropertyname": 1, - "listpropertyname": ["a", "b"] - } - } - }, - { - "event_type": "users.behaviors.Purchase", - "id": "a1234567-89ab-cdef-0123-456789abcdef", - "time": 1477502783, - "user": { - "user_id": "0123456789abcdef01234567", - "external_user_id": "user_id", - "device_id": "fedcba87-6543-210f-edc-ba9876543210", - "timezone": "America/Chicago" - }, - "properties": { - "app_id": "01234567-89ab-cdef-0123-456789abcdef", - "platform": "ios", - "os_version": "iOS10.3.1", - "device_model": "iPhone7Plus", - "product_id": "1234", - "price": 12.34, - "currency": "AED", - "ad_id": "01234567-89ab-cdef-0123-456789abcdef", - "ad_id_type": "roku_ad_id", - "ad_tracking_enabled": true, - "purchase_properties": { - "stringpropertyname": "a", - "numberpropertyname": 1, - "listpropertyname": ["a", "b"] - } - } - }, - { - "event_type": "users.behaviors.app.SessionStart", - "id": "a1234567-89ab-cdef-0123-456789abcdef", - "time": 1477502783, - "user": { - "user_id": "0123456789abcdef01234567", - "external_user_id": "user_id", - "device_id": "fedcba87-6543-210f-edc-ba9876543210" - }, - "properties": { - "app_id": "01234567-89ab-cdef-0123-456789abcdef", - "platform": "ios", - "os_version": "iOS10.3.1", - "device_model": "iPhone7Plus", - "session_id": "b1234567-89ab-cdef-0123-456789abcdef" - } - } - ] - } - ] -] diff --git a/test/__tests__/data/braze_source_output.json b/test/__tests__/data/braze_source_output.json deleted file mode 100644 index b4e61885fe9..00000000000 --- a/test/__tests__/data/braze_source_output.json +++ /dev/null @@ -1,288 +0,0 @@ -[ - [ - { - "context": { - "library": { "name": "unknown", "version": "unknown" }, - "integration": { "name": "Braze" }, - "device": { - "id": "fedcba87-6543-210f-edc-ba9876543210", - "model": "Nexus 5X" - }, - "timezone": "America/Chicago", - "os": { "version": "Android (N)", "name": "android" } - }, - "integrations": { "Braze": false }, - "type": "track", - "event": "users.messages.inappmessage.Click", - "messageId": "a1234567-89ab-cdef-0123-456789abcdef", - "anonymousId": "0123456789abcdef01234567", - "userId": "user_id", - "properties": { - "app_id": "01234567-89ab-cdef-0123-456789abcdef", - "campaign_id": "11234567-89ab-cdef-0123-456789abcdef", - "campaign_name": "Test Campaign", - "message_variation_id": "c1234567-89ab-cdef-0123-456789abcdef", - "button_id": "0", - "send_id": "f123456789abcdef01234567" - }, - "timestamp": "2020-12-14T23:32:32.000Z" - }, - { - "context": { - "library": { "name": "unknown", "version": "unknown" }, - "integration": { "name": "Braze" }, - "device": { "id": "fedcba87-6543-210f-edc-ba9876543210" }, - "timezone": "America/Chicago", - "os": { "name": "ios" } - }, - "integrations": { "Braze": false }, - "type": "track", - "event": "users.messages.pushnotification.Send", - "messageId": "a1234567-89ab-cdef-0123-456789abcdef", - "anonymousId": "0123456789abcdef01234567", - "userId": "user_id", - "properties": { - "app_id": "01234567-89ab-cdef-0123-456789abcdef", - "campaign_id": "11234567-89ab-cdef-0123-456789abcdef", - "campaign_name": "Test Campaign", - "message_variation_id": "c1234567-89ab-cdef-0123-456789abcdef", - "send_id": "f123456789abcdef01234567", - "dispatch_id": "01234567-89ab-cdef-0123-456789abcdef" - }, - "timestamp": "2016-10-26T17:26:23.000Z" - }, - { - "context": { - "library": { "name": "unknown", "version": "unknown" }, - "integration": { "name": "Braze" }, - "timezone": "America/Chicago", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36" - }, - "integrations": { "Braze": false }, - "type": "track", - "event": "users.messages.email.Open", - "messageId": "a1234567-89ab-cdef-0123-456789abcdef", - "anonymousId": "0123456789abcdef01234567", - "userId": "user_id", - "traits": { "email": "test@test.com" }, - "properties": { - "campaign_id": "11234567-89ab-cdef-0123-456789abcdef", - "campaign_name": "Test Campaign", - "dispatch_id": "12345qwert", - "message_variation_id": "c1234567-89ab-cdef-0123-456789abcdef", - "send_id": "f123456789abcdef01234567" - }, - "timestamp": "2016-10-26T17:26:23.000Z" - }, - { - "context": { - "library": { "name": "unknown", "version": "unknown" }, - "timezone": "America/Chicago", - "integration": { "name": "Braze" } - }, - "integrations": { "Braze": false }, - "type": "track", - "event": "users.messages.sms.Delivery", - "messageId": "a1234567-89ab-cdef-0123-456789abcdef", - "anonymousId": "0123456789abcdef01234567", - "userId": "user_id", - "traits": { "phone": "+16462345678" }, - "properties": { - "campaign_id": "11234567-89ab-cdef-0123-456789abcdef", - "campaign_name": "Test Campaign", - "dispatch_id": "12345qwert", - "message_variation_id": "c1234567-89ab-cdef-0123-456789abcdef", - "subscription_group_id": "41234567-89ab-cdef-0123-456789abcdef", - "from_phone_number": "+12123470922" - }, - "timestamp": "2016-10-26T17:26:23.000Z" - }, - { - "context": { - "library": { "name": "unknown", "version": "unknown" }, - "integration": { "name": "Braze" }, - "device": { - "id": "fedcba87-6543-210f-edc-ba9876543210", - "model": "Nexus 5X" - }, - "timezone": "America/Chicago", - "os": { "version": "Android (N)", "name": "android" } - }, - "integrations": { "Braze": false }, - "type": "track", - "event": "users.messages.inappmessage.Click", - "messageId": "a1234567-89ab-cdef-0123-456789abcdef", - "anonymousId": "0123456789abcdef01234567", - "userId": "user_id", - "properties": { - "app_id": "01234567-89ab-cdef-0123-456789abcdef", - "canvas_id": "11234567-89ab-cdef-0123-456789abcdef", - "canvas_name": "My Cool Campaign", - "canvas_variation_id": "31234567-89ab-cdef-0123-456789abcdef", - "canvas_step_id": "41234567-89ab-cdef-0123-456789abcdef", - "button_id": "0", - "send_id": "f123456789abcdef01234567" - }, - "timestamp": "2016-10-26T17:26:23.000Z" - }, - { - "context": { - "library": { "name": "unknown", "version": "unknown" }, - "integration": { "name": "Braze" }, - "device": { "id": "fedcba87-6543-210f-edc-ba9876543210" }, - "timezone": "America/Chicago", - "os": { "name": "ios" } - }, - "integrations": { "Braze": false }, - "type": "track", - "event": "users.messages.pushnotification.Send", - "messageId": "a1234567-89ab-cdef-0123-456789abcdef", - "anonymousId": "0123456789abcdef01234567", - "userId": "user_id", - "properties": { - "app_id": "01234567-89ab-cdef-0123-456789abcdef", - "canvas_id": "11234567-89ab-cdef-0123-456789abcdef", - "canvas_name": "My Cool Campaign", - "canvas_variation_id": "31234567-89ab-cdef-0123-456789abcdef", - "canvas_step_id": "41234567-89ab-cdef-0123-456789abcdef", - "send_id": "f123456789abcdef01234567", - "dispatch_id": "01234567-89ab-cdef-0123-456789abcdef" - }, - "timestamp": "2016-10-26T17:26:23.000Z" - }, - { - "context": { - "library": { "name": "unknown", "version": "unknown" }, - "integration": { "name": "Braze" }, - "timezone": "America/Chicago", - "userAgent": "Mozilla/5.0(Macintosh;IntelMacOSX10_13_5)AppleWebKit/537.36(KHTML,likeGecko)Chrome/67.0.3396.99Safari/537.36" - }, - "integrations": { "Braze": false }, - "type": "track", - "event": "users.messages.email.Open", - "messageId": "a1234567-89ab-cdef-0123-456789abcdef", - "anonymousId": "0123456789abcdef01234567", - "userId": "user_id", - "traits": { "email": "test@test.com" }, - "properties": { - "canvas_id": "11234567-89ab-cdef-0123-456789abcdef", - "canvas_name": "My Cool Canvas", - "canvas_variation_id": "31234567-89ab-cdef-0123-456789abcdef", - "canvas_step_id": "41234567-89ab-cdef-0123-456789abcdef", - "dispatch_id": "12345qwert", - "send_id": "f123456789abcdef01234567" - }, - "timestamp": "2016-10-26T17:26:23.000Z" - }, - { - "context": { - "library": { "name": "unknown", "version": "unknown" }, - "timezone": "America/Chicago", - "integration": { "name": "Braze" } - }, - "integrations": { "Braze": false }, - "type": "track", - "event": "users.messages.sms.Delivery", - "messageId": "a1234567-89ab-cdef-0123-456789abcdef", - "anonymousId": "0123456789abcdef01234567", - "userId": "user_id", - "traits": { "phone": "+16462345678" }, - "properties": { - "canvas_id": "11234567-89ab-cdef-0123-456789abcdef", - "canvas_name": "MyCoolCanvas", - "canvas_variation_id": "31234567-89ab-cdef-0123-456789abcdef", - "canvas_step_id": "41234567-89ab-cdef-0123-456789abcdef", - "dispatch_id": "12345qwert", - "subscription_group_id": "41234567-89ab-cdef-0123-456789abcdef", - "from_phone_number": "+12123470922" - }, - "timestamp": "2016-10-26T17:26:23.000Z" - }, - { - "context": { - "library": { "name": "unknown", "version": "unknown" }, - "integration": { "name": "Braze" }, - "device": { - "id": "fedcba87-6543-210f-edc-ba9876543210", - "model": "iPhone7Plus", - "advertisingId": "01234567-89ab-cdef-0123-456789abcdef", - "adTrackingEnabled": true - }, - "timezone": "America/Chicago", - "os": { "version": "iOS10.3.1", "name": "ios" } - }, - "integrations": { "Braze": false }, - "type": "track", - "event": "users.behaviors.CustomEvent", - "messageId": "a1234567-89ab-cdef-0123-456789abcdef", - "anonymousId": "0123456789abcdef01234567", - "userId": "user_id", - "properties": { - "app_id": "01234567-89ab-cdef-0123-456789abcdef", - "name": "customeventname", - "ad_id_type": "roku_ad_id", - "custom_properties": { - "stringpropertyname": "a", - "numberpropertyname": 1, - "listpropertyname": ["a", "b"] - } - }, - "timestamp": "2016-10-26T17:26:23.000Z" - }, - { - "context": { - "library": { "name": "unknown", "version": "unknown" }, - "integration": { "name": "Braze" }, - "device": { - "id": "fedcba87-6543-210f-edc-ba9876543210", - "model": "iPhone7Plus", - "advertisingId": "01234567-89ab-cdef-0123-456789abcdef", - "adTrackingEnabled": true - }, - "timezone": "America/Chicago", - "os": { "version": "iOS10.3.1", "name": "ios" } - }, - "integrations": { "Braze": false }, - "type": "track", - "event": "users.behaviors.Purchase", - "messageId": "a1234567-89ab-cdef-0123-456789abcdef", - "anonymousId": "0123456789abcdef01234567", - "userId": "user_id", - "properties": { - "app_id": "01234567-89ab-cdef-0123-456789abcdef", - "product_id": "1234", - "price": 12.34, - "currency": "AED", - "ad_id_type": "roku_ad_id", - "purchase_properties": { - "stringpropertyname": "a", - "numberpropertyname": 1, - "listpropertyname": ["a", "b"] - } - }, - "timestamp": "2016-10-26T17:26:23.000Z" - }, - { - "context": { - "library": { "name": "unknown", "version": "unknown" }, - "integration": { "name": "Braze" }, - "device": { - "id": "fedcba87-6543-210f-edc-ba9876543210", - "model": "iPhone7Plus" - }, - "os": { "version": "iOS10.3.1", "name": "ios" } - }, - "integrations": { "Braze": false }, - "type": "track", - "event": "users.behaviors.app.SessionStart", - "messageId": "a1234567-89ab-cdef-0123-456789abcdef", - "anonymousId": "0123456789abcdef01234567", - "userId": "user_id", - "properties": { - "app_id": "01234567-89ab-cdef-0123-456789abcdef", - "session_id": "b1234567-89ab-cdef-0123-456789abcdef" - }, - "timestamp": "2016-10-26T17:26:23.000Z" - } - ] -] diff --git a/test/integrations/sources/braze/common.ts b/test/integrations/sources/braze/common.ts new file mode 100644 index 00000000000..a8271e3e9c9 --- /dev/null +++ b/test/integrations/sources/braze/common.ts @@ -0,0 +1,30 @@ +export const commonSourceDefinition = { + ID: '1lh9senY3vrBg4JQXswWzyYBTOO', + Name: 'Braze', + Category: 'webhook', + Type: 'cloud', +}; + +export const DgSourceTrackingPlanConfig = { + sourceId: '', + version: 0, + config: null, + mergedConfig: null, + deleted: false, + trackingPlan: { + id: '', + version: 0, + }, +}; + +export const commonSourceConfigProperties = { + Enabled: true, + WorkspaceID: '2hSS1hZ8kuCpUZAAYsQucAFdob9', + Destinations: null, + WriteKey: '2hgvYykpvMaE5Eg47Au8RWC9Yza', + DgSourceTrackingPlanConfig: DgSourceTrackingPlanConfig, + Transient: false, + GeoEnrichment: { + Enabled: false, + }, +}; diff --git a/test/integrations/sources/braze/data.ts b/test/integrations/sources/braze/data.ts new file mode 100644 index 00000000000..e140bbc030e --- /dev/null +++ b/test/integrations/sources/braze/data.ts @@ -0,0 +1,1252 @@ +import { commonSourceConfigProperties, commonSourceDefinition } from './common'; + +export const data = [ + { + name: 'braze', + description: 'event mapping done in UI', + module: 'source', + version: 'v1', + input: { + request: { + body: [ + { + event: { + events: [ + { + event_type: 'users.messages.inappmessage.Click', + properties: { + device_model: 'samsung', + }, + user: { + user_id: 'user_id', + external_user_id: 'externalUserId', + }, + }, + ], + }, + source: { + ID: '2hgvYyU5TYaFvVzBge6tF2UKoeG', + OriginalID: '', + Name: 'Braze source', + SourceDefinition: commonSourceDefinition, + Config: { + customMapping: [ + { + from: 'users.messages.inappmessage.Click', + to: 'In-App Message Clicked', + }, + ], + }, + ...commonSourceConfigProperties, + }, + }, + ], + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + batch: [ + { + anonymousId: 'user_id', + context: { + device: { + model: 'samsung', + }, + integration: { + name: 'Braze', + }, + library: { + name: 'unknown', + version: 'unknown', + }, + }, + event: 'In-App Message Clicked', + integrations: { + Braze: false, + }, + type: 'track', + userId: 'externalUserId', + }, + ], + }, + }, + ], + }, + }, + }, + { + name: 'braze', + description: 'The event is not mapped in the UI', + module: 'source', + version: 'v1', + input: { + request: { + body: [ + { + event: { + events: [ + { + event_type: 'users.messages.inappmessage.Click', + properties: { + device_model: 'samsung', + }, + user: { + user_id: 'user_id', + external_user_id: 'externalUserId', + }, + }, + ], + }, + source: { + ID: '2hgvYyU5TYaFvVzBge6tF2UKoeG', + OriginalID: '', + Name: 'Braze source', + SourceDefinition: commonSourceDefinition, + Config: { + customMapping: [ + { + from: 'randomEvent', + to: 'In-App Message Clicked', + }, + ], + }, + ...commonSourceConfigProperties, + }, + }, + ], + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + batch: [ + { + anonymousId: 'user_id', + context: { + device: { + model: 'samsung', + }, + integration: { + name: 'Braze', + }, + library: { + name: 'unknown', + version: 'unknown', + }, + }, + event: 'users.messages.inappmessage.Click', + integrations: { + Braze: false, + }, + type: 'track', + userId: 'externalUserId', + }, + ], + }, + }, + ], + }, + }, + }, + { + name: 'braze', + description: 'users.messages.inappmessage.Click event', + module: 'source', + version: 'v1', + input: { + request: { + body: [ + { + event: { + events: [ + { + event_type: 'users.messages.inappmessage.Click', + id: 'a1234567-89ab-cdef-0123-456789abcdef', + time: 1607988752, + user: { + user_id: '0123456789abcdef01234567', + external_user_id: 'user_id', + device_id: 'fedcba87-6543-210f-edc-ba9876543210', + timezone: 'America/Chicago', + }, + properties: { + app_id: '01234567-89ab-cdef-0123-456789abcdef', + campaign_id: '11234567-89ab-cdef-0123-456789abcdef', + campaign_name: 'Test Campaign', + message_variation_id: 'c1234567-89ab-cdef-0123-456789abcdef', + platform: 'android', + os_version: 'Android (N)', + device_model: 'Nexus 5X', + button_id: '0', + send_id: 'f123456789abcdef01234567', + }, + }, + ], + }, + source: { + ID: '2hgvYyU5TYaFvVzBge6tF2UKoeG', + OriginalID: '', + Name: 'Braze source', + SourceDefinition: commonSourceDefinition, + Config: { + customMapping: [ + { + from: 'randomEvent', + to: 'In-App Message Clicked', + }, + ], + }, + ...commonSourceConfigProperties, + }, + }, + ], + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + batch: [ + { + context: { + library: { name: 'unknown', version: 'unknown' }, + integration: { name: 'Braze' }, + device: { + id: 'fedcba87-6543-210f-edc-ba9876543210', + model: 'Nexus 5X', + }, + timezone: 'America/Chicago', + os: { version: 'Android (N)', name: 'android' }, + }, + integrations: { Braze: false }, + type: 'track', + event: 'users.messages.inappmessage.Click', + messageId: 'a1234567-89ab-cdef-0123-456789abcdef', + anonymousId: '0123456789abcdef01234567', + userId: 'user_id', + properties: { + app_id: '01234567-89ab-cdef-0123-456789abcdef', + campaign_id: '11234567-89ab-cdef-0123-456789abcdef', + campaign_name: 'Test Campaign', + message_variation_id: 'c1234567-89ab-cdef-0123-456789abcdef', + button_id: '0', + send_id: 'f123456789abcdef01234567', + }, + timestamp: '2020-12-14T23:32:32.000Z', + }, + ], + }, + }, + ], + }, + }, + }, + { + name: 'braze', + description: 'users.messages.pushnotification.Send event', + module: 'source', + version: 'v1', + input: { + request: { + body: [ + { + event: { + events: [ + { + event_type: 'users.messages.pushnotification.Send', + id: 'a1234567-89ab-cdef-0123-456789abcdef', + time: 1477502783, + user: { + user_id: '0123456789abcdef01234567', + external_user_id: 'user_id', + device_id: 'fedcba87-6543-210f-edc-ba9876543210', + timezone: 'America/Chicago', + }, + properties: { + app_id: '01234567-89ab-cdef-0123-456789abcdef', + platform: 'ios', + campaign_id: '11234567-89ab-cdef-0123-456789abcdef', + campaign_name: 'Test Campaign', + message_variation_id: 'c1234567-89ab-cdef-0123-456789abcdef', + send_id: 'f123456789abcdef01234567', + dispatch_id: '01234567-89ab-cdef-0123-456789abcdef', + }, + }, + ], + }, + source: { + ID: '2hgvYyU5TYaFvVzBge6tF2UKoeG', + OriginalID: '', + Name: 'Braze source', + SourceDefinition: commonSourceDefinition, + Config: { + customMapping: [ + { + from: 'randomEvent', + to: 'In-App Message Clicked', + }, + ], + }, + ...commonSourceConfigProperties, + }, + }, + ], + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + batch: [ + { + context: { + library: { name: 'unknown', version: 'unknown' }, + integration: { name: 'Braze' }, + device: { id: 'fedcba87-6543-210f-edc-ba9876543210' }, + timezone: 'America/Chicago', + os: { name: 'ios' }, + }, + integrations: { Braze: false }, + type: 'track', + event: 'users.messages.pushnotification.Send', + messageId: 'a1234567-89ab-cdef-0123-456789abcdef', + anonymousId: '0123456789abcdef01234567', + userId: 'user_id', + properties: { + app_id: '01234567-89ab-cdef-0123-456789abcdef', + campaign_id: '11234567-89ab-cdef-0123-456789abcdef', + campaign_name: 'Test Campaign', + message_variation_id: 'c1234567-89ab-cdef-0123-456789abcdef', + send_id: 'f123456789abcdef01234567', + dispatch_id: '01234567-89ab-cdef-0123-456789abcdef', + }, + timestamp: '2016-10-26T17:26:23.000Z', + }, + ], + }, + }, + ], + }, + }, + }, + { + name: 'braze', + description: 'users.messages.email.Open event', + module: 'source', + version: 'v1', + input: { + request: { + body: [ + { + event: { + events: [ + { + event_type: 'users.messages.email.Open', + id: 'a1234567-89ab-cdef-0123-456789abcdef', + time: 1477502783, + user: { + user_id: '0123456789abcdef01234567', + external_user_id: 'user_id', + timezone: 'America/Chicago', + }, + properties: { + campaign_id: '11234567-89ab-cdef-0123-456789abcdef', + campaign_name: 'Test Campaign', + dispatch_id: '12345qwert', + message_variation_id: 'c1234567-89ab-cdef-0123-456789abcdef', + email_address: 'test@test.com', + send_id: 'f123456789abcdef01234567', + user_agent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36', + }, + }, + ], + }, + source: { + ID: '2hgvYyU5TYaFvVzBge6tF2UKoeG', + OriginalID: '', + Name: 'Braze source', + SourceDefinition: commonSourceDefinition, + Config: { + customMapping: [ + { + from: 'randomEvent', + to: 'In-App Message Clicked', + }, + ], + }, + ...commonSourceConfigProperties, + }, + }, + ], + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + batch: [ + { + context: { + library: { name: 'unknown', version: 'unknown' }, + integration: { name: 'Braze' }, + timezone: 'America/Chicago', + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36', + }, + integrations: { Braze: false }, + type: 'track', + event: 'users.messages.email.Open', + messageId: 'a1234567-89ab-cdef-0123-456789abcdef', + anonymousId: '0123456789abcdef01234567', + userId: 'user_id', + traits: { email: 'test@test.com' }, + properties: { + campaign_id: '11234567-89ab-cdef-0123-456789abcdef', + campaign_name: 'Test Campaign', + dispatch_id: '12345qwert', + message_variation_id: 'c1234567-89ab-cdef-0123-456789abcdef', + send_id: 'f123456789abcdef01234567', + }, + timestamp: '2016-10-26T17:26:23.000Z', + }, + ], + }, + }, + ], + }, + }, + }, + { + name: 'braze', + description: 'users.messages.sms.Delivery send', + module: 'source', + version: 'v1', + input: { + request: { + body: [ + { + event: { + events: [ + { + event_type: 'users.messages.sms.Delivery', + id: 'a1234567-89ab-cdef-0123-456789abcdef', + time: 1477502783, + user: { + user_id: '0123456789abcdef01234567', + external_user_id: 'user_id', + timezone: 'America/Chicago', + }, + properties: { + campaign_id: '11234567-89ab-cdef-0123-456789abcdef', + campaign_name: 'Test Campaign', + dispatch_id: '12345qwert', + message_variation_id: 'c1234567-89ab-cdef-0123-456789abcdef', + to_phone_number: '+16462345678', + subscription_group_id: '41234567-89ab-cdef-0123-456789abcdef', + from_phone_number: '+12123470922', + }, + }, + ], + }, + source: { + ID: '2hgvYyU5TYaFvVzBge6tF2UKoeG', + OriginalID: '', + Name: 'Braze source', + SourceDefinition: commonSourceDefinition, + Config: { + customMapping: [ + { + from: 'randomEvent', + to: 'In-App Message Clicked', + }, + ], + }, + ...commonSourceConfigProperties, + }, + }, + ], + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + batch: [ + { + context: { + library: { name: 'unknown', version: 'unknown' }, + timezone: 'America/Chicago', + integration: { name: 'Braze' }, + }, + integrations: { Braze: false }, + type: 'track', + event: 'users.messages.sms.Delivery', + messageId: 'a1234567-89ab-cdef-0123-456789abcdef', + anonymousId: '0123456789abcdef01234567', + userId: 'user_id', + traits: { phone: '+16462345678' }, + properties: { + campaign_id: '11234567-89ab-cdef-0123-456789abcdef', + campaign_name: 'Test Campaign', + dispatch_id: '12345qwert', + message_variation_id: 'c1234567-89ab-cdef-0123-456789abcdef', + subscription_group_id: '41234567-89ab-cdef-0123-456789abcdef', + from_phone_number: '+12123470922', + }, + timestamp: '2016-10-26T17:26:23.000Z', + }, + ], + }, + }, + ], + }, + }, + }, + { + name: 'braze', + description: 'users.messages.inappmessage.Click event', + module: 'source', + version: 'v1', + input: { + request: { + body: [ + { + event: { + events: [ + { + event_type: 'users.messages.inappmessage.Click', + id: 'a1234567-89ab-cdef-0123-456789abcdef', + time: 1477502783, + user: { + user_id: '0123456789abcdef01234567', + external_user_id: 'user_id', + device_id: 'fedcba87-6543-210f-edc-ba9876543210', + timezone: 'America/Chicago', + }, + properties: { + app_id: '01234567-89ab-cdef-0123-456789abcdef', + canvas_id: '11234567-89ab-cdef-0123-456789abcdef', + canvas_name: 'My Cool Campaign', + canvas_variation_id: '31234567-89ab-cdef-0123-456789abcdef', + canvas_step_id: '41234567-89ab-cdef-0123-456789abcdef', + platform: 'android', + os_version: 'Android (N)', + device_model: 'Nexus 5X', + button_id: '0', + send_id: 'f123456789abcdef01234567', + }, + }, + ], + }, + source: { + ID: '2hgvYyU5TYaFvVzBge6tF2UKoeG', + OriginalID: '', + Name: 'Braze source', + SourceDefinition: commonSourceDefinition, + Config: { + customMapping: [ + { + from: 'randomEvent', + to: 'In-App Message Clicked', + }, + ], + }, + ...commonSourceConfigProperties, + }, + }, + ], + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + batch: [ + { + context: { + library: { name: 'unknown', version: 'unknown' }, + integration: { name: 'Braze' }, + device: { + id: 'fedcba87-6543-210f-edc-ba9876543210', + model: 'Nexus 5X', + }, + timezone: 'America/Chicago', + os: { version: 'Android (N)', name: 'android' }, + }, + integrations: { Braze: false }, + type: 'track', + event: 'users.messages.inappmessage.Click', + messageId: 'a1234567-89ab-cdef-0123-456789abcdef', + anonymousId: '0123456789abcdef01234567', + userId: 'user_id', + properties: { + app_id: '01234567-89ab-cdef-0123-456789abcdef', + canvas_id: '11234567-89ab-cdef-0123-456789abcdef', + canvas_name: 'My Cool Campaign', + canvas_variation_id: '31234567-89ab-cdef-0123-456789abcdef', + canvas_step_id: '41234567-89ab-cdef-0123-456789abcdef', + button_id: '0', + send_id: 'f123456789abcdef01234567', + }, + timestamp: '2016-10-26T17:26:23.000Z', + }, + ], + }, + }, + ], + }, + }, + }, + { + name: 'braze', + description: 'users.messages.pushnotification.Send event', + module: 'source', + version: 'v1', + input: { + request: { + body: [ + { + event: { + events: [ + { + event_type: 'users.messages.pushnotification.Send', + id: 'a1234567-89ab-cdef-0123-456789abcdef', + time: 1477502783, + user: { + user_id: '0123456789abcdef01234567', + external_user_id: 'user_id', + device_id: 'fedcba87-6543-210f-edc-ba9876543210', + timezone: 'America/Chicago', + }, + properties: { + app_id: '01234567-89ab-cdef-0123-456789abcdef', + platform: 'ios', + canvas_id: '11234567-89ab-cdef-0123-456789abcdef', + canvas_name: 'My Cool Campaign', + canvas_variation_id: '31234567-89ab-cdef-0123-456789abcdef', + canvas_step_id: '41234567-89ab-cdef-0123-456789abcdef', + send_id: 'f123456789abcdef01234567', + dispatch_id: '01234567-89ab-cdef-0123-456789abcdef', + }, + }, + ], + }, + source: { + ID: '2hgvYyU5TYaFvVzBge6tF2UKoeG', + OriginalID: '', + Name: 'Braze source', + SourceDefinition: commonSourceDefinition, + Config: { + customMapping: [ + { + from: 'randomEvent', + to: 'In-App Message Clicked', + }, + ], + }, + ...commonSourceConfigProperties, + }, + }, + ], + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + batch: [ + { + context: { + library: { name: 'unknown', version: 'unknown' }, + integration: { name: 'Braze' }, + device: { id: 'fedcba87-6543-210f-edc-ba9876543210' }, + timezone: 'America/Chicago', + os: { name: 'ios' }, + }, + integrations: { Braze: false }, + type: 'track', + event: 'users.messages.pushnotification.Send', + messageId: 'a1234567-89ab-cdef-0123-456789abcdef', + anonymousId: '0123456789abcdef01234567', + userId: 'user_id', + properties: { + app_id: '01234567-89ab-cdef-0123-456789abcdef', + canvas_id: '11234567-89ab-cdef-0123-456789abcdef', + canvas_name: 'My Cool Campaign', + canvas_variation_id: '31234567-89ab-cdef-0123-456789abcdef', + canvas_step_id: '41234567-89ab-cdef-0123-456789abcdef', + send_id: 'f123456789abcdef01234567', + dispatch_id: '01234567-89ab-cdef-0123-456789abcdef', + }, + timestamp: '2016-10-26T17:26:23.000Z', + }, + ], + }, + }, + ], + }, + }, + }, + { + name: 'braze', + description: 'users.messages.email.Open event', + module: 'source', + version: 'v1', + input: { + request: { + body: [ + { + event: { + events: [ + { + event_type: 'users.messages.email.Open', + id: 'a1234567-89ab-cdef-0123-456789abcdef', + time: 1477502783, + user: { + user_id: '0123456789abcdef01234567', + external_user_id: 'user_id', + timezone: 'America/Chicago', + }, + properties: { + canvas_id: '11234567-89ab-cdef-0123-456789abcdef', + canvas_name: 'My Cool Canvas', + canvas_variation_id: '31234567-89ab-cdef-0123-456789abcdef', + canvas_step_id: '41234567-89ab-cdef-0123-456789abcdef', + dispatch_id: '12345qwert', + email_address: 'test@test.com', + send_id: 'f123456789abcdef01234567', + user_agent: + 'Mozilla/5.0(Macintosh;IntelMacOSX10_13_5)AppleWebKit/537.36(KHTML,likeGecko)Chrome/67.0.3396.99Safari/537.36', + }, + }, + ], + }, + source: { + ID: '2hgvYyU5TYaFvVzBge6tF2UKoeG', + OriginalID: '', + Name: 'Braze source', + SourceDefinition: commonSourceDefinition, + Config: { + customMapping: [ + { + from: 'randomEvent', + to: 'In-App Message Clicked', + }, + ], + }, + ...commonSourceConfigProperties, + }, + }, + ], + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + batch: [ + { + context: { + library: { name: 'unknown', version: 'unknown' }, + integration: { name: 'Braze' }, + timezone: 'America/Chicago', + userAgent: + 'Mozilla/5.0(Macintosh;IntelMacOSX10_13_5)AppleWebKit/537.36(KHTML,likeGecko)Chrome/67.0.3396.99Safari/537.36', + }, + integrations: { Braze: false }, + type: 'track', + event: 'users.messages.email.Open', + messageId: 'a1234567-89ab-cdef-0123-456789abcdef', + anonymousId: '0123456789abcdef01234567', + userId: 'user_id', + traits: { email: 'test@test.com' }, + properties: { + canvas_id: '11234567-89ab-cdef-0123-456789abcdef', + canvas_name: 'My Cool Canvas', + canvas_variation_id: '31234567-89ab-cdef-0123-456789abcdef', + canvas_step_id: '41234567-89ab-cdef-0123-456789abcdef', + dispatch_id: '12345qwert', + send_id: 'f123456789abcdef01234567', + }, + timestamp: '2016-10-26T17:26:23.000Z', + }, + ], + }, + }, + ], + }, + }, + }, + { + name: 'braze', + description: 'users.messages.sms.Delivery event', + module: 'source', + version: 'v1', + input: { + request: { + body: [ + { + event: { + events: [ + { + event_type: 'users.messages.sms.Delivery', + id: 'a1234567-89ab-cdef-0123-456789abcdef', + time: 1477502783, + user: { + user_id: '0123456789abcdef01234567', + external_user_id: 'user_id', + timezone: 'America/Chicago', + }, + properties: { + canvas_id: '11234567-89ab-cdef-0123-456789abcdef', + canvas_name: 'MyCoolCanvas', + canvas_variation_id: '31234567-89ab-cdef-0123-456789abcdef', + canvas_step_id: '41234567-89ab-cdef-0123-456789abcdef', + dispatch_id: '12345qwert', + to_phone_number: '+16462345678', + subscription_group_id: '41234567-89ab-cdef-0123-456789abcdef', + from_phone_number: '+12123470922', + }, + }, + ], + }, + source: { + ID: '2hgvYyU5TYaFvVzBge6tF2UKoeG', + OriginalID: '', + Name: 'Braze source', + SourceDefinition: commonSourceDefinition, + Config: { + customMapping: [ + { + from: 'randomEvent', + to: 'In-App Message Clicked', + }, + ], + }, + ...commonSourceConfigProperties, + }, + }, + ], + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + batch: [ + { + context: { + library: { name: 'unknown', version: 'unknown' }, + timezone: 'America/Chicago', + integration: { name: 'Braze' }, + }, + integrations: { Braze: false }, + type: 'track', + event: 'users.messages.sms.Delivery', + messageId: 'a1234567-89ab-cdef-0123-456789abcdef', + anonymousId: '0123456789abcdef01234567', + userId: 'user_id', + traits: { phone: '+16462345678' }, + properties: { + canvas_id: '11234567-89ab-cdef-0123-456789abcdef', + canvas_name: 'MyCoolCanvas', + canvas_variation_id: '31234567-89ab-cdef-0123-456789abcdef', + canvas_step_id: '41234567-89ab-cdef-0123-456789abcdef', + dispatch_id: '12345qwert', + subscription_group_id: '41234567-89ab-cdef-0123-456789abcdef', + from_phone_number: '+12123470922', + }, + timestamp: '2016-10-26T17:26:23.000Z', + }, + ], + }, + }, + ], + }, + }, + }, + { + name: 'braze', + description: 'users.behaviors.CustomEvent any custom event', + module: 'source', + version: 'v1', + input: { + request: { + body: [ + { + event: { + events: [ + { + event_type: 'users.behaviors.CustomEvent', + id: 'a1234567-89ab-cdef-0123-456789abcdef', + time: 1477502783, + user: { + user_id: '0123456789abcdef01234567', + external_user_id: 'user_id', + device_id: 'fedcba87-6543-210f-edc-ba9876543210', + timezone: 'America/Chicago', + }, + properties: { + app_id: '01234567-89ab-cdef-0123-456789abcdef', + platform: 'ios', + os_version: 'iOS10.3.1', + device_model: 'iPhone7Plus', + name: 'customeventname', + ad_id: '01234567-89ab-cdef-0123-456789abcdef', + ad_id_type: 'roku_ad_id', + ad_tracking_enabled: true, + custom_properties: { + stringpropertyname: 'a', + numberpropertyname: 1, + listpropertyname: ['a', 'b'], + }, + }, + }, + ], + }, + source: { + ID: '2hgvYyU5TYaFvVzBge6tF2UKoeG', + OriginalID: '', + Name: 'Braze source', + SourceDefinition: commonSourceDefinition, + Config: { + customMapping: [ + { + from: 'randomEvent', + to: 'In-App Message Clicked', + }, + ], + }, + ...commonSourceConfigProperties, + }, + }, + ], + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + batch: [ + { + context: { + library: { name: 'unknown', version: 'unknown' }, + integration: { name: 'Braze' }, + device: { + id: 'fedcba87-6543-210f-edc-ba9876543210', + model: 'iPhone7Plus', + advertisingId: '01234567-89ab-cdef-0123-456789abcdef', + adTrackingEnabled: true, + }, + timezone: 'America/Chicago', + os: { version: 'iOS10.3.1', name: 'ios' }, + }, + integrations: { Braze: false }, + type: 'track', + event: 'users.behaviors.CustomEvent', + messageId: 'a1234567-89ab-cdef-0123-456789abcdef', + anonymousId: '0123456789abcdef01234567', + userId: 'user_id', + properties: { + app_id: '01234567-89ab-cdef-0123-456789abcdef', + name: 'customeventname', + ad_id_type: 'roku_ad_id', + custom_properties: { + stringpropertyname: 'a', + numberpropertyname: 1, + listpropertyname: ['a', 'b'], + }, + }, + timestamp: '2016-10-26T17:26:23.000Z', + }, + ], + }, + }, + ], + }, + }, + }, + { + name: 'braze', + description: 'users.behaviors.Purchase event', + module: 'source', + version: 'v1', + input: { + request: { + body: [ + { + event: { + events: [ + { + event_type: 'users.behaviors.Purchase', + id: 'a1234567-89ab-cdef-0123-456789abcdef', + time: 1477502783, + user: { + user_id: '0123456789abcdef01234567', + external_user_id: 'user_id', + device_id: 'fedcba87-6543-210f-edc-ba9876543210', + timezone: 'America/Chicago', + }, + properties: { + app_id: '01234567-89ab-cdef-0123-456789abcdef', + platform: 'ios', + os_version: 'iOS10.3.1', + device_model: 'iPhone7Plus', + product_id: '1234', + price: 12.34, + currency: 'AED', + ad_id: '01234567-89ab-cdef-0123-456789abcdef', + ad_id_type: 'roku_ad_id', + ad_tracking_enabled: true, + purchase_properties: { + stringpropertyname: 'a', + numberpropertyname: 1, + listpropertyname: ['a', 'b'], + }, + }, + }, + ], + }, + source: { + ID: '2hgvYyU5TYaFvVzBge6tF2UKoeG', + OriginalID: '', + Name: 'Braze source', + SourceDefinition: commonSourceDefinition, + Config: { + customMapping: [ + { + from: 'randomEvent', + to: 'In-App Message Clicked', + }, + ], + }, + ...commonSourceConfigProperties, + }, + }, + ], + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + batch: [ + { + context: { + library: { name: 'unknown', version: 'unknown' }, + integration: { name: 'Braze' }, + device: { + id: 'fedcba87-6543-210f-edc-ba9876543210', + model: 'iPhone7Plus', + advertisingId: '01234567-89ab-cdef-0123-456789abcdef', + adTrackingEnabled: true, + }, + timezone: 'America/Chicago', + os: { version: 'iOS10.3.1', name: 'ios' }, + }, + integrations: { Braze: false }, + type: 'track', + event: 'users.behaviors.Purchase', + messageId: 'a1234567-89ab-cdef-0123-456789abcdef', + anonymousId: '0123456789abcdef01234567', + userId: 'user_id', + properties: { + app_id: '01234567-89ab-cdef-0123-456789abcdef', + product_id: '1234', + price: 12.34, + currency: 'AED', + ad_id_type: 'roku_ad_id', + purchase_properties: { + stringpropertyname: 'a', + numberpropertyname: 1, + listpropertyname: ['a', 'b'], + }, + }, + timestamp: '2016-10-26T17:26:23.000Z', + }, + ], + }, + }, + ], + }, + }, + }, + { + name: 'braze', + description: 'users.behaviors.app.SessionStart event', + module: 'source', + version: 'v1', + input: { + request: { + body: [ + { + event: { + events: [ + { + event_type: 'users.behaviors.app.SessionStart', + id: 'a1234567-89ab-cdef-0123-456789abcdef', + time: 1477502783, + user: { + user_id: '0123456789abcdef01234567', + external_user_id: 'user_id', + device_id: 'fedcba87-6543-210f-edc-ba9876543210', + }, + properties: { + app_id: '01234567-89ab-cdef-0123-456789abcdef', + platform: 'ios', + os_version: 'iOS10.3.1', + device_model: 'iPhone7Plus', + session_id: 'b1234567-89ab-cdef-0123-456789abcdef', + }, + }, + ], + }, + source: { + ID: '2hgvYyU5TYaFvVzBge6tF2UKoeG', + OriginalID: '', + Name: 'Braze source', + SourceDefinition: commonSourceDefinition, + Config: { + customMapping: [ + { + from: 'randomEvent', + to: 'In-App Message Clicked', + }, + ], + }, + ...commonSourceConfigProperties, + }, + }, + ], + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + batch: [ + { + context: { + library: { name: 'unknown', version: 'unknown' }, + integration: { name: 'Braze' }, + device: { + id: 'fedcba87-6543-210f-edc-ba9876543210', + model: 'iPhone7Plus', + }, + os: { version: 'iOS10.3.1', name: 'ios' }, + }, + integrations: { Braze: false }, + type: 'track', + event: 'users.behaviors.app.SessionStart', + messageId: 'a1234567-89ab-cdef-0123-456789abcdef', + anonymousId: '0123456789abcdef01234567', + userId: 'user_id', + properties: { + app_id: '01234567-89ab-cdef-0123-456789abcdef', + session_id: 'b1234567-89ab-cdef-0123-456789abcdef', + }, + timestamp: '2016-10-26T17:26:23.000Z', + }, + ], + }, + }, + ], + }, + }, + }, +];