diff --git a/.github/workflows/ut-tests.yml b/.github/workflows/ut-tests.yml index 530a532325..30c29ceaee 100644 --- a/.github/workflows/ut-tests.yml +++ b/.github/workflows/ut-tests.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Setup Go - uses: actions/setup-go@v4.1.0 + uses: actions/setup-go@v5.0.0 with: go-version: 1.17 diff --git a/CHANGELOG.md b/CHANGELOG.md index 0ee4007dba..08032253ac 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,23 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [1.55.0](https://github.com/rudderlabs/rudder-transformer/compare/v1.54.4...v1.55.0) (2024-02-05) + + +### Features + +* add new stat for access token expired in fb custom audience ([#3043](https://github.com/rudderlabs/rudder-transformer/issues/3043)) ([1e6d540](https://github.com/rudderlabs/rudder-transformer/commit/1e6d540fafc61a84fbbaa63d4bc5b1edc17ec44e)) +* **intercom:** upgrade intercom version from 1.4 to 2.10 ([#2976](https://github.com/rudderlabs/rudder-transformer/issues/2976)) ([717639b](https://github.com/rudderlabs/rudder-transformer/commit/717639bcce605109b145eb4cc6836fe1589278fe)) +* onboard new destination rakuten ([#3046](https://github.com/rudderlabs/rudder-transformer/issues/3046)) ([c7c3110](https://github.com/rudderlabs/rudder-transformer/commit/c7c3110a4526e31bc296abb33f3246fa8eee049a)) +* trade desk real time conversions ([#3023](https://github.com/rudderlabs/rudder-transformer/issues/3023)) ([212d5f0](https://github.com/rudderlabs/rudder-transformer/commit/212d5f09d8addc618d4398029e62c9a18a9512cf)) + + +### Bug Fixes + +* adding map for marketo known values and javascript known values ([#3037](https://github.com/rudderlabs/rudder-transformer/issues/3037)) ([64ab555](https://github.com/rudderlabs/rudder-transformer/commit/64ab555d31b4c1c49863794444bd79b2b6a45927)) +* mixpanel timestamp in ms ([#3028](https://github.com/rudderlabs/rudder-transformer/issues/3028)) ([5ad55a2](https://github.com/rudderlabs/rudder-transformer/commit/5ad55a27c8b737fd96f65c68ba086769747c5360)) +* upgrade ua-parser-js from 1.0.35 to 1.0.37 ([9a4cdef](https://github.com/rudderlabs/rudder-transformer/commit/9a4cdef59ab1c2d9dc95eb8629a7009d8d633297)) + ### [1.54.4](https://github.com/rudderlabs/rudder-transformer/compare/v1.54.3...v1.54.4) (2024-01-31) diff --git a/jest.default.config.js b/jest.default.config.js index 59ca844902..d1b5390b9e 100644 --- a/jest.default.config.js +++ b/jest.default.config.js @@ -27,7 +27,7 @@ module.exports = { coverageDirectory: 'reports/coverage', // An array of regexp pattern strings used to skip coverage collection - coveragePathIgnorePatterns: ['/node_modules/', '__tests__', 'warehouse/v0' ,'test'], + coveragePathIgnorePatterns: ['/node_modules/', '__tests__', 'warehouse/v0', 'test'], // A list of reporter names that Jest uses when writing coverage reports coverageReporters: ['json', 'text', 'lcov', 'clover'], diff --git a/package-lock.json b/package-lock.json index acde95fedf..dd42fd3921 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "rudder-transformer", - "version": "1.54.4", + "version": "1.55.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "rudder-transformer", - "version": "1.54.4", + "version": "1.55.0", "license": "ISC", "dependencies": { "@amplitude/ua-parser-js": "0.7.24", @@ -19,7 +19,7 @@ "@koa/router": "^12.0.0", "@ndhoule/extend": "^2.0.0", "@pyroscope/nodejs": "^0.2.6", - "@rudderstack/integrations-lib": "^0.1.8", + "@rudderstack/integrations-lib": "^0.2.2", "@rudderstack/workflow-engine": "^0.6.9", "ajv": "^8.12.0", "ajv-draft-04": "^1.0.0", @@ -65,7 +65,7 @@ "stacktrace-parser": "^0.1.10", "statsd-client": "^0.4.7", "truncate-utf8-bytes": "^1.0.2", - "ua-parser-js": "^1.0.35", + "ua-parser-js": "^1.0.37", "unset-value": "^2.0.1", "uuid": "^9.0.0", "valid-url": "^1.0.9" @@ -114,6 +114,41 @@ "typescript": "^5.0.4" } }, + "../rudder-integrations-lib": { + "name": "@rudderstack/integrations-lib", + "version": "0.1.10", + "extraneous": true, + "license": "MIT", + "dependencies": { + "@rudderstack/workflow-engine": "^0.5.7", + "axios": "^1.4.0", + "axios-mock-adapter": "^1.22.0", + "crypto": "^1.0.1", + "get-value": "^3.0.1", + "handlebars": "^4.7.8", + "lodash": "^4.17.21", + "moment": "^2.29.4", + "moment-timezone": "^0.5.43", + "set-value": "^4.1.0", + "sha256": "^0.2.0", + "tslib": "^2.4.0", + "winston": "^3.11.0" + }, + "devDependencies": { + "@types/get-value": "^3.0.3", + "@types/jest": "^29.5.4", + "@types/lodash": "^4.14.195", + "@types/node": "^20.3.3", + "@types/set-value": "^4.0.1", + "@types/sha256": "^0.2.0", + "jest": "^29.4.3", + "pre-commit": "^1.2.2", + "prettier": "^2.8.4", + "ts-jest": "^29.0.5", + "ts-node": "^10.9.1", + "typescript": "^5.1.6" + } + }, "node_modules/@aashutoshrathi/word-wrap": { "version": "1.2.6", "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", @@ -4432,9 +4467,9 @@ } }, "node_modules/@rudderstack/integrations-lib": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@rudderstack/integrations-lib/-/integrations-lib-0.1.9.tgz", - "integrity": "sha512-ROi/LfI7PXqKDrjSig+1Rf2TQ8MgxJGJ7sAD1B0PmRKELQpxK6PLt8QF+vKXl8wYILQu2gwTkZ5o+uwmNKxGzg==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@rudderstack/integrations-lib/-/integrations-lib-0.2.2.tgz", + "integrity": "sha512-LilQsYcYh/4XXHNmYHM164fCbO5U3uvlw7k1wiCvFOR0MS1RhFXD9sPgCYpri683Jy3gqq1FrKN1EFj7oWAMjw==", "dependencies": { "@rudderstack/workflow-engine": "^0.5.7", "axios": "^1.4.0", @@ -4447,7 +4482,8 @@ "moment-timezone": "^0.5.43", "set-value": "^4.1.0", "sha256": "^0.2.0", - "tslib": "^2.4.0" + "tslib": "^2.4.0", + "winston": "^3.11.0" } }, "node_modules/@rudderstack/integrations-lib/node_modules/@aws-crypto/sha256-js": { diff --git a/package.json b/package.json index 28c66a76e7..ac6746ed20 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "rudder-transformer", - "version": "1.54.4", + "version": "1.55.0", "description": "", "homepage": "https://github.com/rudderlabs/rudder-transformer#readme", "bugs": { @@ -64,7 +64,7 @@ "@koa/router": "^12.0.0", "@ndhoule/extend": "^2.0.0", "@pyroscope/nodejs": "^0.2.6", - "@rudderstack/integrations-lib": "^0.1.8", + "@rudderstack/integrations-lib": "^0.2.2", "@rudderstack/workflow-engine": "^0.6.9", "ajv": "^8.12.0", "ajv-draft-04": "^1.0.0", @@ -110,7 +110,7 @@ "stacktrace-parser": "^0.1.10", "statsd-client": "^0.4.7", "truncate-utf8-bytes": "^1.0.2", - "ua-parser-js": "^1.0.35", + "ua-parser-js": "^1.0.37", "unset-value": "^2.0.1", "uuid": "^9.0.0", "valid-url": "^1.0.9" diff --git a/src/cdk/v2/destinations/intercom/config.js b/src/cdk/v2/destinations/intercom/config.js new file mode 100644 index 0000000000..518d805d41 --- /dev/null +++ b/src/cdk/v2/destinations/intercom/config.js @@ -0,0 +1,81 @@ +const BASE_ENDPOINT = 'https://api.intercom.io'; +const BASE_EU_ENDPOINT = 'https://api.eu.intercom.io'; +const BASE_AU_ENDPOINT = 'https://api.au.intercom.io'; + +const SEARCH_CONTACT_ENDPOINT = 'contacts/search'; +const CREATE_OR_UPDATE_COMPANY_ENDPOINT = 'companies'; + +const ReservedAttributes = { + v1UserAttributes: [ + 'userId', + 'email', + 'phone', + 'name', + 'createdAt', + 'firstName', + 'lastName', + 'firstname', + 'lastname', + 'company', + ], + v2UserAttributes: [ + 'userId', + 'role', + 'email', + 'phone', + 'name', + 'avatar', + 'company', + 'ownerId', + 'lastName', + 'lastname', + 'firstName', + 'firstname', + 'createdAt', + 'timestamp', + 'lastSeenAt', + 'originalTimestamp', + 'unsubscribedFromEmails', + ], + v1CompanyAttributes: [ + 'remoteCreatedAt', + 'monthlySpend', + 'industry', + 'website', + 'size', + 'plan', + 'name', + 'userId', + ], + v2CompanyAttributes: [ + 'tags', + 'size', + 'plan', + 'name', + 'email', + 'userId', + 'website', + 'industry', + 'segments', + 'userCount', + 'createdAt', + 'sessionCount', + 'monthlySpend', + 'remoteCreatedAt', + ], +}; + +const ReservedCompanyProperties = ['id', 'name', 'industry']; + +const MetadataTypes = { richLink: ['url', 'value'], monetaryAmount: ['amount', 'currency'] }; + +module.exports = { + BASE_ENDPOINT, + MetadataTypes, + BASE_EU_ENDPOINT, + BASE_AU_ENDPOINT, + ReservedAttributes, + SEARCH_CONTACT_ENDPOINT, + ReservedCompanyProperties, + CREATE_OR_UPDATE_COMPANY_ENDPOINT, +}; diff --git a/src/cdk/v2/destinations/intercom/procWorkflow.yaml b/src/cdk/v2/destinations/intercom/procWorkflow.yaml new file mode 100644 index 0000000000..4b2ca1869e --- /dev/null +++ b/src/cdk/v2/destinations/intercom/procWorkflow.yaml @@ -0,0 +1,230 @@ +bindings: + - name: EventType + path: ../../../../constants + - path: ./utils + exportAll: true + - path: ../../bindings/jsontemplate + exportAll: true + - name: defaultRequestConfig + path: ../../../../v0/util + - name: removeUndefinedAndNullValues + path: ../../../../v0/util + - name: getFieldValueFromMessage + path: ../../../../v0/util + - name: isDefinedAndNotNull + path: ../../../../v0/util + - name: addExternalIdToTraits + path: ../../../../v0/util + - path: ../../bindings/jsontemplate + +steps: + - name: checkIfProcessed + condition: .message.statusCode + template: | + $.batchMode ? .message.body.JSON : .message; + onComplete: return + + - name: messageType + template: | + .message.type.toLowerCase(); + + - name: validateInput + template: | + let messageType = $.outputs.messageType; + $.assert(messageType, "message Type is not present. Aborting"); + $.assert(messageType in {{$.EventType.([.IDENTIFY, .TRACK, .GROUP])}}, "message type " + messageType + " is not supported"); + $.assertConfig(.destination.Config.apiKey, "Access Token is not present. Aborting"); + + - name: apiVersion + template: | + const version = $.isDefinedAndNotNull(.destination.Config.apiVersion) ? .destination.Config.apiVersion : "v2"; + version; + + - name: rEtlPayload + condition: .message.context.mappedToDestination + template: | + $.addExternalIdToTraits(.message); + const payload = $.getFieldValueFromMessage(.message, "traits"); + payload; + + - name: searchContact + condition: ($.outputs.messageType === {{$.EventType.IDENTIFY}} || $.outputs.messageType === {{$.EventType.GROUP}}) && $.outputs.apiVersion !== "v1" + template: | + const contactId = await $.searchContact(.message, .destination); + contactId; + + - name: identifyTransformationForLatestVersion + condition: $.outputs.messageType === {{$.EventType.IDENTIFY}} && $.outputs.apiVersion !== "v1" && !.message.context.mappedToDestination + template: | + const payload = .message.({ + external_id: {{{{$.getGenericPaths("userIdOnly")}}}}, + email: {{{{$.getGenericPaths("email")}}}}, + phone: {{{{$.getGenericPaths("phone")}}}}, + avatar: {{{{$.getGenericPaths("avatar")}}}}, + last_seen_at: $.toSeconds(.context.traits.lastSeenAt), + role: .traits.role || .context.traits.role, + signed_up_at: $.toSeconds(.traits.createdAt || .context.traits.createdAt), + owner_id: Number(.traits.ownerId || .context.traits.ownerId) || undefined, + unsubscribed_from_emails: .traits.unsubscribedFromEmails || .context.traits.unsubscribedFromEmails + }); + !(payload.external_id) && .destination.Config.sendAnonymousId ? payload.external_id = .message.anonymousId; + payload; + + - name: identifyPayloadForLatestVersion + condition: $.outputs.messageType === {{$.EventType.IDENTIFY}} && $.outputs.apiVersion !== "v1" + template: | + const payload = .message.context.mappedToDestination ? $.outputs.rEtlPayload : $.outputs.identifyTransformationForLatestVersion; + payload.name = $.getName(.message); + payload.custom_attributes = .message.context.traits || {}; + payload.custom_attributes = $.filterCustomAttributes(payload, "user", .destination); + payload.external_id = !payload.external_id && .destination.Config.sendAnonymousId && .message.anonymousId ? .message.anonymousId : payload.external_id; + $.context.payload = payload; + $.assert($.context.payload.external_id || $.context.payload.email, "Either email or userId is required for Identify call"); + const endpoint = $.getBaseEndpoint(.destination) + "/" + "contacts"; + $.context.requestMethod = $.outputs.searchContact ? 'PUT' : 'POST'; + $.context.endpoint = $.outputs.searchContact ? endpoint + "/" + $.outputs.searchContact : endpoint; + $.context.payload = $.removeUndefinedAndNullValues($.context.payload); + + - name: identifyTransformationForOlderVersion + condition: $.outputs.messageType === {{$.EventType.IDENTIFY}} && $.outputs.apiVersion === "v1" && !.message.context.mappedToDestination + template: | + const payload = .message.({ + user_id: {{{{$.getGenericPaths("userIdOnly")}}}}, + email: {{{{$.getGenericPaths("email")}}}}, + phone: {{{{$.getGenericPaths("phone")}}}}, + signed_up_at: $.toSeconds(.traits.createdAt || .context.traits.createdAt), + last_seen_user_agent: .context.userAgent, + }); + !(payload.user_id) && .destination.Config.sendAnonymousId ? payload.user_id = .message.anonymousId; + payload; + + - name: identifyPayloadForOlderVersion + condition: $.outputs.messageType === {{$.EventType.IDENTIFY}} && $.outputs.apiVersion === "v1" + template: | + let payload = .message.context.mappedToDestination ? $.outputs.rEtlPayload : $.outputs.identifyTransformationForOlderVersion; + payload = { + ...payload, + name : $.getName(.message), + custom_attributes : .message.traits || .message.context.traits || {}, + update_last_request_at: typeof .destination.Config.updateLastRequestAt === 'boolean' ? .destination.Config.updateLastRequestAt : true + } + payload.companies = $.getCompaniesList(payload); + payload.custom_attributes = !.message.context.mappedToDestination ? $.filterCustomAttributes(payload, "user", .destination); + payload.user_id = !payload.user_id && .destination.Config.sendAnonymousId && .message.anonymousId ? .message.anonymousId : payload.user_id; + $.context.payload = payload; + $.assert($.context.payload.user_id || $.context.payload.email, "Either of `email` or `userId` is required for Identify call"); + $.context.requestMethod = 'POST'; + $.context.endpoint = $.getBaseEndpoint(.destination) + "/" + "users"; + $.context.payload = $.removeUndefinedAndNullValues($.context.payload); + + - name: trackTransformation + condition: $.outputs.messageType === {{$.EventType.TRACK}} && !.message.context.mappedToDestination + template: | + const timestamp = .message.().( + {{{{$.getGenericPaths("timestamp")}}}}; + ); + const payload = .message.({ + event_name: .event, + user_id: {{{{$.getGenericPaths("userIdOnly")}}}}, + email: {{{{$.getGenericPaths("email")}}}}, + metadata: .properties + }); + $.outputs.apiVersion !== "v1" ? payload.id = .message.properties.id || .message.traits.id; + $.outputs.apiVersion !== "v1" ? payload.created_at = $.toSeconds(timestamp); + $.outputs.apiVersion === "v1" ? payload.created = $.toSeconds(timestamp); + !(payload.user_id) && .destination.Config.sendAnonymousId ? payload.user_id = .message.anonymousId; + payload; + + - name: trackPayload + condition: $.outputs.messageType === {{$.EventType.TRACK}} + template: | + let payload = .message.context.mappedToDestination ? $.outputs.rEtlPayload : $.outputs.trackTransformation; + payload = $.addMetadataToPayload(payload); + $.context.payload = payload; + $.assert($.context.payload.event_name, "Event name is required for track call"); + $.assert($.context.payload.user_id || $.context.payload.email, "Either email or userId is required for Track call"); + $.context.requestMethod = 'POST'; + $.context.endpoint = $.getBaseEndpoint(.destination) + "/" + "events"; + $.context.payload = $.removeUndefinedAndNullValues($.context.payload); + + - name: groupTransformation + condition: $.outputs.messageType === {{$.EventType.GROUP}} && !.message.context.mappedToDestination + template: | + const payload = .message.({ + company_id: {{{{$.getGenericPaths("groupId")}}}}, + name: {{{{$.getGenericPaths("name")}}}}, + website: {{{{$.getGenericPaths("website")}}}}, + plan: .traits.plan || .context.traits.plan, + size: Number(.traits.size || .context.traits.size), + industry: .traits.industry || .context.traits.industry, + monthly_spend: .traits.monthlySpend || .context.traits.monthlySpend ? Number(.traits.monthlySpend || .context.traits.monthlySpend) : undefined, + remote_created_at: .traits.remoteCreatedAt || .context.traits.remoteCreatedAt ? Number(.traits.remoteCreatedAt || .context.traits.remoteCreatedAt) : undefined + }); + payload; + + - name: groupPayloadForLatestVersion + condition: $.outputs.messageType === {{$.EventType.GROUP}} && $.outputs.apiVersion !== "v1" + steps: + - name: validateMessageAndPreparePayload + template: | + $.assert(.message.groupId, "groupId is required for group call"); + const payload = .message.context.mappedToDestination ? $.outputs.rEtlPayload : $.outputs.groupTransformation; + payload.custom_attributes = .message.traits || {}; + payload.custom_attributes = $.filterCustomAttributes(payload, "company", .destination); + $.context.payload = payload; + - name: whenSearchContactFound + condition: $.isDefinedAndNotNull($.outputs.searchContact) + template: | + const contactId = $.outputs.searchContact; + const companyId = await $.createOrUpdateCompany($.context.payload, .destination); + $.assert(companyId, "Unable to create or update company"); + $.context.payload = { + id: companyId, + }; + $.context.endpoint = $.getBaseEndpoint(.destination) + "/" + "contacts" + "/" + contactId + "/" + "companies"; + else: + name: whenSearchContactNotFound + template: | + $.context.endpoint = $.getBaseEndpoint(.destination) + "/" + "companies"; + - name: prepareFinalPayload + template: + $.context.requestMethod = 'POST'; + $.removeUndefinedAndNullValues($.context.payload); + + - name: groupPayloadForOlderVersion + condition: $.outputs.messageType === {{$.EventType.GROUP}} && $.outputs.apiVersion === "v1" + template: | + $.context.response = []; + const response = $.defaultRequestConfig(); + let payload = .message.context.mappedToDestination ? $.outputs.rEtlPayload : $.outputs.groupTransformation; + payload = { + ...payload, + custom_attributes : $.getFieldValueFromMessage(.message, "traits") || {} + } + payload.custom_attributes = $.filterCustomAttributes(payload, "company", .destination); + response.body.JSON = $.removeUndefinedAndNullValues(payload); + response.endpoint = $.getBaseEndpoint(.destination) + "/" + "companies"; + response.headers = $.getHeaders(.destination, $.outputs.apiVersion); + response.method = "POST"; + response.userId = .message.anonymousId; + $.context.response.push(response); + const attachUserAndCompanyResponse = $.attachUserAndCompany(.message, .destination.Config); + attachUserAndCompanyResponse ? attachUserAndCompanyResponse.userId = .message.anonymousId; + attachUserAndCompanyResponse ? $.context.response.push(attachUserAndCompanyResponse); + + - name: buildResponseForProcessTransformation + description: Build response for multiple transformed event + condition: $.context.response && $.context.response.length > 0 + template: | + $.context.response; + else: + name: buildResponseForProcessTransformation + description: Build response for single transformed event + template: | + const response = $.defaultRequestConfig(); + response.body.JSON = $.context.payload; + response.endpoint = $.context.endpoint; + response.method = $.context.requestMethod; + response.headers = $.getHeaders(.destination, $.outputs.apiVersion); + $.outputs.apiVersion === "v1" && $.outputs.messageType !== {{$.EventType.GROUP}} ? response.userId = .message.anonymousId; + response; diff --git a/src/cdk/v2/destinations/intercom/rtWorkflow.yaml b/src/cdk/v2/destinations/intercom/rtWorkflow.yaml new file mode 100644 index 0000000000..3ed1046959 --- /dev/null +++ b/src/cdk/v2/destinations/intercom/rtWorkflow.yaml @@ -0,0 +1,33 @@ +bindings: + - name: handleRtTfSingleEventError + path: ../../../../v0/util/index + - name: isDefinedAndNotNull + path: ../../../../v0/util + +steps: + - name: validateInput + template: | + $.assert(Array.isArray(^) && ^.length > 0, "Invalid event array") + + - name: transform + externalWorkflow: + path: ./procWorkflow.yaml + loopOverInput: true + + - name: successfulEvents + template: | + $.outputs.transform#idx{$.isDefinedAndNotNull(.output)}.({ + "batchedRequest": .output, + "batched": false, + "destination": ^[idx].destination, + "metadata": ^[idx].metadata[], + "statusCode": 200 + })[] + - name: failedEvents + template: | + $.outputs.transform#idx.error.( + $.handleRtTfSingleEventError(^[idx], .originalError ?? ., {}) + )[] + - name: finalPayload + template: | + [...$.outputs.successfulEvents, ...$.outputs.failedEvents] \ No newline at end of file diff --git a/src/cdk/v2/destinations/intercom/utils.js b/src/cdk/v2/destinations/intercom/utils.js new file mode 100644 index 0000000000..0f18029f19 --- /dev/null +++ b/src/cdk/v2/destinations/intercom/utils.js @@ -0,0 +1,367 @@ +const md5 = require('md5'); +const get = require('get-value'); +const { NetworkError } = require('@rudderstack/integrations-lib'); +const tags = require('../../../../v0/util/tags'); +const { httpPOST } = require('../../../../adapters/network'); +const { + processAxiosResponse, + getDynamicErrorType, +} = require('../../../../adapters/utils/networkUtils'); +const { + flattenJson, + getIntegrationsObj, + isDefinedAndNotNull, + isHttpStatusSuccess, + defaultRequestConfig, + getFieldValueFromMessage, + defaultPostRequestConfig, + removeUndefinedAndNullValues, +} = require('../../../../v0/util'); +const { JSON_MIME_TYPE } = require('../../../../v0/util/constant'); +const { + BASE_ENDPOINT, + MetadataTypes, + BASE_EU_ENDPOINT, + BASE_AU_ENDPOINT, + ReservedAttributes, + SEARCH_CONTACT_ENDPOINT, + ReservedCompanyProperties, + CREATE_OR_UPDATE_COMPANY_ENDPOINT, +} = require('./config'); + +/** + * Returns destination request headers + * @param {*} destination + * @param {*} apiVersion + * @returns + */ +const getHeaders = (destination, apiVersion) => ({ + 'Content-Type': JSON_MIME_TYPE, + Authorization: `Bearer ${destination.Config.apiKey}`, + Accept: JSON_MIME_TYPE, + 'Intercom-Version': apiVersion === 'v1' ? '1.4' : '2.10', +}); + +/** + * Returns destination request base endpoint + * @param {*} destination + * @returns + */ +const getBaseEndpoint = (destination) => { + const { apiServer } = destination.Config; + let { apiVersion } = destination.Config; + apiVersion = isDefinedAndNotNull(apiVersion) ? apiVersion : 'v2'; + + if (apiVersion === 'v1') return BASE_ENDPOINT; + switch (apiServer) { + case 'eu': + return BASE_EU_ENDPOINT; + case 'au': + return BASE_AU_ENDPOINT; + default: + return BASE_ENDPOINT; + } +}; + +/** + * Returns contact lookup field + * @param {*} message + * @returns + */ +const getLookUpField = (message) => { + let lookupField = 'email'; + const integrationsObj = getIntegrationsObj(message, 'INTERCOM'); + if (integrationsObj && isDefinedAndNotNull(integrationsObj.lookup)) { + lookupField = integrationsObj.lookup; + } + return lookupField; +}; + +/** + * Returns the value of name field + * @param {*} message + * @returns + */ +const getName = (message) => { + const name = message?.traits?.name || message?.context?.traits?.name; + if (name) return name; + const firstName = getFieldValueFromMessage(message, 'firstName'); + const lastName = getFieldValueFromMessage(message, 'lastName'); + if (firstName && lastName) { + return `${firstName} ${lastName}`; + } + + if (firstName || lastName) { + return firstName || lastName; + } + return undefined; +}; + +/** + * Returns company payload + * @param {*} payload + * @returns + */ +const getCompaniesList = (payload) => { + const company = get(payload, 'custom_attributes.company'); + if (!company) return undefined; + const companiesList = []; + if (company.name || company.id) { + const customAttributes = {}; + Object.keys(company).forEach((key) => { + // If key is not in ReservedCompanyProperties + if (!ReservedCompanyProperties.includes(key)) { + const val = company[key]; + if (val !== Object(val)) { + customAttributes[key] = val; + } else { + customAttributes[key] = JSON.stringify(val); + } + } + }); + + companiesList.push({ + company_id: company.id || md5(company.name), + custom_attributes: removeUndefinedAndNullValues(customAttributes), + name: company.name, + industry: company.industry, + }); + } + return companiesList; +}; + +/** + * Returns if email or userId is present in payload or not + * @param {*} message + * @param {*} Config + * @returns + */ +const checkIfEmailOrUserIdPresent = (message, Config) => { + const { context, anonymousId } = message; + let { userId } = message; + if (Config.sendAnonymousId && !userId) { + userId = anonymousId; + } + return !!(userId || context?.traits?.email); +}; + +/** + * Returns add user to company payload + * @param {*} message + * @param {*} Config + * @returns + */ +const attachUserAndCompany = (message, Config) => { + if (!checkIfEmailOrUserIdPresent(message, Config)) return undefined; + const email = message.context?.traits?.email; + const { userId, anonymousId, traits, groupId } = message; + const requestBody = {}; + if (userId) { + requestBody.user_id = userId; + } + if (Config.sendAnonymousId && !userId) { + requestBody.user_id = anonymousId; + } + if (email) { + requestBody.email = email; + } + const companyObj = { + company_id: groupId, + }; + if (traits?.name) { + companyObj.name = traits.name; + } + requestBody.companies = [companyObj]; + const response = defaultRequestConfig(); + response.method = defaultPostRequestConfig.requestMethod; + response.endpoint = `${BASE_ENDPOINT}/users`; + response.headers = { + 'Content-Type': JSON_MIME_TYPE, + Authorization: `Bearer ${Config.apiKey}`, + Accept: JSON_MIME_TYPE, + 'Intercom-Version': '1.4', + }; + response.body.JSON = requestBody; + response.userId = anonymousId; + return response; +}; + +/** + * Returns custom attributes for identify and group calls (for contact and company in intercom) + * @param {*} payload + * @param {*} type + * @returns + */ +const filterCustomAttributes = (payload, type, destination) => { + let ReservedAttributesList; + let { apiVersion } = destination.Config; + apiVersion = isDefinedAndNotNull(apiVersion) ? apiVersion : 'v2'; + if (type === 'user') { + ReservedAttributesList = + apiVersion === 'v1' + ? ReservedAttributes.v1UserAttributes + : ReservedAttributes.v2UserAttributes; + } else { + ReservedAttributesList = + apiVersion === 'v1' + ? ReservedAttributes.v1CompanyAttributes + : ReservedAttributes.v2CompanyAttributes; + } + let customAttributes = { ...get(payload, 'custom_attributes') }; + if (customAttributes) { + ReservedAttributesList.forEach((trait) => { + if (customAttributes[trait]) delete customAttributes[trait]; + }); + if (isDefinedAndNotNull(customAttributes) && Object.keys(customAttributes).length > 0) { + customAttributes = + apiVersion === 'v1' ? flattenJson(customAttributes) : flattenJson(customAttributes, '_'); + } + } + return Object.keys(customAttributes).length === 0 ? undefined : customAttributes; +}; + +/** + * Api call to search contact in intercom to returns id of contact + * Ref doc : https://developers.intercom.com/docs/references/rest-api/api.intercom.io/Contacts/SearchContacts/ + * @param {*} message + * @param {*} destination + * @returns + */ +const searchContact = async (message, destination) => { + const lookupField = getLookUpField(message); + const lookupFieldValue = getFieldValueFromMessage(message, lookupField); + const data = JSON.stringify({ + query: { + operator: 'AND', + value: [ + { + field: lookupField, + operator: '=', + value: lookupFieldValue, + }, + ], + }, + }); + + const headers = getHeaders(destination); + const baseEndPoint = getBaseEndpoint(destination); + const endpoint = `${baseEndPoint}/${SEARCH_CONTACT_ENDPOINT}`; + const response = await httpPOST(endpoint, data, { + headers, + destType: 'intercom', + feature: 'transformation', + }); + const processedUserResponse = processAxiosResponse(response); + if (isHttpStatusSuccess(processedUserResponse.status)) { + return processedUserResponse.response?.data.length > 0 + ? processedUserResponse.response?.data[0]?.id + : null; + } + + throw new NetworkError( + `Unable to search contact due to : ${JSON.stringify(processedUserResponse?.response?.errors)}`, + processedUserResponse?.status, + { + [tags]: getDynamicErrorType(processedUserResponse?.status), + }, + processedUserResponse, + ); +}; + +/** + * Api call to create or update companies in intercom + * Ref doc : https://developers.intercom.com/docs/references/rest-api/api.intercom.io/Companies/createOrUpdateCompany/ + * @param {*} payload + * @param {*} destination + * @returns + */ +const createOrUpdateCompany = async (payload, destination) => { + const headers = getHeaders(destination); + const finalPayload = JSON.stringify(removeUndefinedAndNullValues(payload)); + const baseEndPoint = getBaseEndpoint(destination); + const endpoint = `${baseEndPoint}/${CREATE_OR_UPDATE_COMPANY_ENDPOINT}`; + const response = await httpPOST(endpoint, finalPayload, { + headers, + destType: 'intercom', + feature: 'transformation', + }); + + const processedResponse = processAxiosResponse(response); + if (isHttpStatusSuccess(processedResponse.status)) { + return processedResponse.response?.id; + } + + throw new NetworkError( + `Unable to Create or Update Company due to : ${JSON.stringify( + processedResponse?.response?.errors, + )}`, + processedResponse?.status, + { + [tags]: getDynamicErrorType(processedResponse?.status), + }, + processedResponse, + ); +}; + +/** + * Returns metadata object + * @param {*} metadata + * @returns + */ +const separateReservedAndRestMetadata = (metadata) => { + const reservedMetadata = {}; + const restMetadata = {}; + if (metadata) { + Object.entries(metadata).forEach(([key, value]) => { + if (value && typeof value === 'object') { + const hasMonetaryAmountKeys = MetadataTypes.monetaryAmount.every((type) => type in value); + const hasRichLinkKeys = MetadataTypes.richLink.every((type) => type in value); + if (hasMonetaryAmountKeys || hasRichLinkKeys) { + reservedMetadata[key] = value; + } else { + restMetadata[key] = value; + } + } else { + restMetadata[key] = value; + } + }); + } + + // Return the separated metadata objects + return { reservedMetadata, restMetadata }; +}; + +/** + * Returns final payload with metadata + * @param {*} payload + * @returns + */ +const addMetadataToPayload = (payload) => { + let finalPayload = payload; + if (finalPayload.metadata) { + // reserved metadata contains JSON objects that does not requires flattening + const { reservedMetadata, restMetadata } = separateReservedAndRestMetadata( + finalPayload.metadata, + ); + finalPayload = { + ...finalPayload, + metadata: { ...reservedMetadata, ...flattenJson(restMetadata) }, + }; + } + return finalPayload; +}; + +module.exports = { + getName, + getHeaders, + searchContact, + getLookUpField, + getBaseEndpoint, + getCompaniesList, + addMetadataToPayload, + attachUserAndCompany, + createOrUpdateCompany, + filterCustomAttributes, + checkIfEmailOrUserIdPresent, + separateReservedAndRestMetadata, +}; diff --git a/src/cdk/v2/destinations/intercom/utils.test.js b/src/cdk/v2/destinations/intercom/utils.test.js new file mode 100644 index 0000000000..e651b4ea5d --- /dev/null +++ b/src/cdk/v2/destinations/intercom/utils.test.js @@ -0,0 +1,765 @@ +const md5 = require('md5'); +const axios = require('axios'); +const { + getName, + getHeaders, + searchContact, + getLookUpField, + getBaseEndpoint, + getCompaniesList, + addMetadataToPayload, + attachUserAndCompany, + createOrUpdateCompany, + filterCustomAttributes, + checkIfEmailOrUserIdPresent, + separateReservedAndRestMetadata, +} = require('./utils'); +const { BASE_ENDPOINT, BASE_EU_ENDPOINT, BASE_AU_ENDPOINT } = require('./config'); + +jest.mock('axios', () => ({ + ...jest.requireActual('axios'), + post: jest.fn(), +})); + +describe('separateReservedAndRestMetadata utility test', () => { + it('separate reserved and rest metadata', () => { + const metadata = { + property1: 1, + property2: 'test', + property3: true, + property4: { + property1: 1, + property2: 'test', + property3: { + subProp1: { + a: 'a', + b: 'b', + }, + subProp2: ['a', 'b'], + }, + }, + property5: {}, + property6: [], + property7: null, + property8: undefined, + revenue: { + amount: 1232, + currency: 'inr', + test: 123, + }, + price: { + amount: 3000, + currency: 'USD', + }, + article: { + url: 'https://example.org/ab1de.html', + value: 'the dude abides', + }, + }; + const expectedReservedMetadata = { + revenue: { + amount: 1232, + currency: 'inr', + test: 123, + }, + price: { + amount: 3000, + currency: 'USD', + }, + article: { + url: 'https://example.org/ab1de.html', + value: 'the dude abides', + }, + }; + const expectedRestMetadata = { + property1: 1, + property2: 'test', + property3: true, + property4: { + property1: 1, + property2: 'test', + property3: { + subProp1: { + a: 'a', + b: 'b', + }, + subProp2: ['a', 'b'], + }, + }, + property5: {}, + property6: [], + property7: null, + property8: undefined, + }; + const { reservedMetadata, restMetadata } = separateReservedAndRestMetadata(metadata); + + expect(expectedReservedMetadata).toEqual(reservedMetadata); + expect(expectedRestMetadata).toEqual(restMetadata); + }); + + it('reserved metadata types not present in input metadata', () => { + const metadata = { + property1: 1, + property2: 'test', + property3: true, + property4: { + property1: 1, + property2: 'test', + property3: { + subProp1: { + a: 'a', + b: 'b', + }, + subProp2: ['a', 'b'], + }, + }, + property5: {}, + property6: [], + property7: null, + property8: undefined, + }; + const expectedRestMetadata = { + property1: 1, + property2: 'test', + property3: true, + property4: { + property1: 1, + property2: 'test', + property3: { + subProp1: { + a: 'a', + b: 'b', + }, + subProp2: ['a', 'b'], + }, + }, + property5: {}, + property6: [], + property7: null, + property8: undefined, + }; + const { reservedMetadata, restMetadata } = separateReservedAndRestMetadata(metadata); + + expect({}).toEqual(reservedMetadata); + expect(expectedRestMetadata).toEqual(restMetadata); + }); + + it('metadata input contains only reserved metadata types', () => { + const metadata = { + revenue: { + amount: 1232, + currency: 'inr', + test: 123, + }, + price: { + amount: 3000, + currency: 'USD', + }, + article: { + url: 'https://example.org/ab1de.html', + value: 'the dude abides', + }, + }; + const expectedReservedMetadata = { + revenue: { + amount: 1232, + currency: 'inr', + test: 123, + }, + price: { + amount: 3000, + currency: 'USD', + }, + article: { + url: 'https://example.org/ab1de.html', + value: 'the dude abides', + }, + }; + const { reservedMetadata, restMetadata } = separateReservedAndRestMetadata(metadata); + + expect(expectedReservedMetadata).toEqual(reservedMetadata); + expect({}).toEqual(restMetadata); + }); + + it('empty metadata object', () => { + const metadata = {}; + const { reservedMetadata, restMetadata } = separateReservedAndRestMetadata(metadata); + expect({}).toEqual(reservedMetadata); + expect({}).toEqual(restMetadata); + }); + + it('null/undefined metadata', () => { + const metadata = null; + const { reservedMetadata, restMetadata } = separateReservedAndRestMetadata(metadata); + expect({}).toEqual(reservedMetadata); + expect({}).toEqual(restMetadata); + }); +}); + +describe('getBaseEndpoint utility test', () => { + it('Should return BASE_ENDPOINT when destination.Config.apiServer is not "eu" or "au"', () => { + const destination = { + Config: { + apiServer: 'us', + }, + }; + const result = getBaseEndpoint(destination); + expect(result).toBe(BASE_ENDPOINT); + }); + + it('Should return BASE_EU_ENDPOINT when destination.Config.apiServer is "eu"', () => { + const destination = { + Config: { + apiServer: 'eu', + apiVersion: 'v2', + }, + }; + const result = getBaseEndpoint(destination); + expect(result).toBe(BASE_EU_ENDPOINT); + }); + + it('Should return BASE_AU_ENDPOINT when destination.Config.apiServer is "au"', () => { + const destination = { + Config: { + apiServer: 'au', + apiVersion: 'v2', + }, + }; + const result = getBaseEndpoint(destination); + expect(result).toBe(BASE_AU_ENDPOINT); + }); + + it('Should return BASE_ENDPOINT when destination.Config.apiServer is null', () => { + const destination = { + Config: { + apiServer: null, + }, + }; + const result = getBaseEndpoint(destination); + expect(result).toBe(BASE_ENDPOINT); + }); +}); + +describe('getHeaders utility test', () => { + it('Should return an object with the correct headers', () => { + const destination = { + Config: { + apiKey: 'testApiKey', + }, + }; + + const expectedHeaders = { + 'Content-Type': 'application/json', + Authorization: `Bearer ${destination.Config.apiKey}`, + Accept: 'application/json', + 'Intercom-Version': '2.10', + }; + const headers = getHeaders(destination, 'v2'); + expect(headers).toEqual(expectedHeaders); + }); +}); + +describe('getLookUpField utility test', () => { + it('Should return email as default lookup field when no integration object is found', () => { + const message = {}; + const result = getLookUpField(message); + expect(result).toBe('email'); + }); +}); + +describe('getName utility test', () => { + it('Should return the concatenation of firstName and lastName fields when both exist', () => { + const message = { + context: { + traits: { + firstName: 'John', + lastName: 'Doe', + }, + }, + }; + expect(getName(message)).toBe('John Doe'); + }); + + it('Should return the firstName field when only firstName exists', () => { + const message = { + context: { + traits: { + firstName: 'John', + }, + }, + }; + expect(getName(message)).toBe('John'); + }); + + it('Should return the lastName field when only lastName exists', () => { + const message = { + context: { + traits: { + lastName: 'Doe', + }, + }, + }; + expect(getName(message)).toBe('Doe'); + }); + + it('Should return undefined when both message.traits and message.context.traits are undefined', () => { + const message = {}; + expect(getName(message)).toBeUndefined(); + }); +}); + +describe('filterCustomAttributes utility test', () => { + it('Should return an empty object when all custom attributes are reserved attributes', () => { + const payload = { custom_attributes: { email: 'test@rudder.com', name: 'rudder test' } }; + const result = filterCustomAttributes(payload, 'user', { Config: { apiVersion: 'v2' } }); + expect(result).toBeUndefined(); + }); + + it('Should return a flattened object when custom attributes are not null, not reserved attributes and nested', () => { + const payload = { + custom_attributes: { source: 'rudder-js-sdk', data: { nestedAttribute: 'nestedValue' } }, + }; + const result = filterCustomAttributes(payload, 'user', { Config: { apiVersion: 'v2' } }); + expect(result).toEqual({ source: 'rudder-js-sdk', data_nestedAttribute: 'nestedValue' }); + }); + + it('Should return null when custom_attributes is null', () => { + const payload = { custom_attributes: null }; + const result = filterCustomAttributes(payload, 'company', { Config: { apiVersion: 'v2' } }); + expect(result).toBeUndefined(); + }); +}); + +describe('addMetadataToPayload utility test', () => { + it('Should return the same payload if metadata is present but empty', () => { + const payload = { data: 'test', metadata: {} }; + const result = addMetadataToPayload(payload); + expect(result).toEqual(payload); + }); + + it('should add flattened metadata to payload if metadata is present and not empty', () => { + const payload = { + data: 'test', + metadata: { + amount: 30, + currency: 'USD', + url: 'https//test.com', + restData: { source: 'rudderStack' }, + }, + }; + const result = addMetadataToPayload(payload); + expect(result).toEqual({ + data: 'test', + metadata: { + amount: 30, + currency: 'USD', + url: 'https//test.com', + 'restData.source': 'rudderStack', + }, + }); + }); +}); + +describe('searchContact utility test', () => { + it('Should successfully search contact by email', async () => { + const message = { context: { traits: { email: 'test@rudderlabs.com' } } }; + const destination = { Config: { apiKey: 'testApiKey', apiServer: 'us' } }; + axios.post.mockResolvedValue({ + status: 200, + data: { + type: 'list', + total_count: 1, + pages: { + type: 'pages', + page: 1, + per_page: 50, + total_pages: 1, + }, + data: [ + { + type: 'contact', + id: '1', + email: 'test@rudderlabs.com', + }, + ], + }, + }); + + const result = await searchContact(message, destination); + expect(result).toEqual('1'); + }); + + it('Should return first contact id if multiple contact exist with give search field', async () => { + const message = { + context: { + traits: { email: 'test@rudderlabs.com', phone: '+91 9999999999' }, + integrations: { INTERCOM: { lookup: 'phone' } }, + }, + }; + const destination = { Config: { apiKey: 'testApiKey', apiServer: 'us' } }; + axios.post.mockResolvedValue({ + status: 200, + data: { + type: 'list', + total_count: 1, + pages: { + type: 'pages', + page: 1, + per_page: 50, + total_pages: 1, + }, + data: [ + { + type: 'contact', + id: '1', + email: 'test@rudderlabs.com', + phone: '+91 9999999999', + }, + { + type: 'contact', + id: '2', + email: 'test+1@rudderlabs.com', + phone: '+91 9999999999', + }, + ], + }, + }); + + const result = await searchContact(message, destination); + expect(result).toEqual('1'); + }); + + it('Should return null if no contact is found', async () => { + const message = { + context: { + traits: { email: 'test+10@rudderlabs.com', phone: '+91 9999999999' }, + integrations: { INTERCOM: { lookup: 'email' } }, + }, + }; + const destination = { Config: { apiKey: 'testApiKey', apiServer: 'us' } }; + axios.post.mockResolvedValue({ + status: 200, + data: { + type: 'list', + total_count: 0, + pages: { + type: 'pages', + page: 1, + per_page: 50, + total_pages: 0, + }, + data: [], + }, + }); + + const result = await searchContact(message, destination); + expect(result).toBeNull(); + }); + + it('Should throw an error in case if axios calls returns an error', async () => { + const message = { + context: { + traits: { email: 'test+3@rudderlabs.com', phone: '+91 9999999999' }, + integrations: { INTERCOM: { lookup: 'email' } }, + }, + }; + const destination = { Config: { apiKey: 'invalidTestApiKey', apiServer: 'us' } }; + axios.post.mockRejectedValue({ + status: 401, + data: { + type: 'error.list', + request_id: 'request_400', + errors: [ + { + code: 'unauthorized', + message: 'Access Token Invalid', + }, + ], + }, + }); + + try { + const result = await searchContact(message, destination); + expect(result).toEqual(''); + } catch (error) { + expect(error.message).toEqual( + 'Unable to search contact due to : [{"code":"unauthorized","message":"Access Token Invalid"}]', + ); + } + }); +}); + +describe('createOrUpdateCompany utility test', () => { + it('Should successfully create company', async () => { + const payload = { + company_id: 'rudderlabs', + name: 'RudderStack', + website: 'www.rudderstack.com', + plan: 'enterprise', + size: 500, + industry: 'CDP', + custom_attributes: {}, + }; + const destination = { Config: { apiKey: 'testApiKey', apiServer: 'us' } }; + axios.post.mockResolvedValue({ + status: 200, + data: { + type: 'company', + company_id: 'rudderlabs', + id: '1', + name: 'RudderStack', + website: 'www.rudderstack.com', + plan: 'enterprise', + size: 500, + industry: 'CDP', + remote_created_at: 1374138000, + created_at: 1701930212, + updated_at: 1701930212, + }, + }); + + const result = await createOrUpdateCompany(payload, destination); + expect(result).toEqual('1'); + }); + + it('Should throw an error in case if axios calls returns an error', async () => { + const payload = { + company_id: 'rudderlabs', + name: 'RudderStack', + website: 'www.rudderstack.com', + plan: 'enterprise', + size: 500, + industry: 'CDP', + testData: true, + }; + const destination = { Config: { apiKey: 'testApiKey', apiServer: 'us' } }; + axios.post.mockRejectedValue({ + status: 400, + data: { + type: 'error.list', + request_id: 'request_400', + errors: [ + { + code: 'bad_request', + message: "bad 'testData' parameter", + }, + ], + }, + }); + + try { + const result = await createOrUpdateCompany(payload, destination); + expect(result).toEqual(''); + } catch (error) { + expect(error.message).toEqual( + 'Unable to Create or Update Company due to : [{"code":"bad_request","message":"bad \'testData\' parameter"}]', + ); + } + }); + + it('Should throw an error in case if axios calls returns an error', async () => { + const payload = { + company_id: 'rudderlabs', + name: 'RudderStack', + website: 'www.rudderstack.com', + plan: 'enterprise', + size: 500, + industry: 'CDP', + testData: true, + }; + const destination = { Config: { apiKey: 'invalidTestApiKey', apiServer: 'us' } }; + axios.post.mockRejectedValue({ + status: 400, + data: { + type: 'error.list', + request_id: 'request_400', + errors: [ + { + code: 'unauthorized', + message: 'Access Token Invalid', + }, + ], + }, + }); + + try { + const result = await createOrUpdateCompany(payload, destination); + expect(result).toEqual(''); + } catch (error) { + expect(error.message).toEqual( + 'Unable to Create or Update Company due to : [{"code":"unauthorized","message":"Access Token Invalid"}]', + ); + } + }); +}); + +describe('checkIfEmailOrUserIdPresent utility test', () => { + it('Should return true when userId is present in message', () => { + const message = { + userId: '12345', + context: { + traits: { + email: 'test@example.com', + }, + }, + }; + const Config = { + sendAnonymousId: true, + apiKey: '1234567890', + }; + const result = checkIfEmailOrUserIdPresent(message, Config); + expect(result).toBe(true); + }); + + it('Should return true when email is present in message', () => { + const message = { + context: { + traits: { + email: 'test@example.com', + }, + }, + }; + const Config = { + sendAnonymousId: true, + apiKey: '1234567890', + }; + const result = checkIfEmailOrUserIdPresent(message, Config); + expect(result).toBe(true); + }); + + it('Should return true when both userId and email are present in message', () => { + const message = { + userId: '12345', + context: { + traits: { + email: 'test@example.com', + }, + }, + }; + const Config = { + sendAnonymousId: true, + apiKey: '1234567890', + }; + const result = checkIfEmailOrUserIdPresent(message, Config); + expect(result).toBe(true); + }); + + it('Should return false when no email or userId is present', () => { + const message = { anonymousId: 'anon@123' }; + const Config = { + sendAnonymousId: false, + apiKey: '1234567890', + }; + const result = checkIfEmailOrUserIdPresent(message, Config); + expect(result).toBe(false); + }); +}); + +describe('getCompaniesList utility test', () => { + it('Should return an array with one object containing the company_id, custom_attributes, name and industry properties when the payload contains a company object with name or id properties', () => { + const payload = { + custom_attributes: { + company: { + name: 'rudderlabs', + industry: 'Tech', + }, + }, + }; + + const result = getCompaniesList(payload); + + expect(result).toEqual([ + { + company_id: md5('rudderlabs'), + custom_attributes: {}, + name: 'rudderlabs', + industry: 'Tech', + }, + ]); + }); + + it('Should return undefined when the payload does not contain a company object', () => { + const payload = {}; + const result = getCompaniesList(payload); + expect(result).toBeUndefined(); + }); + + it('Should return an empty array when the company object in the payload does not have name or id properties', () => { + const payload = { + custom_attributes: { + company: {}, + }, + }; + const result = getCompaniesList(payload); + expect(result).toEqual([]); + }); + + it('Should return an array with one object containing the company_id, custom_attributes, name and industry properties when the payload contains a company object with name and id properties', () => { + const payload = { + custom_attributes: { + company: { + name: 'Company A', + id: '123', + industry: 'Tech', + }, + }, + }; + const result = getCompaniesList(payload); + expect(result).toEqual([ + { + company_id: '123', + custom_attributes: {}, + name: 'Company A', + industry: 'Tech', + }, + ]); + }); +}); + +describe('attachUserAndCompany utility test', () => { + it('should return a valid response object when only email and groupId are present', () => { + const message = { + context: { + traits: { + email: 'test@example.com', + }, + }, + groupId: 'group123', + }; + const Config = { + sendAnonymousId: false, + apiKey: 'testApiKey', + }; + + const expectedResponse = { + method: 'POST', + params: {}, + type: 'REST', + version: '1', + endpoint: 'https://api.intercom.io/users', + files: {}, + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer testApiKey', + Accept: 'application/json', + 'Intercom-Version': '1.4', + }, + body: { + FORM: {}, + JSON: { + email: 'test@example.com', + companies: [ + { + company_id: 'group123', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + }, + userId: undefined, + }; + const response = attachUserAndCompany(message, Config); + expect(response).toEqual(expectedResponse); + }); +}); diff --git a/src/cdk/v2/destinations/rakuten/config.js b/src/cdk/v2/destinations/rakuten/config.js new file mode 100644 index 0000000000..6a4c93ea3a --- /dev/null +++ b/src/cdk/v2/destinations/rakuten/config.js @@ -0,0 +1,34 @@ +const { getMappingConfig } = require('../../../../v0/util'); + +const ConfigCategories = { + TRACK: { + type: 'track', + name: 'propertiesMapping', + }, +}; +const mappingConfig = getMappingConfig(ConfigCategories, __dirname); +// Following contains the keys at item level mapping where key can be considered as destkey and value can be considered as sourcekey +const productProperties = { + skulist: 'sku', + qlist: 'quantity', + namelist: 'name', + brandlist: 'brand', + couponlist: 'coupon', + catidlist: 'categoryId', + catlist: 'category', + disamtlist: 'discountAmount', + distypelist: 'discountType', + isclearancelist: 'isClearance', + ismarketplacelist: 'isMarketPlace', + issalelist: 'isSale', + itmstatuslist: 'itmStatus', + marginlist: 'margin', + markdownlist: 'markdown', + shipidlist: 'shipId', + shipbylist: 'shipBy', + taxexemptlist: 'taxExempt', + sequencelist: 'sequence', +}; +// list of all properties that are required +const requiredProductProperties = ['skulist', 'qlist', 'namelist']; +module.exports = { ConfigCategories, mappingConfig, productProperties, requiredProductProperties }; diff --git a/src/cdk/v2/destinations/rakuten/data/propertiesMapping.json b/src/cdk/v2/destinations/rakuten/data/propertiesMapping.json new file mode 100644 index 0000000000..e04765faed --- /dev/null +++ b/src/cdk/v2/destinations/rakuten/data/propertiesMapping.json @@ -0,0 +1,101 @@ +[ + { + "sourceKeys": "properties.orderId", + "required": true, + "destKey": "ord" + }, + { + "sourceKeys": ["properties.tr", "properties.ranSiteID"], + "required": true, + "destKey": "tr" + }, + { + "sourceKeys": ["properties.land", "properties.landTime"], + "required": true, + "destKey": "land" + }, + { + "sourceKeys": ["properties.date", "properties.orderCompletedTime"], + "destKey": "date" + }, + { + "sourceKeys": ["properties.altord", "properties.alterOrderId"], + "destKey": "altord" + }, + { + "sourceKeys": "properties.currency", + "destKey": "cur" + }, + { + "sourceKeys": "properties.creditCardType", + "destKey": "cc" + }, + { + "sourceKeys": "properties.commReason", + "destKey": "commreason" + }, + { + "sourceKeys": "properties.isComm", + "destKey": "iscomm" + }, + { + "sourceKeys": "properties.consumed", + "destKey": "consumed" + }, + { + "sourceKeys": "properties.coupon", + "destKey": "coupon" + }, + { + "sourceKeys": ["properties.custId", "properties.customerId", "properties.userId"], + "destKey": "custid" + }, + { + "sourceKeys": ["properties.custScore", "properties.customerScore"], + "destKey": "custscore" + }, + { + "sourceKeys": ["properties.custStatus", "properties.customerStatus"], + "destKey": "custstatus" + }, + { + "sourceKeys": ["properties.dId", "properties.advertisingId"], + "destKey": "did" + }, + { + "sourceKeys": ["properties.disamt", "properties.discountAmout"], + "destKey": "disamt" + }, + { + "sourceKeys": ["properties.ordStatus", "properties.orderStatus"], + "destKey": "ordstatus" + }, + { + "sourceKeys": "properties.segment", + "destKey": "segment" + }, + { + "sourceKeys": "properties.shipcountry", + "destKey": "shipcountry" + }, + { + "sourceKeys": "properties.shipped", + "destKey": "shipped" + }, + { + "sourceKeys": ["properties.sitename", "properties.url", "context.page.url"], + "destKey": "sitename" + }, + { + "sourceKeys": "properties.storeId", + "destKey": "storeid" + }, + { + "sourceKeys": ["properties.storecat", "properties.storeCategory"], + "destKey": "storecat" + }, + { + "sourceKeys": "properties.currency", + "destKey": "cur" + } +] diff --git a/src/cdk/v2/destinations/rakuten/procWorkflow.yaml b/src/cdk/v2/destinations/rakuten/procWorkflow.yaml new file mode 100644 index 0000000000..b4dcacfa09 --- /dev/null +++ b/src/cdk/v2/destinations/rakuten/procWorkflow.yaml @@ -0,0 +1,39 @@ +bindings: + - name: EventType + path: ../../../../constants + - path: ../../bindings/jsontemplate + - name: defaultRequestConfig + path: ../../../../v0/util + - name: removeUndefinedAndNullValues + path: ../../../../v0/util + - path: ./utils + +steps: + - name: messageType + template: | + .message.type.toLowerCase(); + - name: validateInput + template: | + let messageType = $.outputs.messageType; + $.assert(messageType, "message Type is not present. Aborting"); + $.assert(messageType in {{$.EventType.([.TRACK])}}, "message type " + messageType + " is not supported"); + $.assertConfig(.destination.Config.mid, "Merchant ID is not present. Aborting"); + - name: prepareTrackPayload + condition: $.outputs.messageType === {{$.EventType.TRACK}} + template: | + const properties = $.constructProperties(.message); + const lineItems = $.constructLineItems(.message.properties) + $.context.payload = {...properties,...lineItems,xml:1,source:'rudderstack', mid:.destination.Config.mid} + $.context.payload = $.removeUndefinedAndNullValues($.context.payload); + + - name: buildResponse + template: | + const response = $.defaultRequestConfig(); + response.params = $.context.payload; + response.method = "GET"; + response.endpoint = "https://track.linksynergy.com/ep"; + response.headers = { + "accept": "application/json", + "content-type": "application/json" + }; + response diff --git a/src/cdk/v2/destinations/rakuten/utils.js b/src/cdk/v2/destinations/rakuten/utils.js new file mode 100644 index 0000000000..fe37455a57 --- /dev/null +++ b/src/cdk/v2/destinations/rakuten/utils.js @@ -0,0 +1,70 @@ +const { InstrumentationError } = require('@rudderstack/integrations-lib'); +const { isDefinedAndNotNull } = require('rudder-transformer-cdk/build/utils'); +const { + mappingConfig, + ConfigCategories, + productProperties, + requiredProductProperties, +} = require('./config'); +const { constructPayload } = require('../../../../v0/util'); + +/** + * This fucntion constructs payloads based upon mappingConfig for Track call type + * @param {*} message + * @returns + */ +const constructProperties = (message) => { + const payload = constructPayload(message, mappingConfig[ConfigCategories.TRACK.name]); + return payload; +}; + +/** + * This fucntion build the item level list + * @param {*} properties + * @returns + */ +const constructLineItems = (properties) => { + // Validate the existence and non-emptiness of the 'products' array in 'properties' + if (!Array.isArray(properties?.products) || properties.products.length === 0) { + throw new InstrumentationError('Either properties.product is not an array or is empty'); + } + + const { products } = properties; + const productList = {}; + + // Iterate over product properties to construct the payload + Object.keys(productProperties).forEach((property) => { + const propertyKey = productProperties[property]; + + // Extract values for the current property from the 'products' array + const values = products.map((product) => + isDefinedAndNotNull(product?.[propertyKey]) ? product[propertyKey] : '', + ); + + // Validate if a required property is missing + if (requiredProductProperties.includes(property) && values.includes('')) { + throw new InstrumentationError(`${propertyKey} is a required field. Aborting`); + } + + // Include property in the payload if values are non-empty + if (values.some((element) => element !== '')) { + productList[property] = values.join('|'); + } + }); + + // Map 'amountList' by evaluating 'amount' or deriving it from 'price' and 'quantity' + const amountList = products.map((product) => { + if (!product?.amount && !product?.price) { + throw new InstrumentationError('Either amount or price is required for every product'); + } + + if (product.price) { + return product.quantity * product.price * 100; + } + return product.amount * 100; + }); + productList.amtlist = amountList.join('|'); + return productList; +}; + +module.exports = { constructProperties, constructLineItems }; diff --git a/src/cdk/v2/destinations/rakuten/utils.test.js b/src/cdk/v2/destinations/rakuten/utils.test.js new file mode 100644 index 0000000000..9cc7f5fd4c --- /dev/null +++ b/src/cdk/v2/destinations/rakuten/utils.test.js @@ -0,0 +1,117 @@ +const { constructLineItems } = require('./utils'); +describe('constructLineItems', () => { + it('should return a non-empty object when given a valid properties object with at least one product', () => { + const properties = { + products: [ + { + name: 'Product 1', + sku: 'sku_1', + price: 10, + quantity: 2, + amount: 20, + }, + ], + }; + const result = constructLineItems(properties); + const expectedObj = { + namelist: 'Product 1', + skulist: 'sku_1', + qlist: '2', + amtlist: '2000', + }; + expect(result).toEqual(expectedObj); + }); + + it('should include all mapped properties in the returned object when present in at least one product', () => { + const properties = { + products: [ + { + name: 'Product 1', + category: 'Category 1', + sku: 'sku_1', + brand: 'Brand 1', + price: 10, + quantity: 2, + amount: 20, + }, + ], + }; + + const result = constructLineItems(properties); + + const expectedObj = { + namelist: 'Product 1', + catlist: 'Category 1', + skulist: 'sku_1', + brandlist: 'Brand 1', + qlist: '2', + amtlist: '2000', + }; + expect(result).toEqual(expectedObj); + }); + + it('should include amtlist property in the returned object with calculated values', () => { + const properties = { + products: [ + { + name: 'Product 1', + sku: 'sku_1', + price: 10, + quantity: 2, + }, + { + name: 'Product 2', + sku: 'sku_2', + price: 5, + quantity: 3, + }, + ], + }; + + const result = constructLineItems(properties); + + expect(result).toHaveProperty('amtlist'); + expect(result.amtlist).toBe('2000|1500'); + }); + + it('should throw an InstrumentationError when properties object is missing or has an empty products array', () => { + const properties = {}; + + expect(() => constructLineItems(properties)).toThrow( + 'Either properties.product is not an array or is empty', + ); + + properties.products = []; + + expect(() => constructLineItems(properties)).toThrow( + 'Either properties.product is not an array or is empty', + ); + }); + it('should throw an InstrumentationError when a product is missing quantity property', () => { + const properties = { + products: [ + { + name: 'Product 1', + sku: 'sku_1', + amount: '1234', + }, + ], + }; + expect(() => constructLineItems(properties)).toThrow('quantity is a required field. Aborting'); + }); + it('should throw an InstrumentationError when a product is missing both amount and price properties', () => { + const properties = { + products: [ + { + name: 'Product 1', + sku: 'sku_1', + quantity: 2, + }, + ], + }; + + expect(() => constructLineItems(properties)).toThrow( + 'Either amount or price is required for every product', + ); + }); +}); diff --git a/src/cdk/v2/destinations/the_trade_desk/config.js b/src/cdk/v2/destinations/the_trade_desk/config.js index 9455c818fd..828bab3714 100644 --- a/src/cdk/v2/destinations/the_trade_desk/config.js +++ b/src/cdk/v2/destinations/the_trade_desk/config.js @@ -1,8 +1,11 @@ -const SUPPORTED_EVENT_TYPE = 'record'; +const { getMappingConfig } = require('../../../../v0/util'); + +const SUPPORTED_EVENT_TYPE = ['record', 'track']; const ACTION_TYPES = ['insert', 'delete']; const DATA_PROVIDER_ID = 'rudderstack'; // ref:- https://partner.thetradedesk.com/v3/portal/data/doc/DataEnvironments +// api ref:- https://partner.thetradedesk.com/v3/portal/data/doc/post-data-advertiser-external const DATA_SERVERS_BASE_ENDPOINTS_MAP = { apac: 'https://sin-data.adsrvr.org', tokyo: 'https://tok-data.adsrvr.org', @@ -12,10 +15,66 @@ const DATA_SERVERS_BASE_ENDPOINTS_MAP = { china: 'https://data-cn2.adsrvr.cn', }; +// ref:- https://partner.thetradedesk.com/v3/portal/data/doc/DataConversionEventsApi +const REAL_TIME_CONVERSION_ENDPOINT = 'https://insight.adsrvr.org/track/realtimeconversion'; + +const CONVERSION_SUPPORTED_ID_TYPES = [ + 'TDID', + 'IDFA', + 'AAID', + 'DAID', + 'NAID', + 'IDL', + 'EUID', + 'UID2', +]; + +const ECOMM_EVENT_MAP = { + 'product added': { + event: 'addtocart', + rootLevelPriceSupported: true, + }, + 'order completed': { + event: 'purchase', + itemsArray: true, + revenueFieldSupported: true, + }, + 'product viewed': { + event: 'viewitem', + rootLevelPriceSupported: true, + }, + 'checkout started': { + event: 'startcheckout', + itemsArray: true, + revenueFieldSupported: true, + }, + 'cart viewed': { + event: 'viewcart', + itemsArray: true, + }, + 'product added to wishlist': { + event: 'wishlistitem', + rootLevelPriceSupported: true, + }, +}; + +const CONFIG_CATEGORIES = { + COMMON_CONFIGS: { name: 'TTDCommonConfig' }, + ITEM_CONFIGS: { name: 'TTDItemConfig' }, +}; + +const MAPPING_CONFIG = getMappingConfig(CONFIG_CATEGORIES, __dirname); + module.exports = { SUPPORTED_EVENT_TYPE, ACTION_TYPES, DATA_PROVIDER_ID, MAX_REQUEST_SIZE_IN_BYTES: 2500000, DATA_SERVERS_BASE_ENDPOINTS_MAP, + CONVERSION_SUPPORTED_ID_TYPES, + CONFIG_CATEGORIES, + COMMON_CONFIGS: MAPPING_CONFIG[CONFIG_CATEGORIES.COMMON_CONFIGS.name], + ITEM_CONFIGS: MAPPING_CONFIG[CONFIG_CATEGORIES.ITEM_CONFIGS.name], + ECOMM_EVENT_MAP, + REAL_TIME_CONVERSION_ENDPOINT, }; diff --git a/src/cdk/v2/destinations/the_trade_desk/data/TTDCommonConfig.json b/src/cdk/v2/destinations/the_trade_desk/data/TTDCommonConfig.json new file mode 100644 index 0000000000..848d16b405 --- /dev/null +++ b/src/cdk/v2/destinations/the_trade_desk/data/TTDCommonConfig.json @@ -0,0 +1,22 @@ +[ + { + "destKey": "currency", + "sourceKeys": "properties.currency" + }, + { + "destKey": "client_ip", + "sourceKeys": ["context.ip", "request_ip"] + }, + { + "destKey": "referrer_url", + "sourceKeys": "context.page.referrer" + }, + { + "destKey": "imp", + "sourceKeys": "messageId" + }, + { + "destKey": "order_id", + "sourceKeys": "properties.order_id" + } +] diff --git a/src/cdk/v2/destinations/the_trade_desk/data/TTDItemConfig.json b/src/cdk/v2/destinations/the_trade_desk/data/TTDItemConfig.json new file mode 100644 index 0000000000..45aeb711ab --- /dev/null +++ b/src/cdk/v2/destinations/the_trade_desk/data/TTDItemConfig.json @@ -0,0 +1,22 @@ +[ + { + "destKey": "item_code", + "sourceKeys": ["product_id", "sku"] + }, + { + "destKey": "name", + "sourceKeys": "name" + }, + { + "destKey": "qty", + "sourceKeys": "quantity" + }, + { + "destKey": "price", + "sourceKeys": "price" + }, + { + "destKey": "cat", + "sourceKeys": "category_id" + } +] diff --git a/src/cdk/v2/destinations/the_trade_desk/rtWorkflow.yaml b/src/cdk/v2/destinations/the_trade_desk/rtWorkflow.yaml index 0c8963e0ac..ee05ecd967 100644 --- a/src/cdk/v2/destinations/the_trade_desk/rtWorkflow.yaml +++ b/src/cdk/v2/destinations/the_trade_desk/rtWorkflow.yaml @@ -1,17 +1,47 @@ bindings: - - name: processRouterDest - path: ./utils + - name: EventType + path: ../../../../constants + - name: processRecordInputs + path: ./transformRecord + - name: processConversionInputs + path: ./transformConversion + - name: handleRtTfSingleEventError + path: ../../../../v0/util/index + - name: InstrumentationError + path: '@rudderstack/integrations-lib' steps: - - name: validateInput + - name: validateCommonConfig + description: | + validate common config for first party data and realtime conversion flow template: | - $.assert(Array.isArray(^) && ^.length > 0, "Invalid event array") const config = ^[0].destination.Config - $.assertConfig(config.audienceId, "Segment name is not present. Aborting") $.assertConfig(config.advertiserId, "Advertiser ID is not present. Aborting") - $.assertConfig(config.advertiserSecretKey, "Advertiser Secret Key is not present. Aborting") - config.ttlInDays ? $.assertConfig(config.ttlInDays >=0 && config.ttlInDays <= 180, "TTL is out of range. Allowed values are 0 to 180 days") - - name: processRouterDest + - name: validateInput + template: | + $.assert(Array.isArray(^) && ^.length > 0, "Invalid event array") + + - name: processRecordEvents + template: | + $.processRecordInputs(^.{.message.type === $.EventType.RECORD}[], ^[0].destination) + + - name: processConversionEvents + template: | + $.processConversionInputs(^.{.message.type === $.EventType.TRACK}[]) + + - name: failOtherEvents + template: | + const otherEvents = ^.{.message.type !== $.EventType.TRACK && .message.type !== $.EventType.RECORD}[] + let failedEvents = otherEvents.map( + function(event) { + const error = new $.InstrumentationError("Event type " + event.message.type + " is not supported"); + $.handleRtTfSingleEventError(event, error, {}) + } + ) + + failedEvents ?? [] + + - name: finalPayload template: | - $.processRouterDest(^) + [...$.outputs.processRecordEvents, ...$.outputs.processConversionEvents, ...$.outputs.failOtherEvents] diff --git a/src/cdk/v2/destinations/the_trade_desk/transformConversion.js b/src/cdk/v2/destinations/the_trade_desk/transformConversion.js new file mode 100644 index 0000000000..b282c43151 --- /dev/null +++ b/src/cdk/v2/destinations/the_trade_desk/transformConversion.js @@ -0,0 +1,98 @@ +const { InstrumentationError, ConfigurationError } = require('@rudderstack/integrations-lib'); +const { + defaultRequestConfig, + simpleProcessRouterDest, + defaultPostRequestConfig, + removeUndefinedAndNullValues, +} = require('../../../../v0/util'); +const { EventType } = require('../../../../constants'); +const { REAL_TIME_CONVERSION_ENDPOINT } = require('./config'); +const { + prepareFromConfig, + prepareCommonPayload, + getRevenue, + prepareItemsPayload, + getAdvertisingId, + prepareCustomProperties, + populateEventName, + getDataProcessingOptions, + getPrivacySetting, + enrichTrackPayload, +} = require('./utils'); + +const responseBuilder = (payload) => { + const response = defaultRequestConfig(); + response.endpoint = REAL_TIME_CONVERSION_ENDPOINT; + response.method = defaultPostRequestConfig.requestMethod; + response.body.JSON = payload; + return response; +}; + +const validateInputAndConfig = (message, destination) => { + const { Config } = destination; + if (!Config.trackerId) { + throw new ConfigurationError('Tracking Tag ID is not present. Aborting'); + } + + if (!message.type) { + throw new InstrumentationError('Event type is required'); + } + + const messageType = message.type.toLowerCase(); + if (messageType !== EventType.TRACK) { + throw new InstrumentationError(`Event type "${messageType}" is not supported`); + } + + if (!message.event) { + throw new InstrumentationError('Event name is not present. Aborting.'); + } +}; + +const prepareTrackPayload = (message, destination) => { + const configPayload = prepareFromConfig(destination); + const commonPayload = prepareCommonPayload(message); + // prepare items array + const items = prepareItemsPayload(message); + const { id, type } = getAdvertisingId(message); + // get td1-td10 custom properties + const customProperties = prepareCustomProperties(message, destination); + const eventName = populateEventName(message, destination); + const value = getRevenue(message); + let payload = { + ...configPayload, + ...commonPayload, + event_name: eventName, + value, + items, + adid: id, + adid_type: type, + ...customProperties, + data_processing_option: getDataProcessingOptions(message), + privacy_settings: getPrivacySetting(message), + }; + + payload = enrichTrackPayload(message, payload); + return { data: [removeUndefinedAndNullValues(payload)] }; +}; + +const trackResponseBuilder = (message, destination) => { + const payload = prepareTrackPayload(message, destination); + return responseBuilder(payload); +}; + +const processEvent = (message, destination) => { + validateInputAndConfig(message, destination); + return trackResponseBuilder(message, destination); +}; + +const process = (event) => processEvent(event.message, event.destination); + +const processConversionInputs = async (inputs, reqMetadata) => { + if (!inputs || inputs.length === 0) { + return []; + } + const respList = await simpleProcessRouterDest(inputs, process, reqMetadata); + return respList; +}; + +module.exports = { processConversionInputs }; diff --git a/src/cdk/v2/destinations/the_trade_desk/transformRecord.js b/src/cdk/v2/destinations/the_trade_desk/transformRecord.js new file mode 100644 index 0000000000..d571e11b7a --- /dev/null +++ b/src/cdk/v2/destinations/the_trade_desk/transformRecord.js @@ -0,0 +1,113 @@ +const { InstrumentationError, ConfigurationError } = require('@rudderstack/integrations-lib'); +const { BatchUtils } = require('@rudderstack/workflow-engine'); +const { + defaultPostRequestConfig, + defaultRequestConfig, + getSuccessRespEvents, + removeUndefinedAndNullValues, + handleRtTfSingleEventError, + isEmptyObject, +} = require('../../../../v0/util'); +const { getTTLInMin, getFirstPartyEndpoint } = require('./utils'); +const tradeDeskConfig = require('./config'); + +const { DATA_PROVIDER_ID } = tradeDeskConfig; + +const validateConfig = (config) => { + if (!config.advertiserSecretKey) { + throw new ConfigurationError('Advertiser Secret Key is not present. Aborting'); + } + + if (config.ttlInDays && !(config.ttlInDays >= 0 && config.ttlInDays <= 180)) { + throw new ConfigurationError('TTL is out of range. Allowed values are 0 to 180 days'); + } + + if (!config.audienceId) { + throw new ConfigurationError('Segment name/Audience ID is not present. Aborting'); + } +}; + +const responseBuilder = (items, config) => { + const { advertiserId, dataServer } = config; + + const payload = { DataProviderId: DATA_PROVIDER_ID, AdvertiserId: advertiserId, Items: items }; + + const response = defaultRequestConfig(); + response.endpoint = getFirstPartyEndpoint(dataServer); + response.method = defaultPostRequestConfig.requestMethod; + response.body.JSON = removeUndefinedAndNullValues(payload); + return response; +}; + +const batchResponseBuilder = (items, config) => { + const response = []; + const itemsChunks = BatchUtils.chunkArrayBySizeAndLength(items, { + // TODO: use destructuring at the top of file once proper 'mocking' is implemented. + // eslint-disable-next-line unicorn/consistent-destructuring + maxSizeInBytes: tradeDeskConfig.MAX_REQUEST_SIZE_IN_BYTES, + }); + + itemsChunks.items.forEach((chunk) => { + response.push(responseBuilder(chunk, config)); + }); + + return response; +}; + +const processRecordInputs = (inputs, destination) => { + const { Config } = destination; + const items = []; + const successMetadata = []; + const errorResponseList = []; + + if (!inputs || inputs.length === 0) { + return []; + } + + validateConfig(Config); + + const invalidActionTypeError = new InstrumentationError( + 'Invalid action type. You can only add or remove IDs from the audience/segment', + ); + const emptyFieldsError = new InstrumentationError('`fields` cannot be empty'); + inputs.forEach((input) => { + const { fields, action } = input.message; + const isInsertOrDelete = action === 'insert' || action === 'delete'; + + if (!isInsertOrDelete) { + errorResponseList.push(handleRtTfSingleEventError(input, invalidActionTypeError, {})); + return; + } + + if (isEmptyObject(fields)) { + errorResponseList.push(handleRtTfSingleEventError(input, emptyFieldsError, {})); + return; + } + + successMetadata.push(input.metadata); + const data = [ + { + Name: Config.audienceId, + TTLInMinutes: action === 'insert' ? getTTLInMin(Config.ttlInDays) : 0, + }, + ]; + + Object.keys(fields).forEach((id) => { + const value = fields[id]; + if (value) { + // adding only non empty ID's + items.push({ [id]: value, Data: data }); + } + }); + }); + + const payloads = batchResponseBuilder(items, Config); + if (payloads.length === 0) { + return errorResponseList; + } + + const response = getSuccessRespEvents(payloads, successMetadata, destination, true); + return [response, ...errorResponseList]; +}; + +module.exports = { processRecordInputs }; diff --git a/src/cdk/v2/destinations/the_trade_desk/utils.js b/src/cdk/v2/destinations/the_trade_desk/utils.js index 632442d74e..f51d8dc3ff 100644 --- a/src/cdk/v2/destinations/the_trade_desk/utils.js +++ b/src/cdk/v2/destinations/the_trade_desk/utils.js @@ -1,23 +1,37 @@ const lodash = require('lodash'); +const get = require('get-value'); const CryptoJS = require('crypto-js'); const { InstrumentationError, AbortedError } = require('@rudderstack/integrations-lib'); -const { BatchUtils } = require('@rudderstack/workflow-engine'); const { - defaultPostRequestConfig, - defaultRequestConfig, - getSuccessRespEvents, - removeUndefinedAndNullValues, - handleRtTfSingleEventError, - isEmptyObject, + constructPayload, + getHashFromArray, + isDefinedAndNotNull, + isAppleFamily, + getIntegrationsObj, + extractCustomFields, + generateExclusionList, } = require('../../../../v0/util'); -const tradeDeskConfig = require('./config'); - -const { DATA_PROVIDER_ID, DATA_SERVERS_BASE_ENDPOINTS_MAP } = tradeDeskConfig; +const { + DATA_SERVERS_BASE_ENDPOINTS_MAP, + CONVERSION_SUPPORTED_ID_TYPES, + COMMON_CONFIGS, + ITEM_CONFIGS, + ECOMM_EVENT_MAP, +} = require('./config'); -const ttlInMin = (ttl) => parseInt(ttl, 10) * 1440; +const getTTLInMin = (ttl) => parseInt(ttl, 10) * 1440; const getBaseEndpoint = (dataServer) => DATA_SERVERS_BASE_ENDPOINTS_MAP[dataServer]; const getFirstPartyEndpoint = (dataServer) => `${getBaseEndpoint(dataServer)}/data/advertiser`; +const prepareCommonPayload = (message) => constructPayload(message, COMMON_CONFIGS); +/** + * Generates a signature header for a given request using a secret key. + * + * @param {Object} request - The request object to generate the signature for. + * @param {string} secretKey - The secret key used to generate the signature. + * @returns {string} - The generated signature header. + * @throws {AbortedError} - If the secret key is missing. + */ const getSignatureHeader = (request, secretKey) => { if (!secretKey) { throw new AbortedError('Secret key is missing. Aborting'); @@ -27,92 +41,300 @@ const getSignatureHeader = (request, secretKey) => { return base; }; -const responseBuilder = (items, config) => { - const { advertiserId, dataServer } = config; +const prepareFromConfig = (destination) => ({ + tracker_id: destination.Config?.trackerId, + adv: destination.Config?.advertiserId, +}); - const payload = { DataProviderId: DATA_PROVIDER_ID, AdvertiserId: advertiserId, Items: items }; +/** + * Calculates the revenue based on the given message. + * + * @param {Object} message - The message object containing the event and properties. + * @returns {number} - The calculated revenue. + * @throws {InstrumentationError} - If the event is 'Order Completed' and revenue is not provided. + */ +const getRevenue = (message) => { + const { event, properties } = message; + let revenue = properties?.value; + const eventsMapInfo = ECOMM_EVENT_MAP[event.toLowerCase()]; + if (eventsMapInfo?.rootLevelPriceSupported) { + const { price, quantity = 1 } = properties; + if (price && !Number.isNaN(parseFloat(price)) && !Number.isNaN(parseInt(quantity, 10))) { + revenue = parseFloat(price) * parseInt(quantity, 10); + } + } else if (eventsMapInfo?.revenueFieldSupported) { + revenue = properties?.revenue || revenue; + if (event.toLowerCase() === 'order completed' && !revenue) { + throw new InstrumentationError('value is required for `Order Completed` event'); + } + } - const response = defaultRequestConfig(); - response.endpoint = getFirstPartyEndpoint(dataServer); - response.method = defaultPostRequestConfig.requestMethod; - response.body.JSON = removeUndefinedAndNullValues(payload); - return response; + return revenue; }; -const batchResponseBuilder = (items, config) => { - const response = []; - const itemsChunks = BatchUtils.chunkArrayBySizeAndLength(items, { - // TODO: use destructuring at the top of file once proper 'mocking' is implemented. - // eslint-disable-next-line unicorn/consistent-destructuring - maxSizeInBytes: tradeDeskConfig.MAX_REQUEST_SIZE_IN_BYTES, - }); +/** + * Generates items from properties of a given message. + * + * @param {Object} message - The message object containing properties. + * @returns {Array} - An array of items generated from the properties. + */ +const prepareItemsFromProperties = (message) => { + const { properties } = message; + const items = []; + const item = constructPayload(properties, ITEM_CONFIGS); + items.push(item); + return items; +}; - itemsChunks.items.forEach((chunk) => { - response.push(responseBuilder(chunk, config)); +/** + * Generates items payload from products. + * + * @param {Object} message - The message object. + * @returns {Array} - The items payload. + */ +const prepareItemsFromProducts = (message) => { + const products = get(message, 'properties.products'); + const items = []; + products.forEach((product) => { + const item = constructPayload(product, ITEM_CONFIGS); + const itemExclusionList = generateExclusionList(ITEM_CONFIGS); + extractCustomFields(product, item, 'root', itemExclusionList); + items.push(item); }); + return items; +}; - return response; +/** + * Generates items payload from root properties or products. + * + * @param {Object} message - The message object containing event and properties. + * @returns {Array} - The array of items payload. + */ +const prepareItemsPayload = (message) => { + const { event } = message; + let items; + const eventMapInfo = ECOMM_EVENT_MAP[event.toLowerCase()]; + if (eventMapInfo?.itemsArray) { + // if event is one of the supported ecommerce events and products array is present + items = prepareItemsFromProducts(message); + } else if (eventMapInfo) { + // if event is one of the supported ecommerce events and products array is not present + items = prepareItemsFromProperties(message); + } + return items; }; -const processRecordInputs = (inputs, destination) => { - const { Config } = destination; - const items = []; - const successMetadata = []; - const errorResponseList = []; +/** + * Retrieves the device advertising ID and type based on the provided message. + * + * @param {Object} message - The message object containing the context. + * @returns {Object} - An object containing the device advertising ID and type. + */ +const getDeviceAdvertisingId = (message) => { + const { context } = message; + const deviceId = context?.device?.advertisingId; + const osName = context?.os?.name?.toLowerCase(); - const invalidActionTypeError = new InstrumentationError('Invalid action type'); - const emptyFieldsError = new InstrumentationError('Fields cannot be empty'); + let type; + switch (osName) { + case 'android': + type = 'AAID'; + break; + case 'windows': + type = 'NAID'; + break; + default: + type = isAppleFamily(osName) ? 'IDFA' : undefined; + break; + } - inputs.forEach((input) => { - const { fields, action } = input.message; - const isInsertOrDelete = action === 'insert' || action === 'delete'; + return { deviceId, type }; +}; - if (!isInsertOrDelete) { - errorResponseList.push(handleRtTfSingleEventError(input, invalidActionTypeError, {})); - return; - } +/** + * Retrieves the external ID object from the given message context. + * + * @param {Object} message - The message object containing the context. + * @returns {Object|undefined} - The external ID object, or undefined if not found. + */ +const getDestinationExternalIDObject = (message) => { + const { context } = message; + const externalIdArray = context?.externalId || []; - if (isEmptyObject(fields)) { - errorResponseList.push(handleRtTfSingleEventError(input, emptyFieldsError, {})); - return; - } + let externalIdObj; - successMetadata.push(input.metadata); - const data = [ - { - Name: Config.audienceId, - TTLInMinutes: action === 'insert' ? ttlInMin(Config.ttlInDays) : 0, - }, - ]; + if (Array.isArray(externalIdArray)) { + externalIdObj = externalIdArray.find( + (extIdObj) => + CONVERSION_SUPPORTED_ID_TYPES.includes(extIdObj?.type?.toUpperCase()) && extIdObj?.id, + ); + } + return externalIdObj; +}; + +/** + * Retrieves the advertising ID and type from the given message. + * + * @param {Object} message - The message object containing the context. + * @returns {Object} - An object containing the advertising ID and type. + * If the advertising ID and type are found in the device context, they are returned. + * If not, the external ID object is checked and if found, its ID and type are returned. + * If neither the device context nor the external ID object contain the required information, + * an object with null values for ID and type is returned. + */ +const getAdvertisingId = (message) => { + const { deviceId, type } = getDeviceAdvertisingId(message); + if (deviceId && type) { + return { id: deviceId, type }; + } + const externalIdObj = getDestinationExternalIDObject(message); + if (externalIdObj?.id && externalIdObj?.type) { + return { id: externalIdObj.id, type: externalIdObj.type.toUpperCase() }; + } + + return { id: null, type: null }; +}; - Object.keys(fields).forEach((id) => { - const value = fields[id]; +/** + * Prepares custom properties (td1-td10) for a given message and destination. + * + * @param {object} message - The message object. + * @param {object} destination - The destination object. + * @returns {object} - The prepared payload object. + */ +const prepareCustomProperties = (message, destination) => { + const { customProperties } = destination.Config; + const payload = {}; + if (customProperties) { + customProperties.forEach((customProperty) => { + const { rudderProperty, tradeDeskProperty } = customProperty; + const value = get(message, rudderProperty); if (value) { - // adding only non empty ID's - items.push({ [id]: value, Data: data }); + payload[tradeDeskProperty] = value; + // unset the rudder property from the message, since it is already mapped to a trade desk property + lodash.unset(message, rudderProperty); } }); - }); + } + return payload; +}; + +/** + * Retrieves the event name based on the provided message and destination. + * + * @param {object} message - The message object containing the event. + * @param {object} destination - The destination object containing the events mapping configuration. + * @returns {string} - The event name. + */ +const populateEventName = (message, destination) => { + let eventName; + const { event } = message; + const { eventsMapping } = destination.Config; + + // if event is mapped on dashboard, use the mapped event name + if (Array.isArray(eventsMapping) && eventsMapping.length > 0) { + const keyMap = getHashFromArray(eventsMapping, 'from', 'to'); + eventName = keyMap[event.toLowerCase()]; + } - const payloads = batchResponseBuilder(items, Config); - if (payloads.length === 0) { - return errorResponseList; + if (eventName) { + return eventName; } - const response = getSuccessRespEvents(payloads, successMetadata, destination, true); - return [response, ...errorResponseList]; + // if event is one of the supported ecommerce events, use the mapped trade desk event name + const eventMapInfo = ECOMM_EVENT_MAP[event.toLowerCase()]; + if (isDefinedAndNotNull(eventMapInfo)) { + return eventMapInfo.event; + } + + // else return the event name as it is + return event; }; -const processRouterDest = (inputs) => { - const respList = []; - const { destination } = inputs[0]; - const groupedInputs = lodash.groupBy(inputs, (input) => input.message.type); - if (groupedInputs.record) { - const transformedRecordEvent = processRecordInputs(groupedInputs.record, destination); - respList.push(...transformedRecordEvent); +/** + * Retrieves the data processing options based on the provided message. + * + * @param {string} message - The message to process. + * @throws {InstrumentationError} - Throws an error if the region is not supported, if no policies are provided, if multiple policies are provided, or if the policy is not supported. + * @returns {Object} - The data processing options, including the policies and region. + */ +const getDataProcessingOptions = (message) => { + const integrationObj = getIntegrationsObj(message, 'THE_TRADE_DESK') || {}; + let { policies } = integrationObj; + const { region } = integrationObj; + let dataProcessingOptions; + + if (region && !region.toLowerCase().startsWith('us')) { + throw new InstrumentationError('Only US states are supported'); } - return respList; + if (!policies || (Array.isArray(policies) && policies.length === 0)) { + policies = ['LDU']; + } + + if (policies.length > 1) { + throw new InstrumentationError('Only one policy is allowed'); + } + + if (policies[0] !== 'LDU') { + throw new InstrumentationError('Only LDU policy is supported'); + } + + if (policies && region) { + dataProcessingOptions = { policies, region }; + } + + return dataProcessingOptions; }; -module.exports = { getSignatureHeader, processRouterDest }; +const getPrivacySetting = (message) => { + const integrationObj = getIntegrationsObj(message, 'THE_TRADE_DESK'); + return integrationObj?.privacy_settings; +}; + +/** + * Enriches the track payload with extra properties present in 'properties' other than the ones defined in TTDCommonConfig.json and TTDItemConfig.json + * + * @param {Object} message - The message object containing the event information. + * @param {Object} payload - The payload object to be enriched. + * @returns {Object} - The enriched payload object. + */ +const enrichTrackPayload = (message, payload) => { + let rawPayload = { ...payload }; + const eventsMapInfo = ECOMM_EVENT_MAP[message.event.toLowerCase()]; + // checking if event is an ecomm one and itemsArray/products support is not present. e.g Product Added event + if (eventsMapInfo && !eventsMapInfo.itemsArray) { + const itemExclusionList = generateExclusionList(ITEM_CONFIGS); + rawPayload = extractCustomFields(message, rawPayload, ['properties'], itemExclusionList); + } else if (eventsMapInfo) { + // for ecomm events with products array supports. e.g Order Completed event + rawPayload = extractCustomFields( + message, + rawPayload, + ['properties'], + ['products', 'revenue', 'value'], + ); + } else { + // for custom events + rawPayload = extractCustomFields(message, rawPayload, ['properties'], ['value']); + } + return rawPayload; +}; + +module.exports = { + getTTLInMin, + getFirstPartyEndpoint, + getSignatureHeader, + prepareFromConfig, + getRevenue, + prepareCommonPayload, + prepareItemsPayload, + getDeviceAdvertisingId, + getDestinationExternalIDObject, + getAdvertisingId, + prepareCustomProperties, + populateEventName, + getDataProcessingOptions, + getPrivacySetting, + enrichTrackPayload, +}; diff --git a/src/cdk/v2/destinations/the_trade_desk/utils.test.js b/src/cdk/v2/destinations/the_trade_desk/utils.test.js index 81fd7cf17d..029c3004ae 100644 --- a/src/cdk/v2/destinations/the_trade_desk/utils.test.js +++ b/src/cdk/v2/destinations/the_trade_desk/utils.test.js @@ -1,5 +1,16 @@ -const { AbortedError } = require('@rudderstack/integrations-lib'); -const { getSignatureHeader } = require('./utils'); +const { AbortedError, InstrumentationError } = require('@rudderstack/integrations-lib'); +const { + getSignatureHeader, + getRevenue, + getDeviceAdvertisingId, + getDestinationExternalIDObject, + getAdvertisingId, + prepareCustomProperties, + populateEventName, + getDataProcessingOptions, + getPrivacySetting, + enrichTrackPayload, +} = require('./utils'); describe('getSignatureHeader', () => { it('should calculate the signature header for a valid request and secret key', () => { @@ -47,3 +58,612 @@ describe('getSignatureHeader', () => { }).toThrow(AbortedError); }); }); + +describe('getRevenue', () => { + it('should return revenue value from message properties for custom events', () => { + const message = { + event: 'customEvent', + properties: { + value: 100, + }, + }; + const result = getRevenue(message); + expect(result).toBe(100); + }); + + it('should calculate revenue based on price and quantity from message properties if ecomm event is supported for price calculation', () => { + const message = { + event: 'Product Added', + properties: { + price: 10, + quantity: 5, + }, + }; + const result = getRevenue(message); + expect(result).toBe(50); + }); + + it('should return revenue value from message properties if ecomm event is supported for revenue calculation', () => { + const message = { + event: 'Order Completed', + properties: { + revenue: 200, + }, + }; + const result = getRevenue(message); + expect(result).toBe(200); + }); + + it('should return default revenue value from properties.value for ecomm events', () => { + let message = { + event: 'Product Added', + properties: { + price: '', + value: 200, + }, + }; + let result = getRevenue(message); + expect(result).toBe(200); + + message = { + event: 'Order Completed', + properties: { + value: 200, + }, + }; + result = getRevenue(message); + expect(result).toBe(200); + }); + + it('should throw an Instrumentation error if revenue is missing for `Order Completed` event', () => { + const message = { + event: 'Order Completed', + properties: {}, + }; + expect(() => { + getRevenue(message); + }).toThrow(InstrumentationError); + }); +}); + +describe('getDeviceAdvertisingId', () => { + it('should return an object with deviceId and type properties when context.device.advertisingId and context.os.name are present', () => { + let message = { + context: { + device: { + advertisingId: '123456789', + }, + os: { + name: 'android', + }, + }, + }; + let result = getDeviceAdvertisingId(message); + expect(result).toEqual({ deviceId: '123456789', type: 'AAID' }); + + message = { + context: { + device: { + advertisingId: '123456789', + }, + os: { + name: 'ios', + }, + }, + }; + result = getDeviceAdvertisingId(message); + expect(result).toEqual({ deviceId: '123456789', type: 'IDFA' }); + + message = { + context: { + device: { + advertisingId: '123456789', + }, + os: { + name: 'windows', + }, + }, + }; + result = getDeviceAdvertisingId(message); + expect(result).toEqual({ deviceId: '123456789', type: 'NAID' }); + }); + + it('should return an object with undefined type property when osName is not "android", "windows", or an Apple OS', () => { + const message = { + context: { + device: { + advertisingId: '123456789', + }, + os: { + name: 'linux', + }, + }, + }; + const result = getDeviceAdvertisingId(message); + expect(result).toEqual({ deviceId: '123456789', type: undefined }); + }); + + it('should return an object with undefined deviceId and type properties when context is undefined', () => { + let message = {}; + let result = getDeviceAdvertisingId(message); + expect(result).toEqual({ deviceId: undefined, type: undefined }); + + message = { + context: {}, + }; + result = getDeviceAdvertisingId(message); + expect(result).toEqual({ deviceId: undefined, type: undefined }); + + message = { + context: { + device: {}, + }, + }; + result = getDeviceAdvertisingId(message); + expect(result).toEqual({ deviceId: undefined, type: undefined }); + }); +}); + +describe('getDestinationExternalIDObject', () => { + it('should return the external ID object when it exists in the message context', () => { + const message = { + context: { + externalId: [ + { id: '123', type: 'daid' }, + { id: '456', type: 'type123' }, + ], + }, + }; + const result = getDestinationExternalIDObject(message); + expect(result).toEqual({ id: '123', type: 'daid' }); + }); + + it('should return undefined when no external ID object exists in the message context', () => { + let message = { + context: { + externalId: [], + }, + }; + let result = getDestinationExternalIDObject(message); + expect(result).toBeUndefined(); + + message = { + context: {}, + }; + result = getDestinationExternalIDObject(message); + expect(result).toBeUndefined(); + }); + + it('should return the first matching external ID object in the array', () => { + const message = { + context: { + externalId: [ + { id: '', type: 'daid' }, + { id: '456', type: 'tdid' }, + { id: '789', type: 'UID2' }, + ], + }, + }; + const result = getDestinationExternalIDObject(message); + expect(result).toEqual({ id: '456', type: 'tdid' }); + }); +}); + +describe('getAdvertisingId', () => { + it('should return an object with the ID and type when the message contains a valid device advertising ID and OS type', () => { + const message = { + context: { + device: { + advertisingId: '1234567890', + }, + os: { + name: 'android', + }, + }, + }; + + const result = getAdvertisingId(message); + expect(result).toEqual({ id: '1234567890', type: 'AAID' }); + }); + + it('should return an object with the ID and type when the message contains a valid external ID object with a supported type', () => { + const message = { + context: { + externalId: [ + { + type: 'IDFA', + id: 'abcdefg', + }, + ], + }, + }; + + const result = getAdvertisingId(message); + expect(result).toEqual({ id: 'abcdefg', type: 'IDFA' }); + }); + + it('should return an object with undefined ID and type when the message contains a valid external ID object with an unsupported type', () => { + let message = { + context: { + externalId: [ + { + type: 'unsupported', + id: '1234567890', + }, + ], + }, + }; + + let result = getAdvertisingId(message); + expect(result).toEqual({ id: null, type: null }); + + message = { + context: { + device: { + advertisingId: '1234567890', + }, + }, + }; + + result = getAdvertisingId(message); + expect(result).toEqual({ id: null, type: null }); + }); + + it('should return an object with undefined ID and type when the message contains an external ID object with a supported type but no ID or missing externalId', () => { + let message = { + context: { + externalId: [ + { + type: 'IDFA', + }, + ], + }, + }; + let result = getAdvertisingId(message); + expect(result).toEqual({ id: null, type: null }); + + message = { + context: {}, + }; + result = getAdvertisingId(message); + expect(result).toEqual({ id: null, type: null }); + }); +}); + +describe('prepareCustomProperties', () => { + it('should return an empty object when customProperties is an empty array', () => { + const message = {}; + let destination = { Config: { customProperties: [] } }; + let result = prepareCustomProperties(message, destination); + expect(result).toEqual({}); + + destination = { Config: { customProperties: [{ rudderProperty: '', tradeDeskProperty: '' }] } }; + result = prepareCustomProperties(message, destination); + expect(result).toEqual({}); + + destination = { Config: { customProperties: undefined } }; + result = prepareCustomProperties(message, destination); + expect(result).toEqual({}); + }); + + it('should return an object with `tradeDeskProperty` as key and `rudderProperty` value as value when `rudderProperty` exists in message', () => { + const message = { + rudderProperty1: 'value1', + rudderProperty2: 'value2', + }; + const destination = { + Config: { + customProperties: [ + { + rudderProperty: 'rudderProperty1', + tradeDeskProperty: 'tradeDeskProperty1', + }, + { + rudderProperty: 'rudderProperty2', + tradeDeskProperty: 'tradeDeskProperty2', + }, + { + rudderProperty: 'rudderProperty3', + tradeDeskProperty: 'tradeDeskProperty3', + }, + ], + }, + }; + const result = prepareCustomProperties(message, destination); + expect(result).toEqual({ + tradeDeskProperty1: 'value1', + tradeDeskProperty2: 'value2', + }); + }); +}); + +describe('populateEventName', () => { + it('should return the eventName if it exists in the eventsMapping of destination.Config', () => { + const message = { event: 'someEvent' }; + const destination = { Config: { eventsMapping: [{ from: 'someEvent', to: 'mappedEvent' }] } }; + const result = populateEventName(message, destination); + expect(result).toBe('mappedEvent'); + }); + + it('should return the eventName if it exists in the ECOMM_EVENT_MAP', () => { + const message = { event: 'product added' }; + let destination = { Config: { eventsMapping: [{ from: 'someEvent', to: 'mappedEvent' }] } }; + let result = populateEventName(message, destination); + expect(result).toBe('addtocart'); + + destination = { Config: { eventsMapping: [] } }; + result = populateEventName(message, destination); + expect(result).toBe('addtocart'); + }); + + it('should return undefined if eventsMapping is an empty array', () => { + const message = { event: 'someEvent' }; + const destination = { Config: { eventsMapping: [] } }; + const result = populateEventName(message, destination); + expect(result).toBe('someEvent'); + }); +}); + +describe('getDataProcessingOptions', () => { + it('should return an object with policies and region when provided a integrationObj in message', () => { + const message = { + integrations: { + All: true, + THE_TRADE_DESK: { + policies: ['LDU'], + region: 'US-CO', + }, + }, + }; + const expected = { + policies: ['LDU'], + region: 'US-CO', + }; + const result = getDataProcessingOptions(message); + expect(result).toEqual(expected); + }); + + it('should throw an InstrumentationError if the region is not a US state', () => { + const message = { + integrations: { + All: true, + THE_TRADE_DESK: { + policies: ['LDU'], + region: 'EU-abc', + }, + }, + }; + expect(() => { + getDataProcessingOptions(message); + }).toThrow(InstrumentationError); + }); + + it('should throw an InstrumentationError if multiple policies are provided', () => { + const message = { + integrations: { + All: true, + THE_TRADE_DESK: { + policies: ['LDU', 'Policy2'], + region: 'US-CO', + }, + }, + }; + + expect(() => { + getDataProcessingOptions(message); + }).toThrow(InstrumentationError); + }); + + it('should throw an InstrumentationError if a policy other than `LDU` is provided', () => { + const message = { + integrations: { + All: true, + THE_TRADE_DESK: { + policies: ['Policy1'], + region: 'US-CO', + }, + }, + }; + + expect(() => { + getDataProcessingOptions(message); + }).toThrow(InstrumentationError); + }); + + it('should return an object with default policy `LDU` when policies are not provided', () => { + const message = { + integrations: { + All: true, + THE_TRADE_DESK: { + policies: [], + region: 'US-CO', + }, + }, + }; + + const expected = { + policies: ['LDU'], + region: 'US-CO', + }; + + expect(getDataProcessingOptions(message)).toEqual(expected); + }); + + it('should handle empty cases', () => { + let message = { + integrations: { + All: true, + THE_TRADE_DESK: {}, + }, + }; + + expect(getDataProcessingOptions(message)).toBeUndefined(); + + message = { + integrations: { + All: true, + }, + }; + + expect(getDataProcessingOptions(message)).toBeUndefined(); + + message = { + integrations: { + All: true, + THE_TRADE_DESK: { region: 'US-CO' }, + }, + }; + + expect(getDataProcessingOptions(message)).toEqual({ policies: ['LDU'], region: 'US-CO' }); + }); +}); + +describe('getPrivacySetting', () => { + it('should return the privacy settings object when it exists in the integration object', () => { + const message = { + integrations: { + All: true, + THE_TRADE_DESK: { + privacy_settings: [ + { + privacy_type: 'GDPR', + is_applicable: 1, + consent_string: 'ok', + }, + ], + }, + }, + }; + const expected = [ + { + privacy_type: 'GDPR', + is_applicable: 1, + consent_string: 'ok', + }, + ]; + const result = getPrivacySetting(message); + expect(result).toEqual(expected); + }); + + it('should return null when the privacy settings object does not exist in the integration object', () => { + let message = { integrations: {} }; + expect(getPrivacySetting(message)).toBeUndefined(); + + message = { integrations: { THE_TRADE_DESK: {} } }; + expect(getPrivacySetting(message)).toBeUndefined(); + + message = { integrations: { THE_TRADE_DESK: { privacy_settings: null } } }; + expect(getPrivacySetting(message)).toBeNull(); + }); +}); + +describe('enrichTrackPayload', () => { + it('should correctly enrich the payload with custom fields for ecomm events where product array is not supported', () => { + const message = { + event: 'Product Added', + properties: { + product_id: 'prd123', + sku: 'sku123', + brand: 'brand123', + property1: 'value1', + property2: 'value2', + }, + }; + const payload = { + items: [ + { + item_code: 'prd123', + }, + ], + property1: 'value1', + property2: 'value2', + }; + const expectedPayload = { + items: [ + { + item_code: 'prd123', + }, + ], + brand: 'brand123', + property1: 'value1', + property2: 'value2', + }; + + const result = enrichTrackPayload(message, payload); + expect(result).toEqual(expectedPayload); + }); + + it('should correctly enrich the payload with custom fields when the for ecomm events with products array support', () => { + const message = { + event: 'order completed', + properties: { + order_id: 'ord123', + total: 52.0, + subtotal: 45.0, + revenue: 50.0, + products: [{ product_id: 'prd123', sku: 'sku123', brand: 'brand123' }], + property1: 'value1', + property2: 'value2', + }, + }; + const payload = { + order_id: 'ord123', + value: 50.0, + items: [{ item_code: 'prd123', brand: 'brand123' }], + property1: 'value1', + property2: 'value2', + }; + const expectedPayload = { + order_id: 'ord123', + total: 52.0, + subtotal: 45.0, + value: 50.0, + items: [{ item_code: 'prd123', brand: 'brand123' }], + property1: 'value1', + property2: 'value2', + }; + + const result = enrichTrackPayload(message, payload); + + expect(result).toEqual(expectedPayload); + }); + + it('should return the enriched payload for custom event', () => { + const message = { + event: 'someEvent', + properties: { + order_id: 'ord123', + property1: 'value1', + property2: 'value2', + revenue: 10, + value: 11, + products: [ + { + product_id: 'prd123', + test: 'test', + }, + ], + }, + }; + const payload = { + order_id: 'ord123', + value: 11, + }; + const expectedPayload = { + order_id: 'ord123', + property1: 'value1', + property2: 'value2', + revenue: 10, + value: 11, + products: [ + { + product_id: 'prd123', + test: 'test', + }, + ], + }; + + const result = enrichTrackPayload(message, payload); + expect(result).toEqual(expectedPayload); + }); +}); diff --git a/src/constants/destinationCanonicalNames.js b/src/constants/destinationCanonicalNames.js index d1e199c9e2..d1b2b24de0 100644 --- a/src/constants/destinationCanonicalNames.js +++ b/src/constants/destinationCanonicalNames.js @@ -141,6 +141,17 @@ const DestCanonicalNames = { 'TWITTER_ADS', ], BRAZE: ['BRAZE', 'Braze', 'braze'], + THE_TRADE_DESK: [ + 'THE_TRADE_DESK', + 'the_trade_desk', + 'The_Trade_Desk', + 'The Trade Desk', + 'thetradedesk', + 'theTradeDesk', + 'TheTradeDesk', + 'the trade desk', + ], + INTERCOM: ['INTERCOM', 'intercom', 'Intercom'], }; module.exports = { DestHandlerMap, DestCanonicalNames }; diff --git a/src/constants/index.js b/src/constants/index.js index a8976bc07e..f8ca53a94c 100644 --- a/src/constants/index.js +++ b/src/constants/index.js @@ -6,6 +6,7 @@ const EventType = { ALIAS: 'alias', GROUP: 'group', RESET: 'reset', + RECORD: 'record', }; const Address = { diff --git a/src/util/error-extractor/index.ts b/src/util/error-extractor/index.ts index b8cfef4136..68ebac9aca 100644 --- a/src/util/error-extractor/index.ts +++ b/src/util/error-extractor/index.ts @@ -1,14 +1,17 @@ /* eslint-disable max-classes-per-file */ -import { MessageDetails, StatusCode } from "./types"; +import { MessageDetails, StatusCode, Stat } from "./types"; export class ErrorDetailsExtractor { status: StatusCode; messageDetails: MessageDetails; + stat : Stat + constructor (builder: ErrorDetailsExtractorBuilder) { this.status = builder.getStatus(); this.messageDetails = builder.getMessageDetails(); + this.stat = builder.getStat(); } } @@ -18,9 +21,11 @@ export class ErrorDetailsExtractorBuilder { messageDetails: MessageDetails; + stat: Stat; constructor() { this.status = 0; this.messageDetails = {}; + this.stat = {}; } setStatus(status: number): ErrorDetailsExtractorBuilder { @@ -28,6 +33,11 @@ export class ErrorDetailsExtractorBuilder { return this; } + setStat(stat: Record): ErrorDetailsExtractorBuilder { + this.stat = stat + return this; + } + /** * This means we need to set a message from a specific field that we see from the destination's response * @@ -69,6 +79,10 @@ export class ErrorDetailsExtractorBuilder { getStatus(): number { return this.status; } + + getStat(): Record { + return this.stat; + } getMessageDetails(): Record { return this.messageDetails; diff --git a/src/util/error-extractor/types.ts b/src/util/error-extractor/types.ts index 7c500177cb..ff7290b4ff 100644 --- a/src/util/error-extractor/types.ts +++ b/src/util/error-extractor/types.ts @@ -1,2 +1,3 @@ export type MessageDetails = Record; -export type StatusCode = number; \ No newline at end of file +export type StatusCode = number; +export type Stat = Record \ No newline at end of file diff --git a/src/v0/destinations/intercom/data/INTERCOMGroupConfig.json b/src/v0/destinations/intercom/data/INTERCOMGroupConfig.json index 174f828a56..6857c4e104 100644 --- a/src/v0/destinations/intercom/data/INTERCOMGroupConfig.json +++ b/src/v0/destinations/intercom/data/INTERCOMGroupConfig.json @@ -12,12 +12,12 @@ }, { "destKey": "plan", - "sourceKeys": ["traits.plan","context.traits.plan"], + "sourceKeys": ["traits.plan", "context.traits.plan"], "required": false }, { "destKey": "size", - "sourceKeys": ["traits.size","context.traits.size"], + "sourceKeys": ["traits.size", "context.traits.size"], "metadata": { "type": "toNumber" }, @@ -31,12 +31,12 @@ }, { "destKey": "industry", - "sourceKeys": ["traits.industry","context.traits.industry"], + "sourceKeys": ["traits.industry", "context.traits.industry"], "required": false }, { "destKey": "monthly_spend", - "sourceKeys": ["traits.monthlySpend","context.traits.monthlySpend"], + "sourceKeys": ["traits.monthlySpend", "context.traits.monthlySpend"], "metadata": { "type": "toNumber" }, @@ -44,7 +44,7 @@ }, { "destKey": "remote_created_at", - "sourceKeys": ["traits.remoteCreatedAt","context.traits.remoteCreatedAt"], + "sourceKeys": ["traits.remoteCreatedAt", "context.traits.remoteCreatedAt"], "metadata": { "type": "toNumber" }, diff --git a/src/v0/destinations/intercom/deleteUsers.js b/src/v0/destinations/intercom/deleteUsers.js index 085e842458..b91f520ade 100644 --- a/src/v0/destinations/intercom/deleteUsers.js +++ b/src/v0/destinations/intercom/deleteUsers.js @@ -14,7 +14,7 @@ const userDeletionHandler = async (userAttributes, config) => { } const { apiKey } = config; if (!apiKey) { - throw new ConfigurationError('api key for deletion not present'); + throw new ConfigurationError('The access token is not available'); } const validUserIds = []; userAttributes.forEach((userAttribute) => { diff --git a/src/v0/destinations/marketo_bulk_upload/config.js b/src/v0/destinations/marketo_bulk_upload/config.js index 487e11fe24..e3268711fe 100644 --- a/src/v0/destinations/marketo_bulk_upload/config.js +++ b/src/v0/destinations/marketo_bulk_upload/config.js @@ -18,6 +18,24 @@ const FETCH_FAILURE_JOB_STATUS_ERR_MSG = 'Could not fetch failure job status'; const FETCH_WARNING_JOB_STATUS_ERR_MSG = 'Could not fetch warning job status'; const ACCESS_TOKEN_FETCH_ERR_MSG = 'Error during fetching access token'; +const SCHEMA_DATA_TYPE_MAP = { + string: 'string', + number: 'number', + boolean: 'boolean', + undefined: 'undefined', + float: 'number', + text: 'string', + currency: 'string', + integer: 'number', + reference: 'string', + datetime: 'string', + date: 'string', + email: 'string', + phone: 'string', + url: 'string', + object: 'object', +}; + module.exports = { ABORTABLE_CODES, RETRYABLE_CODES, @@ -33,4 +51,5 @@ module.exports = { FETCH_FAILURE_JOB_STATUS_ERR_MSG, FETCH_WARNING_JOB_STATUS_ERR_MSG, ACCESS_TOKEN_FETCH_ERR_MSG, + SCHEMA_DATA_TYPE_MAP, }; diff --git a/src/v0/destinations/marketo_bulk_upload/marketo_bulk_upload.util.test.js b/src/v0/destinations/marketo_bulk_upload/marketo_bulk_upload.util.test.js index 769fa4006d..875b0d8280 100644 --- a/src/v0/destinations/marketo_bulk_upload/marketo_bulk_upload.util.test.js +++ b/src/v0/destinations/marketo_bulk_upload/marketo_bulk_upload.util.test.js @@ -3,6 +3,7 @@ const { handlePollResponse, handleFileUploadResponse, getAccessToken, + checkEventStatusViaSchemaMatching, } = require('./util'); const { @@ -353,3 +354,187 @@ describe('getAccessToken', () => { await expect(getAccessToken(config)).rejects.toThrow(TransformationError); }); }); + +describe('checkEventStatusViaSchemaMatching', () => { + // The function correctly identifies fields with expected data types. + it('if event data types match with expected data types we send no field as mismatch', () => { + const event = { + input: [ + { + message: { + email: 'value1', + id: 123, + isLead: true, + }, + metadata: { + job_id: 'job1', + }, + }, + ], + }; + const fieldSchemaMapping = { + email: 'string', + id: 'integer', + isLead: 'boolean', + }; + + const result = checkEventStatusViaSchemaMatching(event, fieldSchemaMapping); + + expect(result).toEqual({}); + }); + + // The function correctly identifies fields with unexpected data types. + it('if event data types do not match with expected data types we send that field as mismatch', () => { + const event = { + input: [ + { + message: { + email: 123, + city: '123', + islead: true, + }, + metadata: { + job_id: 'job1', + }, + }, + ], + }; + const fieldSchemaMapping = { + email: 'string', + city: 'number', + islead: 'boolean', + }; + + const result = checkEventStatusViaSchemaMatching(event, fieldSchemaMapping); + + expect(result).toEqual({ + job1: 'invalid email', + }); + }); + + // The function correctly handles events with multiple fields. + it('For array of events the mismatch object fills up with each event errors', () => { + const event = { + input: [ + { + message: { + id: 'value1', + testCustomFieldScore: 123, + isLead: true, + }, + metadata: { + job_id: 'job1', + }, + }, + { + message: { + email: 'value2', + id: 456, + testCustomFieldScore: false, + }, + metadata: { + job_id: 'job2', + }, + }, + ], + }; + const fieldSchemaMapping = { + email: 'email', + id: 'integer', + testCustomFieldScore: 'integer', + isLead: 'boolean', + }; + + const result = checkEventStatusViaSchemaMatching(event, fieldSchemaMapping); + + expect(result).toEqual({ + job1: 'invalid id', + job2: 'invalid testCustomFieldScore', + }); + }); + + // The function correctly handles events with missing fields. + it('it is not mandatory to send all the fields present in schema', () => { + const event = { + input: [ + { + message: { + email: 'value1', + isLead: true, + }, + metadata: { + job_id: 'job1', + }, + }, + ], + }; + const fieldSchemaMapping = { + email: 'string', + id: 'number', + isLead: 'boolean', + }; + + const result = checkEventStatusViaSchemaMatching(event, fieldSchemaMapping); + + expect(result).toEqual({}); + }); + + // The function correctly handles events with additional fields. But this will not happen in our use case + it('for any field beyond schema fields will be mapped as invalid', () => { + const event = { + input: [ + { + message: { + email: 'value1', + id: 124, + isLead: true, + abc: 'value2', + }, + metadata: { + job_id: 'job1', + }, + }, + ], + }; + const fieldSchemaMapping = { + email: 'string', + id: 'number', + isLead: 'boolean', + }; + + const result = checkEventStatusViaSchemaMatching(event, fieldSchemaMapping); + + expect(result).toEqual({ + job1: 'invalid abc', + }); + }); + + // The function correctly handles events with null values. + it('should correctly handle events with null values', () => { + const event = { + input: [ + { + message: { + email: 'value1', + id: null, + isLead: true, + }, + metadata: { + job_id: 'job1', + }, + }, + ], + }; + const fieldSchemaMapping = { + email: 'string', + id: 'number', + isLead: 'boolean', + }; + + const result = checkEventStatusViaSchemaMatching(event, fieldSchemaMapping); + + expect(result).toEqual({ + job1: 'invalid id', + }); + }); +}); diff --git a/src/v0/destinations/marketo_bulk_upload/util.js b/src/v0/destinations/marketo_bulk_upload/util.js index 8b46212b87..fac04af431 100644 --- a/src/v0/destinations/marketo_bulk_upload/util.js +++ b/src/v0/destinations/marketo_bulk_upload/util.js @@ -18,6 +18,7 @@ const { POLL_STATUS_ERR_MSG, FILE_UPLOAD_ERR_MSG, ACCESS_TOKEN_FETCH_ERR_MSG, + SCHEMA_DATA_TYPE_MAP, } = require('./config'); const logger = require('../../../logger'); @@ -401,14 +402,9 @@ const checkEventStatusViaSchemaMatching = (event, fieldMap) => { const { job_id } = metadata; Object.entries(message).forEach(([paramName, paramValue]) => { - let expectedDataType = fieldMap[paramName]; + const expectedDataType = SCHEMA_DATA_TYPE_MAP[fieldMap[paramName]]; const actualDataType = typeof paramValue; - // If expectedDataType is not one of the primitive data types, treat it as a string - if (!['string', 'number', 'boolean', 'undefined'].includes(expectedDataType)) { - expectedDataType = 'string'; - } - if (!mismatchedFields[job_id] && actualDataType !== expectedDataType) { mismatchedFields[job_id] = `invalid ${paramName}`; } diff --git a/src/v0/destinations/mp/transform.js b/src/v0/destinations/mp/transform.js index 0cfedafafb..41a814683d 100644 --- a/src/v0/destinations/mp/transform.js +++ b/src/v0/destinations/mp/transform.js @@ -12,7 +12,7 @@ const { getTimeDifference, getValuesAsArrayFromConfig, removeUndefinedValues, - toUnixTimestamp, + toUnixTimestampInMS, getFieldValueFromMessage, checkInvalidRtTfEvents, handleRtTfSingleEventError, @@ -174,7 +174,8 @@ const getEventValueForTrackEvent = (message, destination) => { if (mappedProperties.$insert_id) { mappedProperties.$insert_id = mappedProperties.$insert_id.slice(-36); } - const unixTimestamp = toUnixTimestamp(message.timestamp); + + const unixTimestamp = toUnixTimestampInMS(message.timestamp || message.originalTimestamp); let properties = { ...message.properties, ...get(message, 'context.traits'), @@ -304,7 +305,7 @@ const processPageOrScreenEvents = (message, type, destination) => { ...mappedProperties, token: destination.Config.token, distinct_id: message.userId || message.anonymousId, - time: toUnixTimestamp(message.timestamp), + time: toUnixTimestampInMS(message.timestamp || message.originalTimestamp), ...buildUtmParams(message.context?.campaign), }; if (destination.Config?.identityMergeApi === 'simplified') { diff --git a/src/v0/destinations/mp/util.js b/src/v0/destinations/mp/util.js index bb8f36fdbe..c01d2308b7 100644 --- a/src/v0/destinations/mp/util.js +++ b/src/v0/destinations/mp/util.js @@ -9,7 +9,7 @@ const { extractCustomFields, isAppleFamily, getBrowserInfo, - toUnixTimestamp, + toUnixTimestampInMS, batchMultiplexedEvents, getSuccessRespEvents, defaultBatchRequestConfig, @@ -113,7 +113,7 @@ const createIdentifyResponse = (message, type, destination, responseBuilderSimpl $token: token, $distinct_id: message.userId || message.anonymousId, $ip: get(message, 'context.ip') || message.request_ip, - $time: toUnixTimestamp(message.timestamp), + $time: toUnixTimestampInMS(message.timestamp || message.originalTimestamp), }; if (destination?.Config.identityMergeApi === 'simplified') { diff --git a/src/v0/destinations/rakuten/networkHandler.js b/src/v0/destinations/rakuten/networkHandler.js new file mode 100644 index 0000000000..1b16bd5538 --- /dev/null +++ b/src/v0/destinations/rakuten/networkHandler.js @@ -0,0 +1,103 @@ +const { NetworkError } = require('@rudderstack/integrations-lib'); +const { httpSend } = require('../../../adapters/network'); +const { + processAxiosResponse, + getDynamicErrorType, +} = require('../../../adapters/utils/networkUtils'); +const { TAG_NAMES } = require('../../util/tags'); +const { HTTP_STATUS_CODES } = require('../../util/constant'); + +const DESTINATION = 'RAKUTEN'; +const prepareProxyRequest = (request) => request; +const proxyRequest = async (request, destType) => { + const { endpoint, data, method, params, headers } = prepareProxyRequest(request); + const requestOptions = { + url: endpoint, + data, + params, + headers, + method, + }; + const response = await httpSend(requestOptions, { feature: 'proxy', destType }); + return response; +}; +const extractContent = (xmlPayload, tagName) => { + const pattern = new RegExp(`<${tagName}>(.*?)`); + const match = xmlPayload.match(pattern); + return match ? match[1] : null; +}; + +const responseHandler = (destinationResponse) => { + const msg = `[${DESTINATION} Response Handler] - Request Processed Successfully`; + const { response, status } = destinationResponse; + if (status === 400) { + throw new NetworkError( + `Request failed with status: ${status} due to invalid Marketing Id`, + 400, + { + [TAG_NAMES.ERROR_TYPE]: getDynamicErrorType(status), + }, + destinationResponse, + ); + } + // Extract errors, good and bad between different tags + const badRecords = extractContent(response, 'bad'); + const errors = extractContent(response, 'error'); + + // For access denied for a mid rakuten sends status code 200 with response as Access denied + if (errors) { + throw new NetworkError( + `Request failed with status: ${status} due to ${errors}. Can you try to enable pixel tracking for this mid.`, + 400, + { + // status would be 200 but since no error type for this status code hence it will take it as aborted + [TAG_NAMES.ERROR_TYPE]: getDynamicErrorType(status), + }, + destinationResponse, + ); + } + if (parseInt(badRecords, 10)) { + throw new NetworkError( + `Request failed with status: ${status} with number of bad records ${badRecords}`, + 400, + { + // status would be 200 but since no error type for this status code hence it will take it as aborted + [TAG_NAMES.ERROR_TYPE]: getDynamicErrorType(status), + }, + destinationResponse, + ); + } + /* just puttting it here for 429 and 500's we dont have documentation for these two + neither we have any sample response but just in case if we recoeve non 2xx status + */ + if (status !== 200) { + throw new NetworkError( + `Request failed with status: ${status}`, + status, + { + [TAG_NAMES.ERROR_TYPE]: getDynamicErrorType(status), + }, + destinationResponse, + ); + } + // if no error or bad record is found and status is 200 the request is successfull + return { + status: HTTP_STATUS_CODES.OK, + message: msg, + destinationResponse, + }; +}; +// eslint-disable-next-line @typescript-eslint/naming-convention +class networkHandler { + constructor() { + this.responseHandler = responseHandler; + this.proxy = proxyRequest; + this.prepareProxy = prepareProxyRequest; + this.processAxiosResponse = processAxiosResponse; + } +} + +module.exports = { + networkHandler, + responseHandler +}; diff --git a/src/v0/destinations/rakuten/networkHandler.test.js b/src/v0/destinations/rakuten/networkHandler.test.js new file mode 100644 index 0000000000..70461c86c1 --- /dev/null +++ b/src/v0/destinations/rakuten/networkHandler.test.js @@ -0,0 +1,64 @@ +const { responseHandler } = require('./networkHandler'); +// Generated by CodiumAI + +describe('responseHandler', () => { + it('should return a success message with status code 200 when the request is successful and no bad records or errors are found', () => { + const destinationResponse = { + response: '', + status: 200, + }; + + const result = responseHandler(destinationResponse); + + expect(result.status).toBe(200); + expect(result.message).toBe('[RAKUTEN Response Handler] - Request Processed Successfully'); + expect(result.destinationResponse).toEqual(destinationResponse); + }); + + it('should throw a NetworkError with status code 400 and error message when the response status is 400 due to invalid Marketing Id', () => { + const destinationResponse = { + response: 'Invalid marketing id', + status: 400, + }; + expect(() => { + responseHandler(destinationResponse); + }).toThrow('Request failed with status: 400 due to invalid Marketing Id'); + }); + + it('should throw a NetworkError with status code 400 and error message when the response contains errors', () => { + const destinationResponse = { + response: 'Access denied', + status: 200, + }; + expect(() => { + responseHandler(destinationResponse); + }).toThrow( + 'Request failed with status: 200 due to Access denied. Can you try to enable pixel tracking for this mid.', + ); + }); + + it('should return a success message with status code 200 when the response status is 200 and no bad records or errors are found', () => { + const destinationResponse = { + response: '', + status: 200, + }; + + const result = responseHandler(destinationResponse); + + expect(result.status).toBe(200); + expect(result.message).toBe('[RAKUTEN Response Handler] - Request Processed Successfully'); + expect(result.destinationResponse).toEqual(destinationResponse); + }); + + it('should throw a NetworkError with status code 400 and error message when the response status is 200 and the response contains only bad records', () => { + const destinationResponse = { + response: '1', + status: 200, + }; + + expect(() => { + responseHandler(destinationResponse); + }).toThrow('Request failed with status: 200 with number of bad records 1'); + + }); +}); diff --git a/src/v0/destinations/the_trade_desk/networkHandler.js b/src/v0/destinations/the_trade_desk/networkHandler.js index ca5ac68be8..e9693e8132 100644 --- a/src/v0/destinations/the_trade_desk/networkHandler.js +++ b/src/v0/destinations/the_trade_desk/networkHandler.js @@ -8,28 +8,37 @@ const { getSignatureHeader } = require('../../../cdk/v2/destinations/the_trade_d const { isHttpStatusSuccess } = require('../../util/index'); const tags = require('../../util/tags'); const { JSON_MIME_TYPE } = require('../../util/constant'); +const { + REAL_TIME_CONVERSION_ENDPOINT, +} = require('../../../cdk/v2/destinations/the_trade_desk/config'); const proxyRequest = async (request) => { const { endpoint, data, method, params, headers, config } = prepareProxyRequest(request); - - if (!config?.advertiserSecretKey) { - throw new PlatformError('Advertiser secret key is missing in destination config. Aborting'); - } - - if (!process.env.THE_TRADE_DESK_DATA_PROVIDER_SECRET_KEY) { - throw new PlatformError('Data provider secret key is missing. Aborting'); - } - - const ProxyHeaders = { + let ProxyHeaders = { ...headers, - TtdSignature: getSignatureHeader(data, config.advertiserSecretKey), - 'TtdSignature-dp': getSignatureHeader( - data, - process.env.THE_TRADE_DESK_DATA_PROVIDER_SECRET_KEY, - ), 'Content-Type': JSON_MIME_TYPE, }; + // For first party data flow + if (endpoint !== REAL_TIME_CONVERSION_ENDPOINT) { + if (!config?.advertiserSecretKey) { + throw new PlatformError('Advertiser secret key is missing in destination config. Aborting'); + } + + if (!process.env.THE_TRADE_DESK_DATA_PROVIDER_SECRET_KEY) { + throw new PlatformError('Data provider secret key is missing. Aborting'); + } + + ProxyHeaders = { + ...ProxyHeaders, + TtdSignature: getSignatureHeader(data, config.advertiserSecretKey), + 'TtdSignature-dp': getSignatureHeader( + data, + process.env.THE_TRADE_DESK_DATA_PROVIDER_SECRET_KEY, + ), + }; + } + const requestOptions = { url: endpoint, data, @@ -48,7 +57,7 @@ const responseHandler = (destinationResponse) => { // if the response from destination is not a success case build an explicit error if (!isHttpStatusSuccess(status)) { throw new NetworkError( - `Request failed with status: ${status} due to ${response}`, + `Request failed with status: ${status} due to ${JSON.stringify(response)}`, status, { [tags.TAG_NAMES.ERROR_TYPE]: getDynamicErrorType(status), @@ -57,9 +66,10 @@ const responseHandler = (destinationResponse) => { ); } - // Trade desk returns 200 with an error in case of "Failed to parse TDID, DAID, UID2, IDL, EUID, or failed to decrypt UID2Token or EUIDToken" + // Trade desk first party data api returns 200 with an error in case of "Failed to parse TDID, DAID, UID2, IDL, EUID, or failed to decrypt UID2Token or EUIDToken" // https://partner.thetradedesk.com/v3/portal/data/doc/post-data-advertiser-external // {"FailedLines":[{"ErrorCode":"MissingUserId","Message":"Invalid DAID, item #1"}]} + // For real time conversion api we don't have separate response handling, trade desk always return 400 for bad events. if ('FailedLines' in response && response.FailedLines.length > 0) { throw new AbortedError( `Request failed with status: ${status} due to ${JSON.stringify(response)}`, @@ -69,7 +79,7 @@ const responseHandler = (destinationResponse) => { } // else successfully return status, message and original destination response - // Trade desk returns 200 with empty object '{}' in response if all the events are processed successfully + // For first party api trade desk returns 200 with empty object '{}' in response if all the events are processed successfully return { status, message, diff --git a/src/v0/util/facebookUtils/networkHandler.js b/src/v0/util/facebookUtils/networkHandler.js index e0d69fa5c8..7219120dd7 100644 --- a/src/v0/util/facebookUtils/networkHandler.js +++ b/src/v0/util/facebookUtils/networkHandler.js @@ -1,12 +1,18 @@ const { isEmpty } = require('lodash'); const get = require('get-value'); -const { NetworkError } = require('@rudderstack/integrations-lib'); +const { + NetworkError, + ConfigurationAuthError, + isDefinedAndNotNull, + ERROR_TYPES, + TAG_NAMES, + METADATA, +} = require('@rudderstack/integrations-lib'); const { processAxiosResponse, getDynamicErrorType, } = require('../../../adapters/utils/networkUtils'); const { prepareProxyRequest, proxyRequest } = require('../../../adapters/network'); -const tags = require('../tags'); const { ErrorDetailsExtractorBuilder } = require('../../../util/error-extractor'); /** @@ -100,12 +106,26 @@ const errorDetailsMap = { 190: { 460: new ErrorDetailsExtractorBuilder() .setStatus(400) + .setStat({ + [TAG_NAMES.ERROR_TYPE]: ERROR_TYPES.AUTH, + }) .setMessage( 'The session has been invalidated because the user changed their password or Facebook has changed the session for security reasons', ) .build(), + + 463: new ErrorDetailsExtractorBuilder() + .setStatus(400) + .setStat({ + [TAG_NAMES.ERROR_TYPE]: ERROR_TYPES.AUTH, + }) + .setMessageField('message') + .build(), default: new ErrorDetailsExtractorBuilder() .setStatus(400) + .setStat({ + [TAG_NAMES.ERROR_TYPE]: ERROR_TYPES.AUTH, + }) .setMessage('Invalid OAuth 2.0 access token') .build(), }, @@ -217,7 +237,7 @@ const getStatus = (error) => { // Unhandled error response return { status: errorStatus, - tags: { [tags.TAG_NAMES.META]: tags.METADATA.UNHANDLED_STATUS_CODE }, + stats: { [TAG_NAMES.META]: METADATA.UNHANDLED_STATUS_CODE }, }; } errorStatus = errorDetail.status; @@ -227,7 +247,7 @@ const getStatus = (error) => { errorMessage = get(error, errorDetail?.messageDetails?.field); } - return { status: errorStatus, errorMessage }; + return { status: errorStatus, errorMessage, stats: errorDetail?.stat }; }; const errorResponseHandler = (destResponse) => { @@ -237,13 +257,19 @@ const errorResponseHandler = (destResponse) => { return; } const { error } = response; - const { status, errorMessage, tags: errorStatTags } = getStatus(error); + const { status, errorMessage, stats: errorStatTags } = getStatus(error); + if ( + isDefinedAndNotNull(errorStatTags) && + errorStatTags?.[TAG_NAMES.ERROR_TYPE] === ERROR_TYPES.AUTH + ) { + throw new ConfigurationAuthError(errorMessage, { ...response, status: destResponse.status }); + } throw new NetworkError( `${errorMessage || error.message || 'Unknown failure during response transformation'}`, status, { ...errorStatTags, - [tags.TAG_NAMES.ERROR_TYPE]: getDynamicErrorType(status), + [TAG_NAMES.ERROR_TYPE]: getDynamicErrorType(status), }, { ...response, status: destResponse.status }, ); diff --git a/src/v0/util/index.js b/src/v0/util/index.js index 5433529b5e..49ef39969e 100644 --- a/src/v0/util/index.js +++ b/src/v0/util/index.js @@ -1232,6 +1232,9 @@ function toUnixTimestamp(timestamp) { return unixTimestamp; } +// Accepts a timestamp and returns the corresponding unix timestamp in milliseconds +const toUnixTimestampInMS = (timestamp) => new Date(timestamp).getTime(); + // Accecpts timestamp as a parameter and returns the difference of the same with current time. function getTimeDifference(timestamp) { const currentTime = Date.now(); @@ -1276,6 +1279,31 @@ function getFullName(message) { return fullName; } +/** + * Generates an exclusion list from mapping config. + * + * @param {Array} mappingConfig - The mapping config. + * [ + * { + * "destKey": "item_code", + * "sourceKeys": [ + * "product_id", + * "sku" + * ] + * }, + * { + * "destKey": "name", + * "sourceKeys": "name" + * } + * ] + * @returns {Array} - The generated exclusion list. + * ["product_id", "sku", "name"] + */ +const generateExclusionList = (mappingConfig) => + mappingConfig.flatMap((mapping) => + Array.isArray(mapping.sourceKeys) ? [...mapping.sourceKeys] : [mapping.sourceKeys], + ); + /** * Extract fileds from message with exclusions * Pass the keys of message for extraction and @@ -1302,10 +1330,10 @@ function getFullName(message) { * ) * ------------------------------------------- * The above call will map the fields other than the - * exlusion list from the given keys to the destination payload + * exclusion list from the given keys to the destination payload * */ -function extractCustomFields(message, destination, keys, exclusionFields) { +function extractCustomFields(message, payload, keys, exclusionFields) { const mappingKeys = []; if (Array.isArray(keys)) { keys.forEach((key) => { @@ -1316,7 +1344,7 @@ function extractCustomFields(message, destination, keys, exclusionFields) { }); mappingKeys.forEach((mappingKey) => { if (!(typeof messageContext[mappingKey] === 'undefined')) { - set(destination, mappingKey, get(messageContext, mappingKey)); + set(payload, mappingKey, get(messageContext, mappingKey)); } }); } @@ -1327,14 +1355,14 @@ function extractCustomFields(message, destination, keys, exclusionFields) { }); mappingKeys.forEach((mappingKey) => { if (!(typeof message[mappingKey] === 'undefined')) { - set(destination, mappingKey, get(message, mappingKey)); + set(payload, mappingKey, get(message, mappingKey)); } }); } else { logger.debug('unable to parse keys'); } - return destination; + return payload; } // Deleting nested properties from objects @@ -2129,6 +2157,7 @@ module.exports = { defaultPutRequestConfig, defaultRequestConfig, deleteObjectProperty, + generateExclusionList, extractCustomFields, flattenJson, flattenMap, @@ -2194,6 +2223,7 @@ module.exports = { stripTrailingSlash, toTitleCase, toUnixTimestamp, + toUnixTimestampInMS, updatePayload, checkInvalidRtTfEvents, simpleProcessRouterDest, diff --git a/src/v0/util/index.test.js b/src/v0/util/index.test.js index a46b55fdd4..1c6b34eca6 100644 --- a/src/v0/util/index.test.js +++ b/src/v0/util/index.test.js @@ -2,7 +2,7 @@ const { TAG_NAMES } = require('@rudderstack/integrations-lib'); const utilities = require('.'); const { getFuncTestData } = require('../../../test/testHelper'); const { FilteredEventsError } = require('./errorTypes'); -const { hasCircularReference, flattenJson } = require('./index'); +const { hasCircularReference, flattenJson, generateExclusionList } = require('./index'); // Names of the utility functions to test const functionNames = [ @@ -125,3 +125,44 @@ describe('tests for generateErrorObject', () => { expect(outputErrObj.statTags).toEqual({}); }); }); + +describe('generateExclusionList', () => { + it('should return an array of excluded keys when given a mapping config', () => { + const mappingConfig = [ + { + destKey: 'item_code', + sourceKeys: ['product_id', 'sku'], + }, + { + destKey: 'name', + sourceKeys: 'name', + }, + ]; + const expected = ['product_id', 'sku', 'name']; + const result = generateExclusionList(mappingConfig); + expect(result).toEqual(expected); + }); + + it('should return an empty array when the mapping config is empty', () => { + const mappingConfig = []; + const expected = []; + const result = generateExclusionList(mappingConfig); + expect(result).toEqual(expected); + }); + + it('should return an array with unique keys when the mapping config has duplicate destination keys', () => { + const mappingConfig = [ + { + destKey: 'item_code', + sourceKeys: ['product_id'], + }, + { + destKey: 'item_code', + sourceKeys: ['sku'], + }, + ]; + const expected = ['product_id', 'sku']; + const result = generateExclusionList(mappingConfig); + expect(result).toEqual(expected); + }); +}); diff --git a/src/v0/util/tags.js b/src/v0/util/tags.js index 81e6b9a2a6..18f00f963f 100644 --- a/src/v0/util/tags.js +++ b/src/v0/util/tags.js @@ -51,7 +51,7 @@ const ERROR_TYPES = { OAUTH_SECRET: 'oAuthSecret', UNSUPPORTED: 'unsupported', REDIS: 'redis', - FILTERED: 'filtered', + FILTERED: 'filtered' }; const METADATA = { diff --git a/test/__tests__/data/pinterest_tag_router_batch_output.json b/test/__tests__/data/pinterest_tag_router_batch_output.json index 6fceb08278..995d68428a 100644 --- a/test/__tests__/data/pinterest_tag_router_batch_output.json +++ b/test/__tests__/data/pinterest_tag_router_batch_output.json @@ -142,10 +142,12 @@ }, "metadata": [ { - "jobId": 1 + "jobId": 1, + "userId": "u1" }, { - "jobId": 2 + "jobId": 2, + "userId": "u1" } ], "batched": true, @@ -329,13 +331,16 @@ }, "metadata": [ { - "jobId": 3 + "jobId": 3, + "userId": "u1" }, { - "jobId": 4 + "jobId": 4, + "userId": "u1" }, { - "jobId": 6 + "jobId": 6, + "userId": "u1" } ], "batched": true, @@ -445,7 +450,8 @@ }, "metadata": [ { - "jobId": 7 + "jobId": 7, + "userId": "u1" } ], "batched": true, @@ -496,7 +502,8 @@ { "metadata": [ { - "jobId": 5 + "jobId": 5, + "userId": "u1" } ], "batched": false, @@ -736,10 +743,12 @@ }, "metadata": [ { - "jobId": 8 + "jobId": 8, + "userId": "u1" }, { - "jobId": 9 + "jobId": 9, + "userId": "u1" } ], "statusCode": 200 @@ -852,7 +861,8 @@ }, "metadata": [ { - "jobId": 10 + "jobId": 10, + "userId": "u1" } ], "statusCode": 200 diff --git a/test/__tests__/data/pinterest_tag_router_error_input.json b/test/__tests__/data/pinterest_tag_router_error_input.json index e241ffb864..ce188c7335 100644 --- a/test/__tests__/data/pinterest_tag_router_error_input.json +++ b/test/__tests__/data/pinterest_tag_router_error_input.json @@ -75,7 +75,8 @@ } }, "metadata": { - "jobId": 5 + "jobId": 5, + "userId": "u1" }, "destination": { "ID": "1pYpzzvcn7AQ2W9GGIAZSsN6Mfq", diff --git a/test/__tests__/data/pinterest_tag_router_error_output.json b/test/__tests__/data/pinterest_tag_router_error_output.json index c4f0f4768d..4cd4e6966c 100644 --- a/test/__tests__/data/pinterest_tag_router_error_output.json +++ b/test/__tests__/data/pinterest_tag_router_error_output.json @@ -2,7 +2,8 @@ { "metadata": [ { - "jobId": 5 + "jobId": 5, + "userId": "u1" } ], "batched": false, diff --git a/test/__tests__/data/pinterest_tag_router_input.json b/test/__tests__/data/pinterest_tag_router_input.json index 4b966f948f..26febec456 100644 --- a/test/__tests__/data/pinterest_tag_router_input.json +++ b/test/__tests__/data/pinterest_tag_router_input.json @@ -77,7 +77,8 @@ } }, "metadata": { - "jobId": 1 + "jobId": 1, + "userId": "u1" }, "destination": { "ID": "1pYpzzvcn7AQ2W9GGIAZSsN6Mfq", @@ -198,7 +199,8 @@ } }, "metadata": { - "jobId": 2 + "jobId": 2, + "userId": "u1" }, "destination": { "ID": "1pYpzzvcn7AQ2W9GGIAZSsN6Mfq", @@ -300,7 +302,8 @@ } }, "metadata": { - "jobId": 3 + "jobId": 3, + "userId": "u1" }, "destination": { "ID": "1pYpzzvcn7AQ2W9GGIAZSsN6Mfq", @@ -421,7 +424,8 @@ } }, "metadata": { - "jobId": 4 + "jobId": 4, + "userId": "u1" }, "destination": { "ID": "1pYpzzvcn7AQ2W9GGIAZSsN6Mfq", @@ -542,7 +546,8 @@ } }, "metadata": { - "jobId": 5 + "jobId": 5, + "userId": "u1" }, "destination": { "ID": "1pYpzzvcn7AQ2W9GGIAZSsN6Mfq", @@ -663,7 +668,8 @@ } }, "metadata": { - "jobId": 6 + "jobId": 6, + "userId": "u1" }, "destination": { "ID": "1pYpzzvcn7AQ2W9GGIAZSsN6Mfq", @@ -764,7 +770,8 @@ "files": {} }, "metadata": { - "jobId": 7 + "jobId": 7, + "userId": "u1" }, "destination": { "ID": "1pYpzzvcn7AQ2W9GGIAZSsN6Mfq", @@ -888,7 +895,8 @@ } }, "metadata": { - "jobId": 8 + "jobId": 8, + "userId": "u1" }, "destination": { "ID": "1pYpzzvcn7AQ2W9GGIAZSsN6Mfq", @@ -1011,7 +1019,8 @@ } }, "metadata": { - "jobId": 9 + "jobId": 9, + "userId": "u1" }, "destination": { "ID": "1pYpzzvcn7AQ2W9GGIAZSsN6Mfq", @@ -1134,7 +1143,8 @@ } }, "metadata": { - "jobId": 10 + "jobId": 10, + "userId": "u1" }, "destination": { "ID": "1pYpzzvcn7AQ2W9GGIAZSsN6Mfq", diff --git a/test/__tests__/data/pinterest_tag_router_output.json b/test/__tests__/data/pinterest_tag_router_output.json index 0e128575ee..2bfc7c3cf5 100644 --- a/test/__tests__/data/pinterest_tag_router_output.json +++ b/test/__tests__/data/pinterest_tag_router_output.json @@ -294,22 +294,28 @@ }, "metadata": [ { - "jobId": 1 + "jobId": 1, + "userId": "u1" }, { - "jobId": 2 + "jobId": 2, + "userId": "u1" }, { - "jobId": 3 + "jobId": 3, + "userId": "u1" }, { - "jobId": 4 + "jobId": 4, + "userId": "u1" }, { - "jobId": 6 + "jobId": 6, + "userId": "u1" }, { - "jobId": 7 + "jobId": 7, + "userId": "u1" } ], "batched": true, @@ -360,7 +366,8 @@ { "metadata": [ { - "jobId": 5 + "jobId": 5, + "userId": "u1" } ], "statTags": { @@ -593,13 +600,16 @@ }, "metadata": [ { - "jobId": 8 + "jobId": 8, + "userId": "u1" }, { - "jobId": 9 + "jobId": 9, + "userId": "u1" }, { - "jobId": 10 + "jobId": 10, + "userId": "u1" } ], "batched": true, diff --git a/test/__tests__/pinterestConversion.test.js b/test/__tests__/pinterestConversion.test.js index 351551753d..4c145f0383 100644 --- a/test/__tests__/pinterestConversion.test.js +++ b/test/__tests__/pinterestConversion.test.js @@ -7,6 +7,8 @@ const path = require("path"); const version = "v0"; const transformer = require(`../../src/${version}/destinations/${integration}/transform`); +const { assertRouterOutput } = require('../testHelper'); + const inputDataFile = fs.readFileSync( path.resolve(__dirname, `./data/${integration}_input.json`) ); @@ -44,6 +46,7 @@ describe(`${name} Tests`, () => { inputRouterData.forEach((input, index) => { it(`Payload: ${index}`, async () => { let output = await transformer.processRouterDest(input); + assertRouterOutput(output, input); expect(output).toEqual(expectedRouterData[index]); }); }); diff --git a/test/__tests__/utilities/test-utils.js b/test/__tests__/utilities/test-utils.js index 73353f1ded..4d5d7fc909 100644 --- a/test/__tests__/utilities/test-utils.js +++ b/test/__tests__/utilities/test-utils.js @@ -2,6 +2,7 @@ const fs = require("fs"); const _ = require("lodash"); const path = require("path"); const { ConfigFactory, Executor } = require("rudder-transformer-cdk"); +const { assertRouterOutput } = require('../../testHelper'); // TODO: separate this out later as the list grows const cdkEnabledDestinations = { @@ -95,7 +96,9 @@ function executeTransformationTest(dest, transformAt) { if (transformAt == "processor") { actualData = await transformer.process(tcInput); } else { - actualData = (await transformer.processRouterDest([tcInput]))[0]; + actual = await transformer.processRouterDest([tcInput]) + assertRouterOutput(actual, [tcInput]); + actualData = (actual)[0]; } } // Compare actual and expected data @@ -115,6 +118,7 @@ function executeTransformationTest(dest, transformAt) { const version = "v0"; const transformer = require(`../../../src/${version}/destinations/${dest}/transform`); actualData = await transformer.processRouterDest(commonInput); + assertRouterOutput(actualData, commonInput); const cloneActual = _.cloneDeep(actualData); cloneActual[0].statTags = "undefined"; // Compare actual and expected data diff --git a/test/deleteUsers/data/iterable/handler_input.json b/test/deleteUsers/data/iterable/handler_input.json deleted file mode 100644 index 8ebc859089..0000000000 --- a/test/deleteUsers/data/iterable/handler_input.json +++ /dev/null @@ -1,93 +0,0 @@ -[ - { - "request": { - "body": [ - { - "destType": "ITERABLE", - "userAttributes": [ - { - "userId": "rudder1" - } - ] - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "ITERABLE", - "userAttributes": [ - { - "userId": "rudder2" - } - ], - "config": { - "apiToken": "dummyApiKey" - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "ITERABLE", - "userAttributes": [ - { - "userId": "rudder1" - }, - { - "userId": "rudder2" - } - ], - "config": { - "apiKey": "dummyApiKey" - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "ITERABLE", - "userAttributes": [ - { - "userId": "rudder3" - }, - { - "userId": "rudder4" - } - ], - "config": { - "apiKey": "invalidKey" - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "ITERABLE", - "userAttributes": [ - { - "userId": "rudder5" - }, - { - "userId": "rudder6" - } - ], - "config": { - "apiKey": "dummyApiKey" - } - } - ] - } - } -] diff --git a/test/deleteUsers/data/iterable/handler_output.json b/test/deleteUsers/data/iterable/handler_output.json deleted file mode 100644 index b053d04df4..0000000000 --- a/test/deleteUsers/data/iterable/handler_output.json +++ /dev/null @@ -1,32 +0,0 @@ -[ - [ - { - "statusCode": 400, - "error": "Config for deletion not present" - } - ], - [ - { - "statusCode": 400, - "error": "api key for deletion not present" - } - ], - [ - { - "statusCode": 400, - "error": "User deletion request failed for userIds : [{\"userId\":\"rudder2\",\"Reason\":\"User does not exist. Email: UserId: rudder2\"}]" - } - ], - [ - { - "error": "User deletion request failed : Invalid API key", - "statusCode": 401 - } - ], - [ - { - "statusCode": 200, - "status": "successful" - } - ] -] diff --git a/test/deleteUsers/data/iterable/nw_client_data.json b/test/deleteUsers/data/iterable/nw_client_data.json deleted file mode 100644 index 159c301b11..0000000000 --- a/test/deleteUsers/data/iterable/nw_client_data.json +++ /dev/null @@ -1,138 +0,0 @@ -[ - [ - { - "type": "delete", - "reqParams": [ - "https://api.iterable.com/api/users/byUserId/rudder1", - {}, - { - "Accept": "application/json", - "api_key": "dummyApiKey" - } - ], - "response": { - "response": { - "data": { - "msg": "All users associated with rudder1 were successfully deleted", - "code": "Success", - "params": null - }, - "status": 200 - } - } - }, - { - "type": "delete", - "reqParams": [ - "https://api.iterable.com/api/users/byUserId/rudder2", - {}, - { - "Accept": "application/json", - "api_key": "dummyApiKey" - } - ], - "response": { - "response": { - "data": { - "msg": "User does not exist. Email: UserId: rudder2", - "code": "BadParams", - "params": null - }, - "status": 400 - } - } - } - ], - [ - { - "type": "delete", - "reqParams": [ - "https://api.iterable.com/api/users/byUserId/rudder3", - {}, - { - "Accept": "application/json", - "api_key": "invalidKey" - } - ], - "response": { - "response": { - "data": { - "msg": "Invalid API key", - "code": "Success", - "params": { - "endpoint": "/api/users/byUserId/rudder3" - } - }, - "status": 401 - } - } - }, - { - "type": "delete", - "reqParams": [ - "https://api.iterable.com/api/users/byUserId/rudder4", - {}, - { - "Accept": "application/json", - "api_key": "invalidKey" - } - ], - "response": { - "response": { - "data": { - "msg": "Invalid API key", - "code": "Success", - "params": { - "endpoint": "/api/users/byUserId/rudder3" - } - }, - "status": 401 - } - } - } - ], - [ - { - "type": "delete", - "reqParams": [ - "https://api.iterable.com/api/users/byUserId/rudder5", - {}, - { - "Accept": "application/json", - "api_key": "dummyApiKey" - } - ], - "response": { - "response": { - "data": { - "msg": "All users associated with rudder5 were successfully deleted", - "code": "Success", - "params": null - }, - "status": 200 - } - } - }, - { - "type": "delete", - "reqParams": [ - "https://api.iterable.com/api/users/byUserId/rudder6", - {}, - { - "Accept": "application/json", - "api_key": "dummyApiKey" - } - ], - "response": { - "response": { - "data": { - "msg": "All users associated with rudder6 were successfully deleted", - "code": "Success", - "params": null - }, - "status": 200 - } - } - } - ] -] diff --git a/test/integrations/component.test.ts b/test/integrations/component.test.ts index d8d7732e12..ec4fb02dc1 100644 --- a/test/integrations/component.test.ts +++ b/test/integrations/component.test.ts @@ -20,7 +20,7 @@ import { import tags from '../../src/v0/util/tags'; import { Server } from 'http'; import { appendFileSync } from 'fs'; -import { responses } from '../testHelper'; +import { assertRouterOutput, responses } from '../testHelper'; import { generateTestReport, initaliseReport } from '../test_reporter/reporter'; import _ from 'lodash'; @@ -128,6 +128,23 @@ const testRoute = async (route, tcData: TestCaseData) => { .query(params || {}) .send(body); const outputResp = tcData.output.response || ({} as any); + + if (tcData.feature === tags.FEATURES.BATCH || tcData.feature === tags.FEATURES.ROUTER) { + //TODO get rid of these skipped destinations after they are fixed + if ( + tcData.name != 'marketo_static_list' && + tcData.name != 'mailmodo' && + tcData.name != 'hs' && + tcData.name != 'iterable' && + tcData.name != 'klaviyo' && + tcData.name != 'tiktok_ads' && + tcData.name != 'mailjet' && + tcData.name != 'google_adwords_offline_conversions' + ) { + assertRouterOutput(response.body.output, tcData.input.request.body.input); + } + } + expect(response.status).toEqual(outputResp.status); if (REPORT_COMPATIBLE_INTEGRATION.includes(tcData.name?.toLocaleLowerCase())) { diff --git a/test/integrations/destinations/active_campaign/router/data.ts b/test/integrations/destinations/active_campaign/router/data.ts index 782d1e3379..f65a65d9bc 100644 --- a/test/integrations/destinations/active_campaign/router/data.ts +++ b/test/integrations/destinations/active_campaign/router/data.ts @@ -18,9 +18,7 @@ export const data = [ eventKey: 'f8a866fddc721350fdc2fbbd2e5c43a6dddaaa03', }, }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, message: { channel: 'web', context: { @@ -30,21 +28,13 @@ export const data = [ namespace: 'com.rudderlabs.javascript', version: '1.0.0', }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', locale: 'en-US', ip: '0.0.0.0', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, }, messageId: '84e26acc-56a5-4835-8233-591137fca468', session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', @@ -66,18 +56,9 @@ export const data = [ Random: 'random', }, lists: [ - { - id: 2, - status: 'subscribe', - }, - { - id: 3, - status: 'unsubscribe', - }, - { - id: 3, - status: 'unsubscribexyz', - }, + { id: 2, status: 'subscribe' }, + { id: 3, status: 'unsubscribe' }, + { id: 3, status: 'unsubscribexyz' }, ], address: { city: 'kolkata', @@ -87,9 +68,7 @@ export const data = [ street: '', }, }, - integrations: { - All: true, - }, + integrations: { All: true }, sentAt: '2019-10-14T09:03:22.563Z', }, }, @@ -117,22 +96,10 @@ export const data = [ lastName: 'Doe', phone: '92374162212', fieldValues: [ - { - field: '0', - value: 'Trastkiv', - }, - { - field: '1', - value: 'Russia', - }, - { - field: '3', - value: '||Potato||Onion||', - }, - { - field: '4', - value: 'random', - }, + { field: '0', value: 'Trastkiv' }, + { field: '1', value: 'Russia' }, + { field: '3', value: '||Potato||Onion||' }, + { field: '4', value: 'random' }, ], }, }, @@ -141,18 +108,11 @@ export const data = [ files: {}, method: 'POST', params: {}, - headers: { - 'Api-Token': 'dummyApiToken', - 'Content-Type': 'application/json', - }, + headers: { 'Api-Token': 'dummyApiToken', 'Content-Type': 'application/json' }, version: '1', endpoint: 'https://active.campaigns.rudder.com/api/3/contact/sync', }, - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], batched: false, statusCode: 200, destination: { @@ -188,9 +148,7 @@ export const data = [ eventKey: 'f8a866fddc721350fdc2fbbd2e5c43a6dddaaa03', }, }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, message: { channel: 'web', context: { @@ -200,24 +158,13 @@ export const data = [ namespace: 'com.rudderlabs.javascript', version: '1.0.0', }, - traits: { - email: 'jamesDoe@gmail.com', - anonymousId: '12345', - }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + traits: { email: 'jamesDoe@gmail.com', anonymousId: '12345' }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', locale: 'en-US', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, }, request_ip: '1.1.1.1', type: 'page', @@ -234,9 +181,7 @@ export const data = [ title: 'Test Page', url: 'https://www.rudderlabs.com', }, - integrations: { - All: true, - }, + integrations: { All: true }, sentAt: '2019-10-14T11:15:53.296Z', }, }, @@ -257,28 +202,17 @@ export const data = [ XML: {}, FORM: {}, JSON_ARRAY: {}, - JSON: { - siteTrackingDomain: { - name: 'rudderlabs.com', - }, - }, + JSON: { siteTrackingDomain: { name: 'rudderlabs.com' } }, }, type: 'REST', files: {}, method: 'POST', params: {}, - headers: { - 'Api-Token': 'dummyApiToken', - 'Content-Type': 'application/json', - }, + headers: { 'Api-Token': 'dummyApiToken', 'Content-Type': 'application/json' }, version: '1', endpoint: 'https://active.campaigns.rudder.com/api/3/siteTrackingDomains', }, - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], batched: false, statusCode: 200, destination: { @@ -312,10 +246,7 @@ export const data = [ sentAt: '2023-01-10T22:31:10.954Z', channel: 'web', context: { - os: { - name: '', - version: '', - }, + os: { name: '', version: '' }, app: { name: 'RudderLabs JavaScript SDK', build: '1.0.0', @@ -342,10 +273,7 @@ export const data = [ innerHeight: 782, }, traits: {}, - library: { - name: 'RudderLabs JavaScript SDK', - version: '2.20.0', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '2.20.0' }, campaign: {}, sessionId: 1673389635049, userAgent: @@ -369,9 +297,7 @@ export const data = [ receivedAt: '2023-01-10T22:31:11.612Z', request_ip: '0.0.0.20', anonymousId: '878e8f5f-9b6c-4aef-b5d3-1b970a13f17a', - integrations: { - All: true, - }, + integrations: { All: true }, originalTimestamp: '2023-01-10T22:31:10.943Z', }, destination: { @@ -382,9 +308,7 @@ export const data = [ eventKey: 'f8a866fddc721350fdc2fbbd2e5c43a6dddaaa03', }, }, - metadata: { - jobId: 5, - }, + metadata: { jobId: 5, userId: 'u1' }, }, ], destType: 'active_campaign', @@ -408,11 +332,7 @@ export const data = [ module: 'destination', }, statusCode: 400, - metadata: [ - { - jobId: 5, - }, - ], + metadata: [{ jobId: 5, userId: 'u1' }], batched: false, destination: { Config: { diff --git a/test/integrations/destinations/adj/router/data.ts b/test/integrations/destinations/adj/router/data.ts index c662d7b557..22c4e899d2 100644 --- a/test/integrations/destinations/adj/router/data.ts +++ b/test/integrations/destinations/adj/router/data.ts @@ -30,57 +30,26 @@ export const data = [ type: 'Android', attTrackingStatus: 3, }, - library: { - name: 'com.rudderstack.android.sdk.core', - version: '1.0.6', - }, + library: { name: 'com.rudderstack.android.sdk.core', version: '1.0.6' }, locale: 'en-US', - network: { - bluetooth: false, - carrier: 'Android', - cellular: true, - wifi: true, - }, - os: { - name: 'Android', - version: '9', - }, - screen: { - density: 420, - height: 1794, - width: 1080, - }, + network: { bluetooth: false, carrier: 'Android', cellular: true, wifi: true }, + os: { name: 'Android', version: '9' }, + screen: { density: 420, height: 1794, width: 1080 }, timezone: 'Asia/Kolkata', - traits: { - anonymousId: '21e13f4bc7ceddad', - }, + traits: { anonymousId: '21e13f4bc7ceddad' }, userAgent: 'Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)', }, event: 'First Investment', - integrations: { - All: true, - }, + integrations: { All: true }, messageId: '1601322811899-d9c7dd00-50dc-4364-95c8-e89423eb3cfb', originalTimestamp: '2020-09-28T19:53:31.900Z', properties: { currency: 'EUR', key1: 'value1', key2: 'value2', - key3: { - k4: 'v4', - k5: { - k6: 'v6', - }, - }, - key5: [ - { - k: 'v1', - }, - { - k: 'v2', - }, - ], + key3: { k4: 'v4', k5: { k6: 'v6' } }, + key5: [{ k: 'v1' }, { k: 'v2' }], revenue: 20.37566, }, receivedAt: '2020-09-29T14:50:43.005+05:30', @@ -89,9 +58,7 @@ export const data = [ timestamp: '2020-09-29T14:50:29.907+05:30', type: 'track', }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, destination: { ID: '1i3Em7GMU9xVEiDlZUN8c88BMS9', Name: 'ADJ', @@ -114,14 +81,8 @@ export const data = [ Config: { appToken: 'testAppToken', customMappings: [ - { - from: 'Application Installed', - to: '3fdmll', - }, - { - from: 'First Investment', - to: 'testEventToken', - }, + { from: 'Application Installed', to: '3fdmll' }, + { from: 'First Investment', to: 'testEventToken' }, ], environment: true, }, @@ -147,9 +108,7 @@ export const data = [ type: 'REST', method: 'POST', endpoint: 'https://s2s.adjust.com/event', - headers: { - Accept: '*/*', - }, + headers: { Accept: '*/*' }, params: { callback_params: '{"key1":"value1","key2":"value2","key3.k4":"v4","key3.k5.k6":"v6","key5[0].k":"v1","key5[1].k":"v2"}', @@ -165,20 +124,11 @@ export const data = [ event_token: 'testEventToken', environment: 'production', }, - body: { - JSON: {}, - XML: {}, - JSON_ARRAY: {}, - FORM: {}, - }, + body: { JSON: {}, XML: {}, JSON_ARRAY: {}, FORM: {} }, files: {}, userId: '21e13f4bc7ceddad', }, - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], batched: false, statusCode: 200, destination: { @@ -203,14 +153,8 @@ export const data = [ Config: { appToken: 'testAppToken', customMappings: [ - { - from: 'Application Installed', - to: '3fdmll', - }, - { - from: 'First Investment', - to: 'testEventToken', - }, + { from: 'Application Installed', to: '3fdmll' }, + { from: 'First Investment', to: 'testEventToken' }, ], environment: true, }, @@ -255,57 +199,26 @@ export const data = [ type: 'ios', attTrackingStatus: 3, }, - library: { - name: 'com.rudderstack.android.sdk.core', - version: '1.0.6', - }, + library: { name: 'com.rudderstack.android.sdk.core', version: '1.0.6' }, locale: 'en-US', - network: { - bluetooth: false, - carrier: 'Android', - cellular: true, - wifi: true, - }, - os: { - name: 'Android', - version: '9', - }, - screen: { - density: 420, - height: 1794, - width: 1080, - }, + network: { bluetooth: false, carrier: 'Android', cellular: true, wifi: true }, + os: { name: 'Android', version: '9' }, + screen: { density: 420, height: 1794, width: 1080 }, timezone: 'Asia/Kolkata', - traits: { - anonymousId: '21e13f4bc7ceddad', - }, + traits: { anonymousId: '21e13f4bc7ceddad' }, userAgent: 'Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)', }, event: 'First Investment', - integrations: { - All: true, - }, + integrations: { All: true }, messageId: '1601322811899-d9c7dd00-50dc-4364-95c8-e89423eb3cfb', originalTimestamp: '2020-09-28T19:53:31.900Z', properties: { currency: 'EUR', key1: 'value1', key2: 'value2', - key3: { - k4: 'v4', - k5: { - k6: 'v6', - }, - }, - key5: [ - { - k: 'v1', - }, - { - k: 'v2', - }, - ], + key3: { k4: 'v4', k5: { k6: 'v6' } }, + key5: [{ k: 'v1' }, { k: 'v2' }], revenue: 20.37566, }, receivedAt: '2020-09-29T14:50:43.005+05:30', @@ -314,9 +227,7 @@ export const data = [ timestamp: '2020-09-29T14:50:29.907+05:30', type: 'track', }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, destination: { ID: '1i3Em7GMU9xVEiDlZUN8c88BMS9', Name: 'ADJ', @@ -339,14 +250,8 @@ export const data = [ Config: { appToken: 'testAppToken', customMappings: [ - { - from: 'Application Installed', - to: '3fdmll', - }, - { - from: 'First Investment', - to: 'testEventToken', - }, + { from: 'Application Installed', to: '3fdmll' }, + { from: 'First Investment', to: 'testEventToken' }, ], environment: true, }, @@ -372,9 +277,7 @@ export const data = [ type: 'REST', method: 'POST', endpoint: 'https://s2s.adjust.com/event', - headers: { - Accept: '*/*', - }, + headers: { Accept: '*/*' }, params: { callback_params: '{"key1":"value1","key2":"value2","key3.k4":"v4","key3.k5.k6":"v6","key5[0].k":"v1","key5[1].k":"v2"}', @@ -390,20 +293,11 @@ export const data = [ event_token: 'testEventToken', environment: 'production', }, - body: { - JSON: {}, - XML: {}, - JSON_ARRAY: {}, - FORM: {}, - }, + body: { JSON: {}, XML: {}, JSON_ARRAY: {}, FORM: {} }, files: {}, userId: '21e13f4bc7ceddad', }, - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], batched: false, statusCode: 200, destination: { @@ -428,14 +322,8 @@ export const data = [ Config: { appToken: 'testAppToken', customMappings: [ - { - from: 'Application Installed', - to: '3fdmll', - }, - { - from: 'First Investment', - to: 'testEventToken', - }, + { from: 'Application Installed', to: '3fdmll' }, + { from: 'First Investment', to: 'testEventToken' }, ], environment: true, }, diff --git a/test/integrations/destinations/af/router/data.ts b/test/integrations/destinations/af/router/data.ts index 46f30fef81..b6dca3a75e 100644 --- a/test/integrations/destinations/af/router/data.ts +++ b/test/integrations/destinations/af/router/data.ts @@ -43,7 +43,7 @@ export const data = [ sentAt: '2019-10-14T11:15:53.296Z', integrations: { AF: { af_uid: 'afUid' } }, }, - metadata: { jobId: 2 }, + metadata: { jobId: 2, userId: 'u1' }, destination: { Config: { devKey: 'ef1d42390426e3f7c90ac78272e74344', @@ -85,7 +85,7 @@ export const data = [ sentAt: '2019-10-14T11:15:53.296Z', integrations: { AF: { af_uid: 'afUid' } }, }, - metadata: { jobId: 2 }, + metadata: { jobId: 3, userId: 'u1' }, destination: { Config: { devKey: 'ef1d42390426e3f7c90ac78272e74344', @@ -128,7 +128,7 @@ export const data = [ sentAt: '2019-10-14T11:15:53.296Z', integrations: { AF: { af_uid: 'afUid' } }, }, - metadata: { jobId: 2 }, + metadata: { jobId: 4, userId: 'u1' }, destination: { Config: { devKey: 'ef1d42390426e3f7c90ac78272e74344', @@ -177,7 +177,7 @@ export const data = [ }, files: {}, }, - metadata: [{ jobId: 2 }], + metadata: [{ jobId: 2, userId: 'u1' }], batched: false, statusCode: 200, destination: { @@ -217,7 +217,7 @@ export const data = [ }, files: {}, }, - metadata: [{ jobId: 2 }], + metadata: [{ jobId: 3, userId: 'u1' }], batched: false, statusCode: 200, destination: { @@ -257,7 +257,7 @@ export const data = [ }, files: {}, }, - metadata: [{ jobId: 2 }], + metadata: [{ jobId: 4, userId: 'u1' }], batched: false, statusCode: 200, destination: { diff --git a/test/integrations/destinations/airship/router/data.ts b/test/integrations/destinations/airship/router/data.ts index bc11bc2cfc..8ed6f57a42 100644 --- a/test/integrations/destinations/airship/router/data.ts +++ b/test/integrations/destinations/airship/router/data.ts @@ -11,15 +11,9 @@ export const data = [ input: [ { destination: { - Config: { - apiKey: 'dummyApiKey', - appKey: 'O2YARRI15I', - dataCenter: false, - }, - }, - metadata: { - jobId: 1, + Config: { apiKey: 'dummyApiKey', appKey: 'O2YARRI15I', dataCenter: false }, }, + metadata: { jobId: 1, userId: 'u1' }, message: { channel: 'web', context: { @@ -29,26 +23,14 @@ export const data = [ namespace: 'com.rudderlabs.javascript', version: '1.0.0', }, - traits: { - email: 'testone@gmail.com', - firstName: 'test', - lastName: 'one', - }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + traits: { email: 'testone@gmail.com', firstName: 'test', lastName: 'one' }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', locale: 'en-US', ip: '0.0.0.0', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, }, type: 'track', messageId: '84e26acc-56a5-4835-8233-591137fca468', @@ -62,28 +44,14 @@ export const data = [ brand: 'Victory Sneakers', colors: ['red', 'blue'], items: [ - { - text: 'New Line Sneakers', - price: '$ 79.95', - }, - { - text: 'Old Line Sneakers', - price: '$ 79.95', - }, - { - text: 'Blue Line Sneakers', - price: '$ 79.95', - }, + { text: 'New Line Sneakers', price: '$ 79.95' }, + { text: 'Old Line Sneakers', price: '$ 79.95' }, + { text: 'Blue Line Sneakers', price: '$ 79.95' }, ], name: 'Hugh Manbeing', - userLocation: { - state: 'CO', - zip: '80202', - }, - }, - integrations: { - All: true, + userLocation: { state: 'CO', zip: '80202' }, }, + integrations: { All: true }, sentAt: '2019-10-14T09:03:22.563Z', }, }, @@ -114,9 +82,7 @@ export const data = [ body: { JSON: { occured: '2019-10-14T09:03:17.562Z', - user: { - named_user_id: 'testuserId1', - }, + user: { named_user_id: 'testuserId1' }, body: { name: 'product_clicked', properties: { @@ -124,24 +90,12 @@ export const data = [ brand: 'Victory Sneakers', colors: ['red', 'blue'], items: [ - { - text: 'New Line Sneakers', - price: '$ 79.95', - }, - { - text: 'Old Line Sneakers', - price: '$ 79.95', - }, - { - text: 'Blue Line Sneakers', - price: '$ 79.95', - }, + { text: 'New Line Sneakers', price: '$ 79.95' }, + { text: 'Old Line Sneakers', price: '$ 79.95' }, + { text: 'Blue Line Sneakers', price: '$ 79.95' }, ], name: 'Hugh Manbeing', - userLocation: { - state: 'CO', - zip: '80202', - }, + userLocation: { state: 'CO', zip: '80202' }, }, }, }, @@ -151,19 +105,11 @@ export const data = [ }, files: {}, }, - metadata: [ - { - jobId: 1, - }, - ], + metadata: [{ jobId: 1, userId: 'u1' }], batched: false, statusCode: 200, destination: { - Config: { - apiKey: 'dummyApiKey', - appKey: 'O2YARRI15I', - dataCenter: false, - }, + Config: { apiKey: 'dummyApiKey', appKey: 'O2YARRI15I', dataCenter: false }, }, }, ], @@ -183,15 +129,9 @@ export const data = [ input: [ { destination: { - Config: { - apiKey: 'dummyApiKey', - appKey: 'O2YARRI15I', - dataCenter: false, - }, - }, - metadata: { - jobId: 2, + Config: { apiKey: 'dummyApiKey', appKey: 'O2YARRI15I', dataCenter: false }, }, + metadata: { jobId: 2, userId: 'u1' }, message: { anonymousId: '507f191e810c19729de860ea', channel: 'browser', @@ -200,9 +140,7 @@ export const data = [ userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36', }, - integrations: { - All: true, - }, + integrations: { All: true }, messageId: '022bb90c-bbac-11e4-8dfc-aa07a5b093db', receivedAt: '2015-02-23T22:28:55.387Z', sentAt: '2015-02-23T22:28:55.111Z', @@ -255,15 +193,9 @@ export const data = [ params: {}, body: { JSON: { - audience: { - named_user_id: '97980cfea0067', - }, - add: { - rudderstack_integration: ['firstname', 'favcolor'], - }, - remove: { - rudderstack_integration: ['lastname'], - }, + audience: { named_user_id: '97980cfea0067' }, + add: { rudderstack_integration: ['firstname', 'favcolor'] }, + remove: { rudderstack_integration: ['lastname'] }, }, JSON_ARRAY: {}, XML: {}, @@ -291,12 +223,7 @@ export const data = [ value: 'Peter Gibbons', timestamp: '2015-02-23T22:28:55Z', }, - { - action: 'set', - key: 'age', - value: 34, - timestamp: '2015-02-23T22:28:55Z', - }, + { action: 'set', key: 'age', value: 34, timestamp: '2015-02-23T22:28:55Z' }, { action: 'set', key: 'email', @@ -354,19 +281,11 @@ export const data = [ files: {}, }, ], - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], batched: false, statusCode: 200, destination: { - Config: { - apiKey: 'dummyApiKey', - appKey: 'O2YARRI15I', - dataCenter: false, - }, + Config: { apiKey: 'dummyApiKey', appKey: 'O2YARRI15I', dataCenter: false }, }, }, ], @@ -385,15 +304,8 @@ export const data = [ body: { input: [ { - destination: { - Config: { - apiKey: 'dummyApiKey', - dataCenter: false, - }, - }, - metadata: { - jobId: 3, - }, + destination: { Config: { apiKey: 'dummyApiKey', dataCenter: false } }, + metadata: { jobId: 3, userId: 'u1' }, message: { anonymousId: '507f191e810c19729de860ea', channel: 'browser', @@ -402,9 +314,7 @@ export const data = [ userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36', }, - integrations: { - All: true, - }, + integrations: { All: true }, messageId: '022bb90c-bbac-11e4-8dfc-aa07a5b093db', receivedAt: '2015-02-23T22:28:55.387Z', sentAt: '2015-02-23T22:28:55.111Z', @@ -457,15 +367,9 @@ export const data = [ params: {}, body: { JSON: { - audience: { - named_user_id: '97980cfea0067', - }, - add: { - rudderstack_integration_group: ['firstname', 'favcolor'], - }, - remove: { - rudderstack_integration_group: ['lastname'], - }, + audience: { named_user_id: '97980cfea0067' }, + add: { rudderstack_integration_group: ['firstname', 'favcolor'] }, + remove: { rudderstack_integration_group: ['lastname'] }, }, JSON_ARRAY: {}, XML: {}, @@ -493,12 +397,7 @@ export const data = [ value: 'Peter Gibbons', timestamp: '2015-02-23T22:28:55Z', }, - { - action: 'set', - key: 'age', - value: 34, - timestamp: '2015-02-23T22:28:55Z', - }, + { action: 'set', key: 'age', value: 34, timestamp: '2015-02-23T22:28:55Z' }, { action: 'set', key: 'email', @@ -556,19 +455,10 @@ export const data = [ files: {}, }, ], - metadata: [ - { - jobId: 3, - }, - ], + metadata: [{ jobId: 3, userId: 'u1' }], batched: false, statusCode: 200, - destination: { - Config: { - apiKey: 'dummyApiKey', - dataCenter: false, - }, - }, + destination: { Config: { apiKey: 'dummyApiKey', dataCenter: false } }, }, ], }, diff --git a/test/integrations/destinations/algolia/router/data.ts b/test/integrations/destinations/algolia/router/data.ts index aaf3e224e3..65c74342dc 100644 --- a/test/integrations/destinations/algolia/router/data.ts +++ b/test/integrations/destinations/algolia/router/data.ts @@ -17,10 +17,7 @@ export const data = [ userId: 'test-user-id1', channel: 'web', context: { - os: { - name: '', - version: '', - }, + os: { name: '', version: '' }, app: { name: 'RudderLabs JavaScript SDK', build: '1.0.0', @@ -56,10 +53,7 @@ export const data = [ custom_date1: '2019-10-14T11:15:53.296Z', custom_flavor: 'chocolate', }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.2.1', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.2.1' }, campaign: {}, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36', @@ -71,27 +65,17 @@ export const data = [ index: 'products', queryId: '43b15df305339e827f0ac0bdc5ebcaa7', products: [ - { - objectId: 'ecommerce-sample-data-919', - position: 7, - }, - { - objectId: '9780439784542', - position: 8, - }, + { objectId: 'ecommerce-sample-data-919', position: 7 }, + { objectId: '9780439784542', position: 8 }, ], }, receivedAt: '2021-10-25T15:10:08.889+05:30', request_ip: '[::1]', anonymousId: '7138f7d9-5dd2-4337-805d-ca17be59dc8e', - integrations: { - All: true, - }, + integrations: { All: true }, originalTimestamp: '2021-10-25T09:40:08.879Z', }, - metadata: { - jobId: 1, - }, + metadata: { jobId: 1, userId: 'u1' }, destination: { ID: '1zzHtStW2ZPlullmz6L7DGnmk9V', Name: 'algolia-dev', @@ -100,9 +84,7 @@ export const data = [ Name: 'ALGOLIA', DisplayName: 'Algolia', Config: { - destConfig: { - defaultConfig: ['apiKey', 'applicationId', 'eventTypeSettings'], - }, + destConfig: { defaultConfig: ['apiKey', 'applicationId', 'eventTypeSettings'] }, excludeKeys: [], includeKeys: [], saveDestinationResponse: true, @@ -128,14 +110,8 @@ export const data = [ apiKey: 'apiKey', applicationId: 'appId', eventTypeSettings: [ - { - from: 'product clicked', - to: 'click', - }, - { - from: 'product list viewed', - to: 'view', - }, + { from: 'product clicked', to: 'click' }, + { from: 'product list viewed', to: 'view' }, ], }, Enabled: true, @@ -151,10 +127,7 @@ export const data = [ userId: 'test-user-id1', channel: 'web', context: { - os: { - name: '', - version: '', - }, + os: { name: '', version: '' }, app: { name: 'RudderLabs JavaScript SDK', build: '1.0.0', @@ -190,10 +163,7 @@ export const data = [ custom_date1: '2019-10-14T11:15:53.296Z', custom_flavor: 'chocolate', }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.2.1', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.2.1' }, campaign: {}, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36', @@ -201,21 +171,14 @@ export const data = [ rudderId: 'e3e907f1-f79a-444b-b91d-da47488f8273', messageId: '7b58e140-b66b-4e88-a5ec-bd6811fc3836', timestamp: '2021-10-25T15:10:08.943+05:30', - properties: { - index: 'products', - filters: ['field1:hello', 'val1:val2'], - }, + properties: { index: 'products', filters: ['field1:hello', 'val1:val2'] }, receivedAt: '2021-10-25T15:10:08.943+05:30', request_ip: '[::1]', anonymousId: '7138f7d9-5dd2-4337-805d-ca17be59dc8e', - integrations: { - All: true, - }, + integrations: { All: true }, originalTimestamp: '2021-10-25T09:40:08.886Z', }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, destination: { ID: '1zzHtStW2ZPlullmz6L7DGnmk9V', Name: 'algolia-dev', @@ -224,9 +187,7 @@ export const data = [ Name: 'ALGOLIA', DisplayName: 'Algolia', Config: { - destConfig: { - defaultConfig: ['apiKey', 'applicationId', 'eventTypeSettings'], - }, + destConfig: { defaultConfig: ['apiKey', 'applicationId', 'eventTypeSettings'] }, excludeKeys: [], includeKeys: [], saveDestinationResponse: true, @@ -252,14 +213,8 @@ export const data = [ apiKey: 'apiKey-2', applicationId: 'appId-2', eventTypeSettings: [ - { - from: 'product clicked', - to: 'click', - }, - { - from: 'product list viewed', - to: 'view', - }, + { from: 'product clicked', to: 'click' }, + { from: 'product list viewed', to: 'view' }, ], }, Enabled: true, @@ -277,26 +232,14 @@ export const data = [ namespace: 'com.rudderlabs.javascript', version: '1.0.0', }, - traits: { - email: 'testone@gmail.com', - firstName: 'test', - lastName: 'one', - }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + traits: { email: 'testone@gmail.com', firstName: 'test', lastName: 'one' }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', locale: 'en-US', ip: '0.0.0.0', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, page: { path: '/destinations/ometria', referrer: '', @@ -315,27 +258,16 @@ export const data = [ anonymousId: '123456', event: 'product clicked', userId: 'testuserId1', - properties: { - filters: ['field1:hello', 'val1:val2'], - }, - integrations: { - All: true, - }, + properties: { filters: ['field1:hello', 'val1:val2'] }, + integrations: { All: true }, sentAt: '2019-10-14T09:03:22.563Z', }, - metadata: { - jobId: 3, - }, + metadata: { jobId: 3, userId: 'u1' }, destination: { Config: { apiKey: 'dummyApiKey', applicationId: 'O2YARRI15I', - eventTypeSettings: [ - { - from: 'product clicked', - to: 'cLick ', - }, - ], + eventTypeSettings: [{ from: 'product clicked', to: 'cLick ' }], }, }, }, @@ -356,10 +288,7 @@ export const data = [ type: 'REST', method: 'POST', endpoint: 'https://insights.algolia.io/1/events', - headers: { - 'X-Algolia-Application-Id': 'appId', - 'X-Algolia-API-Key': 'apiKey', - }, + headers: { 'X-Algolia-Application-Id': 'appId', 'X-Algolia-API-Key': 'apiKey' }, params: {}, body: { JSON: { @@ -388,12 +317,8 @@ export const data = [ files: {}, }, metadata: [ - { - jobId: 1, - }, - { - jobId: 2, - }, + { jobId: 1, userId: 'u1' }, + { jobId: 2, userId: 'u1' }, ], batched: true, statusCode: 200, @@ -405,9 +330,7 @@ export const data = [ Name: 'ALGOLIA', DisplayName: 'Algolia', Config: { - destConfig: { - defaultConfig: ['apiKey', 'applicationId', 'eventTypeSettings'], - }, + destConfig: { defaultConfig: ['apiKey', 'applicationId', 'eventTypeSettings'] }, excludeKeys: [], includeKeys: [], saveDestinationResponse: true, @@ -433,14 +356,8 @@ export const data = [ apiKey: 'apiKey', applicationId: 'appId', eventTypeSettings: [ - { - from: 'product clicked', - to: 'click', - }, - { - from: 'product list viewed', - to: 'view', - }, + { from: 'product clicked', to: 'click' }, + { from: 'product list viewed', to: 'view' }, ], }, Enabled: true, @@ -454,20 +371,11 @@ export const data = [ Config: { apiKey: 'dummyApiKey', applicationId: 'O2YARRI15I', - eventTypeSettings: [ - { - from: 'product clicked', - to: 'cLick ', - }, - ], + eventTypeSettings: [{ from: 'product clicked', to: 'cLick ' }], }, }, error: 'Missing required value from "properties.index"', - metadata: [ - { - jobId: 3, - }, - ], + metadata: [{ jobId: 3, userId: 'u1' }], statTags: { destType: 'ALGOLIA', errorCategory: 'dataValidation', @@ -501,10 +409,7 @@ export const data = [ userId: 'anonymous', channel: 'web', context: { - os: { - name: '', - version: '', - }, + os: { name: '', version: '' }, app: { name: 'RudderLabs JavaScript SDK', version: '2.35.0', @@ -529,14 +434,8 @@ export const data = [ innerWidth: 2514, innerHeight: 567, }, - traits: { - loggedIn: false, - customerId: 'anonymous', - }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '2.35.0', - }, + traits: { loggedIn: false, customerId: 'anonymous' }, + library: { name: 'RudderLabs JavaScript SDK', version: '2.35.0' }, campaign: {}, sessionId: 1687204412379, userAgent: @@ -2093,9 +1992,7 @@ export const data = [ receivedAt: '2023-06-19T22:22:32.431Z', request_ip: '104.205.211.60', anonymousId: '7b701174-5998-480e-a4df-b322d0ec9d1c', - integrations: { - All: true, - }, + integrations: { All: true }, originalTimestamp: '2023-06-19T19:54:41.686Z', }, destination: { @@ -2104,35 +2001,17 @@ export const data = [ apiKey: 'apiKey', applicationId: 'appId', eventTypeSettings: [ - { - from: 'productClicked', - to: 'click', - }, - { - from: 'product list filtered', - to: 'click', - }, - { - from: 'Product List Viewed', - to: 'view', - }, - { - from: 'Order Completed', - to: 'conversion', - }, - { - from: 'Product Added', - to: 'click', - }, + { from: 'productClicked', to: 'click' }, + { from: 'product list filtered', to: 'click' }, + { from: 'Product List Viewed', to: 'view' }, + { from: 'Order Completed', to: 'conversion' }, + { from: 'Product Added', to: 'click' }, ], oneTrustCookieCategories: [], eventDelivery: false, eventDeliveryTS: 1687213909459, }, - liveEventsConfig: { - eventDelivery: false, - eventDeliveryTS: 1687213909459, - }, + liveEventsConfig: { eventDelivery: false, eventDeliveryTS: 1687213909459 }, id: 'destId', workspaceId: 'wspId', DestinationDefinition: { @@ -2192,6 +2071,7 @@ export const data = [ workspaceId: 'wspId', destinationId: 'destId', jobId: 12, + userId: 'u1', }, }, ], @@ -2247,10 +2127,7 @@ export const data = [ }, endpoint: 'https://insights.algolia.io/1/events', files: {}, - headers: { - 'X-Algolia-API-Key': 'apiKey', - 'X-Algolia-Application-Id': 'appId', - }, + headers: { 'X-Algolia-API-Key': 'apiKey', 'X-Algolia-Application-Id': 'appId' }, method: 'POST', params: {}, type: 'REST', @@ -2263,26 +2140,11 @@ export const data = [ eventDelivery: false, eventDeliveryTS: 1687213909459, eventTypeSettings: [ - { - from: 'productClicked', - to: 'click', - }, - { - from: 'product list filtered', - to: 'click', - }, - { - from: 'Product List Viewed', - to: 'view', - }, - { - from: 'Order Completed', - to: 'conversion', - }, - { - from: 'Product Added', - to: 'click', - }, + { from: 'productClicked', to: 'click' }, + { from: 'product list filtered', to: 'click' }, + { from: 'Product List Viewed', to: 'view' }, + { from: 'Order Completed', to: 'conversion' }, + { from: 'Product Added', to: 'click' }, ], oneTrustCookieCategories: [], }, @@ -2333,10 +2195,7 @@ export const data = [ id: 'destId', isConnectionEnabled: true, isProcessorEnabled: true, - liveEventsConfig: { - eventDelivery: false, - eventDeliveryTS: 1687213909459, - }, + liveEventsConfig: { eventDelivery: false, eventDeliveryTS: 1687213909459 }, name: 'my_algolia', revisionId: 'revisionId1', secretConfig: {}, @@ -2351,6 +2210,7 @@ export const data = [ workspaceId: 'wspId', destinationId: 'destId', jobId: 12, + userId: 'u1', }, ], statusCode: 200, diff --git a/test/integrations/destinations/am/batch/data.ts b/test/integrations/destinations/am/batch/data.ts index 962bb476c4..aa67df06c7 100644 --- a/test/integrations/destinations/am/batch/data.ts +++ b/test/integrations/destinations/am/batch/data.ts @@ -62,6 +62,7 @@ export const data = [ }, metadata: { job_id: 1, + userId: 'u1', }, destination: { ID: 'a', @@ -82,8 +83,10 @@ export const data = [ { batched: false, error: 'Both userId and deviceId cannot be undefined', + //TODO fix this metadata: { job_id: 1, + userId: 'u1', }, statTags: { errorCategory: 'dataValidation', @@ -161,6 +164,7 @@ export const data = [ }, metadata: { job_id: 1, + userId: 'u1', }, destination: { ID: 'a', @@ -215,6 +219,7 @@ export const data = [ }, metadata: { job_id: 2, + userId: 'u1', }, destination: { ID: 'a', @@ -269,6 +274,7 @@ export const data = [ }, metadata: { job_id: 3, + userId: 'u1', }, destination: { ID: 'a', @@ -326,6 +332,7 @@ export const data = [ }, metadata: { job_id: 4, + userId: 'u1', }, destination: { ID: 'a', @@ -383,6 +390,7 @@ export const data = [ }, metadata: { job_id: 5, + userId: 'u1', }, destination: { ID: 'a', @@ -416,6 +424,7 @@ export const data = [ }, metadata: { job_id: 6, + userId: 'u1', }, destination: { ID: 'a', @@ -447,6 +456,7 @@ export const data = [ }, metadata: { job_id: 7, + userId: 'u1', }, destination: { ID: 'a', @@ -520,6 +530,7 @@ export const data = [ metadata: [ { job_id: 1, + userId: 'u1', }, ], destination: { @@ -555,6 +566,7 @@ export const data = [ metadata: [ { job_id: 6, + userId: 'u1', }, ], destination: { @@ -588,6 +600,7 @@ export const data = [ metadata: [ { job_id: 7, + userId: 'u1', }, ], destination: { @@ -698,15 +711,19 @@ export const data = [ metadata: [ { job_id: 2, + userId: 'u1', }, { job_id: 3, + userId: 'u1', }, { job_id: 4, + userId: 'u1', }, { job_id: 5, + userId: 'u1', }, ], destination: { @@ -785,6 +802,7 @@ export const data = [ }, metadata: { job_id: 1, + userId: 'u1', }, destination: { ID: 'a', @@ -837,6 +855,7 @@ export const data = [ }, metadata: { job_id: 2, + userId: 'u1', }, destination: { ID: 'a', @@ -889,6 +908,7 @@ export const data = [ }, metadata: { job_id: 3, + userId: 'u1', }, destination: { ID: 'a', @@ -944,6 +964,7 @@ export const data = [ }, metadata: { job_id: 4, + userId: 'u1', }, destination: { ID: 'a', @@ -999,6 +1020,7 @@ export const data = [ }, metadata: { job_id: 5, + userId: 'u1', }, destination: { ID: 'a', @@ -1032,6 +1054,7 @@ export const data = [ }, metadata: { job_id: 6, + userId: 'u1', }, destination: { ID: 'a', @@ -1063,6 +1086,7 @@ export const data = [ }, metadata: { job_id: 7, + userId: 'u1', }, destination: { ID: 'a', @@ -1134,6 +1158,7 @@ export const data = [ metadata: [ { job_id: 1, + userId: 'u1', }, ], destination: { @@ -1169,6 +1194,7 @@ export const data = [ metadata: [ { job_id: 6, + userId: 'u1', }, ], destination: { @@ -1202,6 +1228,7 @@ export const data = [ metadata: [ { job_id: 7, + userId: 'u1', }, ], destination: { @@ -1312,15 +1339,19 @@ export const data = [ metadata: [ { job_id: 2, + userId: 'u1', }, { job_id: 3, + userId: 'u1', }, { job_id: 4, + userId: 'u1', }, { job_id: 5, + userId: 'u1', }, ], destination: { @@ -2087,6 +2118,7 @@ export const data = [ }, metadata: { job_id: 1, + userId: 'u1', }, destination: { ID: 'a', @@ -2141,6 +2173,7 @@ export const data = [ }, metadata: { job_id: 2, + userId: 'u1', }, destination: { ID: 'a', @@ -2195,6 +2228,7 @@ export const data = [ }, metadata: { job_id: 3, + userId: 'u1', }, destination: { ID: 'a', @@ -2252,6 +2286,7 @@ export const data = [ }, metadata: { job_id: 4, + userId: 'u1', }, destination: { ID: 'a', @@ -2309,6 +2344,7 @@ export const data = [ }, metadata: { job_id: 5, + userId: 'u1', }, destination: { ID: 'a', @@ -2342,6 +2378,7 @@ export const data = [ }, metadata: { job_id: 6, + userId: 'u1', }, destination: { ID: 'a', @@ -2373,6 +2410,7 @@ export const data = [ }, metadata: { job_id: 7, + userId: 'u1', }, destination: { ID: 'a', @@ -2446,6 +2484,7 @@ export const data = [ metadata: [ { job_id: 1, + userId: 'u1', }, ], destination: { @@ -2481,6 +2520,7 @@ export const data = [ metadata: [ { job_id: 6, + userId: 'u1', }, ], destination: { @@ -2514,6 +2554,7 @@ export const data = [ metadata: [ { job_id: 7, + userId: 'u1', }, ], destination: { @@ -2624,15 +2665,19 @@ export const data = [ metadata: [ { job_id: 2, + userId: 'u1', }, { job_id: 3, + userId: 'u1', }, { job_id: 4, + userId: 'u1', }, { job_id: 5, + userId: 'u1', }, ], destination: { @@ -2712,6 +2757,7 @@ export const data = [ }, metadata: { job_id: 1, + userId: 'u1', }, destination: { ID: 'a', @@ -2766,6 +2812,7 @@ export const data = [ }, metadata: { job_id: 2, + userId: 'u1', }, destination: { ID: 'a', @@ -2820,6 +2867,7 @@ export const data = [ }, metadata: { job_id: 3, + userId: 'u1', }, destination: { ID: 'a', @@ -2877,6 +2925,7 @@ export const data = [ }, metadata: { job_id: 4, + userId: 'u1', }, destination: { ID: 'a', @@ -2934,6 +2983,7 @@ export const data = [ }, metadata: { job_id: 5, + userId: 'u1', }, destination: { ID: 'a', @@ -2967,6 +3017,7 @@ export const data = [ }, metadata: { job_id: 6, + userId: 'u1', }, destination: { ID: 'a', @@ -2998,6 +3049,7 @@ export const data = [ }, metadata: { job_id: 7, + userId: 'u1', }, destination: { ID: 'a', @@ -3070,6 +3122,7 @@ export const data = [ metadata: [ { job_id: 1, + userId: 'u1', }, ], destination: { @@ -3105,6 +3158,7 @@ export const data = [ metadata: [ { job_id: 6, + userId: 'u1', }, ], destination: { @@ -3138,6 +3192,7 @@ export const data = [ metadata: [ { job_id: 7, + userId: 'u1', }, ], destination: { @@ -3248,15 +3303,19 @@ export const data = [ metadata: [ { job_id: 2, + userId: 'u1', }, { job_id: 3, + userId: 'u1', }, { job_id: 4, + userId: 'u1', }, { job_id: 5, + userId: 'u1', }, ], destination: { diff --git a/test/integrations/destinations/am/router/data.ts b/test/integrations/destinations/am/router/data.ts index 7f2e1d0329..1b4026c85e 100644 --- a/test/integrations/destinations/am/router/data.ts +++ b/test/integrations/destinations/am/router/data.ts @@ -32,21 +32,13 @@ export const data = [ ip: '0.0.0.0', age: 26, }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', locale: 'en-US', ip: '0.0.0.0', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, page: { path: '/destinations/amplitude', referrer: '', @@ -64,20 +56,12 @@ export const data = [ originalTimestamp: '2019-10-14T09:03:17.562Z', anonymousId: '123456', userId: '123456', - integrations: { - All: true, - }, + integrations: { All: true }, sentAt: '2019-10-14T09:03:22.563Z', }, - metadata: { - jobId: 1, - }, + metadata: { jobId: 1, userId: 'u1' }, destination: { - Config: { - apiKey: 'abcde', - groupTypeTrait: 'email', - groupValueTrait: 'age', - }, + Config: { apiKey: 'abcde', groupTypeTrait: 'email', groupValueTrait: 'age' }, }, }, { @@ -90,24 +74,13 @@ export const data = [ namespace: 'com.rudderlabs.javascript', version: '1.0.0', }, - traits: { - email: 'test@rudderstack.com', - anonymousId: '12345', - }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + traits: { email: 'test@rudderstack.com', anonymousId: '12345' }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', locale: 'en-US', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, page: { path: '/destinations/amplitude', referrer: '', @@ -136,20 +109,12 @@ export const data = [ initial_referrer: 'https://docs.rudderstack.com', initial_referring_domain: 'docs.rudderstack.com', }, - integrations: { - All: true, - }, + integrations: { All: true }, name: 'ApplicationLoaded', sentAt: '2019-10-14T11:15:53.296Z', }, - metadata: { - jobId: 2, - }, - destination: { - Config: { - apiKey: 'abcde', - }, - }, + metadata: { jobId: 2, userId: 'u1' }, + destination: { Config: { apiKey: 'abcde' } }, }, ], destType: 'am', @@ -169,9 +134,7 @@ export const data = [ type: 'REST', method: 'POST', endpoint: 'https://api2.amplitude.com/2/httpapi', - headers: { - 'Content-Type': 'application/json', - }, + headers: { 'Content-Type': 'application/json' }, params: {}, body: { JSON: { @@ -208,9 +171,7 @@ export const data = [ ip: '0.0.0.0', }, ], - options: { - min_id_length: 1, - }, + options: { min_id_length: 1 }, }, XML: {}, JSON_ARRAY: {}, @@ -220,19 +181,11 @@ export const data = [ userId: '123456', }, ], - metadata: [ - { - jobId: 1, - }, - ], + metadata: [{ jobId: 1, userId: 'u1' }], batched: false, statusCode: 200, destination: { - Config: { - apiKey: 'abcde', - groupTypeTrait: 'email', - groupValueTrait: 'age', - }, + Config: { apiKey: 'abcde', groupTypeTrait: 'email', groupValueTrait: 'age' }, }, }, { @@ -242,9 +195,7 @@ export const data = [ type: 'REST', method: 'POST', endpoint: 'https://api2.amplitude.com/2/httpapi', - headers: { - 'Content-Type': 'application/json', - }, + headers: { 'Content-Type': 'application/json' }, params: {}, body: { JSON: { @@ -285,9 +236,7 @@ export const data = [ time: 1571051718299, }, ], - options: { - min_id_length: 1, - }, + options: { min_id_length: 1 }, }, XML: {}, JSON_ARRAY: {}, @@ -297,18 +246,10 @@ export const data = [ userId: '00000000000000000000000000', }, ], - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], batched: false, statusCode: 200, - destination: { - Config: { - apiKey: 'abcde', - }, - }, + destination: { Config: { apiKey: 'abcde' } }, }, ], }, diff --git a/test/integrations/destinations/appcues/router/data.ts b/test/integrations/destinations/appcues/router/data.ts index ddc8dddf57..729aee7699 100644 --- a/test/integrations/destinations/appcues/router/data.ts +++ b/test/integrations/destinations/appcues/router/data.ts @@ -21,15 +21,9 @@ export const data = [ version: '1.1.9', }, campaign: {}, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.1.9', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.9' }, locale: 'en-GB', - os: { - name: '', - version: '', - }, + os: { name: '', version: '' }, page: { path: '/rudder-sdk-js/tests/html/script-test.html', referrer: '', @@ -37,16 +31,12 @@ export const data = [ title: '', url: 'http://localhost:4321/rudder-sdk-js/tests/html/script-test.html', }, - screen: { - density: 2, - }, + screen: { density: 2 }, traits: {}, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36', }, - integrations: { - All: true, - }, + integrations: { All: true }, messageId: '6a5f38c0-4e75-4268-a066-2b73fbcad01f', originalTimestamp: '2021-01-04T08:25:04.780Z', receivedAt: '2021-01-04T13:55:04.799+05:30', @@ -57,15 +47,8 @@ export const data = [ type: 'identify', userId: 'onlyUserId', }, - metadata: { - jobId: 1, - }, - destination: { - Config: { - accountId: '86086', - useNativeSDK: false, - }, - }, + metadata: { jobId: 1, userId: 'u1' }, + destination: { Config: { accountId: '86086', useNativeSDK: false } }, }, { message: { @@ -79,15 +62,9 @@ export const data = [ version: '1.1.9', }, campaign: {}, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.1.9', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.9' }, locale: 'en-GB', - os: { - name: '', - version: '', - }, + os: { name: '', version: '' }, page: { path: '/rudder-sdk-js/tests/html/script-test.html', referrer: '', @@ -95,19 +72,12 @@ export const data = [ title: '', url: 'http://localhost:4321/rudder-sdk-js/tests/html/script-test.html', }, - screen: { - density: 2, - }, - traits: { - 'first name': 'John', - 'last name': 'Abraham', - }, + screen: { density: 2 }, + traits: { 'first name': 'John', 'last name': 'Abraham' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36', }, - integrations: { - All: true, - }, + integrations: { All: true }, messageId: '57494c6a-3c62-4b30-83aa-6e821d37ac75', originalTimestamp: '2021-01-04T08:25:04.786Z', receivedAt: '2021-01-04T13:55:04.799+05:30', @@ -118,15 +88,8 @@ export const data = [ type: 'identify', userId: 'userIdWithProperties', }, - metadata: { - jobId: 2, - }, - destination: { - Config: { - accountId: '86086', - useNativeSDK: false, - }, - }, + metadata: { jobId: 2, userId: 'u1' }, + destination: { Config: { accountId: '86086', useNativeSDK: false } }, }, ], destType: 'appcues', @@ -145,34 +108,20 @@ export const data = [ XML: {}, JSON_ARRAY: {}, FORM: {}, - JSON: { - request_id: '6a5f38c0-4e75-4268-a066-2b73fbcad01f', - profile_update: {}, - }, + JSON: { request_id: '6a5f38c0-4e75-4268-a066-2b73fbcad01f', profile_update: {} }, }, type: 'REST', files: {}, method: 'POST', params: {}, - headers: { - 'Content-Type': 'application/json', - }, + headers: { 'Content-Type': 'application/json' }, version: '1', endpoint: 'https://api.appcues.com/v1/accounts/86086/users/onlyUserId/activity', }, - metadata: [ - { - jobId: 1, - }, - ], + metadata: [{ jobId: 1, userId: 'u1' }], batched: false, statusCode: 200, - destination: { - Config: { - accountId: '86086', - useNativeSDK: false, - }, - }, + destination: { Config: { accountId: '86086', useNativeSDK: false } }, }, { batchedRequest: { @@ -182,36 +131,22 @@ export const data = [ FORM: {}, JSON: { request_id: '57494c6a-3c62-4b30-83aa-6e821d37ac75', - profile_update: { - 'last name': 'Abraham', - 'first name': 'John', - }, + profile_update: { 'last name': 'Abraham', 'first name': 'John' }, }, }, type: 'REST', files: {}, method: 'POST', params: {}, - headers: { - 'Content-Type': 'application/json', - }, + headers: { 'Content-Type': 'application/json' }, version: '1', endpoint: 'https://api.appcues.com/v1/accounts/86086/users/userIdWithProperties/activity', }, - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], batched: false, statusCode: 200, - destination: { - Config: { - accountId: '86086', - useNativeSDK: false, - }, - }, + destination: { Config: { accountId: '86086', useNativeSDK: false } }, }, ], }, diff --git a/test/integrations/destinations/attentive_tag/router/data.ts b/test/integrations/destinations/attentive_tag/router/data.ts index c52a6ed2e3..63bd477f0c 100644 --- a/test/integrations/destinations/attentive_tag/router/data.ts +++ b/test/integrations/destinations/attentive_tag/router/data.ts @@ -10,28 +10,16 @@ export const data = [ body: { input: [ { - destination: { - Config: { - apiKey: 'dummyApiKey', - signUpSourceId: '241654', - }, - }, - metadata: { - jobId: 1, - }, + destination: { Config: { apiKey: 'dummyApiKey', signUpSourceId: '241654' } }, + metadata: { jobId: 1, userId: 'u1' }, message: { anonymousId: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', channel: 'web', context: { locale: 'en-GB', - os: { - name: '', - version: '', - }, + os: { name: '', version: '' }, traits: { - company: { - id: 'abc123', - }, + company: { id: 'abc123' }, createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', email: 'test0@gmail.com', phone: '+16465453911', @@ -39,26 +27,14 @@ export const data = [ userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36', externalId: [ - { - type: 'clientUsrId', - id: 1, - }, - { - type: 'shopifyId', - id: 1, - }, - { - type: 'klaviyoId', - id: 1, - }, + { type: 'clientUsrId', id: 1 }, + { type: 'shopifyId', id: 1 }, + { type: 'klaviyoId', id: 1 }, ], }, integrations: { All: true, - attentive_tag: { - signUpSourceId: '241654', - identifyOperation: 'unsubscribe', - }, + attentive_tag: { signUpSourceId: '241654', identifyOperation: 'unsubscribe' }, }, messageId: 'e108eb05-f6cd-4624-ba8c-568f2e2b3f92', receivedAt: '2020-10-16T13:56:14.945+05:30', @@ -88,31 +64,17 @@ export const data = [ }, params: {}, body: { - JSON: { - user: { - phone: '+16465453911', - email: 'test0@gmail.com', - }, - }, + JSON: { user: { phone: '+16465453911', email: 'test0@gmail.com' } }, JSON_ARRAY: {}, XML: {}, FORM: {}, }, files: {}, }, - metadata: [ - { - jobId: 1, - }, - ], + metadata: [{ jobId: 1, userId: 'u1' }], batched: false, statusCode: 200, - destination: { - Config: { - apiKey: 'dummyApiKey', - signUpSourceId: '241654', - }, - }, + destination: { Config: { apiKey: 'dummyApiKey', signUpSourceId: '241654' } }, }, ], }, diff --git a/test/integrations/destinations/autopilot/router/data.ts b/test/integrations/destinations/autopilot/router/data.ts index cbfe0c4207..92117a97c8 100644 --- a/test/integrations/destinations/autopilot/router/data.ts +++ b/test/integrations/destinations/autopilot/router/data.ts @@ -17,28 +17,18 @@ export const data = [ ID: '1afjX4MlAucK57Q0ctTVlD27Tvo', Name: 'AUTOPILOT', DisplayName: 'Autopilot', - Config: { - excludeKeys: [], - includeKeys: [], - }, + Config: { excludeKeys: [], includeKeys: [] }, }, Config: { apiKey: 'dummyApiKey', - customMappings: [ - { - from: '0001', - to: 'Signup', - }, - ], + customMappings: [{ from: '0001', to: 'Signup' }], triggerId: '00XX', }, Enabled: true, Transformations: [], IsProcessorEnabled: true, }, - metadata: { - jobId: 1, - }, + metadata: { jobId: 1, userId: 'u1' }, message: { anonymousId: 'ac7722c2-ccb6-4ae2-baf6-1effe861f4cd', channel: 'web', @@ -49,15 +39,9 @@ export const data = [ namespace: 'com.rudderlabs.javascript', version: '1.1.1-rc.2', }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.1.1-rc.2', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.1-rc.2' }, locale: 'en-GB', - os: { - name: '', - version: '', - }, + os: { name: '', version: '' }, page: { path: '/tests/html/index4.html', referrer: '', @@ -65,25 +49,17 @@ export const data = [ title: '', url: 'http://localhost/tests/html/index4.html', }, - screen: { - density: 2, - }, + screen: { density: 2 }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36', }, - integrations: { - All: true, - }, + integrations: { All: true }, messageId: 'fad9b3fb-5778-4db3-9fb6-7168b554191f', originalTimestamp: '2020-04-17T14:42:44.722Z', receivedAt: '2020-04-17T20:12:44.758+05:30', request_ip: '[::1]:53513', sentAt: '2020-04-17T14:42:44.722Z', - traits: { - age: 23, - email: 'testmp@rudderstack.com', - firstname: 'Test Kafka', - }, + traits: { age: 23, email: 'testmp@rudderstack.com', firstname: 'Test Kafka' }, timestamp: '2020-04-17T20:12:44.758+05:30', type: 'identify', userId: 'user12345', @@ -97,28 +73,18 @@ export const data = [ ID: '1afjX4MlAucK57Q0ctTVlD27Tvo', Name: 'AUTOPILOT', DisplayName: 'Autopilot', - Config: { - excludeKeys: [], - includeKeys: [], - }, + Config: { excludeKeys: [], includeKeys: [] }, }, Config: { apiKey: 'dummyApiKey', - customMappings: [ - { - from: '0001', - to: 'Signup', - }, - ], + customMappings: [{ from: '0001', to: 'Signup' }], triggerId: '00XX', }, Enabled: true, Transformations: [], IsProcessorEnabled: true, }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, message: { anonymousId: 'ac7722c2-ccb6-4ae2-baf6-1effe861f4cd', channel: 'web', @@ -129,15 +95,9 @@ export const data = [ namespace: 'com.rudderlabs.javascript', version: '1.1.1-rc.2', }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.1.1-rc.2', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.1-rc.2' }, locale: 'en-GB', - os: { - name: '', - version: '', - }, + os: { name: '', version: '' }, page: { path: '/tests/html/index4.html', referrer: '', @@ -145,27 +105,16 @@ export const data = [ title: '', url: 'http://localhost/tests/html/index4.html', }, - screen: { - density: 2, - }, - traits: { - age: 23, - email: 'testmp@rudderstack.com', - firstname: 'Test Kafka', - }, + screen: { density: 2 }, + traits: { age: 23, email: 'testmp@rudderstack.com', firstname: 'Test Kafka' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36', }, event: 'test track with property', - integrations: { - All: true, - }, + integrations: { All: true }, messageId: '37b75e61-9bd2-4fb8-91ed-e3a064905f3a', originalTimestamp: '2020-04-17T14:42:44.724Z', - properties: { - test_prop_1: 'test prop', - test_prop_2: 1232, - }, + properties: { test_prop_1: 'test prop', test_prop_2: 1232 }, receivedAt: '2020-04-17T20:12:44.758+05:30', request_ip: '[::1]:53512', sentAt: '2020-04-17T14:42:44.725Z', @@ -202,9 +151,7 @@ export const data = [ contact: { Email: 'testmp@rudderstack.com', FirstName: 'Test Kafka', - custom: { - age: 23, - }, + custom: { age: 23 }, }, }, XML: {}, @@ -214,11 +161,7 @@ export const data = [ files: {}, userId: 'ac7722c2-ccb6-4ae2-baf6-1effe861f4cd', }, - metadata: [ - { - jobId: 1, - }, - ], + metadata: [{ jobId: 1, userId: 'u1' }], batched: false, statusCode: 200, destination: { @@ -228,19 +171,11 @@ export const data = [ ID: '1afjX4MlAucK57Q0ctTVlD27Tvo', Name: 'AUTOPILOT', DisplayName: 'Autopilot', - Config: { - excludeKeys: [], - includeKeys: [], - }, + Config: { excludeKeys: [], includeKeys: [] }, }, Config: { apiKey: 'dummyApiKey', - customMappings: [ - { - from: '0001', - to: 'Signup', - }, - ], + customMappings: [{ from: '0001', to: 'Signup' }], triggerId: '00XX', }, Enabled: true, @@ -262,12 +197,7 @@ export const data = [ }, params: {}, body: { - JSON: { - property: { - test_prop_1: 'test prop', - test_prop_2: 1232, - }, - }, + JSON: { property: { test_prop_1: 'test prop', test_prop_2: 1232 } }, XML: {}, JSON_ARRAY: {}, FORM: {}, @@ -275,11 +205,7 @@ export const data = [ files: {}, userId: 'ac7722c2-ccb6-4ae2-baf6-1effe861f4cd', }, - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], batched: false, statusCode: 200, destination: { @@ -289,19 +215,11 @@ export const data = [ ID: '1afjX4MlAucK57Q0ctTVlD27Tvo', Name: 'AUTOPILOT', DisplayName: 'Autopilot', - Config: { - excludeKeys: [], - includeKeys: [], - }, + Config: { excludeKeys: [], includeKeys: [] }, }, Config: { apiKey: 'dummyApiKey', - customMappings: [ - { - from: '0001', - to: 'Signup', - }, - ], + customMappings: [{ from: '0001', to: 'Signup' }], triggerId: '00XX', }, Enabled: true, diff --git a/test/integrations/destinations/blueshift/router/data.ts b/test/integrations/destinations/blueshift/router/data.ts index 7c92ff1d74..7104beb873 100644 --- a/test/integrations/destinations/blueshift/router/data.ts +++ b/test/integrations/destinations/blueshift/router/data.ts @@ -17,9 +17,7 @@ export const data = [ datacenterEU: false, }, }, - metadata: { - jobId: 1, - }, + metadata: { jobId: 1, userId: 'u1' }, message: { context: { app: { @@ -51,9 +49,7 @@ export const data = [ datacenterEU: false, }, }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, message: { context: { ip: '14.5.67.21', @@ -67,16 +63,8 @@ export const data = [ type: 'Android', attTrackingStatus: 3, }, - os: { - name: 'Android', - version: '9', - }, - network: { - bluetooth: false, - carrier: 'Android', - cellular: true, - wifi: true, - }, + os: { name: 'Android', version: '9' }, + network: { bluetooth: false, carrier: 'Android', cellular: true, wifi: true }, address: { city: 'kolkata', country: 'India', @@ -87,9 +75,7 @@ export const data = [ street: 'rajnagar', }, }, - properties: { - cookie: '1234abcd-efghijkj-1234kfjadslk-34iu123', - }, + properties: { cookie: '1234abcd-efghijkj-1234kfjadslk-34iu123' }, messageId: '34abcd-efghijkj-1234kf', type: 'track', event: 'identify', @@ -104,9 +90,7 @@ export const data = [ datacenterEU: false, }, }, - metadata: { - jobId: 3, - }, + metadata: { jobId: 3, userId: 'u1' }, message: { channel: 'web', context: { @@ -116,21 +100,13 @@ export const data = [ namespace: 'com.rudderlabs.javascript', version: '1.0.0', }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', locale: 'en-US', ip: '0.0.0.0', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, }, messageId: '84e26acc-56a5-4835-8233-591137fca468', session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', @@ -157,10 +133,7 @@ export const data = [ msgemail: true, msgwhatsapp: false, custom_tags: ['Test_User', 'Interested_User', 'DIY_Hobby'], - custom_mappings: { - Office: 'Trastkiv', - Country: 'Russia', - }, + custom_mappings: { Office: 'Trastkiv', Country: 'Russia' }, address: { city: 'kolkata', country: 'India', @@ -169,9 +142,7 @@ export const data = [ street: '', }, }, - integrations: { - All: true, - }, + integrations: { All: true }, sentAt: '2019-10-14T09:03:22.563Z', }, }, @@ -210,11 +181,7 @@ export const data = [ }, files: {}, }, - metadata: [ - { - jobId: 1, - }, - ], + metadata: [{ jobId: 1, userId: 'u1' }], batched: false, statusCode: 200, destination: { @@ -259,11 +226,7 @@ export const data = [ version: '1', endpoint: 'https://api.getblueshift.com/api/v1/event', }, - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], batched: false, statusCode: 200, destination: { @@ -307,10 +270,7 @@ export const data = [ msgemail: true, msgwhatsapp: false, custom_tags: ['Test_User', 'Interested_User', 'DIY_Hobby'], - custom_mappings: { - Office: 'Trastkiv', - Country: 'Russia', - }, + custom_mappings: { Office: 'Trastkiv', Country: 'Russia' }, address: { city: 'kolkata', country: 'India', @@ -325,11 +285,7 @@ export const data = [ }, files: {}, }, - metadata: [ - { - jobId: 3, - }, - ], + metadata: [{ jobId: 3, userId: 'u1' }], batched: false, statusCode: 200, destination: { diff --git a/test/integrations/destinations/bqstream/router/data.ts b/test/integrations/destinations/bqstream/router/data.ts index e44ce4af15..3c77f2c62f 100644 --- a/test/integrations/destinations/bqstream/router/data.ts +++ b/test/integrations/destinations/bqstream/router/data.ts @@ -14,18 +14,10 @@ export const data = [ type: 'track', event: 'insert product', userId: 'user12345', - - properties: { - count: 10, - productId: 10, - productName: 'Product-10', - }, + properties: { count: 10, productId: 10, productName: 'Product-10' }, anonymousId: 'd8b2ed61-7fa5-4ef8-bd92-6a506157c0cf', }, - metadata: { - jobId: 1, - userId: 'user12345', - }, + metadata: { jobId: 1, userId: 'user12345' }, destination: { Config: { rudderAccountId: '1z8LpaSAuFR9TPWL6fECZfjmRa-', @@ -36,7 +28,6 @@ export const data = [ eventDelivery: true, eventDeliveryTS: 1636965406397, }, - ID: '1WXjIHpu7ETXgjfiGPW3kCUgZFR', Name: 'bqstream test', }, @@ -46,16 +37,9 @@ export const data = [ type: 'track', event: 'insert product', userId: 'user12345', - properties: { - count: 20, - productId: 20, - productName: 'Product-20', - }, - }, - metadata: { - jobId: 2, - userId: 'user12345', + properties: { count: 20, productId: 20, productName: 'Product-20' }, }, + metadata: { jobId: 2, userId: 'user12345' }, destination: { Config: { rudderAccountId: '1z8LpaSAuFR9TPWL6fECZfjmRa-', @@ -66,7 +50,6 @@ export const data = [ eventDelivery: true, eventDeliveryTS: 1636965406397, }, - ID: '1WXjIHpu7ETXgjfiGPW3kCUgZFR', Name: 'bqstream test', }, @@ -76,17 +59,10 @@ export const data = [ type: 'identify', event: 'insert product', userId: 'user12345', - traits: { - count: 20, - productId: 20, - productName: 'Product-20', - }, + traits: { count: 20, productId: 20, productName: 'Product-20' }, anonymousId: 'd8b2ed61-7fa5-4ef8-bd92-6a506157c0cf', }, - metadata: { - jobId: 3, - userId: 'user12345', - }, + metadata: { jobId: 3, userId: 'user12345' }, destination: { Config: { rudderAccountId: '1z8LpaSAuFR9TPWL6fECZfjmRa-', @@ -97,7 +73,6 @@ export const data = [ eventDelivery: true, eventDeliveryTS: 1636965406397, }, - ID: '1WXjIHpu7ETXgjfiGPW3kCUgZFR', Name: 'bqstream test', }, @@ -107,17 +82,10 @@ export const data = [ type: 'track', event: 'insert product', userId: 'user12345', - properties: { - count: 20, - productId: 20, - productName: 'Product-20', - }, + properties: { count: 20, productId: 20, productName: 'Product-20' }, anonymousId: 'd8b2ed61-7fa5-4ef8-bd92-6a506157c0cf', }, - metadata: { - jobId: 5, - userId: 'user123', - }, + metadata: { jobId: 5, userId: 'user123' }, destination: { Config: { rudderAccountId: '1z8LpaSAuFR9TPWL6fECZfjmRa-', @@ -128,7 +96,6 @@ export const data = [ eventDelivery: true, eventDeliveryTS: 1636965406397, }, - ID: '1WXjIHpu7ETXgjfiGPW3kCUgZFR', Name: 'bqstream test', }, @@ -138,17 +105,10 @@ export const data = [ type: 'track', event: 'insert product', userId: 'user12345', - properties: { - count: 20, - productId: 20, - productName: 'Product-20', - }, + properties: { count: 20, productId: 20, productName: 'Product-20' }, anonymousId: 'd8b2ed61-7fa5-4ef8-bd92-6a506157c0cf', }, - metadata: { - jobId: 6, - userId: 'user124', - }, + metadata: { jobId: 6, userId: 'user124' }, destination: { Config: { rudderAccountId: '1z8LpaSAuFR9TPWL6fECZfjmRa-', @@ -159,22 +119,13 @@ export const data = [ eventDelivery: true, eventDeliveryTS: 1636965406397, }, - ID: '1WXjIHpu7ETXgjfiGPW3kCUgZFR', Name: 'bqstream test', }, }, { - message: { - type: 'track', - event: 'insert product', - - userId: 'user12345', - }, - metadata: { - jobId: 7, - userId: 'user124', - }, + message: { type: 'track', event: 'insert product', userId: 'user12345' }, + metadata: { jobId: 7, userId: 'user124' }, destination: { Config: { rudderAccountId: '1z8LpaSAuFR9TPWL6fECZfjmRa-', @@ -185,21 +136,13 @@ export const data = [ eventDelivery: true, eventDeliveryTS: 1636965406397, }, - ID: '1WXjIHpu7ETXgjfiGPW3kCUgZFR', Name: 'bqstream test', }, }, { - message: { - type: 'track', - event: 'insert product', - userId: 'user12345', - }, - metadata: { - jobId: 8, - userId: 'user125', - }, + message: { type: 'track', event: 'insert product', userId: 'user12345' }, + metadata: { jobId: 8, userId: 'user125' }, destination: { Config: { rudderAccountId: '1z8LpaSAuFR9TPWL6fECZfjmRa-', @@ -210,7 +153,6 @@ export const data = [ eventDelivery: true, eventDeliveryTS: 1636965406397, }, - ID: '1WXjIHpu7ETXgjfiGPW3kCUgZFR', Name: 'bqstream test', }, @@ -219,14 +161,9 @@ export const data = [ message: { type: 'identify', event: 'insert product', - userId: 'user12345', - context: { - os: { - Name: '', - version: '', - }, + os: { Name: '', version: '' }, app: { Name: 'RudderLabs JavaScript SDK', build: '1.0.0', @@ -253,27 +190,16 @@ export const data = [ innerHeight: 776, }, traits: {}, - library: { - Name: 'RudderLabs JavaScript SDK', - version: '1.1.18', - }, + library: { Name: 'RudderLabs JavaScript SDK', version: '1.1.18' }, campaign: {}, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36', }, - - traits: { - count: 20, - productId: 20, - productName: 'Product-20', - }, + traits: { count: 20, productId: 20, productName: 'Product-20' }, receivedAt: '2021-11-15T14:06:42.497+05:30', anonymousId: 'd8b2ed61-7fa5-4ef8-bd92-6a506157c0cf', }, - metadata: { - jobId: 9, - userId: 'user125', - }, + metadata: { jobId: 9, userId: 'user125' }, destination: { Config: { rudderAccountId: '1z8LpaSAuFR9TPWL6fECZfjmRa-', @@ -284,7 +210,6 @@ export const data = [ eventDelivery: true, eventDeliveryTS: 1636965406397, }, - ID: '1WXjIHpu7ETXgjfiGPW3kCUgZFR', Name: 'bqstream test', }, @@ -306,30 +231,10 @@ export const data = [ datasetId: 'gc_dataset', projectId: 'gc-project-id', properties: [ - { - count: 10, - insertId: '10', - productId: 10, - productName: 'Product-10', - }, - { - count: 20, - insertId: '20', - productId: 20, - productName: 'Product-20', - }, - { - count: 20, - insertId: '20', - productId: 20, - productName: 'Product-20', - }, - { - count: 20, - insertId: '20', - productId: 20, - productName: 'Product-20', - }, + { count: 10, insertId: '10', productId: 10, productName: 'Product-10' }, + { count: 20, insertId: '20', productId: 20, productName: 'Product-20' }, + { count: 20, insertId: '20', productId: 20, productName: 'Product-20' }, + { count: 20, insertId: '20', productId: 20, productName: 'Product-20' }, ], tableId: 'gc_table', }, @@ -347,22 +252,10 @@ export const data = [ Name: 'bqstream test', }, metadata: [ - { - jobId: 1, - userId: 'user12345', - }, - { - jobId: 2, - userId: 'user12345', - }, - { - jobId: 5, - userId: 'user123', - }, - { - jobId: 6, - userId: 'user124', - }, + { jobId: 1, userId: 'user12345' }, + { jobId: 2, userId: 'user12345' }, + { jobId: 5, userId: 'user123' }, + { jobId: 6, userId: 'user124' }, ], statusCode: 200, }, @@ -383,14 +276,8 @@ export const data = [ }, error: 'Invalid payload for the destination', metadata: [ - { - jobId: 7, - userId: 'user124', - }, - { - jobId: 8, - userId: 'user125', - }, + { jobId: 7, userId: 'user124' }, + { jobId: 8, userId: 'user125' }, ], statTags: { destType: 'BQSTREAM', @@ -417,17 +304,10 @@ export const data = [ ID: '1WXjIHpu7ETXgjfiGPW3kCUgZFR', Name: 'bqstream test', }, - error: 'Message Type not supported: identify', metadata: [ - { - jobId: 3, - userId: 'user12345', - }, - { - jobId: 9, - userId: 'user125', - }, + { jobId: 3, userId: 'user12345' }, + { jobId: 9, userId: 'user125' }, ], statTags: { destType: 'BQSTREAM', diff --git a/test/integrations/destinations/branch/router/data.ts b/test/integrations/destinations/branch/router/data.ts index 4c87145b7e..6451c463f1 100644 --- a/test/integrations/destinations/branch/router/data.ts +++ b/test/integrations/destinations/branch/router/data.ts @@ -11,10 +11,7 @@ export const data = [ input: [ { destination: { - Config: { - branchKey: '', - useNativeSDK: false, - }, + Config: { branchKey: '', useNativeSDK: false }, DestinationDefinition: { DisplayName: 'Branch Metrics', ID: '1WTpBSTiL3iAUHUdW7rHT4sawgU', @@ -25,9 +22,7 @@ export const data = [ Name: 'branch test', Transformations: [], }, - metadata: { - jobId: 1, - }, + metadata: { jobId: 1, userId: 'u1' }, message: { anonymousId: 'sampath', channel: 'web', @@ -39,34 +34,19 @@ export const data = [ version: '1.0.0', }, ip: '0.0.0.0', - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, locale: 'en-US', - os: { - name: 'iOS', - version: '', - }, - screen: { - density: 2, - }, - traits: { - anonymousId: 'sampath', - email: 'sampath@gmail.com', - }, + os: { name: 'iOS', version: '' }, + screen: { density: 2 }, + traits: { anonymousId: 'sampath', email: 'sampath@gmail.com' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', }, event: 'product added', - integrations: { - All: true, - }, + integrations: { All: true }, messageId: 'ea5cfab2-3961-4d8a-8187-3d1858c90a9f', originalTimestamp: '2020-01-17T04:53:51.185Z', - properties: { - name: 'sampath', - }, + properties: { name: 'sampath' }, receivedAt: '2020-01-17T10:23:52.688+05:30', request_ip: '[::1]:64059', sentAt: '2020-01-17T04:53:52.667Z', @@ -77,10 +57,7 @@ export const data = [ }, { destination: { - Config: { - branchKey: '', - useNativeSDK: false, - }, + Config: { branchKey: '', useNativeSDK: false }, DestinationDefinition: { DisplayName: 'Branch Metrics', ID: '1WTpBSTiL3iAUHUdW7rHT4sawgU', @@ -91,9 +68,7 @@ export const data = [ Name: 'branch test', Transformations: [], }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, message: { anonymousId: 'sampath', channel: 'web', @@ -105,28 +80,15 @@ export const data = [ version: '1.0.0', }, ip: '0.0.0.0', - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, locale: 'en-US', - os: { - name: 'iOS', - version: '', - }, - screen: { - density: 2, - }, + os: { name: 'iOS', version: '' }, + screen: { density: 2 }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', }, - integrations: { - All: true, - }, - traits: { - anonymousId: 'sampath', - email: 'sampath@gmail.com', - }, + integrations: { All: true }, + traits: { anonymousId: 'sampath', email: 'sampath@gmail.com' }, messageId: 'ea5cfab2-3961-4d8a-8187-3d1858c90a9f', originalTimestamp: '2020-01-17T04:53:51.185Z', receivedAt: '2020-01-17T10:23:52.688+05:30', @@ -154,20 +116,13 @@ export const data = [ type: 'REST', method: 'POST', endpoint: 'https://api2.branch.io/v2/event/standard', - headers: { - 'Content-Type': 'application/json', - Accept: 'application/json', - }, + headers: { 'Content-Type': 'application/json', Accept: 'application/json' }, params: {}, body: { JSON: { branch_key: '', name: 'ADD_TO_CART', - content_items: [ - { - $product_name: 'sampath', - }, - ], + content_items: [{ $product_name: 'sampath' }], user_data: { os: 'iOS', os_version: '', @@ -185,18 +140,11 @@ export const data = [ files: {}, userId: 'sampath', }, - metadata: [ - { - jobId: 1, - }, - ], + metadata: [{ jobId: 1, userId: 'u1' }], batched: false, statusCode: 200, destination: { - Config: { - branchKey: '', - useNativeSDK: false, - }, + Config: { branchKey: '', useNativeSDK: false }, DestinationDefinition: { DisplayName: 'Branch Metrics', ID: '1WTpBSTiL3iAUHUdW7rHT4sawgU', @@ -214,19 +162,13 @@ export const data = [ type: 'REST', method: 'POST', endpoint: 'https://api2.branch.io/v2/event/custom', - headers: { - 'Content-Type': 'application/json', - Accept: 'application/json', - }, + headers: { 'Content-Type': 'application/json', Accept: 'application/json' }, params: {}, body: { JSON: { branch_key: '', name: 'sampath', - custom_data: { - anonymousId: 'sampath', - email: 'sampath@gmail.com', - }, + custom_data: { anonymousId: 'sampath', email: 'sampath@gmail.com' }, content_items: [{}], user_data: { os: 'iOS', @@ -245,18 +187,11 @@ export const data = [ files: {}, userId: 'sampath', }, - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], batched: false, statusCode: 200, destination: { - Config: { - branchKey: '', - useNativeSDK: false, - }, + Config: { branchKey: '', useNativeSDK: false }, DestinationDefinition: { DisplayName: 'Branch Metrics', ID: '1WTpBSTiL3iAUHUdW7rHT4sawgU', diff --git a/test/integrations/destinations/braze/router/data.ts b/test/integrations/destinations/braze/router/data.ts index 2e3be35b01..76201bda41 100644 --- a/test/integrations/destinations/braze/router/data.ts +++ b/test/integrations/destinations/braze/router/data.ts @@ -27,9 +27,7 @@ export const data = [ Name: 'Braze', Transformations: [], }, - metadata: { - jobId: 1, - }, + metadata: { jobId: 1, userId: 'u1' }, message: { anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', channel: 'web', @@ -41,25 +39,15 @@ export const data = [ version: '1.0.5', }, ip: '0.0.0.0', - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.5', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, locale: 'en-GB', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, traits: {}, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', }, - integrations: { - All: true, - }, + integrations: { All: true }, messageId: 'dd266c67-9199-4a52-ba32-f46ddde67312', originalTimestamp: '2020-01-24T06:29:02.358Z', properties: { @@ -95,9 +83,7 @@ export const data = [ Name: 'Braze', Transformations: [], }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, message: { anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', channel: 'web', @@ -109,18 +95,10 @@ export const data = [ version: '1.0.5', }, ip: '0.0.0.0', - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.5', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, locale: 'en-GB', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, traits: { city: 'Disney', country: 'USA', @@ -130,9 +108,7 @@ export const data = [ userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', }, - integrations: { - All: true, - }, + integrations: { All: true }, messageId: '2536eda4-d638-4c93-8014-8ffe3f083214', originalTimestamp: '2020-01-24T06:29:02.362Z', receivedAt: '2020-01-24T11:59:02.403+05:30', @@ -162,16 +138,11 @@ export const data = [ Name: 'Braze', Transformations: [], }, - metadata: { - jobId: 3, - }, + metadata: { jobId: 3, userId: 'u1' }, message: { anonymousId: '56yrtsdfgbgxcb-22b4-401d-aae5-1b994be9a969', groupId: 'c90f0fd2-2a02-4f2f-bf07-7e7d2c2ed2b1', - traits: { - phone: '5055077683', - subscriptionState: 'subscribed', - }, + traits: { phone: '5055077683', subscriptionState: 'subscribed' }, userId: 'user123', type: 'group', }, @@ -195,16 +166,11 @@ export const data = [ Name: 'Braze', Transformations: [], }, - metadata: { - jobId: 4, - }, + metadata: { jobId: 4, userId: 'u1' }, message: { anonymousId: 'dfgdfgdfg-22b4-401d-aae5-1b994be9a969', groupId: '58d0a278-b55b-4f10-b7d2-98d1c5dd4c30', - traits: { - phone: '5055077683', - subscriptionState: 'subscribed', - }, + traits: { phone: '5055077683', subscriptionState: 'subscribed' }, userId: 'user877', type: 'group', }, @@ -228,14 +194,8 @@ export const data = [ Name: 'Braze', Transformations: [], }, - metadata: { - jobId: 5, - }, - message: { - type: 'alias', - previousId: 'adsfsaf', - userId: 'dsafsdf', - }, + metadata: { jobId: 5, userId: 'u1' }, + message: { type: 'alias', previousId: 'adsfsaf', userId: 'dsafsdf' }, }, { destination: { @@ -256,14 +216,8 @@ export const data = [ Name: 'Braze', Transformations: [], }, - metadata: { - jobId: 6, - }, - message: { - type: 'alias', - previousId: 'adsfsaf2', - userId: 'dsafsdf2', - }, + metadata: { jobId: 6, userId: 'u1' }, + message: { type: 'alias', previousId: 'adsfsaf2', userId: 'dsafsdf2' }, }, ], destType: 'braze', @@ -379,20 +333,12 @@ export const data = [ JSON: { merge_updates: [ { - identifier_to_keep: { - external_id: 'dsafsdf', - }, - identifier_to_merge: { - external_id: 'adsfsaf', - }, + identifier_to_keep: { external_id: 'dsafsdf' }, + identifier_to_merge: { external_id: 'adsfsaf' }, }, { - identifier_to_keep: { - external_id: 'dsafsdf2', - }, - identifier_to_merge: { - external_id: 'adsfsaf2', - }, + identifier_to_keep: { external_id: 'dsafsdf2' }, + identifier_to_merge: { external_id: 'adsfsaf2' }, }, ], }, @@ -404,24 +350,12 @@ export const data = [ }, ], metadata: [ - { - jobId: 1, - }, - { - jobId: 2, - }, - { - jobId: 3, - }, - { - jobId: 4, - }, - { - jobId: 5, - }, - { - jobId: 6, - }, + { jobId: 1, userId: 'u1' }, + { jobId: 2, userId: 'u1' }, + { jobId: 3, userId: 'u1' }, + { jobId: 4, userId: 'u1' }, + { jobId: 5, userId: 'u1' }, + { jobId: 6, userId: 'u1' }, ], batched: true, statusCode: 200, @@ -481,9 +415,7 @@ export const data = [ IsProcessorEnabled: true, RevisionID: '2N9Uaf2tWq2QRmatBWQm03Rz6qX', }, - metadata: { - jobId: 1, - }, + metadata: { jobId: 1, userId: 'u1' }, message: { type: 'track', event: 'Sign In Completed', @@ -503,17 +435,10 @@ export const data = [ account_region: 'ON', is_pickup_selected: 'false', has_tradein_attempt: false, - custom_obj_attr: { - key1: 'value1', - key2: 'value2', - key4: 'value4', - }, + custom_obj_attr: { key1: 'value1', key2: 'value2', key4: 'value4' }, custom_arr: [1, 2, 'str1'], }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '2.9.5', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '2.9.5' }, campaign: {}, userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36', @@ -560,9 +485,7 @@ export const data = [ IsProcessorEnabled: true, RevisionID: '2N9Uaf2tWq2QRmatBWQm03Rz6qX', }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, message: { type: 'track', event: 'Sign In Completed', @@ -582,17 +505,10 @@ export const data = [ account_region: 'ON', is_pickup_selected: 'true', has_tradein_attempt: false, - custom_obj_attr: { - key1: 'value1', - key2: 'value2', - key4: 'value4', - }, + custom_obj_attr: { key1: 'value1', key2: 'value2', key4: 'value4' }, custom_arr: ['1', '2', 'str1'], }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '2.9.5', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '2.9.5' }, campaign: {}, userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36', @@ -639,9 +555,7 @@ export const data = [ IsProcessorEnabled: true, RevisionID: '2N9Uaf2tWq2QRmatBWQm03Rz6qX', }, - metadata: { - jobId: 3, - }, + metadata: { jobId: 3, userId: 'u1' }, message: { anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', channel: 'web', @@ -653,18 +567,10 @@ export const data = [ version: '1.0.5', }, ip: '0.0.0.0', - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.5', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, locale: 'en-GB', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, traits: { city: 'Disney', country: 'USA', @@ -674,9 +580,7 @@ export const data = [ userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', }, - integrations: { - All: true, - }, + integrations: { All: true }, messageId: '2536eda4-d638-4c93-8014-8ffe3f083214', type: 'identify', userId: 'user@50', @@ -705,9 +609,7 @@ export const data = [ IsProcessorEnabled: true, RevisionID: '2N9Uaf2tWq2QRmatBWQm03Rz6qX', }, - metadata: { - jobId: 4, - }, + metadata: { jobId: 4, userId: 'u1' }, message: { anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', channel: 'web', @@ -719,18 +621,10 @@ export const data = [ version: '1.0.5', }, ip: '0.0.0.0', - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.5', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, locale: 'en-GB', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, traits: { city: 'Disney', country: 'USA', @@ -740,9 +634,7 @@ export const data = [ userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', }, - integrations: { - All: true, - }, + integrations: { All: true }, messageId: '2536eda4-d638-4c93-8014-8ffe3f083214', type: 'identify', userId: 'user@50', @@ -781,11 +673,7 @@ export const data = [ subscribe_once: true, pwa: true, external_id: 'braze_test_user', - custom_obj_attr: { - key1: 'value1', - key2: 'value2', - key4: 'value4', - }, + custom_obj_attr: { key1: 'value1', key2: 'value2', key4: 'value4' }, }, { last_name: 'Miranda 2', @@ -842,15 +730,9 @@ export const data = [ }, ], metadata: [ - { - jobId: 1, - }, - { - jobId: 2, - }, - { - jobId: 3, - }, + { jobId: 1, userId: 'u1' }, + { jobId: 2, userId: 'u1' }, + { jobId: 3, userId: 'u1' }, ], batched: true, statusCode: 200, @@ -889,11 +771,7 @@ export const data = [ }, statusCode: 400, batched: false, - metadata: [ - { - jobId: 4, - }, - ], + metadata: [{ jobId: 4, userId: 'u1' }], destination: { ID: '2N9UakqKF0D35wfzSeofIxPdL8X', Name: 'Braze-Test', diff --git a/test/integrations/destinations/campaign_manager/router/data.ts b/test/integrations/destinations/campaign_manager/router/data.ts index 2ab1813cf8..5b4e5bcce4 100644 --- a/test/integrations/destinations/campaign_manager/router/data.ts +++ b/test/integrations/destinations/campaign_manager/router/data.ts @@ -17,6 +17,7 @@ export const data = [ developer_token: 'ijkl91011', }, jobId: 1, + userId: 'u1', }, destination: { Config: { @@ -56,21 +57,13 @@ export const data = [ postalCode: 'EC3M', streetAddress: '71 Cherry Court SOUTHAMPTON SO53 5PD UK', }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', locale: 'en-US', ip: '0.0.0.0', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, }, event: 'Promotion Clicked', originalTimestamp: '2022-11-17T00:22:02.903+05:30', @@ -91,9 +84,7 @@ export const data = [ }, type: 'track', anonymousId: 'randomId', - integrations: { - All: true, - }, + integrations: { All: true }, name: 'ApplicationLoaded', sentAt: '2022-11-17T00:22:02.903+05:30', }, @@ -106,6 +97,7 @@ export const data = [ developer_token: 'ijkl91011', }, jobId: 2, + userId: 'u1', }, destination: { Config: { @@ -145,21 +137,13 @@ export const data = [ postalCode: 'EC3M', streetAddress: '71 Cherry Court SOUTHAMPTON SO53 5PD UK', }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', locale: 'en-US', ip: '0.0.0.0', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, }, event: 'Promotion Clicked', type: 'track', @@ -180,9 +164,7 @@ export const data = [ requestType: 'batchupdate', }, anonymousId: 'randomId', - integrations: { - All: true, - }, + integrations: { All: true }, name: 'ApplicationLoaded', sentAt: '2022-11-17T00:22:02.903+05:30', }, @@ -195,6 +177,7 @@ export const data = [ developer_token: 'ijkl91011', }, jobId: 3, + userId: 'u1', }, destination: { Config: { @@ -234,21 +217,13 @@ export const data = [ postalCode: 'EC3M', streetAddress: '71 Cherry Court SOUTHAMPTON SO53 5PD UK', }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', locale: 'en-US', ip: '0.0.0.0', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, }, event: 'Promotion Clicked', type: 'track', @@ -272,9 +247,7 @@ export const data = [ requestType: 'randomValue', }, anonymousId: 'randomId', - integrations: { - All: true, - }, + integrations: { All: true }, name: 'ApplicationLoaded', sentAt: '2022-11-17T00:22:02.903+05:30', }, @@ -341,6 +314,7 @@ export const data = [ refresh_token: 'efgh5678', }, jobId: 1, + userId: 'u1', }, ], batched: true, @@ -404,6 +378,7 @@ export const data = [ refresh_token: 'efgh5678', }, jobId: 2, + userId: 'u1', }, ], batched: true, @@ -439,6 +414,7 @@ export const data = [ refresh_token: 'efgh5678', }, jobId: 3, + userId: 'u1', }, ], statusCode: 400, @@ -474,6 +450,7 @@ export const data = [ developer_token: 'ijkl91011', }, jobId: 4, + userId: 'u1', }, destination: { Config: { @@ -502,9 +479,7 @@ export const data = [ }, type: 'track', anonymousId: 'randomId', - integrations: { - All: true, - }, + integrations: { All: true }, name: 'ApplicationLoaded', sentAt: '2022-11-17T00:22:02.903+05:30', }, @@ -517,6 +492,7 @@ export const data = [ developer_token: 'ijkl91011', }, jobId: 5, + userId: 'u1', }, destination: { Config: { @@ -545,9 +521,7 @@ export const data = [ requestType: 'batchinsert', }, anonymousId: 'randomId', - integrations: { - All: true, - }, + integrations: { All: true }, name: 'ApplicationLoaded', sentAt: '2022-11-17T00:22:02.903+05:30', }, @@ -560,6 +534,7 @@ export const data = [ developer_token: 'ijkl91011', }, jobId: 6, + userId: 'u1', }, destination: { Config: { @@ -588,9 +563,7 @@ export const data = [ requestType: 'batchinsert', }, anonymousId: 'randomId', - integrations: { - All: true, - }, + integrations: { All: true }, name: 'ApplicationLoaded', sentAt: '2022-11-17T00:22:02.903+05:30', }, @@ -677,6 +650,7 @@ export const data = [ developer_token: 'ijkl91011', }, jobId: 4, + userId: 'u1', }, { secret: { @@ -685,6 +659,7 @@ export const data = [ developer_token: 'ijkl91011', }, jobId: 5, + userId: 'u1', }, { secret: { @@ -693,6 +668,7 @@ export const data = [ developer_token: 'ijkl91011', }, jobId: 6, + userId: 'u1', }, ], batched: true, @@ -730,6 +706,7 @@ export const data = [ developer_token: 'ijkl91011', }, jobId: 4, + userId: 'u1', }, destination: { Config: { @@ -758,9 +735,7 @@ export const data = [ }, type: 'track', anonymousId: 'randomId', - integrations: { - All: true, - }, + integrations: { All: true }, name: 'ApplicationLoaded', sentAt: '2022-11-17T00:22:02.903+05:30', }, @@ -773,6 +748,7 @@ export const data = [ developer_token: 'ijkl91011', }, jobId: 5, + userId: 'u1', }, destination: { Config: { @@ -801,9 +777,7 @@ export const data = [ requestType: 'batchupdate', }, anonymousId: 'randomId', - integrations: { - All: true, - }, + integrations: { All: true }, name: 'ApplicationLoaded', sentAt: '2022-11-17T00:22:02.903+05:30', }, @@ -816,6 +790,7 @@ export const data = [ developer_token: 'ijkl91011', }, jobId: 6, + userId: 'u1', }, destination: { Config: { @@ -844,9 +819,7 @@ export const data = [ requestType: 'batchinsert', }, anonymousId: 'randomId', - integrations: { - All: true, - }, + integrations: { All: true }, name: 'ApplicationLoaded', sentAt: '2022-11-17T00:22:02.903+05:30', }, @@ -916,6 +889,7 @@ export const data = [ developer_token: 'ijkl91011', }, jobId: 4, + userId: 'u1', }, { secret: { @@ -924,6 +898,7 @@ export const data = [ developer_token: 'ijkl91011', }, jobId: 5, + userId: 'u1', }, ], batched: true, @@ -983,6 +958,7 @@ export const data = [ developer_token: 'ijkl91011', }, jobId: 6, + userId: 'u1', }, ], batched: true, @@ -1020,6 +996,7 @@ export const data = [ developer_token: 'ijkl91011', }, jobId: 4, + userId: 'u1', }, destination: { Config: { @@ -1047,9 +1024,7 @@ export const data = [ }, type: 'track', anonymousId: 'randomId', - integrations: { - All: true, - }, + integrations: { All: true }, name: 'ApplicationLoaded', sentAt: '2022-11-17T00:22:02.903+05:30', }, @@ -1062,6 +1037,7 @@ export const data = [ developer_token: 'ijkl91011', }, jobId: 5, + userId: 'u1', }, destination: { Config: { @@ -1089,9 +1065,7 @@ export const data = [ requestType: 'batchupdate', }, anonymousId: 'randomId', - integrations: { - All: true, - }, + integrations: { All: true }, name: 'ApplicationLoaded', sentAt: '2022-11-17T00:22:02.903+05:30', }, @@ -1104,6 +1078,7 @@ export const data = [ developer_token: 'ijkl91011', }, jobId: 6, + userId: 'u1', }, destination: { Config: { @@ -1124,7 +1099,6 @@ export const data = [ floodlightConfigurationId: '213123123', floodlightActivityId: '456543345245', value: 7, - ordinal: '1', quantity: '455678', limitAdTracking: true, @@ -1132,9 +1106,7 @@ export const data = [ requestType: 'batchinsert', }, anonymousId: 'randomId', - integrations: { - All: true, - }, + integrations: { All: true }, name: 'ApplicationLoaded', sentAt: '2022-11-17T00:22:02.903+05:30', }, @@ -1159,6 +1131,7 @@ export const data = [ developer_token: 'ijkl91011', }, jobId: 4, + userId: 'u1', }, ], batched: false, @@ -1192,6 +1165,7 @@ export const data = [ developer_token: 'ijkl91011', }, jobId: 5, + userId: 'u1', }, ], batched: false, @@ -1225,6 +1199,7 @@ export const data = [ developer_token: 'ijkl91011', }, jobId: 6, + userId: 'u1', }, ], batched: false, diff --git a/test/integrations/destinations/candu/router/data.ts b/test/integrations/destinations/candu/router/data.ts index 8aa6441881..e6c7d96a15 100644 --- a/test/integrations/destinations/candu/router/data.ts +++ b/test/integrations/destinations/candu/router/data.ts @@ -18,9 +18,7 @@ export const data = [ Name: 'CANDU', DisplayName: 'Candu', Config: { - destConfig: { - defaultConfig: ['apiKey'], - }, + destConfig: { defaultConfig: ['apiKey'] }, excludeKeys: [], includeKeys: [ 'apiKey', @@ -47,16 +45,12 @@ export const data = [ }, ResponseRules: {}, }, - Config: { - apiKey: 'FXLkLUEhGJyvmY4', - }, + Config: { apiKey: 'FXLkLUEhGJyvmY4' }, Enabled: true, Transformations: [], IsProcessorEnabled: true, }, - metadata: { - jobId: 1, - }, + metadata: { jobId: 1, userId: 'u1' }, message: { anonymousId: 'a1b2c3d4e5f6g7h8i9j10', channel: 'mobile', @@ -77,32 +71,21 @@ export const data = [ attTrackingStatus: 3, }, ip: '0.0.0.0', - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, locale: 'en-US', - os: { - name: 'watchos', - }, - screen: { - density: 2, - }, + os: { name: 'watchos' }, + screen: { density: 2 }, traits: { email: 'sampath@gmail.com', name: 'Joker', Gender: 'male', - foo: { - foo: 'bar', - }, + foo: { foo: 'bar' }, }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', }, event: 'product added', - integrations: { - All: true, - }, + integrations: { All: true }, messageId: 'ea5cfab2-3961-4d8a-8187-3d1858c90a9f', originalTimestamp: '2020-01-17T04:53:51.185Z', receivedAt: '2020-01-17T10:23:52.688+05:30', @@ -156,11 +139,7 @@ export const data = [ }, files: {}, }, - metadata: [ - { - jobId: 1, - }, - ], + metadata: [{ jobId: 1, userId: 'u1' }], batched: false, statusCode: 200, destination: { diff --git a/test/integrations/destinations/clevertap/dataDelivery/data.ts b/test/integrations/destinations/clevertap/dataDelivery/data.ts index bc8866823e..8032dd50c8 100644 --- a/test/integrations/destinations/clevertap/dataDelivery/data.ts +++ b/test/integrations/destinations/clevertap/dataDelivery/data.ts @@ -1,227 +1,230 @@ export const data = [ { - "name": "clevertap", - "description": "Test 0", - "feature": "dataDelivery", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.clevertap.com/1/upload/test1", - "headers": { - "X-CleverTap-Account-Id": "476550467", - "X-CleverTap-Passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", - "Content-Type": "application/json" + name: 'clevertap', + description: 'Test 0', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.clevertap.com/1/upload/test1', + headers: { + 'X-CleverTap-Account-Id': '476550467', + 'X-CleverTap-Passcode': + 'fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1', + 'Content-Type': 'application/json', }, - "body": { - "JSON": { - "d": [ + body: { + JSON: { + d: [ { - "type": "profile", - "profileData": { - "Email": "jamesDoe@gmail.com", - "Name": "James Doe", - "Phone": "92374162212", - "Gender": "M", - "Employed": true, - "DOB": "1614775793", - "Education": "Science", - "Married": "Y", - "Customer Type": "Prime", - "graduate": true, - "msg_push": true, - "msgSms": true, - "msgemail": true, - "msgwhatsapp": false, - "custom_tags": "[\"Test_User\",\"Interested_User\",\"DIY_Hobby\"]", - "custom_mappings": "{\"Office\":\"Trastkiv\",\"Country\":\"Russia\"}", - "address": "{\"city\":\"kolkata\",\"country\":\"India\",\"postalCode\":789223,\"state\":\"WB\",\"street\":\"\"}" + type: 'profile', + profileData: { + Email: 'jamesDoe@gmail.com', + Name: 'James Doe', + Phone: '92374162212', + Gender: 'M', + Employed: true, + DOB: '1614775793', + Education: 'Science', + Married: 'Y', + 'Customer Type': 'Prime', + graduate: true, + msg_push: true, + msgSms: true, + msgemail: true, + msgwhatsapp: false, + custom_tags: '["Test_User","Interested_User","DIY_Hobby"]', + custom_mappings: '{"Office":"Trastkiv","Country":"Russia"}', + address: + '{"city":"kolkata","country":"India","postalCode":789223,"state":"WB","street":""}', }, - "identity": "anon_id" - } - ] + identity: 'anon_id', + }, + ], }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + params: { + destination: 'clevertap', }, - "files": {}, - "params": { - "destination": "clevertap" - } }, - "method": "POST" - } + method: 'POST', + }, }, - "output": { - "response": { - "status": 200, - "body": { - "output": { - "status": 200, - "message": "Request Processed Successfully", - "destinationResponse": { - "response": { - "status": "success", - "processed": 1, - "unprocessed": [] + output: { + response: { + status: 200, + body: { + output: { + status: 200, + message: 'Request Processed Successfully', + destinationResponse: { + response: { + status: 'success', + processed: 1, + unprocessed: [], }, - "status": 200 - } - } - } - } - } + status: 200, + }, + }, + }, + }, + }, }, { - "name": "clevertap", - "description": "Test 1", - "feature": "dataDelivery", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {}, - "JSON": { - "d": [ + name: 'clevertap', + description: 'Test 1', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + d: [ { - "identity": "anon-id-new", - "type": "event", - "evtName": "Web Page Viewed: Rudder", - "evtData": { - "title": "Home", - "path": "/" - } - } - ] - } + identity: 'anon-id-new', + type: 'event', + evtName: 'Web Page Viewed: Rudder', + evtData: { + title: 'Home', + path: '/', + }, + }, + ], + }, + }, + type: 'REST', + files: {}, + method: 'POST', + headers: { + 'X-CleverTap-Account-Id': 'fakeId123', + 'X-CleverTap-Passcode': 'fakePasscode123', + 'Content-Type': 'application/json', }, - "type": "REST", - "files": {}, - "method": "POST", - "headers": { - "X-CleverTap-Account-Id": "fakeId123", - "X-CleverTap-Passcode": "fakePasscode123", - "Content-Type": "application/json" + version: '1', + endpoint: 'https://api.clevertap.com/1/upload/test2', + params: { + destination: 'clevertap', }, - "version": "1", - "endpoint": "https://api.clevertap.com/1/upload/test2", - "params": { - "destination": "clevertap" - } }, - "method": "POST" - } + method: 'POST', + }, }, - "output": { - "response": { - "status": 401, - "body": { - "output": { - "status": 401, - "message": "Request failed with status: 401", - "destinationResponse": { - "response": { - "status": "fail", - "error": "Invalid Credentials", - "code": 401 + output: { + response: { + status: 401, + body: { + output: { + status: 401, + message: 'Request failed with status: 401', + destinationResponse: { + response: { + status: 'fail', + error: 'Invalid Credentials', + code: 401, }, - "status": 401 + status: 401, }, - "statTags": { - "destType": "CLEVERTAP", - "errorCategory": "network", - "destinationId": "Non-determininable", - "workspaceId": "Non-determininable", - "errorType": "aborted", - "feature": "dataDelivery", - "implementation": "native", - "module": "destination" - } - } - } - } - } + statTags: { + destType: 'CLEVERTAP', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'aborted', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + }, + }, + }, + }, + }, }, { - "name": "clevertap", - "description": "Test 2", - "feature": "dataDelivery", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {}, - "JSON": { - "d": [ + name: 'clevertap', + description: 'Test 2', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + d: [ { - "identity": "anon-id-new", - "type": "event", - "evtData": { - "title": "Home", - "path": "/" - } - } - ] - } + identity: 'anon-id-new', + type: 'event', + evtData: { + title: 'Home', + path: '/', + }, + }, + ], + }, + }, + type: 'REST', + files: {}, + method: 'POST', + headers: { + 'X-CleverTap-Account-Id': '476550467', + 'X-CleverTap-Passcode': + 'fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1', + 'Content-Type': 'application/json', }, - "type": "REST", - "files": {}, - "method": "POST", - "headers": { - "X-CleverTap-Account-Id": "476550467", - "X-CleverTap-Passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", - "Content-Type": "application/json" + version: '1', + endpoint: 'https://api.clevertap.com/1/upload/test3', + params: { + destination: 'clevertap', }, - "version": "1", - "endpoint": "https://api.clevertap.com/1/upload/test3", - "params": { - "destination": "clevertap" - } }, - "method": "POST" - } + method: 'POST', + }, }, - "output": { - "response": { - "status": 400, - "body": { - "output": { - "status": 400, - "message": "Request failed with status: 200", - "destinationResponse": { - "response": { - "status": "fail", - "processed": 0, - "unprocessed": [] + output: { + response: { + status: 400, + body: { + output: { + status: 400, + message: 'Request failed with status: 200', + destinationResponse: { + response: { + status: 'fail', + processed: 0, + unprocessed: [], }, - "status": 200 + status: 200, }, - "statTags": { - "destType": "CLEVERTAP", - "errorCategory": "network", - "destinationId": "Non-determininable", - "workspaceId": "Non-determininable", - "errorType": "aborted", - "feature": "dataDelivery", - "implementation": "native", - "module": "destination" - } - } - } - } - } - } -] \ No newline at end of file + statTags: { + destType: 'CLEVERTAP', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'aborted', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + }, + }, + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/clevertap/router/data.ts b/test/integrations/destinations/clevertap/router/data.ts index 2d6ec1dcf0..4f1723a7da 100644 --- a/test/integrations/destinations/clevertap/router/data.ts +++ b/test/integrations/destinations/clevertap/router/data.ts @@ -18,9 +18,7 @@ export const data = [ enableObjectIdMapping: true, }, }, - metadata: { - jobId: 1, - }, + metadata: { jobId: 1, userId: 'u1' }, message: { channel: 'web', context: { @@ -30,21 +28,13 @@ export const data = [ namespace: 'com.rudderlabs.javascript', version: '1.0.0', }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', locale: 'en-US', ip: '0.0.0.0', - os: { - name: 'Android', - version: '', - }, - screen: { - density: 2, - }, + os: { name: 'Android', version: '' }, + screen: { density: 2 }, device: { id: 'f54bb572361c4fd1', name: 'whyred', @@ -77,10 +67,7 @@ export const data = [ msgemail: true, msgwhatsapp: false, custom_tags: ['Test_User', 'Interested_User', 'DIY_Hobby'], - custom_mappings: { - Office: 'Trastkiv', - Country: 'Russia', - }, + custom_mappings: { Office: 'Trastkiv', Country: 'Russia' }, address: { city: 'kolkata', country: 'India', @@ -89,9 +76,7 @@ export const data = [ street: '', }, }, - integrations: { - All: true, - }, + integrations: { All: true }, sentAt: '2019-10-14T09:03:22.563Z', }, }, @@ -104,15 +89,10 @@ export const data = [ enableObjectIdMapping: true, }, }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, message: { event: 'Random', - properties: { - country_region: 'India', - test: 'abc', - }, + properties: { country_region: 'India', test: 'abc' }, receivedAt: '2021-08-20T12:49:07.691Z', rudderId: '138c4214-b537-4f77-9dea-9abde70b5147', type: 'track', @@ -127,23 +107,13 @@ export const data = [ trackAnonymous: true, }, }, - metadata: { - jobId: 3, - }, + metadata: { jobId: 3, userId: 'u1' }, message: { type: 'group', anonymousId: 'anon-id-new', name: 'Rudder', - properties: { - title: 'Home', - path: '/', - }, - context: { - ip: '14.5.67.21', - library: { - name: 'http', - }, - }, + properties: { title: 'Home', path: '/' }, + context: { ip: '14.5.67.21', library: { name: 'http' } }, timestamp: '2020-02-02T00:23:09.544Z', }, }, @@ -209,10 +179,7 @@ export const data = [ }, { evtName: 'Random', - evtData: { - country_region: 'India', - test: 'abc', - }, + evtData: { country_region: 'India', test: 'abc' }, type: 'event', objectId: 'cd3a4439-7df0-4475-acb9-6659c7c4dfe3', }, @@ -225,12 +192,8 @@ export const data = [ files: {}, }, metadata: [ - { - jobId: 1, - }, - { - jobId: 2, - }, + { jobId: 1, userId: 'u1' }, + { jobId: 2, userId: 'u1' }, ], batched: false, statusCode: 200, @@ -244,11 +207,7 @@ export const data = [ }, }, { - metadata: [ - { - jobId: 3, - }, - ], + metadata: [{ jobId: 3, userId: 'u1' }], batched: false, statusCode: 400, error: 'Message type not supported', diff --git a/test/integrations/destinations/clickup/processor/data.ts b/test/integrations/destinations/clickup/processor/data.ts index 296f0fb8e1..686bf670e2 100644 --- a/test/integrations/destinations/clickup/processor/data.ts +++ b/test/integrations/destinations/clickup/processor/data.ts @@ -1,829 +1,818 @@ export const data = [ - { - "name": "clickup", - "description": "Invalid priority", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiToken": "pk_123", - "listId": "correctListId123" - }, - "ID": "clickup-1234" - }, - "message": { - "type": "track", - "event": "Product Viewed", - "properties": { - "priority": 0 - }, - "context": {}, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "Invalid value specified for priority. Value must be Integer and in range \"[1,4]\"", - "statTags": { - "destType": "CLICKUP", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "clickup", - "description": "Custom field: Invalid phone number", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiToken": "pk_123", - "listId": "correctListId123", - "keyToCustomFieldName": [ - { - "from": "phone", - "to": "Phone Number" - } - ] - }, - "ID": "clickup-1234" - }, - "message": { - "type": "track", - "event": "Product Viewed", - "properties": { - "phone": "9999999999" - }, - "context": {}, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "The provided phone number is invalid", - "statTags": { - "destType": "CLICKUP", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "clickup", - "description": "Custom field: Invalid email", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiToken": "pk_123", - "listId": "correctListId123", - "keyToCustomFieldName": [ - { - "from": "email", - "to": "Email" - } - ] - }, - "ID": "clickup-1234" - }, - "message": { - "type": "track", - "event": "Product Viewed", - "properties": { - "email": "test.com" - }, - "context": {}, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "The provided email is invalid", - "statTags": { - "destType": "CLICKUP", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "clickup", - "description": "Custom field: Invalid url", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiToken": "pk_123", - "listId": "correctListId123", - "keyToCustomFieldName": [ - { - "from": "url", - "to": "Url" - } - ] - }, - "ID": "clickup-1234" - }, - "message": { - "type": "track", - "event": "Product Viewed", - "properties": { - "url": "www.test.com" - }, - "context": {}, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "The provided url is invalid", - "statTags": { - "destType": "CLICKUP", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "clickup", - "description": "Custom field: Invalid location latitude", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiToken": "pk_123", - "listId": "correctListId123", - "keyToCustomFieldName": [ - { - "from": "location", - "to": "Location" - } - ] - }, - "ID": "clickup-1234" - }, - "message": { - "type": "track", - "event": "Product Viewed", - "properties": { - "location": { - "lat": -100, - "lng": 124, - "formattedAddress": "Gold Coast QLD, Australia" - } - }, - "context": {}, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "Invalid value specified for latitude. Latitude must be in range \"[-90, 90]\"", - "statTags": { - "destType": "CLICKUP", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "clickup", - "description": "Custom field: Invalid rating", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiToken": "pk_123", - "listId": "correctListId123", - "keyToCustomFieldName": [ - { - "from": "rating", - "to": "Rating" - } - ] - }, - "ID": "clickup-1234" - }, - "message": { - "type": "track", - "event": "Product Viewed", - "properties": { - "rating": "7" - }, - "context": {}, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "Invalid value specified for rating. Value must be in range \"[0,5]\"", - "statTags": { - "destType": "CLICKUP", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "clickup", - "description": "Creating task with valid custom fields values", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiToken": "pk_123", - "listId": "correctListId123", - "keyToCustomFieldName": [ - { - "from": "industry", - "to": "Industry" - }, - { - "from": "Payment Status", - "to": "Payment Status" - }, - { - "from": "labelKey", - "to": "Labels" - }, - { - "from": "locationKey", - "to": "Location" - }, - { - "from": "phone", - "to": "Phone Number" - }, - { - "from": "email", - "to": "Email" - }, - { - "from": "url", - "to": "Url" - }, - { - "from": "rating", - "to": "Rating" - }, - { - "from": "plan", - "to": "Plan" - }, - { - "from": "contactTitle", - "to": "Contact Title" - }, - { - "from": "date", - "to": "Date" - } - ] - }, - "ID": "clickup-1234" - }, - "message": { - "type": "track", - "event": "Product Viewed", - "properties": { - "description": "Creating task with valid custom fields values", - "tags": [ - "testing", - "custom fields" - ], - "timeEstimate": 10800000, - "status": "Ready", - "priority": 1, - "dueDate": "2022-02-25T13:39:21.032Z", - "includeDueDateTime": true, - "startDate": "2022-01-20T13:39:21.032Z", - "includeStartDateTime": "true", - "notifyAll": false, - "industry": "Retail", - "Payment Status": "Pending", - "labelKey": [ - "option 1", - "option 2", - "option 3" - ], - "locationKey": { - "lat": -20, - "lng": 124, - "formattedAddress": "Gold Coast QLD, Australia" - }, - "phone": "+12233445567", - "email": "test123@example.com", - "url": "https://www.rudderstack.com/", - "rating": 3, - "plan": "Business", - "contactTitle": "VP of Operations", - "date": "2022-02-25T13:39:21.032Z" - }, - "context": {}, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.clickup.com/api/v2/list/correctListId123/task", - "headers": { - "Content-Type": "application/json", - "Authorization": "pk_123" - }, - "params": {}, - "body": { - "JSON": { - "name": "Product Viewed", - "description": "Creating task with valid custom fields values", - "tags": [ - "testing", - "custom fields" - ], - "time_estimate": 10800000, - "status": "Ready", - "priority": 1, - "due_date": 1645796361032, - "due_date_time": true, - "start_date": 1642685961032, - "start_date_time": "true", - "notify_all": false, - "custom_fields": [ - { - "id": "a5f5044a-cbad-4caf-bcbb-4cd32bd8db7c", - "value": "c7f9b6f5-cd98-4609-af10-68a8710cc1bf" - }, - { - "id": "22eaffee-ffec-4c3b-bdae-56e69d55eecd", - "value": "7afcb6fb-cec8-41d8-bf0c-039a9db28460" - }, - { - "id": "19d3ac4e-2b1e-4569-b33e-ff86c7d94d6e", - "value": [ - "32c81c1c-cf53-4829-92f5-0f0270d27a45", - "7e24f329-9dd9-4e68-b426-2c70af6f9347" - ] - }, - { - "id": "ea6c1e48-2abf-4328-b228-79c213e147c8", - "value": { - "location": { - "lat": -20, - "lng": 124 - }, - "formatted_address": "Gold Coast QLD, Australia" - } - }, - { - "id": "c9b83d91-b979-4b34-b4bd-88bf9cf2b9a6", - "value": "+12233445567" - }, - { - "id": "ebe825fb-92de-41ce-a29c-25018da039b4", - "value": "test123@example.com" - }, - { - "id": "b01b32fd-94d3-43e6-9f31-2c855ff169cd", - "value": "https://www.rudderstack.com/" - }, - { - "id": "f431cda3-a575-4a05-ba8d-583d9b6cb2df", - "value": 3 - }, - { - "id": "4b7a29be-e261-4340-8f3f-e6de838473e5", - "value": "c5032049-8c05-44e9-a000-3a071d457b8f" - }, - { - "id": "4bfebc00-9d4a-40d1-aef8-5a87b610186c", - "value": "VP of Operations" - }, - { - "id": "666f74bf-6d87-41f3-8735-ccf0efe066dd", - "value": 1645796361032 - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "clickup", - "description": "Creating task with assignees", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiToken": "pk_123", - "listId": "correctListId123" - }, - "ID": "clickup-1234" - }, - "message": { - "type": "track", - "event": "Product Viewed", - "properties": { - "taskName": "Transformer Testing" - }, - "context": { - "externalId": [ - { - "type": "clickUpAssigneeId", - "id": 61205104 - }, - { - "type": "clickUpAssigneeId", - "id": 61217234 - }, - { - "type": "clickUpAssigneeId", - "id": 61228575 - } - ] - }, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.clickup.com/api/v2/list/correctListId123/task", - "headers": { - "Content-Type": "application/json", - "Authorization": "pk_123" - }, - "params": {}, - "body": { - "JSON": { - "name": "Transformer Testing", - "assignees": [ - 61205104, - 61217234, - 61228575 - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "clickup", - "description": "Event filtering : Sending non whitelisted event when some events are whitelisted", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiToken": "pk_123", - "listId": "correctListId123", - "whitelistedEvents": [ - { - "eventName": "Anonymous Page Visit" - }, - { - "eventName": "Product Viewed" - }, - { - "eventName": "" - } - ] - }, - "ID": "clickup-1234" - }, - "message": { - "type": "track", - "event": "Credit Card Added", - "context": {}, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "The event was discarded as it was not allow listed in the destination configuration", - "statTags": { - "destType": "CLICKUP", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "clickup", - "description": "Event filtering : No event is whitelisted", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiToken": "pk_123", - "listId": "correctListId123", - "whitelistedEvents": [ - { - "eventName": "" - }, - { - "eventName": "" - }, - { - "eventName": "" - } - ] - }, - "ID": "clickup-1234" - }, - "message": { - "type": "track", - "event": "Credit Card Added", - "context": {}, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "The event was discarded as it was not allow listed in the destination configuration", - "statTags": { - "destType": "CLICKUP", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "clickup", - "description": "Creating task using listId from externalId array", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiToken": "pk_123", - "listId": "correctListId123" - }, - "ID": "clickup-1234" - }, - "message": { - "type": "track", - "event": "anonymous page visit", - "context": { - "externalId": [ - { - "type": "clickUpListId", - "id": "correctListId456" - } - ] - }, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.clickup.com/api/v2/list/correctListId456/task", - "headers": { - "Content-Type": "application/json", - "Authorization": "pk_123" - }, - "params": {}, - "body": { - "JSON": { - "name": "anonymous page visit" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - } -] \ No newline at end of file + { + name: 'clickup', + description: 'Invalid priority', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiToken: 'pk_123', + listId: 'correctListId123', + }, + ID: 'clickup-1234', + }, + message: { + type: 'track', + event: 'Product Viewed', + properties: { + priority: 0, + }, + context: {}, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'Invalid value specified for priority. Value must be Integer and in range "[1,4]"', + statTags: { + destType: 'CLICKUP', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'clickup', + description: 'Custom field: Invalid phone number', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiToken: 'pk_123', + listId: 'correctListId123', + keyToCustomFieldName: [ + { + from: 'phone', + to: 'Phone Number', + }, + ], + }, + ID: 'clickup-1234', + }, + message: { + type: 'track', + event: 'Product Viewed', + properties: { + phone: '9999999999', + }, + context: {}, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'The provided phone number is invalid', + statTags: { + destType: 'CLICKUP', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'clickup', + description: 'Custom field: Invalid email', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiToken: 'pk_123', + listId: 'correctListId123', + keyToCustomFieldName: [ + { + from: 'email', + to: 'Email', + }, + ], + }, + ID: 'clickup-1234', + }, + message: { + type: 'track', + event: 'Product Viewed', + properties: { + email: 'test.com', + }, + context: {}, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'The provided email is invalid', + statTags: { + destType: 'CLICKUP', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'clickup', + description: 'Custom field: Invalid url', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiToken: 'pk_123', + listId: 'correctListId123', + keyToCustomFieldName: [ + { + from: 'url', + to: 'Url', + }, + ], + }, + ID: 'clickup-1234', + }, + message: { + type: 'track', + event: 'Product Viewed', + properties: { + url: 'www.test.com', + }, + context: {}, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'The provided url is invalid', + statTags: { + destType: 'CLICKUP', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'clickup', + description: 'Custom field: Invalid location latitude', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiToken: 'pk_123', + listId: 'correctListId123', + keyToCustomFieldName: [ + { + from: 'location', + to: 'Location', + }, + ], + }, + ID: 'clickup-1234', + }, + message: { + type: 'track', + event: 'Product Viewed', + properties: { + location: { + lat: -100, + lng: 124, + formattedAddress: 'Gold Coast QLD, Australia', + }, + }, + context: {}, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Invalid value specified for latitude. Latitude must be in range "[-90, 90]"', + statTags: { + destType: 'CLICKUP', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'clickup', + description: 'Custom field: Invalid rating', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiToken: 'pk_123', + listId: 'correctListId123', + keyToCustomFieldName: [ + { + from: 'rating', + to: 'Rating', + }, + ], + }, + ID: 'clickup-1234', + }, + message: { + type: 'track', + event: 'Product Viewed', + properties: { + rating: '7', + }, + context: {}, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Invalid value specified for rating. Value must be in range "[0,5]"', + statTags: { + destType: 'CLICKUP', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'clickup', + description: 'Creating task with valid custom fields values', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiToken: 'pk_123', + listId: 'correctListId123', + keyToCustomFieldName: [ + { + from: 'industry', + to: 'Industry', + }, + { + from: 'Payment Status', + to: 'Payment Status', + }, + { + from: 'labelKey', + to: 'Labels', + }, + { + from: 'locationKey', + to: 'Location', + }, + { + from: 'phone', + to: 'Phone Number', + }, + { + from: 'email', + to: 'Email', + }, + { + from: 'url', + to: 'Url', + }, + { + from: 'rating', + to: 'Rating', + }, + { + from: 'plan', + to: 'Plan', + }, + { + from: 'contactTitle', + to: 'Contact Title', + }, + { + from: 'date', + to: 'Date', + }, + ], + }, + ID: 'clickup-1234', + }, + message: { + type: 'track', + event: 'Product Viewed', + properties: { + description: 'Creating task with valid custom fields values', + tags: ['testing', 'custom fields'], + timeEstimate: 10800000, + status: 'Ready', + priority: 1, + dueDate: '2022-02-25T13:39:21.032Z', + includeDueDateTime: true, + startDate: '2022-01-20T13:39:21.032Z', + includeStartDateTime: 'true', + notifyAll: false, + industry: 'Retail', + 'Payment Status': 'Pending', + labelKey: ['option 1', 'option 2', 'option 3'], + locationKey: { + lat: -20, + lng: 124, + formattedAddress: 'Gold Coast QLD, Australia', + }, + phone: '+12233445567', + email: 'test123@example.com', + url: 'https://www.rudderstack.com/', + rating: 3, + plan: 'Business', + contactTitle: 'VP of Operations', + date: '2022-02-25T13:39:21.032Z', + }, + context: {}, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.clickup.com/api/v2/list/correctListId123/task', + headers: { + 'Content-Type': 'application/json', + Authorization: 'pk_123', + }, + params: {}, + body: { + JSON: { + name: 'Product Viewed', + description: 'Creating task with valid custom fields values', + tags: ['testing', 'custom fields'], + time_estimate: 10800000, + status: 'Ready', + priority: 1, + due_date: 1645796361032, + due_date_time: true, + start_date: 1642685961032, + start_date_time: 'true', + notify_all: false, + custom_fields: [ + { + id: 'a5f5044a-cbad-4caf-bcbb-4cd32bd8db7c', + value: 'c7f9b6f5-cd98-4609-af10-68a8710cc1bf', + }, + { + id: '22eaffee-ffec-4c3b-bdae-56e69d55eecd', + value: '7afcb6fb-cec8-41d8-bf0c-039a9db28460', + }, + { + id: '19d3ac4e-2b1e-4569-b33e-ff86c7d94d6e', + value: [ + '32c81c1c-cf53-4829-92f5-0f0270d27a45', + '7e24f329-9dd9-4e68-b426-2c70af6f9347', + ], + }, + { + id: 'ea6c1e48-2abf-4328-b228-79c213e147c8', + value: { + location: { + lat: -20, + lng: 124, + }, + formatted_address: 'Gold Coast QLD, Australia', + }, + }, + { + id: 'c9b83d91-b979-4b34-b4bd-88bf9cf2b9a6', + value: '+12233445567', + }, + { + id: 'ebe825fb-92de-41ce-a29c-25018da039b4', + value: 'test123@example.com', + }, + { + id: 'b01b32fd-94d3-43e6-9f31-2c855ff169cd', + value: 'https://www.rudderstack.com/', + }, + { + id: 'f431cda3-a575-4a05-ba8d-583d9b6cb2df', + value: 3, + }, + { + id: '4b7a29be-e261-4340-8f3f-e6de838473e5', + value: 'c5032049-8c05-44e9-a000-3a071d457b8f', + }, + { + id: '4bfebc00-9d4a-40d1-aef8-5a87b610186c', + value: 'VP of Operations', + }, + { + id: '666f74bf-6d87-41f3-8735-ccf0efe066dd', + value: 1645796361032, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'clickup', + description: 'Creating task with assignees', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiToken: 'pk_123', + listId: 'correctListId123', + }, + ID: 'clickup-1234', + }, + message: { + type: 'track', + event: 'Product Viewed', + properties: { + taskName: 'Transformer Testing', + }, + context: { + externalId: [ + { + type: 'clickUpAssigneeId', + id: 61205104, + }, + { + type: 'clickUpAssigneeId', + id: 61217234, + }, + { + type: 'clickUpAssigneeId', + id: 61228575, + }, + ], + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.clickup.com/api/v2/list/correctListId123/task', + headers: { + 'Content-Type': 'application/json', + Authorization: 'pk_123', + }, + params: {}, + body: { + JSON: { + name: 'Transformer Testing', + assignees: [61205104, 61217234, 61228575], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'clickup', + description: 'Event filtering : Sending non whitelisted event when some events are whitelisted', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiToken: 'pk_123', + listId: 'correctListId123', + whitelistedEvents: [ + { + eventName: 'Anonymous Page Visit', + }, + { + eventName: 'Product Viewed', + }, + { + eventName: '', + }, + ], + }, + ID: 'clickup-1234', + }, + message: { + type: 'track', + event: 'Credit Card Added', + context: {}, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'The event was discarded as it was not allow listed in the destination configuration', + statTags: { + destType: 'CLICKUP', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'clickup', + description: 'Event filtering : No event is whitelisted', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiToken: 'pk_123', + listId: 'correctListId123', + whitelistedEvents: [ + { + eventName: '', + }, + { + eventName: '', + }, + { + eventName: '', + }, + ], + }, + ID: 'clickup-1234', + }, + message: { + type: 'track', + event: 'Credit Card Added', + context: {}, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'The event was discarded as it was not allow listed in the destination configuration', + statTags: { + destType: 'CLICKUP', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'clickup', + description: 'Creating task using listId from externalId array', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiToken: 'pk_123', + listId: 'correctListId123', + }, + ID: 'clickup-1234', + }, + message: { + type: 'track', + event: 'anonymous page visit', + context: { + externalId: [ + { + type: 'clickUpListId', + id: 'correctListId456', + }, + ], + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.clickup.com/api/v2/list/correctListId456/task', + headers: { + 'Content-Type': 'application/json', + Authorization: 'pk_123', + }, + params: {}, + body: { + JSON: { + name: 'anonymous page visit', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/clickup/router/data.ts b/test/integrations/destinations/clickup/router/data.ts index 8888024b4f..b77cb90b47 100644 --- a/test/integrations/destinations/clickup/router/data.ts +++ b/test/integrations/destinations/clickup/router/data.ts @@ -1,471 +1,303 @@ export const data = [ - { - name: 'clickup', - description: 'Test 0', - feature: 'router', - module: 'destination', - version: 'v0', - input: { - request: { + { + name: 'clickup', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + description: 'Creating task using listId from externalId array', + destination: { + Config: { apiToken: 'pk_123', listId: 'correctListId123' }, + ID: 'clickup-1234', + }, + metadata: { jobId: 1, userId: 'u1' }, + message: { + type: 'track', + event: 'anonymous page visit', + context: { externalId: [{ type: 'clickUpListId', id: 'correctListId456' }] }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + }, + }, + { + description: 'Creating task with assignees', + destination: { + Config: { apiToken: 'pk_123', listId: 'correctListId123' }, + ID: 'clickup-1234', + }, + metadata: { jobId: 2, userId: 'u1' }, + message: { + type: 'track', + event: 'Product Viewed', + properties: { taskName: 'Transformer Testing' }, + context: { + externalId: [ + { type: 'clickUpAssigneeId', id: 61205104 }, + { type: 'clickUpAssigneeId', id: 61217234 }, + { type: 'clickUpAssigneeId', id: 61228575 }, + ], + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + }, + }, + { + description: 'Creating task with valid custom fields values', + destination: { + Config: { + apiToken: 'pk_123', + listId: 'correctListId123', + keyToCustomFieldName: [ + { from: 'industry', to: 'Industry' }, + { from: 'Payment Status', to: 'Payment Status' }, + { from: 'labelKey', to: 'Labels' }, + { from: 'locationKey', to: 'Location' }, + { from: 'phone', to: 'Phone Number' }, + { from: 'email', to: 'Email' }, + { from: 'url', to: 'Url' }, + { from: 'rating', to: 'Rating' }, + { from: 'plan', to: 'Plan' }, + { from: 'contactTitle', to: 'Contact Title' }, + { from: 'date', to: 'Date' }, + ], + }, + ID: 'clickup-1234', + }, + metadata: { jobId: 3, userId: 'u1' }, + message: { + type: 'track', + event: 'Product Viewed', + properties: { + description: 'Creating task with valid custom fields values', + tags: ['testing', 'custom fields'], + timeEstimate: 10800000, + status: 'Ready', + priority: 1, + dueDate: '2022-02-25T13:39:21.032Z', + includeDueDateTime: true, + startDate: '2022-01-20T13:39:21.032Z', + includeStartDateTime: 'true', + notifyAll: false, + industry: 'Retail', + 'Payment Status': 'Pending', + labelKey: ['option 1', 'option 2', 'option 3'], + locationKey: { + lat: -20, + lng: 124, + formattedAddress: 'Gold Coast QLD, Australia', + }, + phone: '+12233445567', + email: 'test123@example.com', + url: 'https://www.rudderstack.com/', + rating: 3, + plan: 'Business', + contactTitle: 'VP of Operations', + date: '2022-02-25T13:39:21.032Z', + }, + context: {}, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + }, + }, + { + description: 'Custom field: Invalid location latitude', + destination: { + Config: { + apiToken: 'pk_123', + listId: 'correctListId123', + keyToCustomFieldName: [{ from: 'location', to: 'Location' }], + }, + ID: 'clickup-1234', + }, + metadata: { jobId: 4, userId: 'u1' }, + message: { + type: 'track', + event: 'Product Viewed', + properties: { + location: { lat: -100, lng: 124, formattedAddress: 'Gold Coast QLD, Australia' }, + }, + context: {}, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + }, + }, + ], + destType: 'clickup', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batched: false, + batchedRequest: { + body: { FORM: {}, JSON: { name: 'anonymous page visit' }, JSON_ARRAY: {}, XML: {} }, + endpoint: 'https://api.clickup.com/api/v2/list/correctListId456/task', + files: {}, + headers: { Authorization: 'pk_123', 'Content-Type': 'application/json' }, + method: 'POST', + params: {}, + type: 'REST', + version: '1', + }, + destination: { + Config: { apiToken: 'pk_123', listId: 'correctListId123' }, + ID: 'clickup-1234', + }, + metadata: [{ jobId: 1, userId: 'u1' }], + statusCode: 200, + }, + { + batched: false, + batchedRequest: { body: { - input: [ - { - "description": "Creating task using listId from externalId array", - "destination": { - "Config": { - "apiToken": "pk_123", - "listId": "correctListId123" - }, - "ID": "clickup-1234" - }, - "metadata": { - "jobId": 1 - }, - "message": { - "type": "track", - "event": "anonymous page visit", - "context": { - "externalId": [{ "type": "clickUpListId", "id": "correctListId456" }] - }, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c" - } - }, - { - "description": "Creating task with assignees", - "destination": { - "Config": { - "apiToken": "pk_123", - "listId": "correctListId123" - }, - "ID": "clickup-1234" - }, - "metadata": { - "jobId": 2 - }, - "message": { - "type": "track", - "event": "Product Viewed", - "properties": { - "taskName": "Transformer Testing" - }, - "context": { - "externalId": [ - { - "type": "clickUpAssigneeId", - "id": 61205104 - }, - { - "type": "clickUpAssigneeId", - "id": 61217234 - }, - { - "type": "clickUpAssigneeId", - "id": 61228575 - } - ] - }, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c" - } - }, - { - "description": "Creating task with valid custom fields values", - "destination": { - "Config": { - "apiToken": "pk_123", - "listId": "correctListId123", - "keyToCustomFieldName": [ - { - "from": "industry", - "to": "Industry" - }, - { - "from": "Payment Status", - "to": "Payment Status" - }, - { - "from": "labelKey", - "to": "Labels" - }, - { - "from": "locationKey", - "to": "Location" - }, - { - "from": "phone", - "to": "Phone Number" - }, - { - "from": "email", - "to": "Email" - }, - { - "from": "url", - "to": "Url" - }, - { - "from": "rating", - "to": "Rating" - }, - { - "from": "plan", - "to": "Plan" - }, - { - "from": "contactTitle", - "to": "Contact Title" - }, - { - "from": "date", - "to": "Date" - } - ] - }, - "ID": "clickup-1234" - }, - "metadata": { - "jobId": 3 - }, - "message": { - "type": "track", - "event": "Product Viewed", - "properties": { - "description": "Creating task with valid custom fields values", - "tags": ["testing", "custom fields"], - "timeEstimate": 10800000, - "status": "Ready", - "priority": 1, - "dueDate": "2022-02-25T13:39:21.032Z", - "includeDueDateTime": true, - "startDate": "2022-01-20T13:39:21.032Z", - "includeStartDateTime": "true", - "notifyAll": false, - "industry": "Retail", - "Payment Status": "Pending", - "labelKey": ["option 1", "option 2", "option 3"], - "locationKey": { - "lat": -20, - "lng": 124, - "formattedAddress": "Gold Coast QLD, Australia" - }, - "phone": "+12233445567", - "email": "test123@example.com", - "url": "https://www.rudderstack.com/", - "rating": 3, - "plan": "Business", - "contactTitle": "VP of Operations", - "date": "2022-02-25T13:39:21.032Z" - }, - "context": {}, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c" - } - }, - { - "description": "Custom field: Invalid location latitude", - "destination": { - "Config": { - "apiToken": "pk_123", - "listId": "correctListId123", - "keyToCustomFieldName": [ - { - "from": "location", - "to": "Location" - } - ] - }, - "ID": "clickup-1234" - }, - "metadata": { - "jobId": 4 - }, - "message": { - "type": "track", - "event": "Product Viewed", - "properties": { - "location": { - "lat": -100, - "lng": 124, - "formattedAddress": "Gold Coast QLD, Australia" - } - }, - "context": {}, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c" - } - } - ] - , - destType: 'clickup', + FORM: {}, + JSON: { assignees: [61205104, 61217234, 61228575], name: 'Transformer Testing' }, + JSON_ARRAY: {}, + XML: {}, }, + endpoint: 'https://api.clickup.com/api/v2/list/correctListId123/task', + files: {}, + headers: { Authorization: 'pk_123', 'Content-Type': 'application/json' }, method: 'POST', + params: {}, + type: 'REST', + version: '1', + }, + destination: { + Config: { apiToken: 'pk_123', listId: 'correctListId123' }, + ID: 'clickup-1234', + }, + metadata: [{ jobId: 2, userId: 'u1' }], + statusCode: 200, }, - }, - output: { - response: { - status: 200, + { + batched: false, + batchedRequest: { body: { - output: [ - { - "batched": false, - "batchedRequest": { - "body": { - "FORM": {}, - "JSON": { - "name": "anonymous page visit" - }, - "JSON_ARRAY": {}, - "XML": {} - }, - "endpoint": "https://api.clickup.com/api/v2/list/correctListId456/task", - "files": {}, - "headers": { - "Authorization": "pk_123", - "Content-Type": "application/json" - }, - "method": "POST", - "params": {}, - "type": "REST", - "version": "1" - }, - "destination": { - "Config": { - "apiToken": "pk_123", - "listId": "correctListId123" - }, - "ID": "clickup-1234" - }, - "metadata": [ - { - "jobId": 1 - } - ], - "statusCode": 200 - }, - { - "batched": false, - "batchedRequest": { - "body": { - "FORM": {}, - "JSON": { - "assignees": [61205104, 61217234, 61228575], - "name": "Transformer Testing" - }, - "JSON_ARRAY": {}, - "XML": {} - }, - "endpoint": "https://api.clickup.com/api/v2/list/correctListId123/task", - "files": {}, - "headers": { - "Authorization": "pk_123", - "Content-Type": "application/json" - }, - "method": "POST", - "params": {}, - "type": "REST", - "version": "1" - }, - "destination": { - "Config": { - "apiToken": "pk_123", - "listId": "correctListId123" - }, - "ID": "clickup-1234" - }, - "metadata": [ - { - "jobId": 2 - } - ], - "statusCode": 200 + FORM: {}, + JSON: { + custom_fields: [ + { + id: 'a5f5044a-cbad-4caf-bcbb-4cd32bd8db7c', + value: 'c7f9b6f5-cd98-4609-af10-68a8710cc1bf', + }, + { + id: '22eaffee-ffec-4c3b-bdae-56e69d55eecd', + value: '7afcb6fb-cec8-41d8-bf0c-039a9db28460', + }, + { + id: '19d3ac4e-2b1e-4569-b33e-ff86c7d94d6e', + value: [ + '32c81c1c-cf53-4829-92f5-0f0270d27a45', + '7e24f329-9dd9-4e68-b426-2c70af6f9347', + ], + }, + { + id: 'ea6c1e48-2abf-4328-b228-79c213e147c8', + value: { + formatted_address: 'Gold Coast QLD, Australia', + location: { lat: -20, lng: 124 }, }, - { - "batched": false, - "batchedRequest": { - "body": { - "FORM": {}, - "JSON": { - "custom_fields": [ - { - "id": "a5f5044a-cbad-4caf-bcbb-4cd32bd8db7c", - "value": "c7f9b6f5-cd98-4609-af10-68a8710cc1bf" - }, - { - "id": "22eaffee-ffec-4c3b-bdae-56e69d55eecd", - "value": "7afcb6fb-cec8-41d8-bf0c-039a9db28460" - }, - { - "id": "19d3ac4e-2b1e-4569-b33e-ff86c7d94d6e", - "value": [ - "32c81c1c-cf53-4829-92f5-0f0270d27a45", - "7e24f329-9dd9-4e68-b426-2c70af6f9347" - ] - }, - { - "id": "ea6c1e48-2abf-4328-b228-79c213e147c8", - "value": { - "formatted_address": "Gold Coast QLD, Australia", - "location": { - "lat": -20, - "lng": 124 - } - } - }, - { - "id": "c9b83d91-b979-4b34-b4bd-88bf9cf2b9a6", - "value": "+12233445567" - }, - { - "id": "ebe825fb-92de-41ce-a29c-25018da039b4", - "value": "test123@example.com" - }, - { - "id": "b01b32fd-94d3-43e6-9f31-2c855ff169cd", - "value": "https://www.rudderstack.com/" - }, - { - "id": "f431cda3-a575-4a05-ba8d-583d9b6cb2df", - "value": 3 - }, - { - "id": "4b7a29be-e261-4340-8f3f-e6de838473e5", - "value": "c5032049-8c05-44e9-a000-3a071d457b8f" - }, - { - "id": "4bfebc00-9d4a-40d1-aef8-5a87b610186c", - "value": "VP of Operations" - }, - { - "id": "666f74bf-6d87-41f3-8735-ccf0efe066dd", - "value": 1645796361032 - } - ], - "name": "Product Viewed", - "description": "Creating task with valid custom fields values", - "tags": ["testing", "custom fields"], - "time_estimate": 10800000, - "status": "Ready", - "priority": 1, - "due_date": 1645796361032, - "due_date_time": true, - "start_date": 1642685961032, - "start_date_time": "true", - "notify_all": false - }, - "JSON_ARRAY": {}, - "XML": {} - }, - "endpoint": "https://api.clickup.com/api/v2/list/correctListId123/task", - "files": {}, - "headers": { - "Authorization": "pk_123", - "Content-Type": "application/json" - }, - "method": "POST", - "params": {}, - "type": "REST", - "version": "1" - }, - "destination": { - "Config": { - "apiToken": "pk_123", - "keyToCustomFieldName": [ - { - "from": "industry", - "to": "Industry" - }, - { - "from": "Payment Status", - "to": "Payment Status" - }, - { - "from": "labelKey", - "to": "Labels" - }, - { - "from": "locationKey", - "to": "Location" - }, - { - "from": "phone", - "to": "Phone Number" - }, - { - "from": "email", - "to": "Email" - }, - { - "from": "url", - "to": "Url" - }, - { - "from": "rating", - "to": "Rating" - }, - { - "from": "plan", - "to": "Plan" - }, - { - "from": "contactTitle", - "to": "Contact Title" - }, - { - "from": "date", - "to": "Date" - } - ], - "listId": "correctListId123" - }, - "ID": "clickup-1234" - }, - "metadata": [ - { - "jobId": 3 - } - ], - "statusCode": 200 - }, - { - "destination": { - "Config": { - "apiToken": "pk_123", - "listId": "correctListId123", - "keyToCustomFieldName": [ - { - "from": "location", - "to": "Location" - } - ] - }, - "ID": "clickup-1234" - }, - "batched": false, - "error": "Invalid value specified for latitude. Latitude must be in range \"[-90, 90]\"", - "metadata": [ - { - "jobId": 4 - } - ], - "statTags": { - "destType": "CLICKUP", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "router", - "implementation": "native", - "module": "destination", - }, - "statusCode": 400 - } - ] - , + }, + { id: 'c9b83d91-b979-4b34-b4bd-88bf9cf2b9a6', value: '+12233445567' }, + { id: 'ebe825fb-92de-41ce-a29c-25018da039b4', value: 'test123@example.com' }, + { + id: 'b01b32fd-94d3-43e6-9f31-2c855ff169cd', + value: 'https://www.rudderstack.com/', + }, + { id: 'f431cda3-a575-4a05-ba8d-583d9b6cb2df', value: 3 }, + { + id: '4b7a29be-e261-4340-8f3f-e6de838473e5', + value: 'c5032049-8c05-44e9-a000-3a071d457b8f', + }, + { id: '4bfebc00-9d4a-40d1-aef8-5a87b610186c', value: 'VP of Operations' }, + { id: '666f74bf-6d87-41f3-8735-ccf0efe066dd', value: 1645796361032 }, + ], + name: 'Product Viewed', + description: 'Creating task with valid custom fields values', + tags: ['testing', 'custom fields'], + time_estimate: 10800000, + status: 'Ready', + priority: 1, + due_date: 1645796361032, + due_date_time: true, + start_date: 1642685961032, + start_date_time: 'true', + notify_all: false, + }, + JSON_ARRAY: {}, + XML: {}, + }, + endpoint: 'https://api.clickup.com/api/v2/list/correctListId123/task', + files: {}, + headers: { Authorization: 'pk_123', 'Content-Type': 'application/json' }, + method: 'POST', + params: {}, + type: 'REST', + version: '1', + }, + destination: { + Config: { + apiToken: 'pk_123', + keyToCustomFieldName: [ + { from: 'industry', to: 'Industry' }, + { from: 'Payment Status', to: 'Payment Status' }, + { from: 'labelKey', to: 'Labels' }, + { from: 'locationKey', to: 'Location' }, + { from: 'phone', to: 'Phone Number' }, + { from: 'email', to: 'Email' }, + { from: 'url', to: 'Url' }, + { from: 'rating', to: 'Rating' }, + { from: 'plan', to: 'Plan' }, + { from: 'contactTitle', to: 'Contact Title' }, + { from: 'date', to: 'Date' }, + ], + listId: 'correctListId123', + }, + ID: 'clickup-1234', + }, + metadata: [{ jobId: 3, userId: 'u1' }], + statusCode: 200, + }, + { + destination: { + Config: { + apiToken: 'pk_123', + listId: 'correctListId123', + keyToCustomFieldName: [{ from: 'location', to: 'Location' }], }, + ID: 'clickup-1234', + }, + batched: false, + error: 'Invalid value specified for latitude. Latitude must be in range "[-90, 90]"', + metadata: [{ jobId: 4, userId: 'u1' }], + statTags: { + destType: 'CLICKUP', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'router', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, }, + ], }, + }, }, + }, ]; diff --git a/test/integrations/destinations/courier/router/data.ts b/test/integrations/destinations/courier/router/data.ts index a3a3237197..268504b903 100644 --- a/test/integrations/destinations/courier/router/data.ts +++ b/test/integrations/destinations/courier/router/data.ts @@ -15,28 +15,14 @@ export const data = [ channel: 'web', event: 'Product Added', userId: 'test123', - properties: { - price: 999, - quantity: 1, - }, - context: { - traits: { - firstName: 'John', - age: 27, - }, - }, + properties: { price: 999, quantity: 1 }, + context: { traits: { firstName: 'John', age: 27 } }, rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', }, - destination: { - Config: { - apiKey: 'dummyApiKey', - }, - }, - metadata: { - jobId: 1, - }, + destination: { Config: { apiKey: 'dummyApiKey' } }, + metadata: { jobId: 1, userId: 'u1' }, }, { message: { @@ -59,9 +45,7 @@ export const data = [ trackNamedPages: true, }, }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, }, ], destType: 'courier', @@ -92,16 +76,8 @@ export const data = [ channel: 'web', event: 'Product Added', userId: 'test123', - properties: { - price: 999, - quantity: 1, - }, - context: { - traits: { - firstName: 'John', - age: 27, - }, - }, + properties: { price: 999, quantity: 1 }, + context: { traits: { firstName: 'John', age: 27 } }, rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', @@ -112,26 +88,14 @@ export const data = [ }, files: {}, }, - destination: { - Config: { - apiKey: 'dummyApiKey', - }, - }, - metadata: [ - { - jobId: 1, - }, - ], + destination: { Config: { apiKey: 'dummyApiKey' } }, + metadata: [{ jobId: 1, userId: 'u1' }], statusCode: 200, }, { batched: false, error: 'apiKey is required', - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], statTags: { destType: 'COURIER', errorCategory: 'dataValidation', diff --git a/test/integrations/destinations/criteo_audience/dataDelivery/data.ts b/test/integrations/destinations/criteo_audience/dataDelivery/data.ts index bc3af8f22d..fb5b689a96 100644 --- a/test/integrations/destinations/criteo_audience/dataDelivery/data.ts +++ b/test/integrations/destinations/criteo_audience/dataDelivery/data.ts @@ -1,530 +1,508 @@ export const data = [ { - "name": "criteo_audience", - "description": "Test 0", - "feature": "dataDelivery", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": { - "version": "1", - "type": "REST", - "method": "PATCH", - "endpoint": "https://api.criteo.com/2022-10/audiences/34894/contactlist", - "headers": { - "Authorization": "Bearer success_access_token", - "Content-Type": "application/json", - "Accept": "application/json" + name: 'criteo_audience', + description: 'Test 0', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'PATCH', + endpoint: 'https://api.criteo.com/2022-10/audiences/34894/contactlist', + headers: { + Authorization: 'Bearer success_access_token', + 'Content-Type': 'application/json', + Accept: 'application/json', }, - "body": { - "JSON": { - "data": { - "type": "ContactlistAmendment", - "attributes": { - "operation": "remove", - "identifierType": "gum", - "identifiers": [ - "sample_gum3" - ], - "internalIdentifiers": false, - "gumCallerId": "329739" - } - } + body: { + JSON: { + data: { + type: 'ContactlistAmendment', + attributes: { + operation: 'remove', + identifierType: 'gum', + identifiers: ['sample_gum3'], + internalIdentifiers: false, + gumCallerId: '329739', + }, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + params: { + destination: 'criteo_audience', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: { + status: 200, + message: 'Request Processed Successfully', + destinationResponse: { + response: '', + status: 200, }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} }, - "files": {}, - "params": { - "destination": "criteo_audience" - } }, - "method": "POST" - } + }, }, - "output": { - "response": { - "status": 200, - "body": { - "output": { - "status": 200, - "message": "Request Processed Successfully", - "destinationResponse": { - "response": "", - "status": 200 - } - } - } - } - } }, { - "name": "criteo_audience", - "description": "Test 1", - "feature": "dataDelivery", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": { - "version": "1", - "type": "REST", - "method": "PATCH", - "endpoint": "https://api.criteo.com/2022-10/audiences/3485/contactlist", - "headers": { - "Authorization": "Bearer success_access_token", - "Content-Type": "application/json", - "Accept": "application/json" + name: 'criteo_audience', + description: 'Test 1', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'PATCH', + endpoint: 'https://api.criteo.com/2022-10/audiences/3485/contactlist', + headers: { + Authorization: 'Bearer success_access_token', + 'Content-Type': 'application/json', + Accept: 'application/json', }, - "body": { - "JSON": { - "data": { - "type": "ContactlistAmendment", - "attributes": { - "operation": "add", - "identifierType": "madid", - "identifiers": [ - "sample_madid", - "sample_madid_1", - "sample_madid_2" - ], - "internalIdentifiers": false - } - } + body: { + JSON: { + data: { + type: 'ContactlistAmendment', + attributes: { + operation: 'add', + identifierType: 'madid', + identifiers: ['sample_madid', 'sample_madid_1', 'sample_madid_2'], + internalIdentifiers: false, + }, + }, }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + params: { + destination: 'criteo_audience', }, - "files": {}, - "params": { - "destination": "criteo_audience" - } }, - "method": "POST" - } + method: 'POST', + }, }, - "output": { - "response": { - "status": 401, - "body": { - "output": { - "status": 401, - "authErrorCategory": "REFRESH_TOKEN", - "destinationResponse": { - "errors": [ + output: { + response: { + status: 401, + body: { + output: { + status: 401, + authErrorCategory: 'REFRESH_TOKEN', + destinationResponse: { + errors: [ { - "traceIdentifier": "80a1a0ba3981b04da847d05700752c77", - "type": "authorization", - "code": "authorization-token-expired", - "instance": "/2022-10/audiences/123/contactlist", - "title": "The authorization token has expired" - } - ] + traceIdentifier: '80a1a0ba3981b04da847d05700752c77', + type: 'authorization', + code: 'authorization-token-expired', + instance: '/2022-10/audiences/123/contactlist', + title: 'The authorization token has expired', + }, + ], }, - "message": "The authorization token has expired during criteo_audience response transformation", - "statTags": { - "destType": "CRITEO_AUDIENCE", - "errorCategory": "network", - "destinationId": "Non-determininable", - "workspaceId": "Non-determininable", - "errorType": "aborted", - "feature": "dataDelivery", - "implementation": "native", - "module": "destination" - } - } - } - } - } + message: + 'The authorization token has expired during criteo_audience response transformation', + statTags: { + destType: 'CRITEO_AUDIENCE', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'aborted', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + }, + }, + }, + }, + }, }, { - "name": "criteo_audience", - "description": "Test 2", - "feature": "dataDelivery", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": { - "version": "1", - "type": "REST", - "method": "PATCH", - "endpoint": "https://api.criteo.com/2022-10/audiences/34895/contactlist", - "headers": { - "Authorization": "Bearer success_access_token", - "Content-Type": "application/json", - "Accept": "application/json" + name: 'criteo_audience', + description: 'Test 2', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'PATCH', + endpoint: 'https://api.criteo.com/2022-10/audiences/34895/contactlist', + headers: { + Authorization: 'Bearer success_access_token', + 'Content-Type': 'application/json', + Accept: 'application/json', }, - "body": { - "JSON": { - "data": { - "type": "ContactlistAmendment", - "attributes": { - "operation": "add", - "identifierType": "madid", - "identifiers": [ - "sample_madid", - "sample_madid_1", - "sample_madid_2" - ], - "internalIdentifiers": false - } - } + body: { + JSON: { + data: { + type: 'ContactlistAmendment', + attributes: { + operation: 'add', + identifierType: 'madid', + identifiers: ['sample_madid', 'sample_madid_1', 'sample_madid_2'], + internalIdentifiers: false, + }, + }, }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + params: { + destination: 'criteo_audience', }, - "files": {}, - "params": { - "destination": "criteo_audience" - } }, - "method": "POST" - } + method: 'POST', + }, }, - "output": { - "response": { - "status": 401, - "body": { - "output": { - "status": 401, - "authErrorCategory": "REFRESH_TOKEN", - "destinationResponse": { - "errors": [ + output: { + response: { + status: 401, + body: { + output: { + status: 401, + authErrorCategory: 'REFRESH_TOKEN', + destinationResponse: { + errors: [ { - "traceIdentifier": "80a1a0ba3981b04da847d05700752c77", - "type": "authorization", - "code": "authorization-token-invalid", - "instance": "/2022-10/audiences/123/contactlist", - "title": "The authorization header is invalid" - } - ] + traceIdentifier: '80a1a0ba3981b04da847d05700752c77', + type: 'authorization', + code: 'authorization-token-invalid', + instance: '/2022-10/audiences/123/contactlist', + title: 'The authorization header is invalid', + }, + ], + }, + message: + 'The authorization header is invalid during criteo_audience response transformation', + statTags: { + destType: 'CRITEO_AUDIENCE', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'aborted', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', }, - "message": "The authorization header is invalid during criteo_audience response transformation", - "statTags": { - "destType": "CRITEO_AUDIENCE", - "errorCategory": "network", - "destinationId": "Non-determininable", - "workspaceId": "Non-determininable", - "errorType": "aborted", - "feature": "dataDelivery", - "implementation": "native", - "module": "destination" - } - } - } - } - } + }, + }, + }, + }, }, { - "name": "criteo_audience", - "description": "Test 3", - "feature": "dataDelivery", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": { - "version": "1", - "type": "REST", - "method": "PATCH", - "endpoint": "https://api.criteo.com/2022-10/audiences/34896/contactlist", - "headers": { - "Authorization": "Bearer success_access_token", - "Content-Type": "application/json", - "Accept": "application/json" + name: 'criteo_audience', + description: 'Test 3', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'PATCH', + endpoint: 'https://api.criteo.com/2022-10/audiences/34896/contactlist', + headers: { + Authorization: 'Bearer success_access_token', + 'Content-Type': 'application/json', + Accept: 'application/json', }, - "body": { - "JSON": { - "data": { - "type": "ContactlistAmendment", - "attributes": { - "operation": "add", - "identifierType": "madid", - "identifiers": [ - "sample_madid", - "sample_madid_1", - "sample_madid_2" - ], - "internalIdentifiers": false - } - } + body: { + JSON: { + data: { + type: 'ContactlistAmendment', + attributes: { + operation: 'add', + identifierType: 'madid', + identifiers: ['sample_madid', 'sample_madid_1', 'sample_madid_2'], + internalIdentifiers: false, + }, + }, }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + params: { + destination: 'criteo_audience', }, - "files": {}, - "params": { - "destination": "criteo_audience" - } }, - "method": "POST" - } + method: 'POST', + }, }, - "output": { - "response": { - "status": 400, - "body": { - "output": { - "message": "AudienceId is Invalid. Please Provide Valid AudienceId", - "destinationResponse": { - "response": { - "errors": [ + output: { + response: { + status: 400, + body: { + output: { + message: 'AudienceId is Invalid. Please Provide Valid AudienceId', + destinationResponse: { + response: { + errors: [ { - "code": "audience-invalid", - "traceIdentifier": "80a1a0ba3981b04da847d05700752c77", - "type": "authorization" - } - ] + code: 'audience-invalid', + traceIdentifier: '80a1a0ba3981b04da847d05700752c77', + type: 'authorization', + }, + ], }, - "status": 404 + status: 404, }, - "statTags": { - "destType": "CRITEO_AUDIENCE", - "errorCategory": "network", - "destinationId": "Non-determininable", - "workspaceId": "Non-determininable", - "errorType": "aborted", - "feature": "dataDelivery", - "implementation": "native", - "meta": "instrumentation", - "module": "destination" + statTags: { + destType: 'CRITEO_AUDIENCE', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'aborted', + feature: 'dataDelivery', + implementation: 'native', + meta: 'instrumentation', + module: 'destination', }, - "status": 400 - } - } - } - } + status: 400, + }, + }, + }, + }, }, { - "name": "criteo_audience", - "description": "Test 4", - "feature": "dataDelivery", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": { - "version": "1", - "type": "REST", - "method": "PATCH", - "endpoint": "https://api.criteo.com/2022-10/audiences/34897/contactlist", - "headers": { - "Authorization": "Bearer success_access_token", - "Content-Type": "application/json", - "Accept": "application/json" + name: 'criteo_audience', + description: 'Test 4', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'PATCH', + endpoint: 'https://api.criteo.com/2022-10/audiences/34897/contactlist', + headers: { + Authorization: 'Bearer success_access_token', + 'Content-Type': 'application/json', + Accept: 'application/json', }, - "body": { - "JSON": { - "data": { - "type": "ContactlistAmendment", - "attributes": { - "operation": "add", - "identifierType": "madid", - "identifiers": [ - "sample_madid", - "sample_madid_1", - "sample_madid_2" - ], - "internalIdentifiers": false - } - } + body: { + JSON: { + data: { + type: 'ContactlistAmendment', + attributes: { + operation: 'add', + identifierType: 'madid', + identifiers: ['sample_madid', 'sample_madid_1', 'sample_madid_2'], + internalIdentifiers: false, + }, + }, }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + params: { + destination: 'criteo_audience', }, - "files": {}, - "params": { - "destination": "criteo_audience" - } }, - "method": "POST" - } + method: 'POST', + }, }, - "output": { - "response": { - "status": 500, - "body": { - "output": { - "destinationResponse": { - "response": { - "errors": [ + output: { + response: { + status: 500, + body: { + output: { + destinationResponse: { + response: { + errors: [ { - "code": "audience-invalid", - "traceIdentifier": "80a1a0ba3981b04da847d05700752c77", - "type": "authorization" - } - ] + code: 'audience-invalid', + traceIdentifier: '80a1a0ba3981b04da847d05700752c77', + type: 'authorization', + }, + ], }, - "status": 503 + status: 503, }, - "message": "Request Failed: during criteo_audience response transformation (Retryable)", - "statTags": { - "destType": "CRITEO_AUDIENCE", - "errorCategory": "network", - "destinationId": "Non-determininable", - "workspaceId": "Non-determininable", - "feature": "dataDelivery", - "implementation": "native", - "errorType": "retryable", - "module": "destination" + message: 'Request Failed: during criteo_audience response transformation (Retryable)', + statTags: { + destType: 'CRITEO_AUDIENCE', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + feature: 'dataDelivery', + implementation: 'native', + errorType: 'retryable', + module: 'destination', }, - "status": 500 - } - } - } - } + status: 500, + }, + }, + }, + }, }, { - "name": "criteo_audience", - "description": "Test 5", - "feature": "dataDelivery", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": { - "version": "1", - "type": "REST", - "method": "PATCH", - "endpoint": "https://api.criteo.com/2022-10/audiences/34898/contactlist", - "headers": { - "Authorization": "Bearer success_access_token", - "Content-Type": "application/json", - "Accept": "application/json" + name: 'criteo_audience', + description: 'Test 5', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'PATCH', + endpoint: 'https://api.criteo.com/2022-10/audiences/34898/contactlist', + headers: { + Authorization: 'Bearer success_access_token', + 'Content-Type': 'application/json', + Accept: 'application/json', }, - "body": { - "JSON": { - "data": { - "type": "ContactlistAmendment", - "attributes": { - "operation": "add", - "identifierType": "madid", - "identifiers": [ - "sample_madid", - "sample_madid_1", - "sample_madid_2" - ], - "internalIdentifiers": false - } - } + body: { + JSON: { + data: { + type: 'ContactlistAmendment', + attributes: { + operation: 'add', + identifierType: 'madid', + identifiers: ['sample_madid', 'sample_madid_1', 'sample_madid_2'], + internalIdentifiers: false, + }, + }, }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + params: { + destination: 'criteo_audience', }, - "files": {}, - "params": { - "destination": "criteo_audience" - } }, - "method": "POST" - } + method: 'POST', + }, }, - "output": { - "response": { - "status": 429, - "body": { - "output": { - "destinationResponse": { - "response": {}, - "status": 429 + output: { + response: { + status: 429, + body: { + output: { + destinationResponse: { + response: {}, + status: 429, }, - "message": "Request Failed: during criteo_audience response transformation - due to Request Limit exceeded, (Throttled)", - "statTags": { - "destType": "CRITEO_AUDIENCE", - "errorCategory": "network", - "destinationId": "Non-determininable", - "workspaceId": "Non-determininable", - "errorType": "throttled", - "feature": "dataDelivery", - "implementation": "native", - "module": "destination" + message: + 'Request Failed: during criteo_audience response transformation - due to Request Limit exceeded, (Throttled)', + statTags: { + destType: 'CRITEO_AUDIENCE', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'throttled', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', }, - "status": 429 - } - } - } - } + status: 429, + }, + }, + }, + }, }, { - "name": "criteo_audience", - "description": "Test 6", - "feature": "dataDelivery", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": { - "version": "1", - "type": "REST", - "method": "PATCH", - "endpoint": "https://api.criteo.com/2022-10/audiences/34899/contactlist", - "headers": { - "Authorization": "Bearer success_access_token", - "Content-Type": "application/json", - "Accept": "application/json" + name: 'criteo_audience', + description: 'Test 6', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'PATCH', + endpoint: 'https://api.criteo.com/2022-10/audiences/34899/contactlist', + headers: { + Authorization: 'Bearer success_access_token', + 'Content-Type': 'application/json', + Accept: 'application/json', }, - "body": { - "JSON": { - "data": { - "type": "ContactlistAmendment", - "attributes": { - "operation": "add", - "identifierType": "madid", - "identifiers": [ - "sample_madid", - "sample_madid_1", - "sample_madid_2" - ], - "internalIdentifiers": false - } - } + body: { + JSON: { + data: { + type: 'ContactlistAmendment', + attributes: { + operation: 'add', + identifierType: 'madid', + identifiers: ['sample_madid', 'sample_madid_1', 'sample_madid_2'], + internalIdentifiers: false, + }, + }, }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + params: { + destination: 'criteo_audience', }, - "files": {}, - "params": { - "destination": "criteo_audience" - } }, - "method": "POST" - } + method: 'POST', + }, }, - "output": { - "response": { - "status": 400, - "body": { - "output": { - "destinationResponse": { - "response": { - "message": "unknown error" + output: { + response: { + status: 400, + body: { + output: { + destinationResponse: { + response: { + message: 'unknown error', }, - "status": 410 + status: 410, }, - "message": "Request Failed: during criteo_audience response transformation with status \"410\" due to \"{\"message\":\"unknown error\"}\", (Aborted) ", - "statTags": { - "destType": "CRITEO_AUDIENCE", - "errorCategory": "network", - "destinationId": "Non-determininable", - "workspaceId": "Non-determininable", - "errorType": "aborted", - "feature": "dataDelivery", - "implementation": "native", - "module": "destination" + message: + 'Request Failed: during criteo_audience response transformation with status "410" due to "{"message":"unknown error"}", (Aborted) ', + statTags: { + destType: 'CRITEO_AUDIENCE', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'aborted', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', }, - "status": 400 - } - } - } - } - } -] \ No newline at end of file + status: 400, + }, + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/criteo_audience/router/data.ts b/test/integrations/destinations/criteo_audience/router/data.ts index 244ee2386d..755d83547e 100644 --- a/test/integrations/destinations/criteo_audience/router/data.ts +++ b/test/integrations/destinations/criteo_audience/router/data.ts @@ -19,12 +19,7 @@ export const data = [ }, ID: 'iwehr83843', }, - metadata: { - secret: { - accessToken: 'success_access_token', - }, - jobId: 1, - }, + metadata: { secret: { accessToken: 'success_access_token' }, jobId: 1, userId: 'u1' }, message: { userId: 'user 1', type: 'audiencelist', @@ -52,12 +47,7 @@ export const data = [ ], }, }, - context: { - ip: '14.5.67.21', - library: { - name: 'http', - }, - }, + context: { ip: '14.5.67.21', library: { name: 'http' } }, timestamp: '2020-02-02T00:23:09.544Z', }, }, @@ -71,12 +61,7 @@ export const data = [ }, ID: 'iwehr83843', }, - metadata: { - secret: { - accessToken: 'success_access_token', - }, - jobId: 2, - }, + metadata: { secret: { accessToken: 'success_access_token' }, jobId: 2, userId: 'u1' }, message: { userId: 'user 1', type: 'audiencelist', @@ -112,9 +97,7 @@ export const data = [ ], }, }, - context: { - ip: '14.5.67.21', - }, + context: { ip: '14.5.67.21' }, timestamp: '2020-02-02T00:23:09.544Z', }, }, @@ -162,12 +145,7 @@ export const data = [ }, ], metadata: [ - { - jobId: 1, - secret: { - accessToken: 'success_access_token', - }, - }, + { jobId: 1, secret: { accessToken: 'success_access_token' }, userId: 'u1' }, ], batched: false, statusCode: 200, @@ -243,12 +221,7 @@ export const data = [ }, ], metadata: [ - { - jobId: 2, - secret: { - accessToken: 'success_access_token', - }, - }, + { jobId: 2, secret: { accessToken: 'success_access_token' }, userId: 'u1' }, ], batched: false, statusCode: 200, @@ -278,127 +251,129 @@ export const data = [ body: { input: [ { - "destination": { - "Config": { - "clientId": "abcdef8-f49-4cd6-b4c5-958b3d66d431", - "clientSecret": "sjhdkhfrz6yc9LrRRIPimE9h53jADLccXTykHCcA6eEoFR4rXQg", - "audienceId": "34893", - "audienceType": "email" + destination: { + Config: { + clientId: 'abcdef8-f49-4cd6-b4c5-958b3d66d431', + clientSecret: 'sjhdkhfrz6yc9LrRRIPimE9h53jADLccXTykHCcA6eEoFR4rXQg', + audienceId: '34893', + audienceType: 'email', }, - "ID": "iwehr83843" + ID: 'iwehr83843', }, - "metadata": { - "secret": { - "accessToken": "success_access_token" + metadata: { + secret: { + accessToken: 'success_access_token', }, - "jobId": 1 + jobId: 1, + userId: 'u1', }, - "message": { - "userId": "user 1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [ + message: { + userId: 'user 1', + type: 'audiencelist', + properties: { + listData: { + add: [ { - "madid": "sample_madid", - "email": "alex@email.com", - "identityLink": "text.com", - "gum": "sdjfds" + madid: 'sample_madid', + email: 'alex@email.com', + identityLink: 'text.com', + gum: 'sdjfds', }, { - "madid": "sample_madid_1", - "email": "amy@email.com", - "identityLink": "yahoo.com", - "gum": "sdjfds" + madid: 'sample_madid_1', + email: 'amy@email.com', + identityLink: 'yahoo.com', + gum: 'sdjfds', }, { - "madid": "sample_madid_2", - "email": "van@email.com", - "identityLink": "abc.com", - "gum": "sdjfds" - } - ] - } + madid: 'sample_madid_2', + email: 'van@email.com', + identityLink: 'abc.com', + gum: 'sdjfds', + }, + ], + }, }, - "context": { - "externalId": [ + context: { + externalId: [ { - "type": "CRITEO_AUDIENCE-23848494844100489", - "identifierType": "EMAIL" - } + type: 'CRITEO_AUDIENCE-23848494844100489', + identifierType: 'EMAIL', + }, ], - "mappedToDestination": "true", - "sources": { - "job_run_id": "cgiiurt8um7k7n5dq480", - "task_run_id": "cgiiurt8um7k7n5dq48g", - "job_id": "2MUWghI7u85n91dd1qzGyswpZan", - "version": "895/merge" - } + mappedToDestination: 'true', + sources: { + job_run_id: 'cgiiurt8um7k7n5dq480', + task_run_id: 'cgiiurt8um7k7n5dq48g', + job_id: '2MUWghI7u85n91dd1qzGyswpZan', + version: '895/merge', + }, }, - "timestamp": "2020-02-02T00:23:09.544Z" - } + timestamp: '2020-02-02T00:23:09.544Z', + }, }, { - "destination": { - "Config": { - "clientId": "abcdef8-f49-4cd6-b4c5-958b3d66d431", - "clientSecret": "sjhdkhfrz6yc9LrRRIPimE9h53jADLccXTykHCcA6eEoFR4rXQg", - "audienceType": "email", - "warehouse-adAccountId": "123" + destination: { + Config: { + clientId: 'abcdef8-f49-4cd6-b4c5-958b3d66d431', + clientSecret: 'sjhdkhfrz6yc9LrRRIPimE9h53jADLccXTykHCcA6eEoFR4rXQg', + audienceType: 'email', + 'warehouse-adAccountId': '123', }, - "ID": "iwehr83843" + ID: 'iwehr83843', }, - "metadata": { - "secret": { - "accessToken": "success_access_token" + metadata: { + secret: { + accessToken: 'success_access_token', }, - "jobId": 1 + jobId: 2, + userId: 'u1', }, - "message": { - "userId": "user 1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [ + message: { + userId: 'user 1', + type: 'audiencelist', + properties: { + listData: { + add: [ { - "madid": "sample_madid", - "email": "alex@email.com", - "identityLink": "text.com", - "gum": "sdjfds" + madid: 'sample_madid', + email: 'alex@email.com', + identityLink: 'text.com', + gum: 'sdjfds', }, { - "madid": "sample_madid_1", - "email": "amy@email.com", - "identityLink": "yahoo.com", - "gum": "sdjfds" + madid: 'sample_madid_1', + email: 'amy@email.com', + identityLink: 'yahoo.com', + gum: 'sdjfds', }, { - "madid": "sample_madid_2", - "email": "van@email.com", - "identityLink": "abc.com", - "gum": "sdjfds" - } - ] - } + madid: 'sample_madid_2', + email: 'van@email.com', + identityLink: 'abc.com', + gum: 'sdjfds', + }, + ], + }, }, - "context": { - "externalId": [ + context: { + externalId: [ { - "type": "CRITEO_AUDIENCE-23848494844100489", - "identifierType": "EMAIL" - } + type: 'CRITEO_AUDIENCE-23848494844100489', + identifierType: 'EMAIL', + }, ], - "mappedToDestination": "true", - "sources": { - "job_run_id": "cgiiurt8um7k7n5dq480", - "task_run_id": "cgiiurt8um7k7n5dq48g", - "job_id": "2MUWghI7u85n91dd1qzGyswpZan", - "version": "895/merge" - } + mappedToDestination: 'true', + sources: { + job_run_id: 'cgiiurt8um7k7n5dq480', + task_run_id: 'cgiiurt8um7k7n5dq48g', + job_id: '2MUWghI7u85n91dd1qzGyswpZan', + version: '895/merge', + }, }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - } + timestamp: '2020-02-02T00:23:09.544Z', + }, + }, ], destType: 'criteo_audience', }, @@ -411,112 +386,115 @@ export const data = [ body: { output: [ { - "batchedRequest": [ + batchedRequest: [ { - "version": "1", - "type": "REST", - "method": "PATCH", - "endpoint": "https://api.criteo.com/2022-10/audiences/34893/contactlist", - "headers": { - "Authorization": "Bearer success_access_token", - "Content-Type": "application/json", - "Accept": "application/json" + version: '1', + type: 'REST', + method: 'PATCH', + endpoint: 'https://api.criteo.com/2022-10/audiences/34893/contactlist', + headers: { + Authorization: 'Bearer success_access_token', + 'Content-Type': 'application/json', + Accept: 'application/json', }, - "params": {}, - "body": { - "JSON": { - "data": { - "type": "ContactlistAmendment", - "attributes": { - "operation": "add", - "identifierType": "email", - "identifiers": ["alex@email.com", "amy@email.com", "van@email.com"], - "internalIdentifiers": false - } - } + params: {}, + body: { + JSON: { + data: { + type: 'ContactlistAmendment', + attributes: { + operation: 'add', + identifierType: 'email', + identifiers: ['alex@email.com', 'amy@email.com', 'van@email.com'], + internalIdentifiers: false, + }, + }, }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} + JSON_ARRAY: {}, + XML: {}, + FORM: {}, }, - "files": {} - } + files: {}, + }, ], - "metadata": [ + metadata: [ { - "jobId": 1, - "secret": { - "accessToken": "success_access_token" - } - } + jobId: 1, + userId: 'u1', + secret: { + accessToken: 'success_access_token', + }, + }, ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "clientId": "abcdef8-f49-4cd6-b4c5-958b3d66d431", - "clientSecret": "sjhdkhfrz6yc9LrRRIPimE9h53jADLccXTykHCcA6eEoFR4rXQg", - "audienceId": "34893", - "audienceType": "email" + batched: false, + statusCode: 200, + destination: { + Config: { + clientId: 'abcdef8-f49-4cd6-b4c5-958b3d66d431', + clientSecret: 'sjhdkhfrz6yc9LrRRIPimE9h53jADLccXTykHCcA6eEoFR4rXQg', + audienceId: '34893', + audienceType: 'email', }, - "ID": "iwehr83843" - } + ID: 'iwehr83843', + }, }, { - "batchedRequest": [ + batchedRequest: [ { - "version": "1", - "type": "REST", - "method": "PATCH", - "endpoint": "https://api.criteo.com/2022-10/audiences/23848494844100489/contactlist", - "headers": { - "Authorization": "Bearer success_access_token", - "Content-Type": "application/json", - "Accept": "application/json" + version: '1', + type: 'REST', + method: 'PATCH', + endpoint: + 'https://api.criteo.com/2022-10/audiences/23848494844100489/contactlist', + headers: { + Authorization: 'Bearer success_access_token', + 'Content-Type': 'application/json', + Accept: 'application/json', }, - "params": {}, - "body": { - "JSON": { - "data": { - "type": "ContactlistAmendment", - "attributes": { - "operation": "add", - "identifierType": "email", - "identifiers": ["alex@email.com", "amy@email.com", "van@email.com"], - "internalIdentifiers": false - } - } + params: {}, + body: { + JSON: { + data: { + type: 'ContactlistAmendment', + attributes: { + operation: 'add', + identifierType: 'email', + identifiers: ['alex@email.com', 'amy@email.com', 'van@email.com'], + internalIdentifiers: false, + }, + }, }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} + JSON_ARRAY: {}, + XML: {}, + FORM: {}, }, - "files": {} - } + files: {}, + }, ], - "metadata": [ + metadata: [ { - "jobId": 1, - "secret": { - "accessToken": "success_access_token" - } - } + jobId: 2, + userId: 'u1', + secret: { + accessToken: 'success_access_token', + }, + }, ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "clientId": "abcdef8-f49-4cd6-b4c5-958b3d66d431", - "clientSecret": "sjhdkhfrz6yc9LrRRIPimE9h53jADLccXTykHCcA6eEoFR4rXQg", - "warehouse-adAccountId": "123", - "audienceType": "email" + batched: false, + statusCode: 200, + destination: { + Config: { + clientId: 'abcdef8-f49-4cd6-b4c5-958b3d66d431', + clientSecret: 'sjhdkhfrz6yc9LrRRIPimE9h53jADLccXTykHCcA6eEoFR4rXQg', + 'warehouse-adAccountId': '123', + audienceType: 'email', }, - "ID": "iwehr83843" - } - } + ID: 'iwehr83843', + }, + }, ], }, }, }, - } + }, ]; diff --git a/test/integrations/destinations/custify/processor/data.ts b/test/integrations/destinations/custify/processor/data.ts index f3a3448b86..b5bd8bd753 100644 --- a/test/integrations/destinations/custify/processor/data.ts +++ b/test/integrations/destinations/custify/processor/data.ts @@ -1,695 +1,672 @@ export const data = [ - { - "name": "custify", - "description": "Identify Call with all traits and adding to company", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "apiKey_key_test_001", - "sendAnonymousId": false - }, - "ID": "custify-1234" - }, - "message": { - "type": "identify", - "userId": "user_1234", - "context": { - "traits": { - "email": "user111@gmail.com", - "firstName": "New", - "lastName": "User", - "phone": 9830311522, - "sessionCount": 23, - "unsubscribedFromEmails": false, - "unsubscribedFromCalls": false, - "signed_up_at": "2022-04-27T13:56:13.012Z", - "custom_prop1": "custom_value1", - "custom_prop2": 123, - "custom_prop3": false, - "custom_prop4": { - "test": "test" - }, - "custom_prop5": [ - 1, - 3, - 4 - ], - "createdAt": "2022-04-27T13:56:13.012Z", - "company": { - "id": "company_123" - } - } - }, - "timestamp": "2022-04-27T13:56:13.012Z", - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.custify.com/people", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer apiKey_key_test_001", - "Accept": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "user_id": "user_1234", - "email": "user111@gmail.com", - "phone": 9830311522, - "session_count": 23, - "unsubscribed_from_emails": false, - "unsubscribed_from_calls": false, - "signed_up_at": "2022-04-27T13:56:13.012Z", - "custom_attributes": { - "firstName": "New", - "lastName": "User", - "sessionCount": 23, - "unsubscribedFromEmails": false, - "unsubscribedFromCalls": false, - "custom_prop1": "custom_value1", - "custom_prop2": 123, - "custom_prop3": false, - "createdAt": "2022-04-27T13:56:13.012Z" - }, - "name": "New User", - "companies": [ - { - "company_id": "company_123", - "remove": false - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "user_1234" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "custify", - "description": "Identify Call removing the user from company", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "apiKey_key_test_001", - "sendAnonymousId": false - }, - "ID": "custify-1234" - }, - "message": { - "type": "identify", - "userId": "user_1234", - "context": { - "traits": { - "email": "user111@gmail.com", - "firstName": "New", - "lastName": "User", - "phone": 9830311522, - "sessionCount": 23, - "unsubscribedFromEmails": false, - "unsubscribedFromCalls": false, - "signed_up_at": "2022-04-27T13:56:13.012Z", - "custom_prop1": "custom_value1", - "custom_prop2": 123, - "custom_prop3": false, - "custom_prop4": { - "test": "test" - }, - "custom_prop5": [ - 1, - 3, - 4 - ], - "createdAt": "2022-04-27T13:56:13.012Z", - "company": { - "id": "company_123", - "remove": true - } - } - }, - "timestamp": "2022-04-27T13:56:13.012Z", - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.custify.com/people", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer apiKey_key_test_001", - "Accept": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "user_id": "user_1234", - "email": "user111@gmail.com", - "phone": 9830311522, - "session_count": 23, - "unsubscribed_from_emails": false, - "unsubscribed_from_calls": false, - "signed_up_at": "2022-04-27T13:56:13.012Z", - "custom_attributes": { - "firstName": "New", - "lastName": "User", - "sessionCount": 23, - "unsubscribedFromEmails": false, - "unsubscribedFromCalls": false, - "custom_prop1": "custom_value1", - "custom_prop2": 123, - "custom_prop3": false, - "createdAt": "2022-04-27T13:56:13.012Z" - }, - "name": "New User", - "companies": [ - { - "company_id": "company_123", - "remove": true - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "user_1234" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "custify", - "description": "Identify Call without userId and email and anoymousId", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "apiKey_key_test_001", - "sendAnonymousId": false - }, - "ID": "custify-1234" - }, - "message": { - "type": "identify", - "context": { - "traits": { - "firstName": "New", - "lastName": "User", - "phone": 9830311522, - "sessionCount": 23, - "unsubscribedFromEmails": false, - "unsubscribedFromCalls": false, - "signed_up_at": "2022-04-27T13:56:13.012Z", - "custom_prop1": "custom_value1", - "custom_prop2": 123, - "custom_prop3": false, - "custom_prop4": { - "test": "test" - }, - "custom_prop5": [ - 1, - 3, - 4 - ], - "createdAt": "2022-04-27T13:56:13.012Z", - "company": { - "id": "company_123", - "remove": true - } - } - }, - "timestamp": "2022-04-27T13:56:13.012Z", - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "Email or userId is mandatory", - "statTags": { - "destType": "CUSTIFY", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "custify", - "description": "Identify Call without userId and email and sendAnonymous is false", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "apiKey_key_test_001", - "sendAnonymousId": false - }, - "ID": "custify-1234" - }, - "message": { - "type": "identify", - "context": { - "traits": { - "firstName": "New", - "lastName": "User", - "phone": 9830311522, - "sessionCount": 23, - "unsubscribedFromEmails": false, - "unsubscribedFromCalls": false, - "signed_up_at": "2022-04-27T13:56:13.012Z", - "custom_prop1": "custom_value1", - "custom_prop2": 123, - "custom_prop3": false, - "custom_prop4": { - "test": "test" - }, - "custom_prop5": [ - 1, - 3, - 4 - ], - "createdAt": "2022-04-27T13:56:13.012Z", - "company": { - "id": "company_123", - "remove": true - } - } - }, - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "timestamp": "2022-04-27T13:56:13.012Z", - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "Email or userId is mandatory", - "statTags": { - "destType": "CUSTIFY", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "custify", - "description": "Identify Call without userId and email and sendAnonymous is true", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "apiKey_key_test_001", - "sendAnonymousId": true - }, - "ID": "custify-1234" - }, - "message": { - "type": "identify", - "context": { - "traits": { - "firstName": "New", - "lastName": "User", - "phone": 9830311522, - "sessionCount": 23, - "unsubscribedFromEmails": false, - "unsubscribedFromCalls": false, - "signed_up_at": "2022-04-27T13:56:13.012Z", - "custom_prop1": "custom_value1", - "custom_prop2": 123, - "custom_prop3": false, - "custom_prop4": { - "test": "test" - }, - "custom_prop5": [ - 1, - 3, - 4 - ], - "createdAt": "2022-04-27T13:56:13.012Z", - "company": { - "id": "company_123", - "remove": true - } - } - }, - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "timestamp": "2022-04-27T13:56:13.012Z", - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.custify.com/people", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer apiKey_key_test_001", - "Accept": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "phone": 9830311522, - "session_count": 23, - "unsubscribed_from_emails": false, - "unsubscribed_from_calls": false, - "signed_up_at": "2022-04-27T13:56:13.012Z", - "custom_attributes": { - "firstName": "New", - "lastName": "User", - "sessionCount": 23, - "unsubscribedFromEmails": false, - "unsubscribedFromCalls": false, - "custom_prop1": "custom_value1", - "custom_prop2": 123, - "custom_prop3": false, - "createdAt": "2022-04-27T13:56:13.012Z" - }, - "user_id": "bf412108-0357-4330-b119-7305e767823c", - "name": "New User", - "companies": [ - { - "company_id": "company_123", - "remove": true - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "bf412108-0357-4330-b119-7305e767823c" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "custify", - "description": "Track call with all properties", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "apiKey_key_test_001", - "sendAnonymousId": false - }, - "ID": "custify-1234" - }, - "message": { - "type": "track", - "event": "Order Completed Version 2", - "sentAt": "2021-08-26T14:16:47.321Z", - "userId": "user_111", - "context": { - "library": { - "name": "analytics-node", - "version": "1.0.3" - }, - "traits": { - "email": "user111@gmail.com" - }, - "page": { - "url": "https://www.website.com/product/path" - } - }, - "rudderId": "70612f39-0607-45bb-8236-bf0995fde4fa", - "_metadata": { - "nodeVersion": "10.24.1" - }, - "messageId": "node-84952e4eb9c6debbda735c49d08a8b31-fcbfed6a-38cf-42c5-881c-f590f59311b1", - "properties": { - "product": "Cube", - "revenue": 9002, - "organization_id": "company_123" - }, - "originalTimestamp": "2021-08-26T14:16:47.317Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.custify.com/event", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer apiKey_key_test_001", - "Accept": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "user_id": "user_111", - "email": "user111@gmail.com", - "name": "Order Completed Version 2", - "created_at": "2021-08-26T14:16:47.317Z", - "company_id": "company_123", - "metadata": { - "product": "Cube", - "revenue": 9002, - "organization_id": "company_123", - "user_id": "user_111" - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "user_111" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "custify", - "description": "Group call with all fields success scenario", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "apiKey_key_test_001", - "sendAnonymousId": false - }, - "ID": "custify-1234" - }, - "message": { - "type": "group", - "userId": "user_111", - "groupId": "company_222", - "traits": { - "name": "Absolute Company", - "industry": " Absolute", - "employees": 121, - "size": 100, - "website": "www.rudder.com", - "plan": "GOLD", - "monthly_revenue": 8000, - "churned": false, - "test_att1": "test_att_val1" - }, - "context": { - "traits": { - "firstName": "Absolute", - "lastName": "User", - "phone": 9830311522, - "session_count": 23, - "signed_up_at": "2022-04-27T13:56:13.012Z", - "custom_prop1": "custom_value1", - "custom_prop2": 123, - "custom_prop3": false, - "custom_prop4": { - "test": "test" - }, - "custom_prop5": [ - 1, - 3, - 4 - ], - "createdAt": "2022-04-27T13:56:13.012Z" - }, - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-01-21T00:21:34.208Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.custify.com/people", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer apiKey_key_test_001", - "Accept": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "user_id": "user_111", - "phone": 9830311522, - "signed_up_at": "2020-01-21T00:21:34.208Z", - "custom_attributes": { - "firstName": "Absolute", - "lastName": "User", - "custom_prop1": "custom_value1", - "custom_prop2": 123, - "custom_prop3": false, - "createdAt": "2022-04-27T13:56:13.012Z" - }, - "name": "Absolute User", - "companies": [ - { - "company_id": "company_222", - "remove": false - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "user_111" - }, - "statusCode": 200 - } - ] - } - } - } -] \ No newline at end of file + { + name: 'custify', + description: 'Identify Call with all traits and adding to company', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'apiKey_key_test_001', + sendAnonymousId: false, + }, + ID: 'custify-1234', + }, + message: { + type: 'identify', + userId: 'user_1234', + context: { + traits: { + email: 'user111@gmail.com', + firstName: 'New', + lastName: 'User', + phone: 9830311522, + sessionCount: 23, + unsubscribedFromEmails: false, + unsubscribedFromCalls: false, + signed_up_at: '2022-04-27T13:56:13.012Z', + custom_prop1: 'custom_value1', + custom_prop2: 123, + custom_prop3: false, + custom_prop4: { + test: 'test', + }, + custom_prop5: [1, 3, 4], + createdAt: '2022-04-27T13:56:13.012Z', + company: { + id: 'company_123', + }, + }, + }, + timestamp: '2022-04-27T13:56:13.012Z', + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.custify.com/people', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer apiKey_key_test_001', + Accept: 'application/json', + }, + params: {}, + body: { + JSON: { + user_id: 'user_1234', + email: 'user111@gmail.com', + phone: 9830311522, + session_count: 23, + unsubscribed_from_emails: false, + unsubscribed_from_calls: false, + signed_up_at: '2022-04-27T13:56:13.012Z', + custom_attributes: { + firstName: 'New', + lastName: 'User', + sessionCount: 23, + unsubscribedFromEmails: false, + unsubscribedFromCalls: false, + custom_prop1: 'custom_value1', + custom_prop2: 123, + custom_prop3: false, + createdAt: '2022-04-27T13:56:13.012Z', + }, + name: 'New User', + companies: [ + { + company_id: 'company_123', + remove: false, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'user_1234', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'custify', + description: 'Identify Call removing the user from company', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'apiKey_key_test_001', + sendAnonymousId: false, + }, + ID: 'custify-1234', + }, + message: { + type: 'identify', + userId: 'user_1234', + context: { + traits: { + email: 'user111@gmail.com', + firstName: 'New', + lastName: 'User', + phone: 9830311522, + sessionCount: 23, + unsubscribedFromEmails: false, + unsubscribedFromCalls: false, + signed_up_at: '2022-04-27T13:56:13.012Z', + custom_prop1: 'custom_value1', + custom_prop2: 123, + custom_prop3: false, + custom_prop4: { + test: 'test', + }, + custom_prop5: [1, 3, 4], + createdAt: '2022-04-27T13:56:13.012Z', + company: { + id: 'company_123', + remove: true, + }, + }, + }, + timestamp: '2022-04-27T13:56:13.012Z', + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.custify.com/people', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer apiKey_key_test_001', + Accept: 'application/json', + }, + params: {}, + body: { + JSON: { + user_id: 'user_1234', + email: 'user111@gmail.com', + phone: 9830311522, + session_count: 23, + unsubscribed_from_emails: false, + unsubscribed_from_calls: false, + signed_up_at: '2022-04-27T13:56:13.012Z', + custom_attributes: { + firstName: 'New', + lastName: 'User', + sessionCount: 23, + unsubscribedFromEmails: false, + unsubscribedFromCalls: false, + custom_prop1: 'custom_value1', + custom_prop2: 123, + custom_prop3: false, + createdAt: '2022-04-27T13:56:13.012Z', + }, + name: 'New User', + companies: [ + { + company_id: 'company_123', + remove: true, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'user_1234', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'custify', + description: 'Identify Call without userId and email and anoymousId', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'apiKey_key_test_001', + sendAnonymousId: false, + }, + ID: 'custify-1234', + }, + message: { + type: 'identify', + context: { + traits: { + firstName: 'New', + lastName: 'User', + phone: 9830311522, + sessionCount: 23, + unsubscribedFromEmails: false, + unsubscribedFromCalls: false, + signed_up_at: '2022-04-27T13:56:13.012Z', + custom_prop1: 'custom_value1', + custom_prop2: 123, + custom_prop3: false, + custom_prop4: { + test: 'test', + }, + custom_prop5: [1, 3, 4], + createdAt: '2022-04-27T13:56:13.012Z', + company: { + id: 'company_123', + remove: true, + }, + }, + }, + timestamp: '2022-04-27T13:56:13.012Z', + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Email or userId is mandatory', + statTags: { + destType: 'CUSTIFY', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'custify', + description: 'Identify Call without userId and email and sendAnonymous is false', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'apiKey_key_test_001', + sendAnonymousId: false, + }, + ID: 'custify-1234', + }, + message: { + type: 'identify', + context: { + traits: { + firstName: 'New', + lastName: 'User', + phone: 9830311522, + sessionCount: 23, + unsubscribedFromEmails: false, + unsubscribedFromCalls: false, + signed_up_at: '2022-04-27T13:56:13.012Z', + custom_prop1: 'custom_value1', + custom_prop2: 123, + custom_prop3: false, + custom_prop4: { + test: 'test', + }, + custom_prop5: [1, 3, 4], + createdAt: '2022-04-27T13:56:13.012Z', + company: { + id: 'company_123', + remove: true, + }, + }, + }, + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + timestamp: '2022-04-27T13:56:13.012Z', + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Email or userId is mandatory', + statTags: { + destType: 'CUSTIFY', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'custify', + description: 'Identify Call without userId and email and sendAnonymous is true', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'apiKey_key_test_001', + sendAnonymousId: true, + }, + ID: 'custify-1234', + }, + message: { + type: 'identify', + context: { + traits: { + firstName: 'New', + lastName: 'User', + phone: 9830311522, + sessionCount: 23, + unsubscribedFromEmails: false, + unsubscribedFromCalls: false, + signed_up_at: '2022-04-27T13:56:13.012Z', + custom_prop1: 'custom_value1', + custom_prop2: 123, + custom_prop3: false, + custom_prop4: { + test: 'test', + }, + custom_prop5: [1, 3, 4], + createdAt: '2022-04-27T13:56:13.012Z', + company: { + id: 'company_123', + remove: true, + }, + }, + }, + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + timestamp: '2022-04-27T13:56:13.012Z', + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.custify.com/people', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer apiKey_key_test_001', + Accept: 'application/json', + }, + params: {}, + body: { + JSON: { + phone: 9830311522, + session_count: 23, + unsubscribed_from_emails: false, + unsubscribed_from_calls: false, + signed_up_at: '2022-04-27T13:56:13.012Z', + custom_attributes: { + firstName: 'New', + lastName: 'User', + sessionCount: 23, + unsubscribedFromEmails: false, + unsubscribedFromCalls: false, + custom_prop1: 'custom_value1', + custom_prop2: 123, + custom_prop3: false, + createdAt: '2022-04-27T13:56:13.012Z', + }, + user_id: 'bf412108-0357-4330-b119-7305e767823c', + name: 'New User', + companies: [ + { + company_id: 'company_123', + remove: true, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'bf412108-0357-4330-b119-7305e767823c', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'custify', + description: 'Track call with all properties', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'apiKey_key_test_001', + sendAnonymousId: false, + }, + ID: 'custify-1234', + }, + message: { + type: 'track', + event: 'Order Completed Version 2', + sentAt: '2021-08-26T14:16:47.321Z', + userId: 'user_111', + context: { + library: { + name: 'analytics-node', + version: '1.0.3', + }, + traits: { + email: 'user111@gmail.com', + }, + page: { + url: 'https://www.website.com/product/path', + }, + }, + rudderId: '70612f39-0607-45bb-8236-bf0995fde4fa', + _metadata: { + nodeVersion: '10.24.1', + }, + messageId: + 'node-84952e4eb9c6debbda735c49d08a8b31-fcbfed6a-38cf-42c5-881c-f590f59311b1', + properties: { + product: 'Cube', + revenue: 9002, + organization_id: 'company_123', + }, + originalTimestamp: '2021-08-26T14:16:47.317Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.custify.com/event', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer apiKey_key_test_001', + Accept: 'application/json', + }, + params: {}, + body: { + JSON: { + user_id: 'user_111', + email: 'user111@gmail.com', + name: 'Order Completed Version 2', + created_at: '2021-08-26T14:16:47.317Z', + company_id: 'company_123', + metadata: { + product: 'Cube', + revenue: 9002, + organization_id: 'company_123', + user_id: 'user_111', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'user_111', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'custify', + description: 'Group call with all fields success scenario', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'apiKey_key_test_001', + sendAnonymousId: false, + }, + ID: 'custify-1234', + }, + message: { + type: 'group', + userId: 'user_111', + groupId: 'company_222', + traits: { + name: 'Absolute Company', + industry: ' Absolute', + employees: 121, + size: 100, + website: 'www.rudder.com', + plan: 'GOLD', + monthly_revenue: 8000, + churned: false, + test_att1: 'test_att_val1', + }, + context: { + traits: { + firstName: 'Absolute', + lastName: 'User', + phone: 9830311522, + session_count: 23, + signed_up_at: '2022-04-27T13:56:13.012Z', + custom_prop1: 'custom_value1', + custom_prop2: 123, + custom_prop3: false, + custom_prop4: { + test: 'test', + }, + custom_prop5: [1, 3, 4], + createdAt: '2022-04-27T13:56:13.012Z', + }, + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-01-21T00:21:34.208Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.custify.com/people', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer apiKey_key_test_001', + Accept: 'application/json', + }, + params: {}, + body: { + JSON: { + user_id: 'user_111', + phone: 9830311522, + signed_up_at: '2020-01-21T00:21:34.208Z', + custom_attributes: { + firstName: 'Absolute', + lastName: 'User', + custom_prop1: 'custom_value1', + custom_prop2: 123, + custom_prop3: false, + createdAt: '2022-04-27T13:56:13.012Z', + }, + name: 'Absolute User', + companies: [ + { + company_id: 'company_222', + remove: false, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'user_111', + }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/custify/router/data.ts b/test/integrations/destinations/custify/router/data.ts index 12639192f8..a88f36fc69 100644 --- a/test/integrations/destinations/custify/router/data.ts +++ b/test/integrations/destinations/custify/router/data.ts @@ -1,242 +1,201 @@ export const data = [ - { - name: 'custify', - description: 'Test 0', - feature: 'router', - module: 'destination', - version: 'v0', - input: { - request: { - body: { - input: [ - { - "description": "Group callw with all parameters", - "destination": { - "Config": { - "apiKey": "apiKey_key_test_001", - "sendAnonymousId": false - }, - "ID": "custify-1234" - }, - "metadata": { - "jobId": 1 - }, - "message": { - "type": "group", - "userId": "user_111", - "groupId": "company_222", - "traits": { - "name": "Absolute Company", - "industry": " Absolute", - "employees": 121, - "size": 100, - "website": "www.rudder.com", - "plan": "GOLD", - "monthly_revenue": 8000, - "churned": false, - "test_att1": "test_att_val1" - }, - "context": { - "traits": { - "firstName": "Absolute", - "lastName": "User", - "phone": 9830311522, - "session_count": 23, - "signed_up_at": "2022-04-27T13:56:13.012Z", - "custom_prop1": "custom_value1", - "custom_prop2": 123, - "custom_prop3": false, - "custom_prop4": { - "test": "test" - }, - "custom_prop5": [1, 3, 4], - "createdAt": "2022-04-27T13:56:13.012Z" - }, - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-01-21T00:21:34.208Z" - } - }, - { - "description": "Identify with all parameters", - "destination": { - "Config": { - "apiKeyToken": "pk_123", - "listId": "correctListId123" - }, - "ID": "custify-1234" - }, - "metadata": { - "jobId": 2 - }, - "message": { - "type": "identify", - "userId": "user_1234", - "context": { - "traits": { - "email": "user111@gmail.com", - "firstName": "New", - "lastName": "User", - "phone": 9830311522, - "sessionCount": 23, - "unsubscribedFromEmails": false, - "unsubscribedFromCalls": false, - - "signed_up_at": "2022-04-27T13:56:13.012Z", - "custom_prop1": "custom_value1", - "custom_prop2": 123, - "custom_prop3": false, - "custom_prop4": { "test": "test" }, - "custom_prop5": [1, 3, 4], - "createdAt": "2022-04-27T13:56:13.012Z", - "company": { - "id": "company_123" - } - } - }, - "timestamp": "2022-04-27T13:56:13.012Z", - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c" - }, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c" - } - ], - destType: 'custify', + { + name: 'custify', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + description: 'Group callw with all parameters', + destination: { + Config: { apiKey: 'apiKey_key_test_001', sendAnonymousId: false }, + ID: 'custify-1234', + }, + metadata: { jobId: 1, userId: 'u1' }, + message: { + type: 'group', + userId: 'user_111', + groupId: 'company_222', + traits: { + name: 'Absolute Company', + industry: ' Absolute', + employees: 121, + size: 100, + website: 'www.rudder.com', + plan: 'GOLD', + monthly_revenue: 8000, + churned: false, + test_att1: 'test_att_val1', }, - method: 'POST', + context: { + traits: { + firstName: 'Absolute', + lastName: 'User', + phone: 9830311522, + session_count: 23, + signed_up_at: '2022-04-27T13:56:13.012Z', + custom_prop1: 'custom_value1', + custom_prop2: 123, + custom_prop3: false, + custom_prop4: { test: 'test' }, + custom_prop5: [1, 3, 4], + createdAt: '2022-04-27T13:56:13.012Z', + }, + ip: '14.5.67.21', + library: { name: 'http' }, + }, + timestamp: '2020-01-21T00:21:34.208Z', + }, }, + { + description: 'Identify with all parameters', + destination: { + Config: { apiKeyToken: 'pk_123', listId: 'correctListId123' }, + ID: 'custify-1234', + }, + metadata: { jobId: 2, userId: 'u1' }, + message: { + type: 'identify', + userId: 'user_1234', + context: { + traits: { + email: 'user111@gmail.com', + firstName: 'New', + lastName: 'User', + phone: 9830311522, + sessionCount: 23, + unsubscribedFromEmails: false, + unsubscribedFromCalls: false, + signed_up_at: '2022-04-27T13:56:13.012Z', + custom_prop1: 'custom_value1', + custom_prop2: 123, + custom_prop3: false, + custom_prop4: { test: 'test' }, + custom_prop5: [1, 3, 4], + createdAt: '2022-04-27T13:56:13.012Z', + company: { id: 'company_123' }, + }, + }, + timestamp: '2022-04-27T13:56:13.012Z', + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + }, + ], + destType: 'custify', }, - output: { - response: { - status: 200, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.custify.com/people', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer apiKey_key_test_001', + Accept: 'application/json', + }, + params: {}, + body: { + JSON: { + user_id: 'user_111', + phone: 9830311522, + signed_up_at: '2020-01-21T00:21:34.208Z', + custom_attributes: { + firstName: 'Absolute', + lastName: 'User', + custom_prop1: 'custom_value1', + custom_prop2: 123, + custom_prop3: false, + createdAt: '2022-04-27T13:56:13.012Z', + }, + name: 'Absolute User', + companies: [{ company_id: 'company_222', remove: false }], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'user_111', + }, + metadata: [{ jobId: 1, userId: 'u1' }], + batched: false, + statusCode: 200, + destination: { + Config: { apiKey: 'apiKey_key_test_001', sendAnonymousId: false }, + ID: 'custify-1234', + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.custify.com/people', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer undefined', + Accept: 'application/json', + }, + params: {}, body: { - output: [ - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.custify.com/people", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer apiKey_key_test_001", - "Accept": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "user_id": "user_111", - "phone": 9830311522, - "signed_up_at": "2020-01-21T00:21:34.208Z", - "custom_attributes": { - "firstName": "Absolute", - "lastName": "User", - "custom_prop1": "custom_value1", - "custom_prop2": 123, - "custom_prop3": false, - "createdAt": "2022-04-27T13:56:13.012Z" - }, - "name": "Absolute User", - "companies": [ - { - "company_id": "company_222", - "remove": false - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "user_111" - }, - "metadata": [ - { - "jobId": 1 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "apiKey": "apiKey_key_test_001", - "sendAnonymousId": false - }, - "ID": "custify-1234" - } - }, - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.custify.com/people", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer undefined", - "Accept": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "user_id": "user_1234", - "email": "user111@gmail.com", - "phone": 9830311522, - "session_count": 23, - "unsubscribed_from_emails": false, - "unsubscribed_from_calls": false, - "signed_up_at": "2022-04-27T13:56:13.012Z", - "custom_attributes": { - "firstName": "New", - "lastName": "User", - "sessionCount": 23, - "unsubscribedFromEmails": false, - "unsubscribedFromCalls": false, - "custom_prop1": "custom_value1", - "custom_prop2": 123, - "custom_prop3": false, - "createdAt": "2022-04-27T13:56:13.012Z" - }, - "name": "New User", - "companies": [ - { - "company_id": "company_123", - "remove": false - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "user_1234" - }, - "metadata": [ - { - "jobId": 2 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "apiKeyToken": "pk_123", - "listId": "correctListId123" - }, - "ID": "custify-1234" - } - } - ], + JSON: { + user_id: 'user_1234', + email: 'user111@gmail.com', + phone: 9830311522, + session_count: 23, + unsubscribed_from_emails: false, + unsubscribed_from_calls: false, + signed_up_at: '2022-04-27T13:56:13.012Z', + custom_attributes: { + firstName: 'New', + lastName: 'User', + sessionCount: 23, + unsubscribedFromEmails: false, + unsubscribedFromCalls: false, + custom_prop1: 'custom_value1', + custom_prop2: 123, + custom_prop3: false, + createdAt: '2022-04-27T13:56:13.012Z', + }, + name: 'New User', + companies: [{ company_id: 'company_123', remove: false }], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, }, + files: {}, + userId: 'user_1234', + }, + metadata: [{ jobId: 2, userId: 'u1' }], + batched: false, + statusCode: 200, + destination: { + Config: { apiKeyToken: 'pk_123', listId: 'correctListId123' }, + ID: 'custify-1234', + }, }, + ], }, + }, }, + }, ]; diff --git a/test/integrations/destinations/customerio/router/data.ts b/test/integrations/destinations/customerio/router/data.ts index 9a34377714..1275147710 100644 --- a/test/integrations/destinations/customerio/router/data.ts +++ b/test/integrations/destinations/customerio/router/data.ts @@ -32,34 +32,21 @@ export const data = [ ip: '0.0.0.0', age: 26, }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', locale: 'en-US', ip: '0.0.0.0', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, - }, - user_properties: { - prop1: 'val1', - prop2: 'val2', + os: { name: '', version: '' }, + screen: { density: 2 }, }, + user_properties: { prop1: 'val1', prop2: 'val2' }, type: 'identify', messageId: '84e26acc-56a5-4835-8233-591137fca468', originalTimestamp: '2019-10-14T09:03:17.562Z', anonymousId: '123456', userId: '123456', - integrations: { - All: true, - }, + integrations: { All: true }, traits: { anonymousId: 'anon-id', email: 'test@gmail.com', @@ -74,9 +61,7 @@ export const data = [ }, sentAt: '2019-10-14T09:03:22.563Z', }, - metadata: { - jobId: 1, - }, + metadata: { jobId: 1, userId: 'u1' }, destination: { Config: { datacenterEU: false, @@ -95,25 +80,14 @@ export const data = [ namespace: 'com.rudderlabs.javascript', version: '1.0.0', }, - traits: { - email: 'test@rudderstack.com', - anonymousId: '12345', - }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + traits: { email: 'test@rudderstack.com', anonymousId: '12345' }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', locale: 'en-US', ip: '0.0.0.0', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, }, type: 'page', messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', @@ -127,15 +101,11 @@ export const data = [ title: 'Test Page', url: 'www.rudderlabs.com', }, - integrations: { - All: true, - }, + integrations: { All: true }, name: 'ApplicationLoaded', sentAt: '2019-10-14T11:15:53.296Z', }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, destination: { Config: { datacenterEU: false, @@ -155,25 +125,15 @@ export const data = [ version: '1.1.0-beta.2', }, ip: '0.0.0.0', - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.1.0-beta.2', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.0-beta.2' }, locale: 'en-GB', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36', }, groupId: 'group@1', - integrations: { - All: true, - }, + integrations: { All: true }, traits: { domainNames: 'rudderstack.com', email: 'help@rudderstack.com', @@ -183,9 +143,7 @@ export const data = [ type: 'group', userId: 'user@1', }, - metadata: { - jobId: 3, - }, + metadata: { jobId: 3, userId: 'u1' }, destination: { Config: { datacenterEU: false, @@ -205,25 +163,15 @@ export const data = [ version: '1.1.0-beta.2', }, ip: '0.0.0.0', - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.1.0-beta.2', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.0-beta.2' }, locale: 'en-GB', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36', }, groupId: 'group@1', - integrations: { - All: true, - }, + integrations: { All: true }, traits: { domainNames: 'rudderstack.com', email: 'help@rudderstack.com', @@ -233,9 +181,7 @@ export const data = [ type: 'group', userId: 'user@1', }, - metadata: { - jobId: 4, - }, + metadata: { jobId: 4, userId: 'u1' }, destination: { Config: { datacenterEU: false, @@ -261,9 +207,7 @@ export const data = [ type: 'REST', method: 'PUT', endpoint: 'https://track.customer.io/api/v1/customers/123456', - headers: { - Authorization: 'Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6ZHVtbXlBcGlLZXk=', - }, + headers: { Authorization: 'Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6ZHVtbXlBcGlLZXk=' }, params: {}, body: { JSON: { @@ -287,11 +231,7 @@ export const data = [ userId: '123456', statusCode: 200, }, - metadata: [ - { - jobId: 1, - }, - ], + metadata: [{ jobId: 1, userId: 'u1' }], batched: false, statusCode: 200, destination: { @@ -308,9 +248,7 @@ export const data = [ type: 'REST', method: 'POST', endpoint: 'https://track.customer.io/api/v1/customers/12345/events', - headers: { - Authorization: 'Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6ZHVtbXlBcGlLZXk=', - }, + headers: { Authorization: 'Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6ZHVtbXlBcGlLZXk=' }, params: {}, body: { JSON: { @@ -333,11 +271,7 @@ export const data = [ userId: '12345', statusCode: 200, }, - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], batched: false, statusCode: 200, destination: { @@ -372,17 +306,8 @@ export const data = [ email: 'help@rudderstack.com', domainNames: 'rudderstack.com', }, - identifiers: { - object_id: 'group@1', - object_type_id: '1', - }, - cio_relationships: [ - { - identifiers: { - id: 'user@1', - }, - }, - ], + identifiers: { object_id: 'group@1', object_type_id: '1' }, + cio_relationships: [{ identifiers: { id: 'user@1' } }], }, { type: 'object', @@ -392,17 +317,8 @@ export const data = [ email: 'help@rudderstack.com', domainNames: 'rudderstack.com', }, - identifiers: { - object_id: 'group@1', - object_type_id: '1', - }, - cio_relationships: [ - { - identifiers: { - id: 'user@1', - }, - }, - ], + identifiers: { object_id: 'group@1', object_type_id: '1' }, + cio_relationships: [{ identifiers: { id: 'user@1' } }], }, ], }, @@ -411,12 +327,8 @@ export const data = [ files: {}, }, metadata: [ - { - jobId: 3, - }, - { - jobId: 4, - }, + { jobId: 3, userId: 'u1' }, + { jobId: 4, userId: 'u1' }, ], batched: false, statusCode: 200, diff --git a/test/integrations/destinations/delighted/processor/data.ts b/test/integrations/destinations/delighted/processor/data.ts index 1bf6a28354..7a5ad7de9d 100644 --- a/test/integrations/destinations/delighted/processor/data.ts +++ b/test/integrations/destinations/delighted/processor/data.ts @@ -1,937 +1,947 @@ export const data = [ - { - "name": "delighted", - "description": "Test 0", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "channel": "email", - "delay": 0, - "eventNamesSettings": [ - { - "event": "" - } - ] - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "type": "identify", - "userId": "abc@123.com", - "traits": { - "firstName": "James", - "lastName": "Doe", - "phone": "+91237416221", - "last_sent_at": "1626698350" - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.delighted.com/v1/people.json", - "headers": { - "Authorization": "Basic ZHVtbXlBcGlLZXk=", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {}, - "JSON": { - "email": "abc@123.com", - "send": false, - "channel": "email", - "delay": 0, - "name": "James Doe", - "phone_number": "+91237416221", - "last_sent_at": "1626698350" - } - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "delighted", - "description": "Test 1", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "channel": "email", - "delay": 0, - "eventNamesSettings": [ - { - "event": "" - } - ] - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "type": "alias", - "previousId": "123@abc.com", - "userId": "abc@123.com", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {}, - "JSON": { - "email": "123@abc.com", - "email_update": "abc@123.com" - } - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Authorization": "Basic ZHVtbXlBcGlLZXk=", - "Content-Type": "application/json" - }, - "version": "1", - "endpoint": "https://api.delighted.com/v1/people.json", - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "delighted", - "description": "Test 2", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "channel": "email", - "delay": 0, - "eventNamesSettings": [ - { - "event": "Product Reviewed" - } - ] - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "type": "track", - "userId": "identified_user@email.com", - "event": "Product Reviewed", - "properties": { - "review_id": "12345", - "product_id": "123", - "rating": 3, - "review_body": "Average product, expected much more." - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {}, - "JSON": { - "properties": { - "review_id": "12345", - "product_id": "123", - "rating": 3, - "review_body": "Average product, expected much more." - }, - "send": true, - "channel": "email", - "delay": 0, - "email": "identified_user@email.com" - } - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Authorization": "Basic ZHVtbXlBcGlLZXk=", - "Content-Type": "application/json" - }, - "version": "1", - "endpoint": "https://api.delighted.com/v1/people.json", - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "delighted", - "description": "Test 3", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "dummyApiKeyforfailure", - "channel": "email", - "delay": 0, - "eventNamesSettings": [ - { - "event": "Product Reviewed" - } - ] - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "type": "track", - "userId": "unidentified_user@email.com", - "event": "Product Reviewed", - "properties": { - "review_id": "12345", - "product_id": "123", - "rating": 3, - "review_body": "Average product, expected much more." - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "user unidentified_user@email.com doesn't exist", - "statTags": { - "destType": "DELIGHTED", - "errorCategory": "network", - "errorType": "aborted", - "feature": "processor", - "implementation": "native", - "meta": "instrumentation", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "delighted", - "description": "Test 4", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "channel": "email", - "delay": 0, - "eventNamesSettings": [ - { - "event": "" - } - ] - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "type": "track", - "userId": "identified_user@email.com", - "event": "Product Reviewed", - "properties": { - "review_id": "12345", - "product_id": "123", - "rating": 3, - "review_body": "Average product, expected much more." - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "Event is not configured on your Rudderstack Dashboard", - "statTags": { - "destType": "DELIGHTED", - "errorCategory": "dataValidation", - "errorType": "configuration", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "delighted", - "description": "Test 5", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "channel": "email", - "delay": 0, - "eventNamesSettings": [ - { - "event": "Product Reviewed" - } - ] - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "type": "track", - "anonymousId": "identified_user@email.com", - "event": "Product Reviewed", - "properties": { - "review_id": "12345", - "product_id": "123", - "rating": 3, - "review_body": "Average product, expected much more." - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "userId is required.", - "statTags": { - "destType": "DELIGHTED", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "delighted", - "description": "Test 6", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "channel": "email", - "delay": 0, - "eventNamesSettings": [ - { - "event": "" - } - ] - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "type": "alias", - "previousId": "123@abc.com", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "userId is required.", - "statTags": { - "destType": "DELIGHTED", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "delighted", - "description": "Test 7", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "channel": "email", - "delay": 0, - "eventNamesSettings": [ - { - "event": "" - } - ] - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "externalId": [ - { - "id": "sms", - "type": "delightedChannelType" - } - ], - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "type": "alias", - "userId": "abc@123.com", - "previousId": "123@abc.com", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "User Id and Previous Id should be of same type i.e. phone/sms", - "statTags": { - "destType": "DELIGHTED", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "delighted", - "description": "Test 8", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "channel": "email", - "delay": 0, - "eventNamesSettings": [ - { - "event": "" - } - ] - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "externalId": [ - { - "id": "sms", - "type": "delightedChannelType" - } - ], - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "type": "identify", - "userId": "abc@123.com", - "traits": { - "firstName": "James", - "lastName": "Doe", - "phone": "+91237416221", - "last_sent_at": "1626698350" - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "Channel is set to sms. Enter correct phone number i.e. E.164", - "statTags": { - "destType": "DELIGHTED", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "delighted", - "description": "Test 9", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "channel": "email", - "delay": 0, - "eventNamesSettings": [ - { - "event": "" - } - ] - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "externalId": [ - { - "id": "sms", - "type": "delightedChannelType" - } - ], - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "type": "identify", - "userId": "+911234567890", - "traits": { - "firstName": "James", - "lastName": "Doe", - "last_sent_at": "1626698350" - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.delighted.com/v1/people.json", - "headers": { - "Authorization": "Basic ZHVtbXlBcGlLZXk=", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {}, - "JSON": { - "send": false, - "channel": "sms", - "delay": 0, - "name": "James Doe", - "phone_number": "+911234567890", - "last_sent_at": "1626698350" - } - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - } -] \ No newline at end of file + { + name: 'delighted', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + channel: 'email', + delay: 0, + eventNamesSettings: [ + { + event: '', + }, + ], + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + type: 'identify', + userId: 'abc@123.com', + traits: { + firstName: 'James', + lastName: 'Doe', + phone: '+91237416221', + last_sent_at: '1626698350', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.delighted.com/v1/people.json', + headers: { + Authorization: 'Basic ZHVtbXlBcGlLZXk=', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + email: 'abc@123.com', + send: false, + channel: 'email', + delay: 0, + name: 'James Doe', + phone_number: '+91237416221', + last_sent_at: '1626698350', + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'delighted', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + channel: 'email', + delay: 0, + eventNamesSettings: [ + { + event: '', + }, + ], + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + type: 'alias', + previousId: '123@abc.com', + userId: 'abc@123.com', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + email: '123@abc.com', + email_update: 'abc@123.com', + }, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { + Authorization: 'Basic ZHVtbXlBcGlLZXk=', + 'Content-Type': 'application/json', + }, + version: '1', + endpoint: 'https://api.delighted.com/v1/people.json', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'delighted', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + channel: 'email', + delay: 0, + eventNamesSettings: [ + { + event: 'Product Reviewed', + }, + ], + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + type: 'track', + userId: 'identified_user@email.com', + event: 'Product Reviewed', + properties: { + review_id: '12345', + product_id: '123', + rating: 3, + review_body: 'Average product, expected much more.', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + properties: { + review_id: '12345', + product_id: '123', + rating: 3, + review_body: 'Average product, expected much more.', + }, + send: true, + channel: 'email', + delay: 0, + email: 'identified_user@email.com', + }, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { + Authorization: 'Basic ZHVtbXlBcGlLZXk=', + 'Content-Type': 'application/json', + }, + version: '1', + endpoint: 'https://api.delighted.com/v1/people.json', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'delighted', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'dummyApiKeyforfailure', + channel: 'email', + delay: 0, + eventNamesSettings: [ + { + event: 'Product Reviewed', + }, + ], + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + type: 'track', + userId: 'unidentified_user@email.com', + event: 'Product Reviewed', + properties: { + review_id: '12345', + product_id: '123', + rating: 3, + review_body: 'Average product, expected much more.', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: "user unidentified_user@email.com doesn't exist", + statTags: { + destType: 'DELIGHTED', + errorCategory: 'network', + errorType: 'aborted', + feature: 'processor', + implementation: 'native', + meta: 'instrumentation', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'delighted', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + channel: 'email', + delay: 0, + eventNamesSettings: [ + { + event: '', + }, + ], + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + type: 'track', + userId: 'identified_user@email.com', + event: 'Product Reviewed', + properties: { + review_id: '12345', + product_id: '123', + rating: 3, + review_body: 'Average product, expected much more.', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Event is not configured on your Rudderstack Dashboard', + statTags: { + destType: 'DELIGHTED', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'delighted', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + channel: 'email', + delay: 0, + eventNamesSettings: [ + { + event: 'Product Reviewed', + }, + ], + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + type: 'track', + anonymousId: 'identified_user@email.com', + event: 'Product Reviewed', + properties: { + review_id: '12345', + product_id: '123', + rating: 3, + review_body: 'Average product, expected much more.', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'userId is required.', + statTags: { + destType: 'DELIGHTED', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'delighted', + description: 'Test 6', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + channel: 'email', + delay: 0, + eventNamesSettings: [ + { + event: '', + }, + ], + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + type: 'alias', + previousId: '123@abc.com', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'userId is required.', + statTags: { + destType: 'DELIGHTED', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'delighted', + description: 'Test 7', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + channel: 'email', + delay: 0, + eventNamesSettings: [ + { + event: '', + }, + ], + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + externalId: [ + { + id: 'sms', + type: 'delightedChannelType', + }, + ], + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + type: 'alias', + userId: 'abc@123.com', + previousId: '123@abc.com', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'User Id and Previous Id should be of same type i.e. phone/sms', + statTags: { + destType: 'DELIGHTED', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'delighted', + description: 'Test 8', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + channel: 'email', + delay: 0, + eventNamesSettings: [ + { + event: '', + }, + ], + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + externalId: [ + { + id: 'sms', + type: 'delightedChannelType', + }, + ], + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + type: 'identify', + userId: 'abc@123.com', + traits: { + firstName: 'James', + lastName: 'Doe', + phone: '+91237416221', + last_sent_at: '1626698350', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Channel is set to sms. Enter correct phone number i.e. E.164', + statTags: { + destType: 'DELIGHTED', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'delighted', + description: 'Test 9', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + channel: 'email', + delay: 0, + eventNamesSettings: [ + { + event: '', + }, + ], + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + externalId: [ + { + id: 'sms', + type: 'delightedChannelType', + }, + ], + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + type: 'identify', + userId: '+911234567890', + traits: { + firstName: 'James', + lastName: 'Doe', + last_sent_at: '1626698350', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.delighted.com/v1/people.json', + headers: { + Authorization: 'Basic ZHVtbXlBcGlLZXk=', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + send: false, + channel: 'sms', + delay: 0, + name: 'James Doe', + phone_number: '+911234567890', + last_sent_at: '1626698350', + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/delighted/router/data.ts b/test/integrations/destinations/delighted/router/data.ts index 115ac7b05e..b9e9882383 100644 --- a/test/integrations/destinations/delighted/router/data.ts +++ b/test/integrations/destinations/delighted/router/data.ts @@ -1,191 +1,177 @@ export const data = [ - { - name: 'delighted', - description: 'Test 0', - feature: 'router', - module: 'destination', - version: 'v0', - input: { - request: { + { + name: 'delighted', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + channel: 'email', + delay: 0, + eventNamesSettings: [{ event: '' }], + }, + }, + metadata: { jobId: 1, userId: 'u1' }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { name: '', version: '' }, + screen: { density: 2 }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + type: 'identify', + userId: 'abc@123.com', + traits: { + firstName: 'James', + lastName: 'Doe', + phone: '+92374162212', + last_sent_at: '1626698350', + }, + integrations: { All: true }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + { + destination: { + Config: { + apiKey: 'dummyApiKey', + channel: 'email', + delay: 0, + eventNamesSettings: [{ event: '' }], + }, + }, + metadata: { jobId: 2, userId: 'u1' }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { name: '', version: '' }, + screen: { density: 2 }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + type: 'alias', + previousId: '123@abc.com', + userId: 'abc@123.com', + integrations: { All: true }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + destType: 'delighted', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { body: { - input: [ - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "channel": "email", - "delay": 0, - "eventNamesSettings": [{ "event": "" }] - } - }, - "metadata": { - "jobId": 1 - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { "name": "RudderLabs JavaScript SDK", "version": "1.0.0" }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { "name": "", "version": "" }, - "screen": { "density": 2 } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "type": "identify", - "userId": "abc@123.com", - "traits": { - "firstName": "James", - "lastName": "Doe", - "phone": "+92374162212", - "last_sent_at": "1626698350" - }, - "integrations": { "All": true }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - }, - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "channel": "email", - "delay": 0, - "eventNamesSettings": [{ "event": "" }] - } - }, - "metadata": { - "jobId": 2 - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { "name": "RudderLabs JavaScript SDK", "version": "1.0.0" }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { "name": "", "version": "" }, - "screen": { "density": 2 } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "type": "alias", - "previousId": "123@abc.com", - "userId": "abc@123.com", - "integrations": { "All": true }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - } - ], - destType: 'delighted', + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + email: 'abc@123.com', + send: false, + channel: 'email', + delay: 0, + last_sent_at: '1626698350', + name: 'James Doe', + phone_number: '+92374162212', + }, }, + type: 'REST', + files: {}, method: 'POST', + params: {}, + headers: { + Authorization: 'Basic ZHVtbXlBcGlLZXk=', + 'Content-Type': 'application/json', + }, + version: '1', + endpoint: 'https://api.delighted.com/v1/people.json', + }, + metadata: [{ jobId: 1, userId: 'u1' }], + batched: false, + statusCode: 200, + destination: { + Config: { + apiKey: 'dummyApiKey', + channel: 'email', + delay: 0, + eventNamesSettings: [{ event: '' }], + }, + }, }, - }, - output: { - response: { - status: 200, + { + batchedRequest: { body: { - output: [ - { - "batchedRequest": { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {}, - "JSON": { - "email": "abc@123.com", - "send": false, - "channel": "email", - "delay": 0, - "last_sent_at": "1626698350", - "name": "James Doe", - "phone_number": "+92374162212" - } - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Authorization": "Basic ZHVtbXlBcGlLZXk=", - "Content-Type": "application/json" - }, - "version": "1", - "endpoint": "https://api.delighted.com/v1/people.json" - }, - "metadata": [ - { - "jobId": 1 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "channel": "email", - "delay": 0, - "eventNamesSettings": [{ "event": "" }] - } - } - }, - { - "batchedRequest": { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {}, - "JSON": { - "email": "123@abc.com", - "email_update": "abc@123.com" - } - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Authorization": "Basic ZHVtbXlBcGlLZXk=", - "Content-Type": "application/json" - }, - "version": "1", - "endpoint": "https://api.delighted.com/v1/people.json" - }, - "metadata": [ - { - "jobId": 2 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "channel": "email", - "delay": 0, - "eventNamesSettings": [{ "event": "" }] - } - } - } - ] - , + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { email: '123@abc.com', email_update: 'abc@123.com' }, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { + Authorization: 'Basic ZHVtbXlBcGlLZXk=', + 'Content-Type': 'application/json', + }, + version: '1', + endpoint: 'https://api.delighted.com/v1/people.json', + }, + metadata: [{ jobId: 2, userId: 'u1' }], + batched: false, + statusCode: 200, + destination: { + Config: { + apiKey: 'dummyApiKey', + channel: 'email', + delay: 0, + eventNamesSettings: [{ event: '' }], }, + }, }, + ], }, + }, }, + }, ]; diff --git a/test/integrations/destinations/discord/router/data.ts b/test/integrations/destinations/discord/router/data.ts index 55861635b0..5518df8dcf 100644 --- a/test/integrations/destinations/discord/router/data.ts +++ b/test/integrations/destinations/discord/router/data.ts @@ -17,10 +17,7 @@ export const data = [ ID: '1ZQUiJVMlmF7lfsdfXg7KXQnlLV', Name: 'DISCORD', DisplayName: 'Discord', - Config: { - excludeKeys: [], - includeKeys: [], - }, + Config: { excludeKeys: [], includeKeys: [] }, }, Config: { eventChannelSettings: [], @@ -43,15 +40,9 @@ export const data = [ namespace: 'com.rudderlabs.javascript', version: '1.1.1-rc.1', }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.1.1-rc.1', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.1-rc.1' }, locale: 'en-US', - os: { - name: '', - version: '', - }, + os: { name: '', version: '' }, page: { path: '/tests/html/script-test.html', referrer: 'http://localhost:1111/tests/html/', @@ -59,9 +50,7 @@ export const data = [ title: '', url: 'http://localhost:1111/tests/html/script-test.html', }, - screen: { - density: 1.7999999523162842, - }, + screen: { density: 1.7999999523162842 }, traits: { country: 'India', email: 'name@domain.com', @@ -71,9 +60,7 @@ export const data = [ userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36', }, - integrations: { - All: true, - }, + integrations: { All: true }, messageId: '9ecc0183-89ed-48bd-87eb-b2d8e1ca6780', originalTimestamp: '2020-03-23T03:46:30.916Z', properties: { @@ -90,9 +77,7 @@ export const data = [ type: 'page', userId: '12345', }, - metadata: { - jobId: 1, - }, + metadata: { jobId: 1, userId: 'u1' }, }, { destination: { @@ -102,25 +87,16 @@ export const data = [ ID: '1ZQUiJVMlmF7lfsdfXg7KXQnlLV', Name: 'DISCORD', DisplayName: 'Discord', - Config: { - excludeKeys: [], - includeKeys: [], - }, + Config: { excludeKeys: [], includeKeys: [] }, }, Config: { eventChannelSettings: [], eventTemplateSettings: [], webhookUrl: 'https://abcd.com/efgh/89078/979868/98678', whitelistedTraitsSettings: [ - { - trait: 'country', - }, - { - trait: 'email', - }, - { - trait: 'name', - }, + { trait: 'country' }, + { trait: 'email' }, + { trait: 'name' }, ], }, Enabled: true, @@ -131,9 +107,7 @@ export const data = [ anonymousId: '12345', channel: 'web', context: { - screen: { - density: 1.7999999523162842, - }, + screen: { density: 1.7999999523162842 }, traits: { country: 'India', email: 'name@domain.com', @@ -149,9 +123,7 @@ export const data = [ hiji: 'hulala-1', name: 'my-name-1', }, - integrations: { - All: true, - }, + integrations: { All: true }, messageId: '4aaecff2-a513-4bbf-9824-c471f4ac9777', originalTimestamp: '2020-03-23T03:41:46.122Z', receivedAt: '2020-03-23T09:11:46.244+05:30', @@ -168,6 +140,7 @@ export const data = [ jobId: 123, messageId: '4aaecff2-a513-4bbf-9824-c471f4ac9777', sourceId: '1YhwKyDcKstudlGxkeN5p2wgsrp', + userId: 'u1', }, }, { @@ -178,10 +151,7 @@ export const data = [ ID: '1ZQUiJVMlmF7lfsdfXg7KXQnlLV', Name: 'DISCORD', DisplayName: 'Discord', - Config: { - excludeKeys: [], - includeKeys: [], - }, + Config: { excludeKeys: [], includeKeys: [] }, }, Config: { eventTemplateSettings: [ @@ -199,14 +169,7 @@ export const data = [ ], IdentifyTemplate: 'identified {{name}} with {{traits}}', webhookUrl: 'https://abcd.com/efgh/89078/979868/98678', - whitelistedTraitsSettings: [ - { - trait: 'hiji', - }, - { - trait: '', - }, - ], + whitelistedTraitsSettings: [{ trait: 'hiji' }, { trait: '' }], }, Enabled: true, Transformations: [], @@ -226,9 +189,7 @@ export const data = [ 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36', }, event: 'test_eventing_testis', - integrations: { - All: true, - }, + integrations: { All: true }, messageId: '8b8d5937-09bc-49dc-a35e-8cd6370575f8', originalTimestamp: '2020-03-23T03:46:30.922Z', properties: { @@ -252,6 +213,7 @@ export const data = [ jobId: 129, messageId: '8b8d5937-09bc-49dc-a35e-8cd6370575f8', sourceId: '1YhwKyDcKstudlGxkeN5p2wgsrp', + userId: 'u1', }, }, ], @@ -273,10 +235,7 @@ export const data = [ ID: '1ZQUiJVMlmF7lfsdfXg7KXQnlLV', Name: 'DISCORD', DisplayName: 'Discord', - Config: { - excludeKeys: [], - includeKeys: [], - }, + Config: { excludeKeys: [], includeKeys: [] }, }, Config: { eventChannelSettings: [], @@ -289,11 +248,7 @@ export const data = [ Transformations: [], IsProcessorEnabled: true, }, - metadata: [ - { - jobId: 1, - }, - ], + metadata: [{ jobId: 1, userId: 'u1' }], statTags: { destType: 'DISCORD', feature: 'router', @@ -312,9 +267,7 @@ export const data = [ type: 'REST', method: 'POST', endpoint: 'https://abcd.com/efgh/89078/979868/98678', - headers: { - 'Content-Type': 'application/json', - }, + headers: { 'Content-Type': 'application/json' }, params: {}, body: { JSON: { @@ -334,25 +287,16 @@ export const data = [ ID: '1ZQUiJVMlmF7lfsdfXg7KXQnlLV', Name: 'DISCORD', DisplayName: 'Discord', - Config: { - excludeKeys: [], - includeKeys: [], - }, + Config: { excludeKeys: [], includeKeys: [] }, }, Config: { eventChannelSettings: [], eventTemplateSettings: [], webhookUrl: 'https://abcd.com/efgh/89078/979868/98678', whitelistedTraitsSettings: [ - { - trait: 'country', - }, - { - trait: 'email', - }, - { - trait: 'name', - }, + { trait: 'country' }, + { trait: 'email' }, + { trait: 'name' }, ], }, Enabled: true, @@ -367,6 +311,7 @@ export const data = [ jobId: 123, messageId: '4aaecff2-a513-4bbf-9824-c471f4ac9777', sourceId: '1YhwKyDcKstudlGxkeN5p2wgsrp', + userId: 'u1', }, ], batched: false, @@ -378,9 +323,7 @@ export const data = [ type: 'REST', method: 'POST', endpoint: 'https://abcd.com/efgh/89078/979868/98678', - headers: { - 'Content-Type': 'application/json', - }, + headers: { 'Content-Type': 'application/json' }, params: {}, body: { JSON: { @@ -399,10 +342,7 @@ export const data = [ ID: '1ZQUiJVMlmF7lfsdfXg7KXQnlLV', Name: 'DISCORD', DisplayName: 'Discord', - Config: { - excludeKeys: [], - includeKeys: [], - }, + Config: { excludeKeys: [], includeKeys: [] }, }, Config: { eventTemplateSettings: [ @@ -420,14 +360,7 @@ export const data = [ ], IdentifyTemplate: 'identified {{name}} with {{traits}}', webhookUrl: 'https://abcd.com/efgh/89078/979868/98678', - whitelistedTraitsSettings: [ - { - trait: 'hiji', - }, - { - trait: '', - }, - ], + whitelistedTraitsSettings: [{ trait: 'hiji' }, { trait: '' }], }, Enabled: true, Transformations: [], @@ -441,6 +374,7 @@ export const data = [ jobId: 129, messageId: '8b8d5937-09bc-49dc-a35e-8cd6370575f8', sourceId: '1YhwKyDcKstudlGxkeN5p2wgsrp', + userId: 'u1', }, ], batched: false, diff --git a/test/integrations/destinations/drip/processor/data.ts b/test/integrations/destinations/drip/processor/data.ts index 17cf37d198..1874f932fa 100644 --- a/test/integrations/destinations/drip/processor/data.ts +++ b/test/integrations/destinations/drip/processor/data.ts @@ -1,1487 +1,1498 @@ export const data = [ - { - "name": "drip", - "description": "Test 0", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "accountId": "1809802", - "campaignId": "", - "enableUserCreation": true - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "type": "identify", - "traits": { - "email": "test1@gmail.com", - "firstName": "James", - "lastName": "Doe", - "phone": "237416221", - "customFields": { - "filter1": "filterval1" - } - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.getdrip.com/v2/1809802/subscribers", - "headers": { - "Authorization": "Basic ZHVtbXlBcGlLZXk=", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {}, - "JSON": { - "subscribers": [ - { - "email": "test1@gmail.com", - "first_name": "James", - "last_name": "Doe", - "phone": "237416221", - "ip_address": "0.0.0.0", - "custom_fields": { - "filter1": "filterval1" - } - } - ] - } - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "drip", - "description": "Test 1", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "accountId": "1809802", - "campaignId": "", - "enableUserCreation": true - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "type": "identify", - "traits": { - "email": "12324adfgs", - "firstName": "James", - "lastName": "Doe", - "phone": "237416221", - "customFields": { - "filter1": "filterval1" - } - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "dripId or email is required for the call", - "statTags": { - "destType": "DRIP", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "drip", - "description": "Test 2", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "accountId": "1809802", - "campaignId": "", - "enableUserCreation": true - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "type": "identify", - "traits": { - "email": "test1@gmail.com", - "name": "James Doe", - "phone": "237416221", - "filter1": "filterval1", - "filter2": "filterval2" - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.getdrip.com/v2/1809802/subscribers", - "headers": { - "Authorization": "Basic ZHVtbXlBcGlLZXk=", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {}, - "JSON": { - "subscribers": [ - { - "email": "test1@gmail.com", - "first_name": "James", - "last_name": "Doe", - "phone": "237416221", - "ip_address": "0.0.0.0", - "custom_fields": { - "filter1": "filterval1", - "filter2": "filterval2" - } - } - ] - } - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "drip", - "description": "Test 3", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "accountId": "1809802", - "campaignId": "915194776", - "enableUserCreation": true - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "type": "identify", - "traits": { - "email": "test1@gmail.com", - "name": "James Doe", - "phone": "237416221", - "filter1": "filterval1", - "filter2": "filterval2", - "tags": [ - "tag1", - "tag2" - ], - "startingEmailIndex": 1 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.getdrip.com/v2/1809802/campaigns/915194776/subscribers", - "headers": { - "Authorization": "Basic ZHVtbXlBcGlLZXk=", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {}, - "JSON": { - "subscribers": [ - { - "email": "test1@gmail.com", - "starting_email_index": 1 - } - ] - } - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "drip", - "description": "Test 4", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "accountId": "1809802", - "campaignId": "915194776", - "enableUserCreation": true - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "type": "track", - "event": "testing", - "properties": { - "email": "user1@gmail.com", - "customFields": { - "field1": "val1" - } - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.getdrip.com/v2/1809802/events", - "headers": { - "Authorization": "Basic ZHVtbXlBcGlLZXk=", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {}, - "JSON": { - "events": [ - { - "email": "user1@gmail.com", - "properties": { - "field1": "val1" - }, - "action": "testing", - "occurred_at": "2019-10-14T09:03:17.562Z" - } - ] - } - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "drip", - "description": "Test 5", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "accountId": "1809802", - "campaignId": "915194776", - "enableUserCreation": true - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "type": "track", - "event": "", - "properties": { - "email": "user1@gmail.com", - "custom_fields": { - "field1": "val1" - } - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "Event name is required", - "statTags": { - "destType": "DRIP", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "drip", - "description": "Test 6", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "accountId": "1809802", - "campaignId": "915194776", - "enableUserCreation": false - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "type": "track", - "event": "testing", - "properties": { - "email": "identified_user@gmail.com", - "customFields": { - "field1": "val1" - } - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.getdrip.com/v2/1809802/events", - "headers": { - "Authorization": "Basic ZHVtbXlBcGlLZXk=", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {}, - "JSON": { - "events": [ - { - "email": "identified_user@gmail.com", - "properties": { - "field1": "val1" - }, - "action": "testing", - "occurred_at": "2019-10-14T09:03:17.562Z" - } - ] - } - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "drip", - "description": "Test 7", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "accountId": "1809802", - "campaignId": "915194776", - "enableUserCreation": false - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "type": "track", - "event": "testing", - "properties": { - "email": "identified_user@gmail.com", - "field1": "val1" - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.getdrip.com/v2/1809802/events", - "headers": { - "Authorization": "Basic ZHVtbXlBcGlLZXk=", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {}, - "JSON": { - "events": [ - { - "email": "identified_user@gmail.com", - "properties": { - "field1": "val1" - }, - "action": "testing", - "occurred_at": "2019-10-14T09:03:17.562Z" - } - ] - } - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "drip", - "description": "Test 8", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "accountId": "1809802", - "campaignId": "915194776", - "enableUserCreation": false - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "type": "track", - "event": "testing", - "properties": { - "email": "unidentified_user@gmail.com", - "field1": "val1" - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "Error occurred while checking user : error response not found", - "statTags": { - "destType": "DRIP", - "errorCategory": "network", - "errorType": "aborted", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "drip", - "description": "Test 9", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "accountId": "1809802", - "campaignId": "915194776", - "enableUserCreation": false - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "type": "track", - "event": "checkout started", - "properties": { - "email": "identified_user@gmail.com", - "field1": "val1", - "affiliation": "my_custom_order", - "order_id": "456445746" - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.getdrip.com/v3/1809802/shopper_activity/order", - "headers": { - "Authorization": "Basic ZHVtbXlBcGlLZXk=", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {}, - "JSON": { - "action": "placed", - "email": "identified_user@gmail.com", - "occurred_at": "2019-10-14T09:03:17.562Z", - "order_id": "456445746", - "provider": "my_custom_order" - } - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "drip", - "description": "Test 10", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "accountId": "1809802", - "campaignId": "915194776", - "enableUserCreation": false - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "type": "track", - "event": "checkout started", - "properties": { - "email": "identified_user@gmail.com", - "field1": "val1", - "affiliation": "my_custom_order", - "order_id": "456445746", - "products": [ - { - "name": "shirt", - "price": 11.16 - } - ] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.getdrip.com/v3/1809802/shopper_activity/order", - "headers": { - "Authorization": "Basic ZHVtbXlBcGlLZXk=", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {}, - "JSON": { - "action": "placed", - "email": "identified_user@gmail.com", - "occurred_at": "2019-10-14T09:03:17.562Z", - "order_id": "456445746", - "provider": "my_custom_order", - "items": [ - { - "name": "shirt", - "price": 11.16 - } - ] - } - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "drip", - "description": "Test 11", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "accountId": "1809802", - "campaignId": "915194776", - "enableUserCreation": false - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "type": "track", - "event": "checkout", - "properties": { - "email": "identified_user@gmail.com", - "field1": "val1", - "customFields": { - "field2": "val2" - } - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.getdrip.com/v2/1809802/events", - "headers": { - "Authorization": "Basic ZHVtbXlBcGlLZXk=", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {}, - "JSON": { - "events": [ - { - "action": "checkout", - "email": "identified_user@gmail.com", - "occurred_at": "2019-10-14T09:03:17.562Z", - "properties": { - "field2": "val2" - } - } - ] - } - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "drip", - "description": "Test 12", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "accountId": "1809802", - "campaignId": "", - "enableUserCreation": true - } - }, - "message": { - "type": "identify", - "event": "identify", - "userId": "user@1", - "channel": "mobile", - "context": { - "os": { - "name": "Android", - "version": "13" - }, - "app": { - "name": "rudderstack", - "build": "5425", - "version": "2.4.1" - }, - "device": { - "id": "8b048b94cbec4fcf", - "name": "o1q", - "type": "Android", - "model": "SM-G991U", - "manufacturer": "samsung" - }, - "locale": "en-US", - "traits": { - "id": "ruddertest@gmail.com", - "email": "ruddertest@gmail.com", - "title": "Social Impact Program Manager", - "skills": [ - { - "id": 134, - "name": "Business Development", - "tagGroupId": 2, - "parentTagId": 134, - "huddleVisible": false, - "onboardVisible": false - }, - { - "id": 96, - "name": "Communications", - "tagGroupId": 2, - "parentTagId": 96, - "huddleVisible": true, - "onboardVisible": true - }, - { - "id": 489, - "name": "Construction", - "tagGroupId": 2, - "parentTagId": 489, - "huddleVisible": false, - "onboardVisible": false - }, - { - "id": 671, - "name": "Data Analysis", - "tagGroupId": 2, - "parentTagId": 671, - "huddleVisible": false, - "onboardVisible": false - }, - { - "id": 676, - "name": "Engineering: Mechanical", - "tagGroupId": 2, - "parentTagId": 676, - "huddleVisible": false, - "onboardVisible": false - }, - { - "id": 189, - "name": "Operations", - "tagGroupId": 2, - "parentTagId": 189, - "huddleVisible": true, - "onboardVisible": true - }, - { - "id": 194, - "name": "Product Management", - "tagGroupId": 2, - "parentTagId": 194, - "huddleVisible": true, - "onboardVisible": true - }, - { - "id": 195, - "name": "Program Management", - "tagGroupId": 2, - "parentTagId": 195, - "huddleVisible": false, - "onboardVisible": false - }, - { - "id": 199, - "name": "R&D", - "tagGroupId": 2, - "parentTagId": 199, - "huddleVisible": false, - "onboardVisible": false - }, - { - "id": 102, - "name": "Sales", - "tagGroupId": 2, - "parentTagId": 102, - "huddleVisible": true, - "onboardVisible": true - } - ], - "userId": "ruddertest@gmail.com", - "address": "Chicago, IL, USA", - "industry": "Education", - "lastName": "test", - "lastname": "test", - "verified": false, - "firstName": "rudder", - "firstname": "rudder", - "interests": [ - { - "id": 649, - "name": "Adaptation", - "tagGroupId": 4, - "parentTagId": 745, - "huddleVisible": false, - "onboardVisible": false - }, - { - "id": 663, - "name": "Carbon removal and sequestration", - "tagGroupId": 4, - "parentTagId": 761, - "huddleVisible": false, - "onboardVisible": false - }, - { - "id": 664, - "name": "Clean Energy and Energy Efficiency", - "tagGroupId": 4, - "parentTagId": 259, - "huddleVisible": false, - "onboardVisible": false - }, - { - "id": 654, - "name": "Climate Science and Earth Systems", - "tagGroupId": 4, - "parentTagId": 744, - "huddleVisible": false, - "onboardVisible": false - }, - { - "id": 650, - "name": "Corporate Sustainability", - "tagGroupId": 4, - "parentTagId": 650, - "huddleVisible": false, - "onboardVisible": false - }, - { - "id": 651, - "name": "Finance & Risk", - "tagGroupId": 4, - "parentTagId": 651, - "huddleVisible": false, - "onboardVisible": false - }, - { - "id": 652, - "name": "Food and Agriculture", - "tagGroupId": 4, - "parentTagId": 652, - "huddleVisible": false, - "onboardVisible": false - }, - { - "id": 665, - "name": "Transport", - "tagGroupId": 4, - "parentTagId": 665, - "huddleVisible": false, - "onboardVisible": false - } - ], - "isDeleted": false, - "anonymousId": "8b048b94cbec4fcf", - "jobFunction": "Program manager", - "reminderType": 1, - "jobPreferences": { - "motivationStr": "I am looking for a job in climate change.,I want to learn about climate change.,I’d like to connect with other climate enthusiasts.", - "searchUrgency": "As soon as possible", - "maxCompensation": 0, - "minCompensation": 0 - }, - "visibilityType": "public", - "Linkedin-Signin": true, - "hubbleOnboarded": false, - "sharePreference": false, - "notificationType": 0, - "shortDescription": "Social Impact Program Manager", - "jobProfileComplete": false, - "noOfMonthExperience": 0, - "onboarding_completed": "Yes" - }, - "library": { - "name": "com.rudderstack.android.sdk.core", - "version": "1.8.1" - }, - "timezone": "America/Chicago", - "sessionId": 1681096824, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 13; SM-G991U Build/TP1A.220624.014)" - }, - "rudderId": "f701966c-5568-4500-92ba-4e9023c8fe31", - "messageId": "77b53247-177f-4ca3-a6b4-aa7558fec280", - "request_ip": "75.209.176.135", - "anonymousId": "8b048b94cbec4fcf", - "integrations": { - "All": true - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.getdrip.com/v2/1809802/subscribers", - "headers": { - "Authorization": "Basic ZHVtbXlBcGlLZXk=", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {}, - "JSON": { - "subscribers": [ - { - "email": "ruddertest@gmail.com", - "user_id": "user@1", - "address1": "Chicago, IL, USA", - "last_name": "test", - "first_name": "rudder", - "custom_fields": { - "title": "Social Impact Program Manager", - "industry": "Education", - "verified": false, - "isDeleted": false, - "jobFunction": "Program manager", - "reminderType": 1, - "jobPreferences": { - "motivationStr": "I am looking for a job in climate change.,I want to learn about climate change.,I’d like to connect with other climate enthusiasts.", - "searchUrgency": "As soon as possible", - "maxCompensation": 0, - "minCompensation": 0 - }, - "visibilityType": "public", - "hubbleOnboarded": false, - "sharePreference": false, - "notificationType": 0, - "shortDescription": "Social Impact Program Manager", - "jobProfileComplete": false, - "noOfMonthExperience": 0, - "onboarding_completed": "Yes" - } - } - ] - } - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - } -] \ No newline at end of file + { + name: 'drip', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + accountId: '1809802', + campaignId: '', + enableUserCreation: true, + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + type: 'identify', + traits: { + email: 'test1@gmail.com', + firstName: 'James', + lastName: 'Doe', + phone: '237416221', + customFields: { + filter1: 'filterval1', + }, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.getdrip.com/v2/1809802/subscribers', + headers: { + Authorization: 'Basic ZHVtbXlBcGlLZXk=', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + subscribers: [ + { + email: 'test1@gmail.com', + first_name: 'James', + last_name: 'Doe', + phone: '237416221', + ip_address: '0.0.0.0', + custom_fields: { + filter1: 'filterval1', + }, + }, + ], + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'drip', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + accountId: '1809802', + campaignId: '', + enableUserCreation: true, + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + type: 'identify', + traits: { + email: '12324adfgs', + firstName: 'James', + lastName: 'Doe', + phone: '237416221', + customFields: { + filter1: 'filterval1', + }, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'dripId or email is required for the call', + statTags: { + destType: 'DRIP', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'drip', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + accountId: '1809802', + campaignId: '', + enableUserCreation: true, + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + type: 'identify', + traits: { + email: 'test1@gmail.com', + name: 'James Doe', + phone: '237416221', + filter1: 'filterval1', + filter2: 'filterval2', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.getdrip.com/v2/1809802/subscribers', + headers: { + Authorization: 'Basic ZHVtbXlBcGlLZXk=', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + subscribers: [ + { + email: 'test1@gmail.com', + first_name: 'James', + last_name: 'Doe', + phone: '237416221', + ip_address: '0.0.0.0', + custom_fields: { + filter1: 'filterval1', + filter2: 'filterval2', + }, + }, + ], + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'drip', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + accountId: '1809802', + campaignId: '915194776', + enableUserCreation: true, + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + type: 'identify', + traits: { + email: 'test1@gmail.com', + name: 'James Doe', + phone: '237416221', + filter1: 'filterval1', + filter2: 'filterval2', + tags: ['tag1', 'tag2'], + startingEmailIndex: 1, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.getdrip.com/v2/1809802/campaigns/915194776/subscribers', + headers: { + Authorization: 'Basic ZHVtbXlBcGlLZXk=', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + subscribers: [ + { + email: 'test1@gmail.com', + starting_email_index: 1, + }, + ], + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'drip', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + accountId: '1809802', + campaignId: '915194776', + enableUserCreation: true, + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + type: 'track', + event: 'testing', + properties: { + email: 'user1@gmail.com', + customFields: { + field1: 'val1', + }, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.getdrip.com/v2/1809802/events', + headers: { + Authorization: 'Basic ZHVtbXlBcGlLZXk=', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + events: [ + { + email: 'user1@gmail.com', + properties: { + field1: 'val1', + }, + action: 'testing', + occurred_at: '2019-10-14T09:03:17.562Z', + }, + ], + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'drip', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + accountId: '1809802', + campaignId: '915194776', + enableUserCreation: true, + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + type: 'track', + event: '', + properties: { + email: 'user1@gmail.com', + custom_fields: { + field1: 'val1', + }, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Event name is required', + statTags: { + destType: 'DRIP', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'drip', + description: 'Test 6', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + accountId: '1809802', + campaignId: '915194776', + enableUserCreation: false, + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + type: 'track', + event: 'testing', + properties: { + email: 'identified_user@gmail.com', + customFields: { + field1: 'val1', + }, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.getdrip.com/v2/1809802/events', + headers: { + Authorization: 'Basic ZHVtbXlBcGlLZXk=', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + events: [ + { + email: 'identified_user@gmail.com', + properties: { + field1: 'val1', + }, + action: 'testing', + occurred_at: '2019-10-14T09:03:17.562Z', + }, + ], + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'drip', + description: 'Test 7', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + accountId: '1809802', + campaignId: '915194776', + enableUserCreation: false, + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + type: 'track', + event: 'testing', + properties: { + email: 'identified_user@gmail.com', + field1: 'val1', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.getdrip.com/v2/1809802/events', + headers: { + Authorization: 'Basic ZHVtbXlBcGlLZXk=', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + events: [ + { + email: 'identified_user@gmail.com', + properties: { + field1: 'val1', + }, + action: 'testing', + occurred_at: '2019-10-14T09:03:17.562Z', + }, + ], + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'drip', + description: 'Test 8', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + accountId: '1809802', + campaignId: '915194776', + enableUserCreation: false, + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + type: 'track', + event: 'testing', + properties: { + email: 'unidentified_user@gmail.com', + field1: 'val1', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Error occurred while checking user : error response not found', + statTags: { + destType: 'DRIP', + errorCategory: 'network', + errorType: 'aborted', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'drip', + description: 'Test 9', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + accountId: '1809802', + campaignId: '915194776', + enableUserCreation: false, + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + type: 'track', + event: 'checkout started', + properties: { + email: 'identified_user@gmail.com', + field1: 'val1', + affiliation: 'my_custom_order', + order_id: '456445746', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.getdrip.com/v3/1809802/shopper_activity/order', + headers: { + Authorization: 'Basic ZHVtbXlBcGlLZXk=', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + action: 'placed', + email: 'identified_user@gmail.com', + occurred_at: '2019-10-14T09:03:17.562Z', + order_id: '456445746', + provider: 'my_custom_order', + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'drip', + description: 'Test 10', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + accountId: '1809802', + campaignId: '915194776', + enableUserCreation: false, + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + type: 'track', + event: 'checkout started', + properties: { + email: 'identified_user@gmail.com', + field1: 'val1', + affiliation: 'my_custom_order', + order_id: '456445746', + products: [ + { + name: 'shirt', + price: 11.16, + }, + ], + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.getdrip.com/v3/1809802/shopper_activity/order', + headers: { + Authorization: 'Basic ZHVtbXlBcGlLZXk=', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + action: 'placed', + email: 'identified_user@gmail.com', + occurred_at: '2019-10-14T09:03:17.562Z', + order_id: '456445746', + provider: 'my_custom_order', + items: [ + { + name: 'shirt', + price: 11.16, + }, + ], + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'drip', + description: 'Test 11', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + accountId: '1809802', + campaignId: '915194776', + enableUserCreation: false, + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + type: 'track', + event: 'checkout', + properties: { + email: 'identified_user@gmail.com', + field1: 'val1', + customFields: { + field2: 'val2', + }, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.getdrip.com/v2/1809802/events', + headers: { + Authorization: 'Basic ZHVtbXlBcGlLZXk=', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + events: [ + { + action: 'checkout', + email: 'identified_user@gmail.com', + occurred_at: '2019-10-14T09:03:17.562Z', + properties: { + field2: 'val2', + }, + }, + ], + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'drip', + description: 'Test 12', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + accountId: '1809802', + campaignId: '', + enableUserCreation: true, + }, + }, + message: { + type: 'identify', + event: 'identify', + userId: 'user@1', + channel: 'mobile', + context: { + os: { + name: 'Android', + version: '13', + }, + app: { + name: 'rudderstack', + build: '5425', + version: '2.4.1', + }, + device: { + id: '8b048b94cbec4fcf', + name: 'o1q', + type: 'Android', + model: 'SM-G991U', + manufacturer: 'samsung', + }, + locale: 'en-US', + traits: { + id: 'ruddertest@gmail.com', + email: 'ruddertest@gmail.com', + title: 'Social Impact Program Manager', + skills: [ + { + id: 134, + name: 'Business Development', + tagGroupId: 2, + parentTagId: 134, + huddleVisible: false, + onboardVisible: false, + }, + { + id: 96, + name: 'Communications', + tagGroupId: 2, + parentTagId: 96, + huddleVisible: true, + onboardVisible: true, + }, + { + id: 489, + name: 'Construction', + tagGroupId: 2, + parentTagId: 489, + huddleVisible: false, + onboardVisible: false, + }, + { + id: 671, + name: 'Data Analysis', + tagGroupId: 2, + parentTagId: 671, + huddleVisible: false, + onboardVisible: false, + }, + { + id: 676, + name: 'Engineering: Mechanical', + tagGroupId: 2, + parentTagId: 676, + huddleVisible: false, + onboardVisible: false, + }, + { + id: 189, + name: 'Operations', + tagGroupId: 2, + parentTagId: 189, + huddleVisible: true, + onboardVisible: true, + }, + { + id: 194, + name: 'Product Management', + tagGroupId: 2, + parentTagId: 194, + huddleVisible: true, + onboardVisible: true, + }, + { + id: 195, + name: 'Program Management', + tagGroupId: 2, + parentTagId: 195, + huddleVisible: false, + onboardVisible: false, + }, + { + id: 199, + name: 'R&D', + tagGroupId: 2, + parentTagId: 199, + huddleVisible: false, + onboardVisible: false, + }, + { + id: 102, + name: 'Sales', + tagGroupId: 2, + parentTagId: 102, + huddleVisible: true, + onboardVisible: true, + }, + ], + userId: 'ruddertest@gmail.com', + address: 'Chicago, IL, USA', + industry: 'Education', + lastName: 'test', + lastname: 'test', + verified: false, + firstName: 'rudder', + firstname: 'rudder', + interests: [ + { + id: 649, + name: 'Adaptation', + tagGroupId: 4, + parentTagId: 745, + huddleVisible: false, + onboardVisible: false, + }, + { + id: 663, + name: 'Carbon removal and sequestration', + tagGroupId: 4, + parentTagId: 761, + huddleVisible: false, + onboardVisible: false, + }, + { + id: 664, + name: 'Clean Energy and Energy Efficiency', + tagGroupId: 4, + parentTagId: 259, + huddleVisible: false, + onboardVisible: false, + }, + { + id: 654, + name: 'Climate Science and Earth Systems', + tagGroupId: 4, + parentTagId: 744, + huddleVisible: false, + onboardVisible: false, + }, + { + id: 650, + name: 'Corporate Sustainability', + tagGroupId: 4, + parentTagId: 650, + huddleVisible: false, + onboardVisible: false, + }, + { + id: 651, + name: 'Finance & Risk', + tagGroupId: 4, + parentTagId: 651, + huddleVisible: false, + onboardVisible: false, + }, + { + id: 652, + name: 'Food and Agriculture', + tagGroupId: 4, + parentTagId: 652, + huddleVisible: false, + onboardVisible: false, + }, + { + id: 665, + name: 'Transport', + tagGroupId: 4, + parentTagId: 665, + huddleVisible: false, + onboardVisible: false, + }, + ], + isDeleted: false, + anonymousId: '8b048b94cbec4fcf', + jobFunction: 'Program manager', + reminderType: 1, + jobPreferences: { + motivationStr: + 'I am looking for a job in climate change.,I want to learn about climate change.,I’d like to connect with other climate enthusiasts.', + searchUrgency: 'As soon as possible', + maxCompensation: 0, + minCompensation: 0, + }, + visibilityType: 'public', + 'Linkedin-Signin': true, + hubbleOnboarded: false, + sharePreference: false, + notificationType: 0, + shortDescription: 'Social Impact Program Manager', + jobProfileComplete: false, + noOfMonthExperience: 0, + onboarding_completed: 'Yes', + }, + library: { + name: 'com.rudderstack.android.sdk.core', + version: '1.8.1', + }, + timezone: 'America/Chicago', + sessionId: 1681096824, + userAgent: 'Dalvik/2.1.0 (Linux; U; Android 13; SM-G991U Build/TP1A.220624.014)', + }, + rudderId: 'f701966c-5568-4500-92ba-4e9023c8fe31', + messageId: '77b53247-177f-4ca3-a6b4-aa7558fec280', + request_ip: '75.209.176.135', + anonymousId: '8b048b94cbec4fcf', + integrations: { + All: true, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.getdrip.com/v2/1809802/subscribers', + headers: { + Authorization: 'Basic ZHVtbXlBcGlLZXk=', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + subscribers: [ + { + email: 'ruddertest@gmail.com', + user_id: 'user@1', + address1: 'Chicago, IL, USA', + last_name: 'test', + first_name: 'rudder', + custom_fields: { + title: 'Social Impact Program Manager', + industry: 'Education', + verified: false, + isDeleted: false, + jobFunction: 'Program manager', + reminderType: 1, + jobPreferences: { + motivationStr: + 'I am looking for a job in climate change.,I want to learn about climate change.,I’d like to connect with other climate enthusiasts.', + searchUrgency: 'As soon as possible', + maxCompensation: 0, + minCompensation: 0, + }, + visibilityType: 'public', + hubbleOnboarded: false, + sharePreference: false, + notificationType: 0, + shortDescription: 'Social Impact Program Manager', + jobProfileComplete: false, + noOfMonthExperience: 0, + onboarding_completed: 'Yes', + }, + }, + ], + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/drip/router/data.ts b/test/integrations/destinations/drip/router/data.ts index d13c73a0d1..44aac7dd1a 100644 --- a/test/integrations/destinations/drip/router/data.ts +++ b/test/integrations/destinations/drip/router/data.ts @@ -1,210 +1,189 @@ export const data = [ - { - name: 'drip', - description: 'Test 0', - feature: 'router', - module: 'destination', - version: 'v0', - input: { - request: { + { + name: 'drip', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + accountId: '1809802', + campaignId: '', + enableUserCreation: true, + }, + }, + metadata: { jobId: 1, userId: 'u1' }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { name: '', version: '' }, + screen: { density: 2 }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + type: 'identify', + traits: { + email: 'test1@gmail.com', + firstName: 'James', + lastName: 'Doe', + phone: '237416221', + customFields: { filter1: 'filterval1' }, + }, + integrations: { All: true }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + { + destination: { + Config: { + apiKey: 'dummyApiKey', + accountId: '1809802', + campaignId: '915194776', + enableUserCreation: true, + }, + }, + metadata: { jobId: 2, userId: 'u1' }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { name: '', version: '' }, + screen: { density: 2 }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + type: 'track', + event: 'testing', + properties: { email: 'user1@gmail.com', customFields: { field1: 'val1' } }, + integrations: { All: true }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + destType: 'drip', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { body: { - input: [ - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "accountId": "1809802", - "campaignId": "", - "enableUserCreation": true - } - }, - "metadata": { - "jobId": 1 - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { "name": "RudderLabs JavaScript SDK", "version": "1.0.0" }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { "name": "", "version": "" }, - "screen": { "density": 2 } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "type": "identify", - "traits": { - "email": "test1@gmail.com", - "firstName": "James", - "lastName": "Doe", - "phone": "237416221", - "customFields": { - "filter1": "filterval1" - } - }, - "integrations": { "All": true }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - }, - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "accountId": "1809802", - "campaignId": "915194776", - "enableUserCreation": true - } - }, - "metadata": { - "jobId": 2 - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { "name": "RudderLabs JavaScript SDK", "version": "1.0.0" }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { "name": "", "version": "" }, - "screen": { "density": 2 } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "type": "track", - "event": "testing", - "properties": { - "email": "user1@gmail.com", - "customFields": { - "field1": "val1" - } - }, - "integrations": { "All": true }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - } + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + subscribers: [ + { + email: 'test1@gmail.com', + first_name: 'James', + last_name: 'Doe', + phone: '237416221', + ip_address: '0.0.0.0', + custom_fields: { filter1: 'filterval1' }, + }, ], - destType: 'drip', + }, }, + type: 'REST', + files: {}, method: 'POST', + params: {}, + headers: { + Authorization: 'Basic ZHVtbXlBcGlLZXk=', + 'Content-Type': 'application/json', + }, + version: '1', + endpoint: 'https://api.getdrip.com/v2/1809802/subscribers', + }, + metadata: [{ jobId: 1, userId: 'u1' }], + batched: false, + statusCode: 200, + destination: { + Config: { + apiKey: 'dummyApiKey', + accountId: '1809802', + campaignId: '', + enableUserCreation: true, + }, + }, }, - }, - output: { - response: { - status: 200, + { + batchedRequest: { body: { - output: [ - { - "batchedRequest": { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {}, - "JSON": { - "subscribers": [ - { - "email": "test1@gmail.com", - "first_name": "James", - "last_name": "Doe", - "phone": "237416221", - "ip_address": "0.0.0.0", - "custom_fields": { - "filter1": "filterval1" - } - } - ] - } - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Authorization": "Basic ZHVtbXlBcGlLZXk=", - "Content-Type": "application/json" - }, - "version": "1", - "endpoint": "https://api.getdrip.com/v2/1809802/subscribers" - }, - "metadata": [ - { - "jobId": 1 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "accountId": "1809802", - "campaignId": "", - "enableUserCreation": true - } - } - }, - { - "batchedRequest": { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {}, - "JSON": { - "events": [ - { - "email": "user1@gmail.com", - "properties": { - "field1": "val1" - }, - "action": "testing", - "occurred_at": "2019-10-14T09:03:17.562Z" - } - ] - } - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Authorization": "Basic ZHVtbXlBcGlLZXk=", - "Content-Type": "application/json" - }, - "version": "1", - "endpoint": "https://api.getdrip.com/v2/1809802/events" - }, - "metadata": [ - { - "jobId": 2 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "accountId": "1809802", - "campaignId": "915194776", - "enableUserCreation": true - } - } - } + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + events: [ + { + email: 'user1@gmail.com', + properties: { field1: 'val1' }, + action: 'testing', + occurred_at: '2019-10-14T09:03:17.562Z', + }, ], + }, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { + Authorization: 'Basic ZHVtbXlBcGlLZXk=', + 'Content-Type': 'application/json', + }, + version: '1', + endpoint: 'https://api.getdrip.com/v2/1809802/events', + }, + metadata: [{ jobId: 2, userId: 'u1' }], + batched: false, + statusCode: 200, + destination: { + Config: { + apiKey: 'dummyApiKey', + accountId: '1809802', + campaignId: '915194776', + enableUserCreation: true, }, + }, }, + ], }, + }, }, + }, ]; diff --git a/test/integrations/destinations/engage/router/data.ts b/test/integrations/destinations/engage/router/data.ts index d6a66b5e98..248deff04d 100644 --- a/test/integrations/destinations/engage/router/data.ts +++ b/test/integrations/destinations/engage/router/data.ts @@ -12,19 +12,8 @@ export const data = [ { message: { groupId: '17', - context: { - externalId: [ - { - type: 'engageId', - id: '246', - }, - ], - }, - traits: { - lastName: 'garwal', - type: 'Segments', - operation: 'remove', - }, + context: { externalId: [{ type: 'engageId', id: '246' }] }, + traits: { lastName: 'garwal', type: 'Segments', operation: 'remove' }, type: 'group', }, destination: { @@ -32,18 +21,12 @@ export const data = [ publicKey: '49ur490rjfo34gi04y38r9go', privateKey: 'n89g389yr389fgbef0u2rff', listIds: [ - { - listId: '9834trg3rgy3g08oi9893rgfb', - }, - { - listId: 'f39487tyh49go3h093gh2if2f2', - }, + { listId: '9834trg3rgy3g08oi9893rgfb' }, + { listId: 'f39487tyh49go3h093gh2if2f2' }, ], }, }, - metadata: { - jobId: 1, - }, + metadata: { jobId: 1, userId: 'u1' }, }, ], destType: 'engage', @@ -68,14 +51,7 @@ export const data = [ 'Basic NDl1cjQ5MHJqZm8zNGdpMDR5MzhyOWdvOm44OWczODl5cjM4OWZnYmVmMHUycmZm', }, params: {}, - body: { - JSON: { - subscribed: true, - }, - JSON_ARRAY: {}, - XML: {}, - FORM: {}, - }, + body: { JSON: { subscribed: true }, JSON_ARRAY: {}, XML: {}, FORM: {} }, files: {}, }, destination: { @@ -83,20 +59,12 @@ export const data = [ publicKey: '49ur490rjfo34gi04y38r9go', privateKey: 'n89g389yr389fgbef0u2rff', listIds: [ - { - listId: '9834trg3rgy3g08oi9893rgfb', - }, - { - listId: 'f39487tyh49go3h093gh2if2f2', - }, + { listId: '9834trg3rgy3g08oi9893rgfb' }, + { listId: 'f39487tyh49go3h093gh2if2f2' }, ], }, }, - metadata: [ - { - jobId: 1, - }, - ], + metadata: [{ jobId: 1, userId: 'u1' }], batched: false, statusCode: 200, }, @@ -120,14 +88,8 @@ export const data = [ userId: '1', context: { externalId: [ - { - type: 'engageListId', - id: '100c983ry8934hf3094yfh348gf1', - }, - { - type: 'engageListId', - id: '4r40hfio3rbfln', - }, + { type: 'engageListId', id: '100c983ry8934hf3094yfh348gf1' }, + { type: 'engageListId', id: '4r40hfio3rbfln' }, ], }, originalTimestamp: '2020-09-28T19:53:31.900Z', @@ -136,14 +98,7 @@ export const data = [ lastName: 'Rudderlabs', email: 'Test@r.com', hasPurchased: 'yes', - address: { - Home: { - city: 'iudcb', - }, - Office: { - abc: 'jbc', - }, - }, + address: { Home: { city: 'iudcb' }, Office: { abc: 'jbc' } }, state: 'Delhi', title: 'Mr', }, @@ -155,18 +110,12 @@ export const data = [ publicKey: '49ur490rjfo34gi04y38r9go', privateKey: 'n89g389yr389fgbef0u2rff', listIds: [ - { - listId: '9834trg3rgy3g08oi9893rgfb', - }, - { - listId: 'f39487tyh49go3h093gh2if2f2', - }, + { listId: '9834trg3rgy3g08oi9893rgfb' }, + { listId: 'f39487tyh49go3h093gh2if2f2' }, ], }, }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, }, ], destType: 'engage', @@ -217,20 +166,12 @@ export const data = [ publicKey: '49ur490rjfo34gi04y38r9go', privateKey: 'n89g389yr389fgbef0u2rff', listIds: [ - { - listId: '9834trg3rgy3g08oi9893rgfb', - }, - { - listId: 'f39487tyh49go3h093gh2if2f2', - }, + { listId: '9834trg3rgy3g08oi9893rgfb' }, + { listId: 'f39487tyh49go3h093gh2if2f2' }, ], }, }, - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], batched: false, statusCode: 200, }, @@ -253,11 +194,7 @@ export const data = [ message: { anonymousId: 'user123', groupId: '17', - traits: { - lastName: 'garwal', - operation: 'remove', - email: 'abc@xyz.com', - }, + traits: { lastName: 'garwal', operation: 'remove', email: 'abc@xyz.com' }, type: 'group', }, destination: { @@ -265,18 +202,12 @@ export const data = [ publicKey: '49ur490rjfo34gi04y38r9go', privateKey: 'n89g389yr389fgbef0u2rff', listIds: [ - { - listId: '9834trg3rgy3g08oi9893rgfb', - }, - { - listId: 'f39487tyh49go3h093gh2if2f2', - }, + { listId: '9834trg3rgy3g08oi9893rgfb' }, + { listId: 'f39487tyh49go3h093gh2if2f2' }, ], }, }, - metadata: { - jobId: 3, - }, + metadata: { jobId: 3, userId: 'u1' }, }, ], destType: 'engage', @@ -290,22 +221,14 @@ export const data = [ body: { output: [ { - metadata: [ - { - jobId: 3, - }, - ], + metadata: [{ jobId: 3, userId: 'u1' }], destination: { Config: { publicKey: '49ur490rjfo34gi04y38r9go', privateKey: 'n89g389yr389fgbef0u2rff', listIds: [ - { - listId: '9834trg3rgy3g08oi9893rgfb', - }, - { - listId: 'f39487tyh49go3h093gh2if2f2', - }, + { listId: '9834trg3rgy3g08oi9893rgfb' }, + { listId: 'f39487tyh49go3h093gh2if2f2' }, ], }, }, diff --git a/test/integrations/destinations/facebook_conversions/router/data.ts b/test/integrations/destinations/facebook_conversions/router/data.ts index 1c7f316538..9c6759df61 100644 --- a/test/integrations/destinations/facebook_conversions/router/data.ts +++ b/test/integrations/destinations/facebook_conversions/router/data.ts @@ -11,9 +11,7 @@ export const data = [ body: { input: [ { - metadata: { - jobId: 1, - }, + metadata: { jobId: 1, userId: 'u1' }, message: { anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', channel: 'web', @@ -24,74 +22,39 @@ export const data = [ model: 'Redmi 6', name: 'xiaomi', }, - network: { - carrier: 'Banglalink', - }, - os: { - name: 'android', - version: '8.1.0', - }, - screen: { - height: '100', - density: 50, - }, + network: { carrier: 'Banglalink' }, + os: { name: 'android', version: '8.1.0' }, + screen: { height: '100', density: 50 }, traits: { email: ' aBc@gmail.com ', - address: { - zip: 1234, - }, + address: { zip: 1234 }, anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', }, }, event: 'spin_result', - integrations: { - All: true, - }, + integrations: { All: true }, message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', - properties: { - revenue: 400, - additional_bet_index: 0, - }, + properties: { revenue: 400, additional_bet_index: 0 }, timestamp: '2023-11-12T15:46:51.693229+05:30', type: 'track', }, destination: { Config: { limitedDataUsage: true, - blacklistPiiProperties: [ - { - blacklistPiiProperties: '', - blacklistPiiHash: false, - }, - ], + blacklistPiiProperties: [{ blacklistPiiProperties: '', blacklistPiiHash: false }], accessToken: '09876', datasetId: 'dummyID', - eventsToEvents: [ - { - from: '', - to: '', - }, - ], - eventCustomProperties: [ - { - eventCustomProperties: '', - }, - ], + eventsToEvents: [{ from: '', to: '' }], + eventCustomProperties: [{ eventCustomProperties: '' }], removeExternalId: true, - whitelistPiiProperties: [ - { - whitelistPiiProperties: '', - }, - ], + whitelistPiiProperties: [{ whitelistPiiProperties: '' }], actionSource: 'website', }, Enabled: true, }, }, { - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, message: { anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', channel: 'web', @@ -102,65 +65,32 @@ export const data = [ model: 'Redmi 6', name: 'xiaomi', }, - network: { - carrier: 'Banglalink', - }, - os: { - name: 'android', - version: '8.1.0', - }, - screen: { - height: '100', - density: 50, - }, + network: { carrier: 'Banglalink' }, + os: { name: 'android', version: '8.1.0' }, + screen: { height: '100', density: 50 }, traits: { email: ' aBc@gmail.com ', - address: { - zip: 1234, - }, + address: { zip: 1234 }, anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', }, }, event: 'products searched', - integrations: { - All: true, - }, + integrations: { All: true }, message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', - properties: { - revenue: 400, - additional_bet_index: 0, - }, + properties: { revenue: 400, additional_bet_index: 0 }, timestamp: '2023-11-12T15:46:51.693229+05:30', type: 'track', }, destination: { Config: { limitedDataUsage: true, - blacklistPiiProperties: [ - { - blacklistPiiProperties: '', - blacklistPiiHash: false, - }, - ], + blacklistPiiProperties: [{ blacklistPiiProperties: '', blacklistPiiHash: false }], accessToken: '09876', datasetId: 'dummyID', - eventsToEvents: [ - { - from: '', - to: '', - }, - ], - eventCustomProperties: [ - { - eventCustomProperties: '', - }, - ], + eventsToEvents: [{ from: '', to: '' }], + eventCustomProperties: [{ eventCustomProperties: '' }], removeExternalId: true, - whitelistPiiProperties: [ - { - whitelistPiiProperties: '', - }, - ], + whitelistPiiProperties: [{ whitelistPiiProperties: '' }], actionSource: 'website', }, Enabled: true, @@ -197,41 +127,19 @@ export const data = [ }, files: {}, }, - metadata: [ - { - jobId: 1, - }, - ], + metadata: [{ jobId: 1, userId: 'u1' }], batched: false, statusCode: 200, destination: { Config: { limitedDataUsage: true, - blacklistPiiProperties: [ - { - blacklistPiiProperties: '', - blacklistPiiHash: false, - }, - ], + blacklistPiiProperties: [{ blacklistPiiProperties: '', blacklistPiiHash: false }], accessToken: '09876', datasetId: 'dummyID', - eventsToEvents: [ - { - from: '', - to: '', - }, - ], - eventCustomProperties: [ - { - eventCustomProperties: '', - }, - ], + eventsToEvents: [{ from: '', to: '' }], + eventCustomProperties: [{ eventCustomProperties: '' }], removeExternalId: true, - whitelistPiiProperties: [ - { - whitelistPiiProperties: '', - }, - ], + whitelistPiiProperties: [{ whitelistPiiProperties: '' }], actionSource: 'website', }, Enabled: true, @@ -257,41 +165,19 @@ export const data = [ }, files: {}, }, - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], batched: false, statusCode: 200, destination: { Config: { limitedDataUsage: true, - blacklistPiiProperties: [ - { - blacklistPiiProperties: '', - blacklistPiiHash: false, - }, - ], + blacklistPiiProperties: [{ blacklistPiiProperties: '', blacklistPiiHash: false }], accessToken: '09876', datasetId: 'dummyID', - eventsToEvents: [ - { - from: '', - to: '', - }, - ], - eventCustomProperties: [ - { - eventCustomProperties: '', - }, - ], + eventsToEvents: [{ from: '', to: '' }], + eventCustomProperties: [{ eventCustomProperties: '' }], removeExternalId: true, - whitelistPiiProperties: [ - { - whitelistPiiProperties: '', - }, - ], + whitelistPiiProperties: [{ whitelistPiiProperties: '' }], actionSource: 'website', }, Enabled: true, diff --git a/test/integrations/destinations/facebook_offline_conversions/router/data.ts b/test/integrations/destinations/facebook_offline_conversions/router/data.ts index 7bf984a029..c91113fcae 100644 --- a/test/integrations/destinations/facebook_offline_conversions/router/data.ts +++ b/test/integrations/destinations/facebook_offline_conversions/router/data.ts @@ -19,23 +19,13 @@ export const data = [ namespace: 'com.rudderlabs.javascript', version: '1.1.2', }, - traits: { - abc: '1234', - }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.1.2', - }, + traits: { abc: '1234' }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.2' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36', locale: 'en-GB', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, page: { path: '/tests/html/ecomm_test.html', referrer: 'http://0.0.0.0:1112/tests/html/', @@ -57,90 +47,34 @@ export const data = [ coupon: 'APPARELSALE', currency: 'GBP', products: [ - { - id: 'product-bacon-jam', - category: 'Merch', - brand: '', - }, - { - id: 'product-t-shirt', - category: 'Merch', - brand: 'Levis', - }, - { - id: 'offer-t-shirt', - category: 'Merch', - brand: 'Levis', - }, + { id: 'product-bacon-jam', category: 'Merch', brand: '' }, + { id: 'product-t-shirt', category: 'Merch', brand: 'Levis' }, + { id: 'offer-t-shirt', category: 'Merch', brand: 'Levis' }, ], }, }, - metadata: { - jobId: 1, - }, + metadata: { jobId: 1, userId: 'u1' }, destination: { Config: { accessToken: 'ABC...', valueFieldIdentifier: 'properties.price', eventsToStandard: [ - { - from: 'Product Searched', - to: 'Search', - }, - { - to: 'ViewContent', - from: 'Product Viewed', - }, - { - to: 'AddToCart', - from: 'Cart Checkout', - }, - { - to: 'AddPaymentInfo', - from: 'Card Details Added', - }, - { - to: 'Lead', - from: 'Order Completed', - }, - { - to: 'CompleteRegistration', - from: 'Signup', - }, - { - to: 'AddToWishlist', - from: 'Button Clicked', - }, + { from: 'Product Searched', to: 'Search' }, + { to: 'ViewContent', from: 'Product Viewed' }, + { to: 'AddToCart', from: 'Cart Checkout' }, + { to: 'AddPaymentInfo', from: 'Card Details Added' }, + { to: 'Lead', from: 'Order Completed' }, + { to: 'CompleteRegistration', from: 'Signup' }, + { to: 'AddToWishlist', from: 'Button Clicked' }, ], eventsToIds: [ - { - from: 'Search', - to: '582603376981640', - }, - { - from: 'Search', - to: '506289934669334', - }, - { - from: 'ViewContent', - to: '1166826033904512', - }, - { - from: 'AddToCart', - to: '1148872185708962', - }, - { - from: 'CompleteRegistration', - to: '597443908839411', - }, - { - from: 'Lead', - to: '1024592094903800', - }, - { - from: 'AddToWishlist', - to: '506289934669334', - }, + { from: 'Search', to: '582603376981640' }, + { from: 'Search', to: '506289934669334' }, + { from: 'ViewContent', to: '1166826033904512' }, + { from: 'AddToCart', to: '1148872185708962' }, + { from: 'CompleteRegistration', to: '597443908839411' }, + { from: 'Lead', to: '1024592094903800' }, + { from: 'AddToWishlist', to: '506289934669334' }, ], isHashRequired: true, }, @@ -156,23 +90,13 @@ export const data = [ namespace: 'com.rudderlabs.javascript', version: '1.1.2', }, - traits: { - abc: '1234', - }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.1.2', - }, + traits: { abc: '1234' }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.2' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36', locale: 'en-GB', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, page: { path: '/tests/html/ecomm_test.html', referrer: 'http://0.0.0.0:1112/tests/html/', @@ -194,86 +118,33 @@ export const data = [ coupon: 'APPARELSALE', currency: 'GBP', products: [ - { - id: 'product-bacon-jam', - category: 'Merch', - brand: '', - }, - { - id: 'product-t-shirt', - category: 'Merch', - brand: 'Levis', - }, - { - id: 'offer-t-shirt', - category: 'Merch', - brand: 'Levis', - }, + { id: 'product-bacon-jam', category: 'Merch', brand: '' }, + { id: 'product-t-shirt', category: 'Merch', brand: 'Levis' }, + { id: 'offer-t-shirt', category: 'Merch', brand: 'Levis' }, ], }, }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, destination: { Config: { accessToken: 'ABC...', valueFieldIdentifier: 'properties.price', eventsToStandard: [ - { - from: 'Product Searched', - to: 'Search', - }, - { - to: 'ViewContent', - from: 'Product Viewed', - }, - { - to: 'AddToCart', - from: 'Cart Checkout', - }, - { - to: 'AddPaymentInfo', - from: 'Card Details Added', - }, - { - to: 'Lead', - from: 'Order Completed', - }, - { - to: 'CompleteRegistration', - from: 'Signup', - }, - { - to: 'AddToWishlist', - from: 'Button Clicked', - }, + { from: 'Product Searched', to: 'Search' }, + { to: 'ViewContent', from: 'Product Viewed' }, + { to: 'AddToCart', from: 'Cart Checkout' }, + { to: 'AddPaymentInfo', from: 'Card Details Added' }, + { to: 'Lead', from: 'Order Completed' }, + { to: 'CompleteRegistration', from: 'Signup' }, + { to: 'AddToWishlist', from: 'Button Clicked' }, ], eventsToIds: [ - { - from: 'Search', - to: '582603376981640', - }, - { - from: 'Search', - to: '506289934669334', - }, - { - from: 'ViewContent', - to: '1166826033904512', - }, - { - from: 'AddToCart', - to: '1148872185708962', - }, - { - from: 'CompleteRegistration', - to: '597443908839411', - }, - { - from: 'Lead', - to: '1024592094903800', - }, + { from: 'Search', to: '582603376981640' }, + { from: 'Search', to: '506289934669334' }, + { from: 'ViewContent', to: '1166826033904512' }, + { from: 'AddToCart', to: '1148872185708962' }, + { from: 'CompleteRegistration', to: '597443908839411' }, + { from: 'Lead', to: '1024592094903800' }, ], isHashRequired: true, }, @@ -294,9 +165,7 @@ export const data = [ birthday: '2005-01-01T23:28:56.782Z', firstName: 'test', lastName: 'rudderstack', - initial: { - firstName: 'rudderlabs', - }, + initial: { firstName: 'rudderlabs' }, address: { city: 'kalkata', state: 'west bangal', @@ -306,20 +175,12 @@ export const data = [ phone: '9886775586', gender: 'male', }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.1.2', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.2' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36', locale: 'en-GB', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, page: { path: '/tests/html/ecomm_test.html', referrer: 'http://0.0.0.0:1112/tests/html/', @@ -327,9 +188,7 @@ export const data = [ title: 'Fb Offline Conversion Ecommerce Test', url: 'http://0.0.0.0:1112/tests/html/ecomm_test.html', }, - device: { - advertisingId: 'apple@123', - }, + device: { advertisingId: 'apple@123' }, }, type: 'track', messageId: '9116b734-7e6b-4497-ab51-c16744d4487e', @@ -345,86 +204,33 @@ export const data = [ coupon: 'APPARELSALE', currency: 'IND', products: [ - { - id: 'product-bacon-jam', - category: 'Merch', - brand: '', - }, - { - id: 'product-t-shirt', - category: 'Merch', - brand: 'Levis', - }, - { - id: 'offer-t-shirt', - category: 'Merch', - brand: 'Levis', - }, + { id: 'product-bacon-jam', category: 'Merch', brand: '' }, + { id: 'product-t-shirt', category: 'Merch', brand: 'Levis' }, + { id: 'offer-t-shirt', category: 'Merch', brand: 'Levis' }, ], }, }, - metadata: { - jobId: 3, - }, + metadata: { jobId: 3, userId: 'u1' }, destination: { Config: { accessToken: 'ABC...', valueFieldIdentifier: 'properties.price', eventsToStandard: [ - { - from: 'Product Searched', - to: 'Search', - }, - { - to: 'ViewContent', - from: 'Product Searched', - }, - { - to: 'AddToCart', - from: 'Cart Checkout', - }, - { - to: 'AddPaymentInfo', - from: 'Card Details Added', - }, - { - to: 'Lead', - from: 'Order Completed', - }, - { - to: 'CompleteRegistration', - from: 'Signup', - }, - { - to: 'AddToWishlist', - from: 'Button Clicked', - }, + { from: 'Product Searched', to: 'Search' }, + { to: 'ViewContent', from: 'Product Searched' }, + { to: 'AddToCart', from: 'Cart Checkout' }, + { to: 'AddPaymentInfo', from: 'Card Details Added' }, + { to: 'Lead', from: 'Order Completed' }, + { to: 'CompleteRegistration', from: 'Signup' }, + { to: 'AddToWishlist', from: 'Button Clicked' }, ], eventsToIds: [ - { - from: 'Search', - to: '582603376981640', - }, - { - from: 'Search', - to: '506289934669334', - }, - { - from: 'ViewContent', - to: '1166826033904512', - }, - { - from: 'AddToCart', - to: '1148872185708962', - }, - { - from: 'CompleteRegistration', - to: '597443908839411', - }, - { - from: 'Lead', - to: '1024592094903800', - }, + { from: 'Search', to: '582603376981640' }, + { from: 'Search', to: '506289934669334' }, + { from: 'ViewContent', to: '1166826033904512' }, + { from: 'AddToCart', to: '1148872185708962' }, + { from: 'CompleteRegistration', to: '597443908839411' }, + { from: 'Lead', to: '1024592094903800' }, ], isHashRequired: true, }, @@ -443,11 +249,7 @@ export const data = [ output: [ { error: 'Please Map Your Standard Events With Event Set Ids', - metadata: [ - { - jobId: 1, - }, - ], + metadata: [{ jobId: 1, userId: 'u1' }], batched: false, statTags: { destType: 'FACEBOOK_OFFLINE_CONVERSIONS', @@ -463,64 +265,22 @@ export const data = [ accessToken: 'ABC...', valueFieldIdentifier: 'properties.price', eventsToStandard: [ - { - from: 'Product Searched', - to: 'Search', - }, - { - to: 'ViewContent', - from: 'Product Viewed', - }, - { - to: 'AddToCart', - from: 'Cart Checkout', - }, - { - to: 'AddPaymentInfo', - from: 'Card Details Added', - }, - { - to: 'Lead', - from: 'Order Completed', - }, - { - to: 'CompleteRegistration', - from: 'Signup', - }, - { - to: 'AddToWishlist', - from: 'Button Clicked', - }, + { from: 'Product Searched', to: 'Search' }, + { to: 'ViewContent', from: 'Product Viewed' }, + { to: 'AddToCart', from: 'Cart Checkout' }, + { to: 'AddPaymentInfo', from: 'Card Details Added' }, + { to: 'Lead', from: 'Order Completed' }, + { to: 'CompleteRegistration', from: 'Signup' }, + { to: 'AddToWishlist', from: 'Button Clicked' }, ], eventsToIds: [ - { - from: 'Search', - to: '582603376981640', - }, - { - from: 'Search', - to: '506289934669334', - }, - { - from: 'ViewContent', - to: '1166826033904512', - }, - { - from: 'AddToCart', - to: '1148872185708962', - }, - { - from: 'CompleteRegistration', - to: '597443908839411', - }, - { - from: 'Lead', - to: '1024592094903800', - }, - { - from: 'AddToWishlist', - to: '506289934669334', - }, + { from: 'Search', to: '582603376981640' }, + { from: 'Search', to: '506289934669334' }, + { from: 'ViewContent', to: '1166826033904512' }, + { from: 'AddToCart', to: '1148872185708962' }, + { from: 'CompleteRegistration', to: '597443908839411' }, + { from: 'Lead', to: '1024592094903800' }, + { from: 'AddToWishlist', to: '506289934669334' }, ], isHashRequired: true, }, @@ -528,11 +288,7 @@ export const data = [ }, { error: 'Please Map Your Standard Events With Event Set Ids', - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], statTags: { destType: 'FACEBOOK_OFFLINE_CONVERSIONS', errorCategory: 'dataValidation', @@ -548,79 +304,31 @@ export const data = [ accessToken: 'ABC...', valueFieldIdentifier: 'properties.price', eventsToStandard: [ - { - from: 'Product Searched', - to: 'Search', - }, - { - to: 'ViewContent', - from: 'Product Viewed', - }, - { - to: 'AddToCart', - from: 'Cart Checkout', - }, - { - to: 'AddPaymentInfo', - from: 'Card Details Added', - }, - { - to: 'Lead', - from: 'Order Completed', - }, - { - to: 'CompleteRegistration', - from: 'Signup', - }, - { - to: 'AddToWishlist', - from: 'Button Clicked', - }, + { from: 'Product Searched', to: 'Search' }, + { to: 'ViewContent', from: 'Product Viewed' }, + { to: 'AddToCart', from: 'Cart Checkout' }, + { to: 'AddPaymentInfo', from: 'Card Details Added' }, + { to: 'Lead', from: 'Order Completed' }, + { to: 'CompleteRegistration', from: 'Signup' }, + { to: 'AddToWishlist', from: 'Button Clicked' }, ], eventsToIds: [ - { - from: 'Search', - to: '582603376981640', - }, - { - from: 'Search', - to: '506289934669334', - }, - { - from: 'ViewContent', - to: '1166826033904512', - }, - { - from: 'AddToCart', - to: '1148872185708962', - }, - { - from: 'CompleteRegistration', - to: '597443908839411', - }, - { - from: 'Lead', - to: '1024592094903800', - }, + { from: 'Search', to: '582603376981640' }, + { from: 'Search', to: '506289934669334' }, + { from: 'ViewContent', to: '1166826033904512' }, + { from: 'AddToCart', to: '1148872185708962' }, + { from: 'CompleteRegistration', to: '597443908839411' }, + { from: 'Lead', to: '1024592094903800' }, ], isHashRequired: true, }, }, }, { - metadata: [ - { - jobId: 3, - }, - ], + metadata: [{ jobId: 3, userId: 'u1' }], batchedRequest: [ { - body: { - FORM: {}, - JSON: {}, - JSON_ARRAY: {}, - XML: {}, - }, + body: { FORM: {}, JSON: {}, JSON_ARRAY: {}, XML: {} }, endpoint: 'https://graph.facebook.com/v16.0/1148872185708962/events?upload_tag=test campaign&data=%5B%7B%22match_keys%22%3A%7B%22doby%22%3A%22f388bc7cd953b951ffdf8e06275d94946dc52f03ed96536497fbe534469d38d6%22%2C%22dobm%22%3A%22f388bc7cd953b951ffdf8e06275d94946dc52f03ed96536497fbe534469d38d6%22%2C%22dobd%22%3A%22f388bc7cd953b951ffdf8e06275d94946dc52f03ed96536497fbe534469d38d6%22%2C%22extern_id%22%3A%22user%401%22%2C%22email%22%3A%5B%221c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd%22%5D%2C%22phone%22%3A%5B%2274a39482392f83119041d571d5dace439d315faea8214fe8e815c00261b80615%22%5D%2C%22gen%22%3A%220d248e82c62c9386878327d491c762a002152d42ab2c391a31c44d9f62675ddf%22%2C%22ln%22%3A%227fb35d4777487797615cfa7c57724a47ba99152485600ccdb98e3871a6d05b21%22%2C%22fn%22%3A%229f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08%22%2C%22ct%22%3A%22375aba919c30870659093b7ddcf6045ff7a8624dd4dba49ced8981bd4d0666e0%22%2C%22zip%22%3A%5B%228d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92%22%5D%2C%22madid%22%3A%22c20fa16907343eef642d10f0bdb81bf629e6aaf6c906f26eabda079ca9e5ab67%22%2C%22client_user_agent%22%3A%22Mozilla%2F5.0%20(Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_3)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F83.0.4103.97%20Safari%2F537.36%22%7D%2C%22event_time%22%3A1663761919%2C%22currency%22%3A%22IND%22%2C%22value%22%3A100%2C%22order_id%22%3A%22485893487985894998%22%2C%22contents%22%3A%5B%7B%22id%22%3A%22product-bacon-jam%22%2C%22quantity%22%3A1%2C%22brand%22%3A%22%22%2C%22category%22%3A%22Merch%22%7D%2C%7B%22id%22%3A%22product-t-shirt%22%2C%22quantity%22%3A1%2C%22brand%22%3A%22Levis%22%2C%22category%22%3A%22Merch%22%7D%2C%7B%22id%22%3A%22offer-t-shirt%22%2C%22quantity%22%3A1%2C%22brand%22%3A%22Levis%22%2C%22category%22%3A%22Merch%22%7D%5D%2C%22custom_data%22%3A%7B%22extern_id%22%3A%22user%401%22%2C%22event_name%22%3A%22Cart%20Checkout%22%2C%22event_time%22%3A1663761919%2C%22currency%22%3A%22IND%22%2C%22value%22%3A100%2C%22email%22%3A%221c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd%22%2C%22phone%22%3A%2274a39482392f83119041d571d5dace439d315faea8214fe8e815c00261b80615%22%2C%22gen%22%3A%220d248e82c62c9386878327d491c762a002152d42ab2c391a31c44d9f62675ddf%22%2C%22ln%22%3A%227fb35d4777487797615cfa7c57724a47ba99152485600ccdb98e3871a6d05b21%22%2C%22fn%22%3A%229f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08%22%2C%22ct%22%3A%22375aba919c30870659093b7ddcf6045ff7a8624dd4dba49ced8981bd4d0666e0%22%2C%22zip%22%3A%228d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92%22%2C%22madid%22%3A%22c20fa16907343eef642d10f0bdb81bf629e6aaf6c906f26eabda079ca9e5ab67%22%2C%22contents%22%3A%5B%7B%22id%22%3A%22product-bacon-jam%22%2C%22category%22%3A%22Merch%22%2C%22brand%22%3A%22%22%7D%2C%7B%22id%22%3A%22product-t-shirt%22%2C%22category%22%3A%22Merch%22%2C%22brand%22%3A%22Levis%22%7D%2C%7B%22id%22%3A%22offer-t-shirt%22%2C%22category%22%3A%22Merch%22%2C%22brand%22%3A%22Levis%22%7D%5D%2C%22order_id%22%3A%22485893487985894998%22%2C%22upload_tag%22%3A%22test%20campaign%22%2C%22client_user_agent%22%3A%22Mozilla%2F5.0%20(Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_3)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F83.0.4103.97%20Safari%2F537.36%22%2C%22event_source_url%22%3A%22http%3A%2F%2F0.0.0.0%3A1112%2Ftests%2Fhtml%2Fecomm_test.html%22%2C%22shipping%22%3A4%2C%22coupon%22%3A%22APPARELSALE%22%7D%2C%22event_source_url%22%3A%22http%3A%2F%2F0.0.0.0%3A1112%2Ftests%2Fhtml%2Fecomm_test.html%22%2C%22event_name%22%3A%22AddToCart%22%2C%22content_type%22%3A%22product%22%7D%5D&access_token=ABC...', files: {}, @@ -638,60 +346,21 @@ export const data = [ accessToken: 'ABC...', valueFieldIdentifier: 'properties.price', eventsToStandard: [ - { - from: 'Product Searched', - to: 'Search', - }, - { - to: 'ViewContent', - from: 'Product Searched', - }, - { - to: 'AddToCart', - from: 'Cart Checkout', - }, - { - to: 'AddPaymentInfo', - from: 'Card Details Added', - }, - { - to: 'Lead', - from: 'Order Completed', - }, - { - to: 'CompleteRegistration', - from: 'Signup', - }, - { - to: 'AddToWishlist', - from: 'Button Clicked', - }, + { from: 'Product Searched', to: 'Search' }, + { to: 'ViewContent', from: 'Product Searched' }, + { to: 'AddToCart', from: 'Cart Checkout' }, + { to: 'AddPaymentInfo', from: 'Card Details Added' }, + { to: 'Lead', from: 'Order Completed' }, + { to: 'CompleteRegistration', from: 'Signup' }, + { to: 'AddToWishlist', from: 'Button Clicked' }, ], eventsToIds: [ - { - from: 'Search', - to: '582603376981640', - }, - { - from: 'Search', - to: '506289934669334', - }, - { - from: 'ViewContent', - to: '1166826033904512', - }, - { - from: 'AddToCart', - to: '1148872185708962', - }, - { - from: 'CompleteRegistration', - to: '597443908839411', - }, - { - from: 'Lead', - to: '1024592094903800', - }, + { from: 'Search', to: '582603376981640' }, + { from: 'Search', to: '506289934669334' }, + { from: 'ViewContent', to: '1166826033904512' }, + { from: 'AddToCart', to: '1148872185708962' }, + { from: 'CompleteRegistration', to: '597443908839411' }, + { from: 'Lead', to: '1024592094903800' }, ], isHashRequired: true, }, diff --git a/test/integrations/destinations/facebook_pixel/dataDelivery/data.ts b/test/integrations/destinations/facebook_pixel/dataDelivery/data.ts index eb9ce344e0..239fa93a6a 100644 --- a/test/integrations/destinations/facebook_pixel/dataDelivery/data.ts +++ b/test/integrations/destinations/facebook_pixel/dataDelivery/data.ts @@ -43,19 +43,20 @@ export const data = [ message: 'Invalid OAuth 2.0 access token', destinationResponse: { error: { - message: 'The access token could not be decrypted', - type: 'OAuthException', code: 190, fbtrace_id: 'fbpixel_trace_id', + message: 'The access token could not be decrypted', + type: 'OAuthException', }, status: 500, }, statTags: { destType: 'FACEBOOK_PIXEL', - errorCategory: 'network', + errorCategory: 'dataValidation', destinationId: 'Non-determininable', workspaceId: 'Non-determininable', - errorType: 'aborted', + errorType: 'configuration', + meta: 'accessTokenExpired', feature: 'dataDelivery', implementation: 'native', module: 'destination', diff --git a/test/integrations/destinations/facebook_pixel/router/data.ts b/test/integrations/destinations/facebook_pixel/router/data.ts index ee2f6968b1..4bd9914768 100644 --- a/test/integrations/destinations/facebook_pixel/router/data.ts +++ b/test/integrations/destinations/facebook_pixel/router/data.ts @@ -19,11 +19,7 @@ export const data = [ { message: { anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', - destination_props: { - Fb: { - app_id: 'RudderFbApp', - }, - }, + destination_props: { Fb: { app_id: 'RudderFbApp' } }, context: { device: { id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', @@ -31,67 +27,34 @@ export const data = [ model: 'Redmi 6', name: 'xiaomi', }, - network: { - carrier: 'Banglalink', - }, - os: { - name: 'android', - version: '8.1.0', - }, - screen: { - height: '100', - density: 50, - }, + network: { carrier: 'Banglalink' }, + os: { name: 'android', version: '8.1.0' }, + screen: { height: '100', density: 50 }, traits: { email: 'abc@gmail.com', anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', }, }, event: 'spin_result', - integrations: { - All: true, - }, + integrations: { All: true }, message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', - properties: { - revenue: 400, - additional_bet_index: 0, - }, + properties: { revenue: 400, additional_bet_index: 0 }, timestamp: '2023-10-14T15:46:51.693229+05:30', type: 'track', }, - metadata: { - jobId: 1, - }, + metadata: { jobId: 1, userId: 'u1' }, destination: { Config: { limitedDataUsage: true, - blacklistPiiProperties: [ - { - blacklistPiiProperties: '', - blacklistPiiHash: false, - }, - ], + blacklistPiiProperties: [{ blacklistPiiProperties: '', blacklistPiiHash: false }], removeExternalId: true, accessToken: '09876', pixelId: 'dummyPixelId', - eventsToEvents: [ - { - from: '', - to: '', - }, - ], - eventCustomProperties: [ - { - eventCustomProperties: '', - }, - ], + eventsToEvents: [{ from: '', to: '' }], + eventCustomProperties: [{ eventCustomProperties: '' }], valueFieldIdentifier: '', advancedMapping: false, - whitelistPiiProperties: [ - { - whitelistPiiProperties: '', - }, - ], + whitelistPiiProperties: [{ whitelistPiiProperties: '' }], }, Enabled: true, }, @@ -114,67 +77,34 @@ export const data = [ namespace: 'com.rudderlabs.javascript', version: '1.0.0', }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', locale: 'en-US', ip: '0.0.0.0', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, - }, - properties: { - plan: 'standard plan', - name: 'rudder test', + os: { name: '', version: '' }, + screen: { density: 2 }, }, + properties: { plan: 'standard plan', name: 'rudder test' }, type: 'identify', messageId: '84e26acc-56a5-4835-8233-591137fca468', originalTimestamp: '2023-10-14T00:00:00.693229+05:30', anonymousId: '00000000000000000000000000', userId: '123456', - integrations: { - All: true, - }, + integrations: { All: true }, sentAt: '2019-10-14T09:03:22.563Z', }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, destination: { Config: { - blacklistPiiProperties: [ - { - blacklistPiiProperties: '', - blacklistPiiHash: false, - }, - ], + blacklistPiiProperties: [{ blacklistPiiProperties: '', blacklistPiiHash: false }], accessToken: '09876', pixelId: 'dummyPixelId', - eventsToEvents: [ - { - from: '', - to: '', - }, - ], - eventCustomProperties: [ - { - eventCustomProperties: '', - }, - ], + eventsToEvents: [{ from: '', to: '' }], + eventCustomProperties: [{ eventCustomProperties: '' }], valueFieldIdentifier: '', advancedMapping: true, - whitelistPiiProperties: [ - { - whitelistPiiProperties: '', - }, - ], + whitelistPiiProperties: [{ whitelistPiiProperties: '' }], }, Enabled: true, }, @@ -195,7 +125,7 @@ export const data = [ version: '1', type: 'REST', method: 'POST', - endpoint: `https://graph.facebook.com/${VERSION}/dummyPixelId/events?access_token=09876`, + endpoint: 'https://graph.facebook.com/v18.0/dummyPixelId/events?access_token=09876', headers: {}, params: {}, body: { @@ -210,43 +140,21 @@ export const data = [ }, files: {}, }, - metadata: [ - { - jobId: 1, - }, - ], + metadata: [{ jobId: 1, userId: 'u1' }], batched: false, statusCode: 200, destination: { Config: { limitedDataUsage: true, - blacklistPiiProperties: [ - { - blacklistPiiProperties: '', - blacklistPiiHash: false, - }, - ], + blacklistPiiProperties: [{ blacklistPiiProperties: '', blacklistPiiHash: false }], removeExternalId: true, accessToken: '09876', pixelId: 'dummyPixelId', - eventsToEvents: [ - { - from: '', - to: '', - }, - ], - eventCustomProperties: [ - { - eventCustomProperties: '', - }, - ], + eventsToEvents: [{ from: '', to: '' }], + eventCustomProperties: [{ eventCustomProperties: '' }], valueFieldIdentifier: '', advancedMapping: false, - whitelistPiiProperties: [ - { - whitelistPiiProperties: '', - }, - ], + whitelistPiiProperties: [{ whitelistPiiProperties: '' }], }, Enabled: true, }, @@ -256,7 +164,7 @@ export const data = [ version: '1', type: 'REST', method: 'POST', - endpoint: `https://graph.facebook.com/${VERSION}/dummyPixelId/events?access_token=09876`, + endpoint: 'https://graph.facebook.com/v18.0/dummyPixelId/events?access_token=09876', headers: {}, params: {}, body: { @@ -271,41 +179,19 @@ export const data = [ }, files: {}, }, - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], batched: false, statusCode: 200, destination: { Config: { - blacklistPiiProperties: [ - { - blacklistPiiProperties: '', - blacklistPiiHash: false, - }, - ], + blacklistPiiProperties: [{ blacklistPiiProperties: '', blacklistPiiHash: false }], accessToken: '09876', pixelId: 'dummyPixelId', - eventsToEvents: [ - { - from: '', - to: '', - }, - ], - eventCustomProperties: [ - { - eventCustomProperties: '', - }, - ], + eventsToEvents: [{ from: '', to: '' }], + eventCustomProperties: [{ eventCustomProperties: '' }], valueFieldIdentifier: '', advancedMapping: true, - whitelistPiiProperties: [ - { - whitelistPiiProperties: '', - }, - ], + whitelistPiiProperties: [{ whitelistPiiProperties: '' }], }, Enabled: true, }, diff --git a/test/integrations/destinations/fb/dataDelivery/data.ts b/test/integrations/destinations/fb/dataDelivery/data.ts index f9405ba4b3..3b37d03f46 100644 --- a/test/integrations/destinations/fb/dataDelivery/data.ts +++ b/test/integrations/destinations/fb/dataDelivery/data.ts @@ -57,19 +57,20 @@ export const data = [ message: 'Invalid OAuth 2.0 access token', destinationResponse: { error: { - message: 'The access token could not be decrypted', - type: 'OAuthException', code: 190, fbtrace_id: 'fbpixel_trace_id', + message: 'The access token could not be decrypted', + type: 'OAuthException', }, status: 500, }, statTags: { destType: 'FB', - errorCategory: 'network', + errorCategory: 'dataValidation', destinationId: 'Non-determininable', workspaceId: 'Non-determininable', - errorType: 'aborted', + errorType: 'configuration', + meta: 'accessTokenExpired', feature: 'dataDelivery', implementation: 'native', module: 'destination', diff --git a/test/integrations/destinations/fb/router/data.ts b/test/integrations/destinations/fb/router/data.ts index 4daefad141..d5872c78cd 100644 --- a/test/integrations/destinations/fb/router/data.ts +++ b/test/integrations/destinations/fb/router/data.ts @@ -12,11 +12,7 @@ export const data = [ { message: { anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', - destination_props: { - Fb: { - app_id: 'RudderFbApp', - }, - }, + destination_props: { Fb: { app_id: 'RudderFbApp' } }, context: { device: { id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', @@ -25,28 +21,16 @@ export const data = [ name: 'xiaomi', type: 'Android', }, - network: { - carrier: 'Banglalink', - }, - os: { - name: 'android', - version: '8.1.0', - }, - screen: { - height: '100', - density: 50, - }, + network: { carrier: 'Banglalink' }, + os: { name: 'android', version: '8.1.0' }, + screen: { height: '100', density: 50 }, traits: { email: 'abc@gmail.com', anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', }, }, event: 'spin_result', - integrations: { - AM: true, - All: false, - GA: true, - }, + integrations: { AM: true, All: false, GA: true }, message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', properties: { revenue: 400, @@ -86,17 +70,7 @@ export const data = [ userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', versionSessionCount: 2, win_amount: 0, - products: [ - { - product_id: 123, - }, - { - product_id: 345, - }, - { - product_id: 567, - }, - ], + products: [{ product_id: 123 }, { product_id: 345 }, { product_id: 567 }], }, timestamp: '2019-09-01T15:46:51.693229+05:30', type: 'track', @@ -121,23 +95,13 @@ export const data = [ versionSessionCount: 2, }, }, - metadata: { - jobId: 2, - }, - destination: { - Config: { - appID: 'RudderFbApp', - }, - }, + metadata: { jobId: 2, userId: 'u1' }, + destination: { Config: { appID: 'RudderFbApp' } }, }, { message: { anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', - destination_props: { - Fb: { - app_id: 'RudderFbApp', - }, - }, + destination_props: { Fb: { app_id: 'RudderFbApp' } }, context: { device: { id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', @@ -146,28 +110,16 @@ export const data = [ name: 'xiaomi', type: 'Android', }, - network: { - carrier: 'Banglalink', - }, - os: { - name: 'android', - version: '8.1.0', - }, - screen: { - height: '100', - density: 50, - }, + network: { carrier: 'Banglalink' }, + os: { name: 'android', version: '8.1.0' }, + screen: { height: '100', density: 50 }, traits: { email: 'abc@gmail.com', anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', }, }, event: 'spin_result', - integrations: { - AM: true, - All: false, - GA: true, - }, + integrations: { AM: true, All: false, GA: true }, message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', properties: { revenue: 400, @@ -208,17 +160,7 @@ export const data = [ userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', versionSessionCount: 2, win_amount: 0, - products: [ - { - product_id: 123, - }, - { - product_id: 345, - }, - { - product_id: 567, - }, - ], + products: [{ product_id: 123 }, { product_id: 345 }, { product_id: 567 }], }, timestamp: '2019-09-01T15:46:51.693229+05:30', type: 'track', @@ -243,14 +185,8 @@ export const data = [ versionSessionCount: 2, }, }, - metadata: { - jobId: 2, - }, - destination: { - Config: { - appID: 'RudderFbApp', - }, - }, + metadata: { jobId: 3, userId: 'u1' }, + destination: { Config: { appID: 'RudderFbApp' } }, }, ], destType: 'fb', @@ -263,11 +199,7 @@ export const data = [ body: { output: [ { - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], statTags: { errorCategory: 'dataValidation', errorType: 'instrumentation', @@ -276,26 +208,14 @@ export const data = [ implementation: 'native', module: 'destination', }, - destination: { - Config: { - appID: 'RudderFbApp', - }, - }, + destination: { Config: { appID: 'RudderFbApp' } }, batched: false, statusCode: 400, error: 'If properties.revenue is present, properties.currency is required.', }, { - metadata: [ - { - jobId: 2, - }, - ], - destination: { - Config: { - appID: 'RudderFbApp', - }, - }, + metadata: [{ jobId: 3, userId: 'u1' }], + destination: { Config: { appID: 'RudderFbApp' } }, statTags: { errorCategory: 'dataValidation', errorType: 'instrumentation', diff --git a/test/integrations/destinations/fb_custom_audience/dataDelivery/data.ts b/test/integrations/destinations/fb_custom_audience/dataDelivery/data.ts index 3066dae887..5ce15e0ea0 100644 --- a/test/integrations/destinations/fb_custom_audience/dataDelivery/data.ts +++ b/test/integrations/destinations/fb_custom_audience/dataDelivery/data.ts @@ -572,4 +572,76 @@ export const data = [ }, }, }, + { + name: 'fb_custom_audience', + description: 'user addition failed due expired access token error', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'DELETE', + endpoint: getEndPoint('aud1'), + headers: { + 'test-dest-response-key': 'accessTokenInvalidError', + }, + params: { + access_token: 'ABC', + payload: { + is_raw: true, + data_source: { + sub_type: 'ANYTHING', + }, + schema: ['DOBY', 'PHONE', 'GEN', 'FI', 'MADID', 'ZIP', 'ST', 'COUNTRY'], + data: [['2013', '@09432457768', 'f', 'Ms.', 'ABC', 'ZIP ', '123abc ', 'IN']], + }, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + }, + }, + output: { + response: { + status: 400, + body: { + output: { + destinationResponse: { + error: { + code: 190, + error_subcode: 463, + fbtrace_id: 'A3b8C6PpI-kdIOwPwV4PANi', + message: + 'Error validating access token: Session has expired on Tuesday, 01-Aug-23 10:12:14 PDT. The current time is Sunday, 28-Jan-24 16:01:17 PST.', + type: 'OAuthException', + }, + status: 400, + }, + message: + 'Error validating access token: Session has expired on Tuesday, 01-Aug-23 10:12:14 PDT. The current time is Sunday, 28-Jan-24 16:01:17 PST.', + statTags: { + destType: 'FB_CUSTOM_AUDIENCE', + destinationId: 'Non-determininable', + errorCategory: 'dataValidation', + errorType: 'configuration', + meta: 'accessTokenExpired', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + workspaceId: 'Non-determininable', + }, + status: 400, + }, + }, + }, + }, + }, ]; diff --git a/test/integrations/destinations/fb_custom_audience/network.ts b/test/integrations/destinations/fb_custom_audience/network.ts index bbdc1ffc28..fa11f28370 100644 --- a/test/integrations/destinations/fb_custom_audience/network.ts +++ b/test/integrations/destinations/fb_custom_audience/network.ts @@ -480,4 +480,46 @@ export const networkCallsData = [ status: 403, }, }, + { + httpReq: { + version: '1', + type: 'REST', + method: 'DELETE', + endpoint: getEndPoint('aud1'), + headers: { + 'test-dest-response-key': 'accessTokenInvalidError', + }, + params: { + access_token: 'ABC', + payload: { + is_raw: true, + data_source: { + sub_type: 'ANYTHING', + }, + schema: ['DOBY', 'PHONE', 'GEN', 'FI', 'MADID', 'ZIP', 'ST', 'COUNTRY'], + data: [['2013', '@09432457768', 'f', 'Ms.', 'ABC', 'ZIP ', '123abc ', 'IN']], + }, + }, + userId: '', + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + httpRes: { + data: { + error: { + message: 'Error validating access token: Session has expired on Tuesday, 01-Aug-23 10:12:14 PDT. The current time is Sunday, 28-Jan-24 16:01:17 PST.', + type: 'OAuthException', + code: 190, + error_subcode: 463, + fbtrace_id: 'A3b8C6PpI-kdIOwPwV4PANi' + }, + }, + status: 400, + }, + } ]; diff --git a/test/integrations/destinations/fb_custom_audience/router/data.ts b/test/integrations/destinations/fb_custom_audience/router/data.ts index fd099fe33c..492b625b2d 100644 --- a/test/integrations/destinations/fb_custom_audience/router/data.ts +++ b/test/integrations/destinations/fb_custom_audience/router/data.ts @@ -51,17 +51,10 @@ export const data = [ ], }, }, - context: { - ip: '14.5.67.21', - library: { - name: 'http', - }, - }, + context: { ip: '14.5.67.21', library: { name: 'http' } }, timestamp: '2020-02-02T00:23:09.544Z', }, - metadata: { - jobId: 1, - }, + metadata: { jobId: 1, userId: 'u1' }, destination: { Config: { accessToken: 'ABC', @@ -131,17 +124,10 @@ export const data = [ ], }, }, - context: { - ip: '14.5.67.21', - library: { - name: 'http', - }, - }, + context: { ip: '14.5.67.21', library: { name: 'http' } }, timestamp: '2020-02-02T00:23:09.544Z', }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, destination: { Config: { accessToken: 'ABC', @@ -171,9 +157,7 @@ export const data = [ IsProcessorEnabled: true, }, libraries: [], - request: { - query: {}, - }, + request: { query: {} }, }, ], destType: 'fb_custom_audience', @@ -197,10 +181,7 @@ export const data = [ access_token: 'ABC', payload: { is_raw: true, - data_source: { - type: 'UNKNOWN', - sub_type: 'ANYTHING', - }, + data_source: { type: 'UNKNOWN', sub_type: 'ANYTHING' }, schema: [ 'EMAIL', 'DOBM', @@ -231,12 +212,7 @@ export const data = [ ], }, }, - body: { - JSON: {}, - JSON_ARRAY: {}, - XML: {}, - FORM: {}, - }, + body: { JSON: {}, JSON_ARRAY: {}, XML: {}, FORM: {} }, files: {}, }, { @@ -249,10 +225,7 @@ export const data = [ access_token: 'ABC', payload: { is_raw: true, - data_source: { - type: 'UNKNOWN', - sub_type: 'ANYTHING', - }, + data_source: { type: 'UNKNOWN', sub_type: 'ANYTHING' }, schema: [ 'EMAIL', 'DOBM', @@ -283,20 +256,11 @@ export const data = [ ], }, }, - body: { - JSON: {}, - JSON_ARRAY: {}, - XML: {}, - FORM: {}, - }, + body: { JSON: {}, JSON_ARRAY: {}, XML: {}, FORM: {} }, files: {}, }, ], - metadata: [ - { - jobId: 1, - }, - ], + metadata: [{ jobId: 1, userId: 'u1' }], batched: false, statusCode: 200, destination: { @@ -340,9 +304,7 @@ export const data = [ access_token: 'ABC', payload: { is_raw: true, - data_source: { - sub_type: 'ANYTHING', - }, + data_source: { sub_type: 'ANYTHING' }, schema: [ 'EMAIL', 'DOBM', @@ -373,12 +335,7 @@ export const data = [ ], }, }, - body: { - JSON: {}, - JSON_ARRAY: {}, - XML: {}, - FORM: {}, - }, + body: { JSON: {}, JSON_ARRAY: {}, XML: {}, FORM: {} }, files: {}, }, { @@ -391,9 +348,7 @@ export const data = [ access_token: 'ABC', payload: { is_raw: true, - data_source: { - sub_type: 'ANYTHING', - }, + data_source: { sub_type: 'ANYTHING' }, schema: [ 'EMAIL', 'DOBM', @@ -424,20 +379,11 @@ export const data = [ ], }, }, - body: { - JSON: {}, - JSON_ARRAY: {}, - XML: {}, - FORM: {}, - }, + body: { JSON: {}, JSON_ARRAY: {}, XML: {}, FORM: {} }, files: {}, }, ], - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], batched: false, statusCode: 200, destination: { @@ -494,10 +440,7 @@ export const data = [ context: { destinationFields: 'EMAIL, FN', externalId: [ - { - type: 'FB_CUSTOM_AUDIENCE-23848494844100489', - identifierType: 'EMAIL', - }, + { type: 'FB_CUSTOM_AUDIENCE-23848494844100489', identifierType: 'EMAIL' }, ], mappedToDestination: 'true', sources: { @@ -512,46 +455,16 @@ export const data = [ properties: { listData: { add: [ - { - EMAIL: 'dede@gmail.com', - FN: 'vishwa', - }, - { - EMAIL: 'fchsjjn@gmail.com', - FN: 'hskks', - }, - { - EMAIL: 'fghjnbjk@gmail.com', - FN: 'ghfry', - }, - { - EMAIL: 'gvhjkk@gmail.com', - FN: 'hbcwqe', - }, - { - EMAIL: 'qsdwert@egf.com', - FN: 'dsfds', - }, - { - EMAIL: 'ascscxsaca@com', - FN: 'scadscdvcda', - }, - { - EMAIL: 'abc@gmail.com', - FN: 'subscribed', - }, - { - EMAIL: 'ddwnkl@gmail.com', - FN: 'subscribed', - }, - { - EMAIL: 'subscribed@eewrfrd.com', - FN: 'pending', - }, - { - EMAIL: 'acsdvdf@ddfvf.com', - FN: 'pending', - }, + { EMAIL: 'dede@gmail.com', FN: 'vishwa' }, + { EMAIL: 'fchsjjn@gmail.com', FN: 'hskks' }, + { EMAIL: 'fghjnbjk@gmail.com', FN: 'ghfry' }, + { EMAIL: 'gvhjkk@gmail.com', FN: 'hbcwqe' }, + { EMAIL: 'qsdwert@egf.com', FN: 'dsfds' }, + { EMAIL: 'ascscxsaca@com', FN: 'scadscdvcda' }, + { EMAIL: 'abc@gmail.com', FN: 'subscribed' }, + { EMAIL: 'ddwnkl@gmail.com', FN: 'subscribed' }, + { EMAIL: 'subscribed@eewrfrd.com', FN: 'pending' }, + { EMAIL: 'acsdvdf@ddfvf.com', FN: 'pending' }, ], }, }, @@ -590,9 +503,7 @@ export const data = [ isConnectionEnabled: true, isProcessorEnabled: true, }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, }, { message: { @@ -603,10 +514,7 @@ export const data = [ event: 'Add_Audience', context: { externalId: [ - { - type: 'FB_CUSTOM_AUDIENCE-23848494844100489', - identifierType: 'EMAIL', - }, + { type: 'FB_CUSTOM_AUDIENCE-23848494844100489', identifierType: 'EMAIL' }, ], mappedToDestination: 'true', sources: { @@ -621,46 +529,16 @@ export const data = [ properties: { listData: { add: [ - { - EMAIL: 'dede@gmail.com', - FN: 'vishwa', - }, - { - EMAIL: 'fchsjjn@gmail.com', - FN: 'hskks', - }, - { - EMAIL: 'fghjnbjk@gmail.com', - FN: 'ghfry', - }, - { - EMAIL: 'gvhjkk@gmail.com', - FN: 'hbcwqe', - }, - { - EMAIL: 'qsdwert@egf.com', - FN: 'dsfds', - }, - { - EMAIL: 'ascscxsaca@com', - FN: 'scadscdvcda', - }, - { - EMAIL: 'abc@gmail.com', - FN: 'subscribed', - }, - { - EMAIL: 'ddwnkl@gmail.com', - FN: 'subscribed', - }, - { - EMAIL: 'subscribed@eewrfrd.com', - FN: 'pending', - }, - { - EMAIL: 'acsdvdf@ddfvf.com', - FN: 'pending', - }, + { EMAIL: 'dede@gmail.com', FN: 'vishwa' }, + { EMAIL: 'fchsjjn@gmail.com', FN: 'hskks' }, + { EMAIL: 'fghjnbjk@gmail.com', FN: 'ghfry' }, + { EMAIL: 'gvhjkk@gmail.com', FN: 'hbcwqe' }, + { EMAIL: 'qsdwert@egf.com', FN: 'dsfds' }, + { EMAIL: 'ascscxsaca@com', FN: 'scadscdvcda' }, + { EMAIL: 'abc@gmail.com', FN: 'subscribed' }, + { EMAIL: 'ddwnkl@gmail.com', FN: 'subscribed' }, + { EMAIL: 'subscribed@eewrfrd.com', FN: 'pending' }, + { EMAIL: 'acsdvdf@ddfvf.com', FN: 'pending' }, ], }, }, @@ -699,9 +577,7 @@ export const data = [ isConnectionEnabled: true, isProcessorEnabled: true, }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 3, userId: 'u1' }, }, { message: { @@ -713,12 +589,7 @@ export const data = [ context: { destinationFields: 'EMAIL, DOBM, DOBD, DOBY, PHONE, GEN, FI, MADID, ZIP, ST, COUNTRY', - externalId: [ - { - type: 'FB_CUSTOM_AUDIENCE-aud1', - identifierType: 'EMAIL', - }, - ], + externalId: [{ type: 'FB_CUSTOM_AUDIENCE-aud1', identifierType: 'EMAIL' }], mappedToDestination: 'true', sources: { job_run_id: 'cgiiurt8um7k7n5dq480', @@ -26730,9 +26601,7 @@ export const data = [ isConnectionEnabled: true, isProcessorEnabled: true, }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 4, userId: 'u1' }, }, ], destType: 'fb_custom_audience', @@ -26770,20 +26639,11 @@ export const data = [ ], }, }, - body: { - JSON: {}, - JSON_ARRAY: {}, - XML: {}, - FORM: {}, - }, + body: { JSON: {}, JSON_ARRAY: {}, XML: {}, FORM: {} }, files: {}, }, ], - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], batched: false, statusCode: 200, destination: { @@ -26854,11 +26714,7 @@ export const data = [ }, error: 'context.destinationFields is required property for events mapped to destination ', - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 3, userId: 'u1' }], batched: false, statusCode: 400, statTags: { @@ -33399,12 +33255,7 @@ export const data = [ ], }, }, - body: { - JSON: {}, - XML: {}, - JSON_ARRAY: {}, - FORM: {}, - }, + body: { JSON: {}, XML: {}, JSON_ARRAY: {}, FORM: {} }, files: {}, }, { @@ -39934,12 +39785,7 @@ export const data = [ ], }, }, - body: { - JSON: {}, - XML: {}, - JSON_ARRAY: {}, - FORM: {}, - }, + body: { JSON: {}, XML: {}, JSON_ARRAY: {}, FORM: {} }, files: {}, }, { @@ -46443,12 +46289,7 @@ export const data = [ ], }, }, - body: { - JSON: {}, - XML: {}, - JSON_ARRAY: {}, - FORM: {}, - }, + body: { JSON: {}, XML: {}, JSON_ARRAY: {}, FORM: {} }, files: {}, }, { @@ -52952,20 +52793,11 @@ export const data = [ ], }, }, - body: { - JSON: {}, - XML: {}, - JSON_ARRAY: {}, - FORM: {}, - }, + body: { JSON: {}, XML: {}, JSON_ARRAY: {}, FORM: {} }, files: {}, }, ], - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 4, userId: 'u1' }], batched: false, statusCode: 200, destination: { diff --git a/test/integrations/destinations/freshmarketer/processor/data.ts b/test/integrations/destinations/freshmarketer/processor/data.ts index 2af5728f9c..ed920faef0 100644 --- a/test/integrations/destinations/freshmarketer/processor/data.ts +++ b/test/integrations/destinations/freshmarketer/processor/data.ts @@ -1,3130 +1,3147 @@ export const data = [ - { - "name": "freshmarketer", - "description": "Identify call for creating new user", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "rudderstack-476952domain3105.myfreshworks.com" - } - }, - "message": { - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2022-06-22T10:57:58Z", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99099", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - } - }, - "traits": { - "email": "testuser@google.com", - "first_name": "Rk", - "last_name": "Mishra", - "mobileNumber": "1-926-555-9504", - "lifecycleStageId": 71010794467, - "phone": "9988776655", - "owner_id": "70000090119" - }, - "type": "identify", - "sentAt": "2022-04-22T10:57:58Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "body": { - "XML": {}, - "FORM": {}, - "JSON": { - "contact": { - "emails": "testuser@google.com", - "last_name": "Mishra", - "created_at": "2022-06-22T10:57:58Z", - "first_name": "Rk", - "updated_at": "2022-06-22T10:57:58Z", - "external_id": "ea5cfab2-3961-4d8a-8187-3d1858c99099", - "work_number": "9988776655", - "mobile_number": "1-926-555-9504", - "lifecycle_stage_id": 71010794467 - }, - "unique_identifier": { - "emails": "testuser@google.com" - } - }, - "JSON_ARRAY": {} - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Content-Type": "application/json", - "Authorization": "Token token=dummyApiKey" - }, - "version": "1", - "endpoint": "https://rudderstack-476952domain3105.myfreshworks.com/crm/sales/api/contacts/upsert", - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "freshmarketer", - "description": "Identify call with numbers in lifecycleStageId, ownerId", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "rudderstack-476952domain3105.myfreshworks.com" - } - }, - "message": { - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2022-06-22T10:57:58Z", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99099", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - } - }, - "traits": { - "email": "testuser@google.com", - "first_name": "Rk", - "last_name": "Mishra", - "mobileNumber": "1-926-555-9504", - "lifecycleStageId": 71010794467, - "phone": "9988776655", - "owner_id": "70000090119" - }, - "type": "identify", - "sentAt": "2022-04-22T10:57:58Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "body": { - "XML": {}, - "FORM": {}, - "JSON": { - "contact": { - "emails": "testuser@google.com", - "last_name": "Mishra", - "created_at": "2022-06-22T10:57:58Z", - "first_name": "Rk", - "updated_at": "2022-06-22T10:57:58Z", - "external_id": "ea5cfab2-3961-4d8a-8187-3d1858c99099", - "work_number": "9988776655", - "mobile_number": "1-926-555-9504", - "lifecycle_stage_id": 71010794467 - }, - "unique_identifier": { - "emails": "testuser@google.com" - } - }, - "JSON_ARRAY": {} - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Content-Type": "application/json", - "Authorization": "Token token=dummyApiKey" - }, - "version": "1", - "endpoint": "https://rudderstack-476952domain3105.myfreshworks.com/crm/sales/api/contacts/upsert", - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "freshmarketer", - "description": "Identify call with wrong data type in lifecycleStageId, ownerId", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "rudderstack-476952domain3105.myfreshworks.com" - } - }, - "message": { - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2022-06-22T10:57:58Z", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99099", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - } - }, - "traits": { - "email": "testuser@google.com", - "first_name": "Rk", - "last_name": "Mishra", - "mobileNumber": "1-926-555-9504", - "lifecycleStageId": "rudderSample", - "phone": "9988776655", - "ownerId": "rudderSample" - }, - "type": "identify", - "sentAt": "2022-04-22T10:57:58Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "owner_id,lifecycle_stage_id: invalid number format", - "statTags": { - "destType": "FRESHMARKETER", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "freshmarketer", - "description": "Identify call, email is not provided.", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "rudderstack-476952domain3105.myfreshworks.com" - } - }, - "message": { - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2022-06-22T10:57:58Z", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99099", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - } - }, - "traits": { - "first_name": "Rk", - "last_name": "Mishra", - "mobileNumber": "1-926-555-9504", - "lifecycleStageId": "rudderSample", - "phone": "9988776655", - "owner_id": "rudderSample" - }, - "type": "identify", - "sentAt": "2022-04-22T10:57:58Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "Missing required value from \"email\"", - "statTags": { - "destType": "FRESHMARKETER", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "freshmarketer", - "description": "Group call: testing with mock api", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "domain-rudder.myfreshworks.com" - } - }, - "message": { - "messageId": "sadjb-1e2r3fhgb-12bvbbj", - "originalTimestamp": "2022-06-22T10:57:58Z", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99090", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - }, - "traits": { - "email": "testuser@google.com" - } - }, - "traits": { - "groupType": "accounts", - "name": "Mark Twain", - "phone": "919191919191", - "numberOfEmployees": 51, - "annualRevenue": 1000, - "address": "Red Colony", - "city": "Colony", - "state": "Haryana" - }, - "type": "group", - "sentAt": "2022-04-22T10:57:58Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "body": { - "XML": {}, - "FORM": {}, - "JSON": { - "contact": { - "sales_accounts": [ - { - "id": 70003771198, - "name": "div-quer", - "avatar": null, - "partial": true, - "website": null, - "is_primary": true, - "last_contacted": null, - "record_type_id": "71010794477" - }, - { - "id": 70003825177, - "name": "BisleriGroup", - "avatar": null, - "partial": true, - "website": null, - "is_primary": false, - "last_contacted": null, - "record_type_id": "71010794477" - }, - { - "id": 70003771396, - "is_primary": false - } - ] - }, - "unique_identifier": { - "emails": "testuser@google.com" - } - }, - "JSON_ARRAY": {} - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Content-Type": "application/json", - "Authorization": "Token token=dummyApiKey" - }, - "version": "1", - "endpoint": "https://domain-rudder.myfreshworks.com/crm/sales/api/contacts/upsert", - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "freshmarketer", - "description": "Group call: name is required field.", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "domain-rudder.myfreshworks.com" - } - }, - "message": { - "messageId": "sadjb-1e2r3fhgb-12bvbbj", - "originalTimestamp": "2022-06-22T10:57:58Z", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99090", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - }, - "traits": { - "email": "testuser@google.com" - } - }, - "traits": { - "groupType": "accounts", - "phone": "919191919191", - "numberOfEmployees": 51, - "annualRevenue": 1000, - "address": "Red Colony", - "city": "Colony", - "state": "Haryana" - }, - "type": "group", - "sentAt": "2022-04-22T10:57:58Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "Missing required value from \"name\"", - "statTags": { - "destType": "FRESHMARKETER", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "freshmarketer", - "description": "missing message type", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "domain-rudder.myfreshworks.com" - } - }, - "message": { - "messageId": "sadjb-1e2r3fhgb-12bvbbj", - "originalTimestamp": "2022-06-22T10:57:58Z", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99090", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - }, - "traits": { - "email": "testuser4google.com" - } - }, - "traits": { - "name": "Mark Twain", - "phone": "919191919191", - "numberOfEmployees": 51, - "annualRevenue": 1000, - "address": "Red Colony", - "city": "Colony", - "state": "Haryana" - }, - "sentAt": "2022-04-22T10:57:58Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "Message Type is not present. Aborting message.", - "statTags": { - "destType": "FRESHMARKETER", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "freshmarketer", - "description": "Wrong message type", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "domain-rudder.myfreshworks.com" - } - }, - "message": { - "messageId": "sadjb-1e2r3fhgb-12bvbbj", - "originalTimestamp": "2022-06-22T10:57:58Z", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99090", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - }, - "traits": { - "email": "testuser4google.com" - } - }, - "traits": { - "name": "Mark Twain", - "phone": "919191919191", - "numberOfEmployees": 51, - "annualRevenue": 1000, - "address": "Red Colony", - "city": "Colony", - "state": "Haryana" - }, - "type": "page", - "sentAt": "2022-04-22T10:57:58Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "message type page not supported", - "statTags": { - "destType": "FRESHMARKETER", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "freshmarketer", - "description": "Group call: user email is missing", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "domain-rudder.myfreshworks.com" - } - }, - "message": { - "messageId": "sadjb-1e2r3fhgb-12bvbbj", - "originalTimestamp": "2022-06-22T10:57:58Z", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99090", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - }, - "traits": {} - }, - "traits": { - "groupType": "accounts", - "name": "div-quer", - "phone": "919191919191", - "numberOfEmployees": 51, - "annualRevenue": 1000, - "address": "Red Colony", - "city": "Lal colony", - "state": "Haryana" - }, - "type": "group", - "sentAt": "2022-04-22T10:57:58Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "body": { - "XML": {}, - "FORM": {}, - "JSON": { - "sales_account": { - "city": "Lal colony", - "name": "div-quer", - "phone": "919191919191", - "state": "Haryana", - "address": "Red Colony", - "created_at": "2022-06-22T10:57:58Z", - "updated_at": "2022-06-22T10:57:58Z", - "annual_revenue": 1000, - "number_of_employees": 51 - }, - "unique_identifier": { - "name": "div-quer" - } - }, - "JSON_ARRAY": {} - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Content-Type": "application/json", - "Authorization": "Token token=dummyApiKey" - }, - "version": "1", - "endpoint": "https://domain-rudder.myfreshworks.com/crm/sales/api/sales_accounts/upsert", - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "freshmarketer", - "description": "Identify call: Email is not present", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2022-06-22T10:57:58Z", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99099", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - } - }, - "traits": { - "first_name": "Rk", - "last_name": "Narayan", - "mobileNumber": "1-926-555-9504", - "phone": "9988776655" - }, - "type": "identify", - "sentAt": "2022-04-22T10:57:58Z" - }, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "domain-rudder.myfreshworks.com" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "Missing required value from \"email\"", - "statTags": { - "destType": "FRESHMARKETER", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "freshmarketer", - "description": "Track call, event is not supported.", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.5" - }, - "traits": { - "name": "Shehan Study", - "category": "SampleIdentify", - "email": "test@rudderstack.com", - "plan": "Open source", - "logins": 5, - "createdAt": 1599264000 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.5" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 0.8999999761581421 - }, - "campaign": { - "source": "google", - "medium": "medium", - "term": "keyword", - "content": "some content", - "name": "some campaign", - "test": "other value" - }, - "page": { - "path": "/destinations/amplitude", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/amplitude", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - } - }, - "type": "track", - "messageId": "dd46338d-5f83-493b-bd28-3b48f55d0be8", - "originalTimestamp": "2020-10-20T08:14:28.778Z", - "anonymousId": "my-anonymous-id-new", - "userId": "newUserIdAlias", - "properties": { - "product_name": "Shirt", - "brand": "Wrogn" - }, - "event": "Add to Cart", - "previousId": "sampleusrRudder3", - "sentAt": "2020-10-20T08:14:28.778Z" - }, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "domain-rudder.myfreshworks.com" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "event name Add to Cart is not supported. Aborting!", - "statTags": { - "destType": "FRESHMARKETER", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "freshmarketer", - "description": "Track call: some required properties is missing for sales_activity", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.5" - }, - "traits": { - "name": "Shehan Study", - "category": "SampleIdentify", - "email": "test@rudderstack.com", - "plan": "Open source", - "logins": 5, - "createdAt": 1599264000 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.5" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 0.8999999761581421 - }, - "campaign": { - "source": "google", - "medium": "medium", - "term": "keyword", - "content": "some content", - "name": "some campaign", - "test": "other value" - }, - "page": { - "path": "/destinations/amplitude", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/amplitude", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - } - }, - "type": "track", - "messageId": "dd46338d-5f83-493b-bd28-3b48f55d0be8", - "originalTimestamp": "2020-10-20T08:14:28.778Z", - "anonymousId": "my-anonymous-id-new", - "userId": "newUserIdAlias", - "email": "test@rudderstack.com", - "properties": { - "product_name": "Shirt", - "brand": "Wrogn" - }, - "event": "sales_activity", - "previousId": "sampleusrRudder3", - "sentAt": "2020-10-20T08:14:28.778Z" - }, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "domain-rudder.myfreshworks.com" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "Missing required value from \"properties.title\"", - "statTags": { - "destType": "FRESHMARKETER", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "freshmarketer", - "description": "Track call: for salesActivityName", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.5" - }, - "traits": { - "name": "Shehan Study", - "category": "SampleIdentify", - "email": "test@rudderstack.com", - "plan": "Open source", - "logins": 5, - "createdAt": 1599264000 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.5" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 0.8999999761581421 - }, - "campaign": { - "source": "google", - "medium": "medium", - "term": "keyword", - "content": "some content", - "name": "some campaign", - "test": "other value" - }, - "page": { - "path": "/destinations/amplitude", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/amplitude", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "externalId": { - "type": "Contact" - } - }, - "type": "track", - "messageId": "dd46338d-5f83-493b-bd28-3b48f55d0be8", - "originalTimestamp": "2020-10-20T08:14:28.778Z", - "anonymousId": "my-anonymous-id-new", - "userId": "newUserIdAlias", - "email": "test@rudderstack.com", - "properties": { - "product_name": "Shirt", - "brand": "Wrogn", - "salesActivityName": "own-calender", - "title": "new Contact", - "startDate": "2021-05-04T17:00:00+05:30", - "endDate": "2022-06-04T17:30:00+05:30", - "ownerId": "70054866612" - }, - "event": "sales_activity", - "previousId": "sampleusrRudder3", - "sentAt": "2020-10-20T08:14:28.778Z" - }, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "domain-rudder.myfreshworks.com" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "body": { - "XML": {}, - "FORM": {}, - "JSON": { - "sales_activity": { - "title": "new Contact", - "end_date": "2022-06-04T17:30:00+05:30", - "owner_id": "70054866612", - "start_date": "2021-05-04T17:00:00+05:30", - "created_at": "2020-10-20T08:14:28.778Z", - "updated_at": "2020-10-20T08:14:28.778Z", - "targetable_id": 70054866612, - "targetable_type": "Contact", - "sales_activity_name": "own-calender", - "sales_activity_type_id": 70000666879 - } - }, - "JSON_ARRAY": {} - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Content-Type": "application/json", - "Authorization": "Token token=dummyApiKey" - }, - "version": "1", - "endpoint": "https://domain-rudder.myfreshworks.com/crm/sales/api/sales_activities", - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "freshmarketer", - "description": "Track call: lifecycle_stage_id", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.5" - }, - "traits": { - "name": "Shehan Study", - "category": "SampleIdentify", - "plan": "Open source", - "logins": 5, - "createdAt": 1599264000 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.5" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 0.8999999761581421 - }, - "campaign": { - "source": "google", - "medium": "medium", - "term": "keyword", - "content": "some content", - "name": "some campaign", - "test": "other value" - }, - "page": { - "path": "/destinations/amplitude", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/amplitude", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - } - }, - "type": "track", - "messageId": "dd46338d-5f83-493b-bd28-3b48f55d0be8", - "originalTimestamp": "2020-10-20T08:14:28.778Z", - "anonymousId": "my-anonymous-id-new", - "userId": "newUserIdAlias", - "properties": { - "email": "jamessampleton3@gmail.com", - "lifecycleStageId": "71012139273", - "title": "new Contact", - "startDate": "2021-05-04T17:00:00+05:30", - "endDate": "2022-06-04T17:30:00+05:30", - "ownerId": "70054866612", - "targetableType": "Contact" - }, - "event": "lifecycle_stage", - "previousId": "sampleusrRudder3", - "sentAt": "2020-10-20T08:14:28.778Z" - }, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "domain-rudder.myfreshworks.com" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://domain-rudder.myfreshworks.com/crm/sales/api/contacts/upsert", - "headers": { - "Authorization": "Token token=dummyApiKey", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "contact": { - "lifecycle_stage_id": "71012139273" - }, - "unique_identifier": { - "emails": "jamessampleton3@gmail.com" - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "freshmarketer", - "description": "Track call: In lifecycle stage, email is missing", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.5" - }, - "traits": { - "name": "Shehan Study", - "category": "SampleIdentify", - "plan": "Open source", - "logins": 5, - "createdAt": 1599264000 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.5" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 0.8999999761581421 - }, - "campaign": { - "source": "google", - "medium": "medium", - "term": "keyword", - "content": "some content", - "name": "some campaign", - "test": "other value" - }, - "page": { - "path": "/destinations/amplitude", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/amplitude", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - } - }, - "type": "track", - "messageId": "dd46338d-5f83-493b-bd28-3b48f55d0be8", - "originalTimestamp": "2020-10-20T08:14:28.778Z", - "anonymousId": "my-anonymous-id-new", - "userId": "newUserIdAlias", - "properties": { - "lifecycleStageId": "71012139273", - "title": "new Contact", - "startDate": "2021-05-04T17:00:00+05:30", - "endDate": "2022-06-04T17:30:00+05:30", - "ownerId": "70054866612", - "targetableType": "Contact" - }, - "event": "lifecycle_stage", - "previousId": "sampleusrRudder3", - "sentAt": "2020-10-20T08:14:28.778Z" - }, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "domain-rudder.myfreshworks.com" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "email is required for updating life Cycle Stages. Aborting!", - "statTags": { - "destType": "FRESHMARKETER", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "freshmarketer", - "description": "Track call: Either of lifecycleStageName or lifecycleStageId is required", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.5" - }, - "traits": { - "name": "Shehan Study", - "category": "SampleIdentify", - "email": "test@rudderstack.com", - "plan": "Open source", - "logins": 5, - "createdAt": 1599264000 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.5" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 0.8999999761581421 - }, - "campaign": { - "source": "google", - "medium": "medium", - "term": "keyword", - "content": "some content", - "name": "some campaign", - "test": "other value" - }, - "page": { - "path": "/destinations/amplitude", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/amplitude", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - } - }, - "type": "track", - "messageId": "dd46338d-5f83-493b-bd28-3b48f55d0be8", - "originalTimestamp": "2020-10-20T08:14:28.778Z", - "anonymousId": "my-anonymous-id-new", - "userId": "newUserIdAlias", - "email": "jamessampleton3@gmail.com", - "properties": { - "title": "new Contact", - "startDate": "2021-05-04T17:00:00+05:30", - "endDate": "2022-06-04T17:30:00+05:30", - "ownerId": "70054866612", - "targetableType": "Contact" - }, - "event": "lifecycle_stage", - "previousId": "sampleusrRudder3", - "sentAt": "2020-10-20T08:14:28.778Z" - }, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "domain-rudder.myfreshworks.com" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "Either of lifecycleStageName or lifecycleStageId is required. Aborting!", - "statTags": { - "destType": "FRESHMARKETER", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "freshmarketer", - "description": "Track call: Either of sales activity name or sales activity type id is required", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.5" - }, - "traits": { - "name": "Shehan Study", - "category": "SampleIdentify", - "email": "test@rudderstack.com", - "plan": "Open source", - "logins": 5, - "createdAt": 1599264000 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.5" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 0.8999999761581421 - }, - "campaign": { - "source": "google", - "medium": "medium", - "term": "keyword", - "content": "some content", - "name": "some campaign", - "test": "other value" - }, - "page": { - "path": "/destinations/amplitude", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/amplitude", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "externalId": { - "type": "Contact" - } - }, - "type": "track", - "messageId": "dd46338d-5f83-493b-bd28-3b48f55d0be8", - "originalTimestamp": "2020-10-20T08:14:28.778Z", - "anonymousId": "my-anonymous-id-new", - "userId": "newUserIdAlias", - "email": "test@rudderstack.com", - "properties": { - "product_name": "Shirt", - "brand": "Wrogn", - "title": "new Contact", - "startDate": "2021-05-04T17:00:00+05:30", - "endDate": "2022-06-04T17:30:00+05:30", - "ownerId": "70054866612" - }, - "event": "sales_activity", - "previousId": "sampleusrRudder3", - "sentAt": "2020-10-20T08:14:28.778Z" - }, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "domain-rudder.myfreshworks.com" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "Either of sales activity name or sales activity type id is required. Aborting!", - "statTags": { - "destType": "FRESHMARKETER", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "freshmarketer", - "description": "Track call: Either of email or targetable_id is required for creating sales activity.", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.5" - }, - "traits": { - "name": "Shehan Study", - "category": "SampleIdentify", - "plan": "Open source", - "logins": 5, - "createdAt": 1599264000 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.5" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 0.8999999761581421 - }, - "campaign": { - "source": "google", - "medium": "medium", - "term": "keyword", - "content": "some content", - "name": "some campaign", - "test": "other value" - }, - "page": { - "path": "/destinations/amplitude", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/amplitude", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "externalId": { - "type": "Contact" - } - }, - "type": "track", - "messageId": "dd46338d-5f83-493b-bd28-3b48f55d0be8", - "originalTimestamp": "2020-10-20T08:14:28.778Z", - "anonymousId": "my-anonymous-id-new", - "userId": "newUserIdAlias", - "properties": { - "product_name": "Shirt", - "brand": "Wrogn", - "salesActivityName": "own-calender", - "title": "new Contact", - "startDate": "2021-05-04T17:00:00+05:30", - "endDate": "2022-06-04T17:30:00+05:30", - "ownerId": "70054866612" - }, - "event": "sales_activity", - "previousId": "sampleusrRudder3", - "sentAt": "2020-10-20T08:14:28.778Z" - }, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "domain-rudder.myfreshworks.com" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "Either of email or targetable_id is required for creating sales activity. Aborting!", - "statTags": { - "destType": "FRESHMARKETER", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "freshmarketer", - "description": "Track call: sales activity with salesActivityTypeId", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.5" - }, - "traits": { - "name": "Shehan Study", - "category": "SampleIdentify", - "email": "test@rudderstack.com", - "plan": "Open source", - "logins": 5, - "createdAt": 1599264000 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.5" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 0.8999999761581421 - }, - "campaign": { - "source": "google", - "medium": "medium", - "term": "keyword", - "content": "some content", - "name": "some campaign", - "test": "other value" - }, - "page": { - "path": "/destinations/amplitude", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/amplitude", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "externalId": { - "type": "Contact" - } - }, - "type": "track", - "messageId": "dd46338d-5f83-493b-bd28-3b48f55d0be8", - "originalTimestamp": "2020-10-20T08:14:28.778Z", - "anonymousId": "my-anonymous-id-new", - "userId": "newUserIdAlias", - "email": "jamessampleton3@gmail.com", - "properties": { - "salesActivityTypeId": "70000663932", - "title": "new Contact", - "startDate": "2021-05-04T17:00:00+05:30", - "endDate": "2022-06-04T17:30:00+05:30", - "ownerId": "70054866612" - }, - "event": "sales_activity", - "previousId": "sampleusrRudder3", - "sentAt": "2020-10-20T08:14:28.778Z" - }, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "domain-rudder.myfreshworks.com" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "body": { - "XML": {}, - "FORM": {}, - "JSON": { - "sales_activity": { - "title": "new Contact", - "end_date": "2022-06-04T17:30:00+05:30", - "owner_id": "70054866612", - "start_date": "2021-05-04T17:00:00+05:30", - "created_at": "2020-10-20T08:14:28.778Z", - "updated_at": "2020-10-20T08:14:28.778Z", - "targetable_id": 70054866612, - "targetable_type": "Contact", - "sales_activity_type_id": "70000663932" - } - }, - "JSON_ARRAY": {} - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Content-Type": "application/json", - "Authorization": "Token token=dummyApiKey" - }, - "version": "1", - "endpoint": "https://domain-rudder.myfreshworks.com/crm/sales/api/sales_activities", - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "freshmarketer", - "description": "Track call: updated sales activity with salesActivityTypeId and targetableId", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.5" - }, - "traits": { - "name": "Shehan Study", - "category": "SampleIdentify", - "email": "test@rudderstack.com", - "plan": "Open source", - "logins": 5, - "createdAt": 1599264000 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.5" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 0.8999999761581421 - }, - "campaign": { - "source": "google", - "medium": "medium", - "term": "keyword", - "content": "some content", - "name": "some campaign", - "test": "other value" - }, - "page": { - "path": "/destinations/amplitude", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/amplitude", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "externalId": { - "id": "70052305908", - "type": "Contact" - } - }, - "type": "track", - "messageId": "dd46338d-5f83-493b-bd28-3b48f55d0be8", - "originalTimestamp": "2020-10-20T08:14:28.778Z", - "anonymousId": "my-anonymous-id-new", - "userId": "newUserIdAlias", - "properties": { - "salesActivityTypeId": "70000663932", - "title": "new Contact", - "startDate": "2021-05-04T17:00:00+05:30", - "endDate": "2022-06-04T17:30:00+05:30", - "ownerId": "70054866612" - }, - "event": "sales_activity", - "previousId": "sampleusrRudder3", - "sentAt": "2020-10-20T08:14:28.778Z" - }, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "domain-rudder.myfreshworks.com" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "body": { - "XML": {}, - "FORM": {}, - "JSON": { - "sales_activity": { - "title": "new Contact", - "end_date": "2022-06-04T17:30:00+05:30", - "owner_id": "70054866612", - "start_date": "2021-05-04T17:00:00+05:30", - "created_at": "2020-10-20T08:14:28.778Z", - "updated_at": "2020-10-20T08:14:28.778Z", - "targetable_id": "70052305908", - "targetable_type": "Contact", - "sales_activity_type_id": "70000663932" - } - }, - "JSON_ARRAY": {} - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Content-Type": "application/json", - "Authorization": "Token token=dummyApiKey" - }, - "version": "1", - "endpoint": "https://domain-rudder.myfreshworks.com/crm/sales/api/sales_activities", - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "freshmarketer", - "description": "Unsupported message Type", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "type": "page", - "messageId": "dd46338d-5f83-493b-bd28-3b48f55d0be8", - "originalTimestamp": "2020-10-20T08:14:28.778Z", - "anonymousId": "my-anonymous-id-new", - "userId": "newUserIdAlias", - "email": "jamessampleton3@gmail.com", - "properties": { - "lifecycleStageId": "71012139273", - "title": "new Contact", - "startDate": "2021-05-04T17:00:00+05:30", - "endDate": "2022-06-04T17:30:00+05:30", - "ownerId": "70054866612", - "targetableType": "Contact" - }, - "event": "lifecycle_stage", - "previousId": "sampleusrRudder3", - "sentAt": "2020-10-20T08:14:28.778Z" - }, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "domain-rudder.myfreshworks.com" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "message type page not supported", - "statTags": { - "destType": "FRESHMARKETER", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "freshmarketer", - "description": "Group call: email is required for adding contacts to marketing lists", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "messageId": "sadjb-1e2r3fhgb-12bvbbj", - "originalTimestamp": "2022-06-22T10:57:58Z", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99090", - "traits": { - "groupType": "marketing_lists" - }, - "type": "group", - "sentAt": "2022-04-22T10:57:58Z" - }, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "domain-rudder.myfreshworks.com" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "email is required for adding in the marketing lists. Aborting!", - "statTags": { - "destType": "FRESHMARKETER", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "freshmarketer", - "description": "Group call: group type is not present", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "messageId": "sadjb-1e2r3fhgb-12bvbbj", - "originalTimestamp": "2022-06-22T10:57:58Z", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99090", - "traits": { - "name": "Mark Twain", - "phone": "919191919191", - "numberOfEmployees": 51, - "annualRevenue": 1000, - "address": "Red Colony", - "city": "Colony", - "state": "Haryana" - }, - "type": "group", - "sentAt": "2022-04-22T10:57:58Z" - }, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "domain-rudder.myfreshworks.com" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "groupType is required for Group call", - "statTags": { - "destType": "FRESHMARKETER", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "freshmarketer", - "description": "Group call: add contacts in existing marketing lists", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "messageId": "sadjb-1e2r3fhgb-12bvbbj", - "originalTimestamp": "2022-06-22T10:57:58Z", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99090", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - }, - "traits": { - "email": "jamessampleton1@gmail.com" - } - }, - "traits": { - "groupType": "marketing_lists", - "listName": "Voda 5G", - "address": "Red Colony", - "city": "Colony", - "state": "Haryana" - }, - "type": "group", - "sentAt": "2022-04-22T10:57:58Z" - }, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "domain-rudder.myfreshworks.com" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "body": { - "XML": {}, - "FORM": {}, - "JSON": { - "ids": [ - 70054866612 - ] - }, - "JSON_ARRAY": {} - }, - "type": "REST", - "files": {}, - "method": "PUT", - "params": {}, - "headers": { - "Content-Type": "application/json", - "Authorization": "Token token=dummyApiKey" - }, - "version": "1", - "endpoint": "https://domain-rudder.myfreshworks.com/crm/sales/api/lists/70000059716/add_contacts", - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "freshmarketer", - "description": "Group call: groupType is not supported", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "messageId": "sadjb-1e2r3fhgb-12bvbbj", - "originalTimestamp": "2022-06-22T10:57:58Z", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99090", - "traits": { - "groupType": "marketing", - "listName": "Voda 5G", - "address": "Red Colony", - "city": "Colony", - "state": "Haryana" - }, - "type": "group", - "sentAt": "2022-04-22T10:57:58Z" - }, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "domain-rudder.myfreshworks.com" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "groupType marketing is not supported. Aborting!", - "statTags": { - "destType": "FRESHMARKETER", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "freshmarketer", - "description": "Group call: listId or listName is required", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "messageId": "sadjb-1e2r3fhgb-12bvbbj", - "originalTimestamp": "2022-06-22T10:57:58Z", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99090", - "context": { - "traits": { - "email": "jamessampleton1@gmail.com" - } - }, - "traits": { - "groupType": "marketing_lists", - "address": "Red Colony", - "city": "Colony", - "state": "Haryana" - }, - "type": "group", - "sentAt": "2022-04-22T10:57:58Z" - }, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "domain-rudder.myfreshworks.com" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "listId or listName is required. Aborting!", - "statTags": { - "destType": "FRESHMARKETER", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "freshmarketer", - "description": "Group call: add marketing lists with listId", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "messageId": "sadjb-1e2r3fhgb-12bvbbj", - "originalTimestamp": "2022-06-22T10:57:58Z", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99090", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - }, - "traits": { - "email": "jamessampleton1@gmail.com" - } - }, - "traits": { - "listId": "70000058627", - "groupType": "marketing_lists", - "address": "Red Colony", - "city": "Colony", - "state": "Haryana" - }, - "type": "group", - "sentAt": "2022-04-22T10:57:58Z" - }, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "domain-rudder.myfreshworks.com" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "body": { - "XML": {}, - "FORM": {}, - "JSON": { - "ids": [ - 70054866612 - ] - }, - "JSON_ARRAY": {} - }, - "type": "REST", - "files": {}, - "method": "PUT", - "params": {}, - "headers": { - "Content-Type": "application/json", - "Authorization": "Token token=dummyApiKey" - }, - "version": "1", - "endpoint": "https://domain-rudder.myfreshworks.com/crm/sales/api/lists/70000058627/add_contacts", - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "freshmarketer", - "description": "Track call: with wrong sales activity name", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.5" - }, - "traits": { - "name": "Shehan Study", - "category": "SampleIdentify", - "email": "test@rudderstack.com", - "plan": "Open source", - "logins": 5, - "createdAt": 1599264000 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.5" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 0.8999999761581421 - }, - "campaign": { - "source": "google", - "medium": "medium", - "term": "keyword", - "content": "some content", - "name": "some campaign", - "test": "other value" - }, - "page": { - "path": "/destinations/amplitude", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/amplitude", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "externalId": { - "type": "Contact" - } - }, - "type": "track", - "messageId": "dd46338d-5f83-493b-bd28-3b48f55d0be8", - "originalTimestamp": "2020-10-20T08:14:28.778Z", - "anonymousId": "my-anonymous-id-new", - "userId": "newUserIdAlias", - "email": "test@rudderstack.com", - "properties": { - "product_name": "Shirt", - "brand": "Wrogn", - "salesActivityName": "own-list", - "title": "new Contact", - "startDate": "2021-05-04T17:00:00+05:30", - "endDate": "2022-06-04T17:30:00+05:30", - "ownerId": "70054866612" - }, - "event": "sales_activity", - "previousId": "sampleusrRudder3", - "sentAt": "2020-10-20T08:14:28.778Z" - }, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "domain-rudder.myfreshworks.com" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "sales Activity own-list doesn't exists. Aborting!", - "statTags": { - "destType": "FRESHMARKETER", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "freshmarketer", - "description": "Track call: update contacts with sales Activity name", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.5" - }, - "traits": { - "name": "Shehan Study", - "category": "SampleIdentify", - "plan": "Open source", - "logins": 5, - "createdAt": 1599264000 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.5" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 0.8999999761581421 - }, - "campaign": { - "source": "google", - "medium": "medium", - "term": "keyword", - "content": "some content", - "name": "some campaign", - "test": "other value" - }, - "page": { - "path": "/destinations/amplitude", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/amplitude", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - } - }, - "type": "track", - "messageId": "dd46338d-5f83-493b-bd28-3b48f55d0be8", - "originalTimestamp": "2020-10-20T08:14:28.778Z", - "anonymousId": "my-anonymous-id-new", - "userId": "newUserIdAlias", - "properties": { - "email": "jamessampleton6@gmail.com", - "lifecycleStageName": "final Customer", - "title": "new Contact", - "startDate": "2021-05-04T17:00:00+05:30", - "endDate": "2022-06-04T17:30:00+05:30", - "ownerId": "70054866612", - "targetableType": "Contact" - }, - "event": "lifecycle_stage", - "previousId": "sampleusrRudder3", - "sentAt": "2020-10-20T08:14:28.778Z" - }, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "domain-rudder.myfreshworks.com" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "body": { - "XML": {}, - "FORM": {}, - "JSON": { - "contact": { - "lifecycle_stage_id": 71012806409 - }, - "unique_identifier": { - "emails": "jamessampleton6@gmail.com" - } - }, - "JSON_ARRAY": {} - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Content-Type": "application/json", - "Authorization": "Token token=dummyApiKey" - }, - "version": "1", - "endpoint": "https://domain-rudder.myfreshworks.com/crm/sales/api/contacts/upsert", - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "freshmarketer", - "description": "Track call: with wrong lifecycleStageName", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.5" - }, - "traits": { - "name": "Shehan Study", - "category": "SampleIdentify", - "plan": "Open source", - "logins": 5, - "createdAt": 1599264000 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.5" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 0.8999999761581421 - }, - "campaign": { - "source": "google", - "medium": "medium", - "term": "keyword", - "content": "some content", - "name": "some campaign", - "test": "other value" - }, - "page": { - "path": "/destinations/amplitude", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/amplitude", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - } - }, - "type": "track", - "messageId": "dd46338d-5f83-493b-bd28-3b48f55d0be8", - "originalTimestamp": "2020-10-20T08:14:28.778Z", - "anonymousId": "my-anonymous-id-new", - "userId": "newUserIdAlias", - "properties": { - "email": "jamessampleton6@gmail.com", - "lifecycleStageName": "final ExCustomer", - "title": "new Contact", - "startDate": "2021-05-04T17:00:00+05:30", - "endDate": "2022-06-04T17:30:00+05:30", - "ownerId": "70054866612", - "targetableType": "Contact" - }, - "event": "lifecycle_stage", - "previousId": "sampleusrRudder3", - "sentAt": "2020-10-20T08:14:28.778Z" - }, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "domain-rudder.myfreshworks.com" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "failed to fetch lifeCycleStages with final ExCustomer", - "statTags": { - "destType": "FRESHMARKETER", - "errorCategory": "network", - "errorType": "aborted", - "feature": "processor", - "implementation": "native", - "meta": "instrumentation", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "freshmarketer", - "description": "Track call: Multiplexing", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.5" - }, - "traits": { - "name": "Shehan Study", - "category": "SampleIdentify", - "email": "test@rudderstack.com", - "plan": "Open source", - "logins": 5, - "createdAt": 1599264000 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.5" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 0.8999999761581421 - }, - "campaign": { - "source": "google", - "medium": "medium", - "term": "keyword", - "content": "some content", - "name": "some campaign", - "test": "other value" - }, - "page": { - "path": "/destinations/amplitude", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/amplitude", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "externalId": { - "type": "Contact" - } - }, - "type": "track", - "messageId": "dd46338d-5f83-493b-bd28-3b48f55d0be8", - "originalTimestamp": "2020-10-20T08:14:28.778Z", - "anonymousId": "my-anonymous-id-new", - "userId": "newUserIdAlias", - "email": "test@rudderstack.com", - "properties": { - "product_name": "Shirt", - "brand": "Wrogn", - "salesActivityName": "own-calender", - "title": "new Contact", - "startDate": "2021-05-04T17:00:00+05:30", - "endDate": "2022-06-04T17:30:00+05:30", - "ownerId": "70054866612", - "lifecycleStageId": "71012139273" - }, - "event": "test_activity", - "previousId": "sampleusrRudder3", - "sentAt": "2020-10-20T08:14:28.778Z" - }, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "domain-rudder.myfreshworks.com", - "rudderEventsToFreshmarketerEvents": [ - { - "from": "test_activity", - "to": "sales_activity" - }, - { - "from": "test_activity", - "to": "lifecycle_stage" - }, - { - "from": "test_event", - "to": "lifecycle_stage" - } - ] - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "body": { - "XML": {}, - "FORM": {}, - "JSON": { - "sales_activity": { - "title": "new Contact", - "end_date": "2022-06-04T17:30:00+05:30", - "owner_id": "70054866612", - "start_date": "2021-05-04T17:00:00+05:30", - "created_at": "2020-10-20T08:14:28.778Z", - "updated_at": "2020-10-20T08:14:28.778Z", - "targetable_id": 70054866612, - "targetable_type": "Contact", - "sales_activity_name": "own-calender", - "sales_activity_type_id": 70000666879 - } - }, - "JSON_ARRAY": {} - }, - "type": "REST", - "files": {}, - "method": "POST", - "userId": "", - "params": {}, - "headers": { - "Content-Type": "application/json", - "Authorization": "Token token=dummyApiKey" - }, - "version": "1", - "endpoint": "https://domain-rudder.myfreshworks.com/crm/sales/api/sales_activities" - }, - "statusCode": 200 - }, - { - "output": { - "body": { - "JSON": { - "contact": { - "lifecycle_stage_id": "71012139273" - }, - "unique_identifier": { - "emails": "test@rudderstack.com" - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "type": "REST", - "files": {}, - "userId": "", - "method": "POST", - "params": {}, - "headers": { - "Authorization": "Token token=dummyApiKey", - "Content-Type": "application/json" - }, - "version": "1", - "endpoint": "https://domain-rudder.myfreshworks.com/crm/sales/api/contacts/upsert" - }, - "statusCode": 200 - } - ] - } - } - } -] \ No newline at end of file + { + name: 'freshmarketer', + description: 'Identify call for creating new user', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'rudderstack-476952domain3105.myfreshworks.com', + }, + }, + message: { + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2022-06-22T10:57:58Z', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99099', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + }, + traits: { + email: 'testuser@google.com', + first_name: 'Rk', + last_name: 'Mishra', + mobileNumber: '1-926-555-9504', + lifecycleStageId: 71010794467, + phone: '9988776655', + owner_id: '70000090119', + }, + type: 'identify', + sentAt: '2022-04-22T10:57:58Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + FORM: {}, + JSON: { + contact: { + emails: 'testuser@google.com', + last_name: 'Mishra', + created_at: '2022-06-22T10:57:58Z', + first_name: 'Rk', + updated_at: '2022-06-22T10:57:58Z', + external_id: 'ea5cfab2-3961-4d8a-8187-3d1858c99099', + work_number: '9988776655', + mobile_number: '1-926-555-9504', + lifecycle_stage_id: 71010794467, + }, + unique_identifier: { + emails: 'testuser@google.com', + }, + }, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { + 'Content-Type': 'application/json', + Authorization: 'Token token=dummyApiKey', + }, + version: '1', + endpoint: + 'https://rudderstack-476952domain3105.myfreshworks.com/crm/sales/api/contacts/upsert', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'freshmarketer', + description: 'Identify call with numbers in lifecycleStageId, ownerId', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'rudderstack-476952domain3105.myfreshworks.com', + }, + }, + message: { + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2022-06-22T10:57:58Z', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99099', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + }, + traits: { + email: 'testuser@google.com', + first_name: 'Rk', + last_name: 'Mishra', + mobileNumber: '1-926-555-9504', + lifecycleStageId: 71010794467, + phone: '9988776655', + owner_id: '70000090119', + }, + type: 'identify', + sentAt: '2022-04-22T10:57:58Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + FORM: {}, + JSON: { + contact: { + emails: 'testuser@google.com', + last_name: 'Mishra', + created_at: '2022-06-22T10:57:58Z', + first_name: 'Rk', + updated_at: '2022-06-22T10:57:58Z', + external_id: 'ea5cfab2-3961-4d8a-8187-3d1858c99099', + work_number: '9988776655', + mobile_number: '1-926-555-9504', + lifecycle_stage_id: 71010794467, + }, + unique_identifier: { + emails: 'testuser@google.com', + }, + }, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { + 'Content-Type': 'application/json', + Authorization: 'Token token=dummyApiKey', + }, + version: '1', + endpoint: + 'https://rudderstack-476952domain3105.myfreshworks.com/crm/sales/api/contacts/upsert', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'freshmarketer', + description: 'Identify call with wrong data type in lifecycleStageId, ownerId', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'rudderstack-476952domain3105.myfreshworks.com', + }, + }, + message: { + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2022-06-22T10:57:58Z', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99099', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + }, + traits: { + email: 'testuser@google.com', + first_name: 'Rk', + last_name: 'Mishra', + mobileNumber: '1-926-555-9504', + lifecycleStageId: 'rudderSample', + phone: '9988776655', + ownerId: 'rudderSample', + }, + type: 'identify', + sentAt: '2022-04-22T10:57:58Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'owner_id,lifecycle_stage_id: invalid number format', + statTags: { + destType: 'FRESHMARKETER', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'freshmarketer', + description: 'Identify call, email is not provided.', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'rudderstack-476952domain3105.myfreshworks.com', + }, + }, + message: { + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2022-06-22T10:57:58Z', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99099', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + }, + traits: { + first_name: 'Rk', + last_name: 'Mishra', + mobileNumber: '1-926-555-9504', + lifecycleStageId: 'rudderSample', + phone: '9988776655', + owner_id: 'rudderSample', + }, + type: 'identify', + sentAt: '2022-04-22T10:57:58Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Missing required value from "email"', + statTags: { + destType: 'FRESHMARKETER', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'freshmarketer', + description: 'Group call: testing with mock api', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'domain-rudder.myfreshworks.com', + }, + }, + message: { + messageId: 'sadjb-1e2r3fhgb-12bvbbj', + originalTimestamp: '2022-06-22T10:57:58Z', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + traits: { + email: 'testuser@google.com', + }, + }, + traits: { + groupType: 'accounts', + name: 'Mark Twain', + phone: '919191919191', + numberOfEmployees: 51, + annualRevenue: 1000, + address: 'Red Colony', + city: 'Colony', + state: 'Haryana', + }, + type: 'group', + sentAt: '2022-04-22T10:57:58Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + FORM: {}, + JSON: { + contact: { + sales_accounts: [ + { + id: 70003771198, + name: 'div-quer', + avatar: null, + partial: true, + website: null, + is_primary: true, + last_contacted: null, + record_type_id: '71010794477', + }, + { + id: 70003825177, + name: 'BisleriGroup', + avatar: null, + partial: true, + website: null, + is_primary: false, + last_contacted: null, + record_type_id: '71010794477', + }, + { + id: 70003771396, + is_primary: false, + }, + ], + }, + unique_identifier: { + emails: 'testuser@google.com', + }, + }, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { + 'Content-Type': 'application/json', + Authorization: 'Token token=dummyApiKey', + }, + version: '1', + endpoint: 'https://domain-rudder.myfreshworks.com/crm/sales/api/contacts/upsert', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'freshmarketer', + description: 'Group call: name is required field.', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'domain-rudder.myfreshworks.com', + }, + }, + message: { + messageId: 'sadjb-1e2r3fhgb-12bvbbj', + originalTimestamp: '2022-06-22T10:57:58Z', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + traits: { + email: 'testuser@google.com', + }, + }, + traits: { + groupType: 'accounts', + phone: '919191919191', + numberOfEmployees: 51, + annualRevenue: 1000, + address: 'Red Colony', + city: 'Colony', + state: 'Haryana', + }, + type: 'group', + sentAt: '2022-04-22T10:57:58Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Missing required value from "name"', + statTags: { + destType: 'FRESHMARKETER', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'freshmarketer', + description: 'missing message type', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'domain-rudder.myfreshworks.com', + }, + }, + message: { + messageId: 'sadjb-1e2r3fhgb-12bvbbj', + originalTimestamp: '2022-06-22T10:57:58Z', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + traits: { + email: 'testuser4google.com', + }, + }, + traits: { + name: 'Mark Twain', + phone: '919191919191', + numberOfEmployees: 51, + annualRevenue: 1000, + address: 'Red Colony', + city: 'Colony', + state: 'Haryana', + }, + sentAt: '2022-04-22T10:57:58Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Message Type is not present. Aborting message.', + statTags: { + destType: 'FRESHMARKETER', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'freshmarketer', + description: 'Wrong message type', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'domain-rudder.myfreshworks.com', + }, + }, + message: { + messageId: 'sadjb-1e2r3fhgb-12bvbbj', + originalTimestamp: '2022-06-22T10:57:58Z', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + traits: { + email: 'testuser4google.com', + }, + }, + traits: { + name: 'Mark Twain', + phone: '919191919191', + numberOfEmployees: 51, + annualRevenue: 1000, + address: 'Red Colony', + city: 'Colony', + state: 'Haryana', + }, + type: 'page', + sentAt: '2022-04-22T10:57:58Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'message type page not supported', + statTags: { + destType: 'FRESHMARKETER', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'freshmarketer', + description: 'Group call: user email is missing', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'domain-rudder.myfreshworks.com', + }, + }, + message: { + messageId: 'sadjb-1e2r3fhgb-12bvbbj', + originalTimestamp: '2022-06-22T10:57:58Z', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + traits: {}, + }, + traits: { + groupType: 'accounts', + name: 'div-quer', + phone: '919191919191', + numberOfEmployees: 51, + annualRevenue: 1000, + address: 'Red Colony', + city: 'Lal colony', + state: 'Haryana', + }, + type: 'group', + sentAt: '2022-04-22T10:57:58Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + FORM: {}, + JSON: { + sales_account: { + city: 'Lal colony', + name: 'div-quer', + phone: '919191919191', + state: 'Haryana', + address: 'Red Colony', + created_at: '2022-06-22T10:57:58Z', + updated_at: '2022-06-22T10:57:58Z', + annual_revenue: 1000, + number_of_employees: 51, + }, + unique_identifier: { + name: 'div-quer', + }, + }, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { + 'Content-Type': 'application/json', + Authorization: 'Token token=dummyApiKey', + }, + version: '1', + endpoint: + 'https://domain-rudder.myfreshworks.com/crm/sales/api/sales_accounts/upsert', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'freshmarketer', + description: 'Identify call: Email is not present', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2022-06-22T10:57:58Z', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99099', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + }, + traits: { + first_name: 'Rk', + last_name: 'Narayan', + mobileNumber: '1-926-555-9504', + phone: '9988776655', + }, + type: 'identify', + sentAt: '2022-04-22T10:57:58Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'domain-rudder.myfreshworks.com', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Missing required value from "email"', + statTags: { + destType: 'FRESHMARKETER', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'freshmarketer', + description: 'Track call, event is not supported.', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.5', + }, + traits: { + name: 'Shehan Study', + category: 'SampleIdentify', + email: 'test@rudderstack.com', + plan: 'Open source', + logins: 5, + createdAt: 1599264000, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.5', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 0.8999999761581421, + }, + campaign: { + source: 'google', + medium: 'medium', + term: 'keyword', + content: 'some content', + name: 'some campaign', + test: 'other value', + }, + page: { + path: '/destinations/amplitude', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/amplitude', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + }, + type: 'track', + messageId: 'dd46338d-5f83-493b-bd28-3b48f55d0be8', + originalTimestamp: '2020-10-20T08:14:28.778Z', + anonymousId: 'my-anonymous-id-new', + userId: 'newUserIdAlias', + properties: { + product_name: 'Shirt', + brand: 'Wrogn', + }, + event: 'Add to Cart', + previousId: 'sampleusrRudder3', + sentAt: '2020-10-20T08:14:28.778Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'domain-rudder.myfreshworks.com', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'event name Add to Cart is not supported. Aborting!', + statTags: { + destType: 'FRESHMARKETER', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'freshmarketer', + description: 'Track call: some required properties is missing for sales_activity', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.5', + }, + traits: { + name: 'Shehan Study', + category: 'SampleIdentify', + email: 'test@rudderstack.com', + plan: 'Open source', + logins: 5, + createdAt: 1599264000, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.5', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 0.8999999761581421, + }, + campaign: { + source: 'google', + medium: 'medium', + term: 'keyword', + content: 'some content', + name: 'some campaign', + test: 'other value', + }, + page: { + path: '/destinations/amplitude', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/amplitude', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + }, + type: 'track', + messageId: 'dd46338d-5f83-493b-bd28-3b48f55d0be8', + originalTimestamp: '2020-10-20T08:14:28.778Z', + anonymousId: 'my-anonymous-id-new', + userId: 'newUserIdAlias', + email: 'test@rudderstack.com', + properties: { + product_name: 'Shirt', + brand: 'Wrogn', + }, + event: 'sales_activity', + previousId: 'sampleusrRudder3', + sentAt: '2020-10-20T08:14:28.778Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'domain-rudder.myfreshworks.com', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Missing required value from "properties.title"', + statTags: { + destType: 'FRESHMARKETER', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'freshmarketer', + description: 'Track call: for salesActivityName', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.5', + }, + traits: { + name: 'Shehan Study', + category: 'SampleIdentify', + email: 'test@rudderstack.com', + plan: 'Open source', + logins: 5, + createdAt: 1599264000, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.5', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 0.8999999761581421, + }, + campaign: { + source: 'google', + medium: 'medium', + term: 'keyword', + content: 'some content', + name: 'some campaign', + test: 'other value', + }, + page: { + path: '/destinations/amplitude', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/amplitude', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + externalId: { + type: 'Contact', + }, + }, + type: 'track', + messageId: 'dd46338d-5f83-493b-bd28-3b48f55d0be8', + originalTimestamp: '2020-10-20T08:14:28.778Z', + anonymousId: 'my-anonymous-id-new', + userId: 'newUserIdAlias', + email: 'test@rudderstack.com', + properties: { + product_name: 'Shirt', + brand: 'Wrogn', + salesActivityName: 'own-calender', + title: 'new Contact', + startDate: '2021-05-04T17:00:00+05:30', + endDate: '2022-06-04T17:30:00+05:30', + ownerId: '70054866612', + }, + event: 'sales_activity', + previousId: 'sampleusrRudder3', + sentAt: '2020-10-20T08:14:28.778Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'domain-rudder.myfreshworks.com', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + FORM: {}, + JSON: { + sales_activity: { + title: 'new Contact', + end_date: '2022-06-04T17:30:00+05:30', + owner_id: '70054866612', + start_date: '2021-05-04T17:00:00+05:30', + created_at: '2020-10-20T08:14:28.778Z', + updated_at: '2020-10-20T08:14:28.778Z', + targetable_id: 70054866612, + targetable_type: 'Contact', + sales_activity_name: 'own-calender', + sales_activity_type_id: 70000666879, + }, + }, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { + 'Content-Type': 'application/json', + Authorization: 'Token token=dummyApiKey', + }, + version: '1', + endpoint: 'https://domain-rudder.myfreshworks.com/crm/sales/api/sales_activities', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'freshmarketer', + description: 'Track call: lifecycle_stage_id', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.5', + }, + traits: { + name: 'Shehan Study', + category: 'SampleIdentify', + plan: 'Open source', + logins: 5, + createdAt: 1599264000, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.5', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 0.8999999761581421, + }, + campaign: { + source: 'google', + medium: 'medium', + term: 'keyword', + content: 'some content', + name: 'some campaign', + test: 'other value', + }, + page: { + path: '/destinations/amplitude', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/amplitude', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + }, + type: 'track', + messageId: 'dd46338d-5f83-493b-bd28-3b48f55d0be8', + originalTimestamp: '2020-10-20T08:14:28.778Z', + anonymousId: 'my-anonymous-id-new', + userId: 'newUserIdAlias', + properties: { + email: 'jamessampleton3@gmail.com', + lifecycleStageId: '71012139273', + title: 'new Contact', + startDate: '2021-05-04T17:00:00+05:30', + endDate: '2022-06-04T17:30:00+05:30', + ownerId: '70054866612', + targetableType: 'Contact', + }, + event: 'lifecycle_stage', + previousId: 'sampleusrRudder3', + sentAt: '2020-10-20T08:14:28.778Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'domain-rudder.myfreshworks.com', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://domain-rudder.myfreshworks.com/crm/sales/api/contacts/upsert', + headers: { + Authorization: 'Token token=dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + contact: { + lifecycle_stage_id: '71012139273', + }, + unique_identifier: { + emails: 'jamessampleton3@gmail.com', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'freshmarketer', + description: 'Track call: In lifecycle stage, email is missing', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.5', + }, + traits: { + name: 'Shehan Study', + category: 'SampleIdentify', + plan: 'Open source', + logins: 5, + createdAt: 1599264000, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.5', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 0.8999999761581421, + }, + campaign: { + source: 'google', + medium: 'medium', + term: 'keyword', + content: 'some content', + name: 'some campaign', + test: 'other value', + }, + page: { + path: '/destinations/amplitude', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/amplitude', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + }, + type: 'track', + messageId: 'dd46338d-5f83-493b-bd28-3b48f55d0be8', + originalTimestamp: '2020-10-20T08:14:28.778Z', + anonymousId: 'my-anonymous-id-new', + userId: 'newUserIdAlias', + properties: { + lifecycleStageId: '71012139273', + title: 'new Contact', + startDate: '2021-05-04T17:00:00+05:30', + endDate: '2022-06-04T17:30:00+05:30', + ownerId: '70054866612', + targetableType: 'Contact', + }, + event: 'lifecycle_stage', + previousId: 'sampleusrRudder3', + sentAt: '2020-10-20T08:14:28.778Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'domain-rudder.myfreshworks.com', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'email is required for updating life Cycle Stages. Aborting!', + statTags: { + destType: 'FRESHMARKETER', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'freshmarketer', + description: 'Track call: Either of lifecycleStageName or lifecycleStageId is required', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.5', + }, + traits: { + name: 'Shehan Study', + category: 'SampleIdentify', + email: 'test@rudderstack.com', + plan: 'Open source', + logins: 5, + createdAt: 1599264000, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.5', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 0.8999999761581421, + }, + campaign: { + source: 'google', + medium: 'medium', + term: 'keyword', + content: 'some content', + name: 'some campaign', + test: 'other value', + }, + page: { + path: '/destinations/amplitude', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/amplitude', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + }, + type: 'track', + messageId: 'dd46338d-5f83-493b-bd28-3b48f55d0be8', + originalTimestamp: '2020-10-20T08:14:28.778Z', + anonymousId: 'my-anonymous-id-new', + userId: 'newUserIdAlias', + email: 'jamessampleton3@gmail.com', + properties: { + title: 'new Contact', + startDate: '2021-05-04T17:00:00+05:30', + endDate: '2022-06-04T17:30:00+05:30', + ownerId: '70054866612', + targetableType: 'Contact', + }, + event: 'lifecycle_stage', + previousId: 'sampleusrRudder3', + sentAt: '2020-10-20T08:14:28.778Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'domain-rudder.myfreshworks.com', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Either of lifecycleStageName or lifecycleStageId is required. Aborting!', + statTags: { + destType: 'FRESHMARKETER', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'freshmarketer', + description: 'Track call: Either of sales activity name or sales activity type id is required', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.5', + }, + traits: { + name: 'Shehan Study', + category: 'SampleIdentify', + email: 'test@rudderstack.com', + plan: 'Open source', + logins: 5, + createdAt: 1599264000, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.5', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 0.8999999761581421, + }, + campaign: { + source: 'google', + medium: 'medium', + term: 'keyword', + content: 'some content', + name: 'some campaign', + test: 'other value', + }, + page: { + path: '/destinations/amplitude', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/amplitude', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + externalId: { + type: 'Contact', + }, + }, + type: 'track', + messageId: 'dd46338d-5f83-493b-bd28-3b48f55d0be8', + originalTimestamp: '2020-10-20T08:14:28.778Z', + anonymousId: 'my-anonymous-id-new', + userId: 'newUserIdAlias', + email: 'test@rudderstack.com', + properties: { + product_name: 'Shirt', + brand: 'Wrogn', + title: 'new Contact', + startDate: '2021-05-04T17:00:00+05:30', + endDate: '2022-06-04T17:30:00+05:30', + ownerId: '70054866612', + }, + event: 'sales_activity', + previousId: 'sampleusrRudder3', + sentAt: '2020-10-20T08:14:28.778Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'domain-rudder.myfreshworks.com', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Either of sales activity name or sales activity type id is required. Aborting!', + statTags: { + destType: 'FRESHMARKETER', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'freshmarketer', + description: + 'Track call: Either of email or targetable_id is required for creating sales activity.', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.5', + }, + traits: { + name: 'Shehan Study', + category: 'SampleIdentify', + plan: 'Open source', + logins: 5, + createdAt: 1599264000, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.5', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 0.8999999761581421, + }, + campaign: { + source: 'google', + medium: 'medium', + term: 'keyword', + content: 'some content', + name: 'some campaign', + test: 'other value', + }, + page: { + path: '/destinations/amplitude', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/amplitude', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + externalId: { + type: 'Contact', + }, + }, + type: 'track', + messageId: 'dd46338d-5f83-493b-bd28-3b48f55d0be8', + originalTimestamp: '2020-10-20T08:14:28.778Z', + anonymousId: 'my-anonymous-id-new', + userId: 'newUserIdAlias', + properties: { + product_name: 'Shirt', + brand: 'Wrogn', + salesActivityName: 'own-calender', + title: 'new Contact', + startDate: '2021-05-04T17:00:00+05:30', + endDate: '2022-06-04T17:30:00+05:30', + ownerId: '70054866612', + }, + event: 'sales_activity', + previousId: 'sampleusrRudder3', + sentAt: '2020-10-20T08:14:28.778Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'domain-rudder.myfreshworks.com', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'Either of email or targetable_id is required for creating sales activity. Aborting!', + statTags: { + destType: 'FRESHMARKETER', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'freshmarketer', + description: 'Track call: sales activity with salesActivityTypeId', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.5', + }, + traits: { + name: 'Shehan Study', + category: 'SampleIdentify', + email: 'test@rudderstack.com', + plan: 'Open source', + logins: 5, + createdAt: 1599264000, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.5', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 0.8999999761581421, + }, + campaign: { + source: 'google', + medium: 'medium', + term: 'keyword', + content: 'some content', + name: 'some campaign', + test: 'other value', + }, + page: { + path: '/destinations/amplitude', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/amplitude', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + externalId: { + type: 'Contact', + }, + }, + type: 'track', + messageId: 'dd46338d-5f83-493b-bd28-3b48f55d0be8', + originalTimestamp: '2020-10-20T08:14:28.778Z', + anonymousId: 'my-anonymous-id-new', + userId: 'newUserIdAlias', + email: 'jamessampleton3@gmail.com', + properties: { + salesActivityTypeId: '70000663932', + title: 'new Contact', + startDate: '2021-05-04T17:00:00+05:30', + endDate: '2022-06-04T17:30:00+05:30', + ownerId: '70054866612', + }, + event: 'sales_activity', + previousId: 'sampleusrRudder3', + sentAt: '2020-10-20T08:14:28.778Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'domain-rudder.myfreshworks.com', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + FORM: {}, + JSON: { + sales_activity: { + title: 'new Contact', + end_date: '2022-06-04T17:30:00+05:30', + owner_id: '70054866612', + start_date: '2021-05-04T17:00:00+05:30', + created_at: '2020-10-20T08:14:28.778Z', + updated_at: '2020-10-20T08:14:28.778Z', + targetable_id: 70054866612, + targetable_type: 'Contact', + sales_activity_type_id: '70000663932', + }, + }, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { + 'Content-Type': 'application/json', + Authorization: 'Token token=dummyApiKey', + }, + version: '1', + endpoint: 'https://domain-rudder.myfreshworks.com/crm/sales/api/sales_activities', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'freshmarketer', + description: 'Track call: updated sales activity with salesActivityTypeId and targetableId', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.5', + }, + traits: { + name: 'Shehan Study', + category: 'SampleIdentify', + email: 'test@rudderstack.com', + plan: 'Open source', + logins: 5, + createdAt: 1599264000, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.5', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 0.8999999761581421, + }, + campaign: { + source: 'google', + medium: 'medium', + term: 'keyword', + content: 'some content', + name: 'some campaign', + test: 'other value', + }, + page: { + path: '/destinations/amplitude', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/amplitude', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + externalId: { + id: '70052305908', + type: 'Contact', + }, + }, + type: 'track', + messageId: 'dd46338d-5f83-493b-bd28-3b48f55d0be8', + originalTimestamp: '2020-10-20T08:14:28.778Z', + anonymousId: 'my-anonymous-id-new', + userId: 'newUserIdAlias', + properties: { + salesActivityTypeId: '70000663932', + title: 'new Contact', + startDate: '2021-05-04T17:00:00+05:30', + endDate: '2022-06-04T17:30:00+05:30', + ownerId: '70054866612', + }, + event: 'sales_activity', + previousId: 'sampleusrRudder3', + sentAt: '2020-10-20T08:14:28.778Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'domain-rudder.myfreshworks.com', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + FORM: {}, + JSON: { + sales_activity: { + title: 'new Contact', + end_date: '2022-06-04T17:30:00+05:30', + owner_id: '70054866612', + start_date: '2021-05-04T17:00:00+05:30', + created_at: '2020-10-20T08:14:28.778Z', + updated_at: '2020-10-20T08:14:28.778Z', + targetable_id: '70052305908', + targetable_type: 'Contact', + sales_activity_type_id: '70000663932', + }, + }, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { + 'Content-Type': 'application/json', + Authorization: 'Token token=dummyApiKey', + }, + version: '1', + endpoint: 'https://domain-rudder.myfreshworks.com/crm/sales/api/sales_activities', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'freshmarketer', + description: 'Unsupported message Type', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + type: 'page', + messageId: 'dd46338d-5f83-493b-bd28-3b48f55d0be8', + originalTimestamp: '2020-10-20T08:14:28.778Z', + anonymousId: 'my-anonymous-id-new', + userId: 'newUserIdAlias', + email: 'jamessampleton3@gmail.com', + properties: { + lifecycleStageId: '71012139273', + title: 'new Contact', + startDate: '2021-05-04T17:00:00+05:30', + endDate: '2022-06-04T17:30:00+05:30', + ownerId: '70054866612', + targetableType: 'Contact', + }, + event: 'lifecycle_stage', + previousId: 'sampleusrRudder3', + sentAt: '2020-10-20T08:14:28.778Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'domain-rudder.myfreshworks.com', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'message type page not supported', + statTags: { + destType: 'FRESHMARKETER', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'freshmarketer', + description: 'Group call: email is required for adding contacts to marketing lists', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + messageId: 'sadjb-1e2r3fhgb-12bvbbj', + originalTimestamp: '2022-06-22T10:57:58Z', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + traits: { + groupType: 'marketing_lists', + }, + type: 'group', + sentAt: '2022-04-22T10:57:58Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'domain-rudder.myfreshworks.com', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'email is required for adding in the marketing lists. Aborting!', + statTags: { + destType: 'FRESHMARKETER', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'freshmarketer', + description: 'Group call: group type is not present', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + messageId: 'sadjb-1e2r3fhgb-12bvbbj', + originalTimestamp: '2022-06-22T10:57:58Z', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + traits: { + name: 'Mark Twain', + phone: '919191919191', + numberOfEmployees: 51, + annualRevenue: 1000, + address: 'Red Colony', + city: 'Colony', + state: 'Haryana', + }, + type: 'group', + sentAt: '2022-04-22T10:57:58Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'domain-rudder.myfreshworks.com', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'groupType is required for Group call', + statTags: { + destType: 'FRESHMARKETER', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'freshmarketer', + description: 'Group call: add contacts in existing marketing lists', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + messageId: 'sadjb-1e2r3fhgb-12bvbbj', + originalTimestamp: '2022-06-22T10:57:58Z', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + traits: { + email: 'jamessampleton1@gmail.com', + }, + }, + traits: { + groupType: 'marketing_lists', + listName: 'Voda 5G', + address: 'Red Colony', + city: 'Colony', + state: 'Haryana', + }, + type: 'group', + sentAt: '2022-04-22T10:57:58Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'domain-rudder.myfreshworks.com', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + FORM: {}, + JSON: { + ids: [70054866612], + }, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'PUT', + params: {}, + headers: { + 'Content-Type': 'application/json', + Authorization: 'Token token=dummyApiKey', + }, + version: '1', + endpoint: + 'https://domain-rudder.myfreshworks.com/crm/sales/api/lists/70000059716/add_contacts', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'freshmarketer', + description: 'Group call: groupType is not supported', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + messageId: 'sadjb-1e2r3fhgb-12bvbbj', + originalTimestamp: '2022-06-22T10:57:58Z', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + traits: { + groupType: 'marketing', + listName: 'Voda 5G', + address: 'Red Colony', + city: 'Colony', + state: 'Haryana', + }, + type: 'group', + sentAt: '2022-04-22T10:57:58Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'domain-rudder.myfreshworks.com', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'groupType marketing is not supported. Aborting!', + statTags: { + destType: 'FRESHMARKETER', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'freshmarketer', + description: 'Group call: listId or listName is required', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + messageId: 'sadjb-1e2r3fhgb-12bvbbj', + originalTimestamp: '2022-06-22T10:57:58Z', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + context: { + traits: { + email: 'jamessampleton1@gmail.com', + }, + }, + traits: { + groupType: 'marketing_lists', + address: 'Red Colony', + city: 'Colony', + state: 'Haryana', + }, + type: 'group', + sentAt: '2022-04-22T10:57:58Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'domain-rudder.myfreshworks.com', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'listId or listName is required. Aborting!', + statTags: { + destType: 'FRESHMARKETER', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'freshmarketer', + description: 'Group call: add marketing lists with listId', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + messageId: 'sadjb-1e2r3fhgb-12bvbbj', + originalTimestamp: '2022-06-22T10:57:58Z', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + traits: { + email: 'jamessampleton1@gmail.com', + }, + }, + traits: { + listId: '70000058627', + groupType: 'marketing_lists', + address: 'Red Colony', + city: 'Colony', + state: 'Haryana', + }, + type: 'group', + sentAt: '2022-04-22T10:57:58Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'domain-rudder.myfreshworks.com', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + FORM: {}, + JSON: { + ids: [70054866612], + }, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'PUT', + params: {}, + headers: { + 'Content-Type': 'application/json', + Authorization: 'Token token=dummyApiKey', + }, + version: '1', + endpoint: + 'https://domain-rudder.myfreshworks.com/crm/sales/api/lists/70000058627/add_contacts', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'freshmarketer', + description: 'Track call: with wrong sales activity name', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.5', + }, + traits: { + name: 'Shehan Study', + category: 'SampleIdentify', + email: 'test@rudderstack.com', + plan: 'Open source', + logins: 5, + createdAt: 1599264000, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.5', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 0.8999999761581421, + }, + campaign: { + source: 'google', + medium: 'medium', + term: 'keyword', + content: 'some content', + name: 'some campaign', + test: 'other value', + }, + page: { + path: '/destinations/amplitude', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/amplitude', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + externalId: { + type: 'Contact', + }, + }, + type: 'track', + messageId: 'dd46338d-5f83-493b-bd28-3b48f55d0be8', + originalTimestamp: '2020-10-20T08:14:28.778Z', + anonymousId: 'my-anonymous-id-new', + userId: 'newUserIdAlias', + email: 'test@rudderstack.com', + properties: { + product_name: 'Shirt', + brand: 'Wrogn', + salesActivityName: 'own-list', + title: 'new Contact', + startDate: '2021-05-04T17:00:00+05:30', + endDate: '2022-06-04T17:30:00+05:30', + ownerId: '70054866612', + }, + event: 'sales_activity', + previousId: 'sampleusrRudder3', + sentAt: '2020-10-20T08:14:28.778Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'domain-rudder.myfreshworks.com', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: "sales Activity own-list doesn't exists. Aborting!", + statTags: { + destType: 'FRESHMARKETER', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'freshmarketer', + description: 'Track call: update contacts with sales Activity name', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.5', + }, + traits: { + name: 'Shehan Study', + category: 'SampleIdentify', + plan: 'Open source', + logins: 5, + createdAt: 1599264000, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.5', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 0.8999999761581421, + }, + campaign: { + source: 'google', + medium: 'medium', + term: 'keyword', + content: 'some content', + name: 'some campaign', + test: 'other value', + }, + page: { + path: '/destinations/amplitude', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/amplitude', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + }, + type: 'track', + messageId: 'dd46338d-5f83-493b-bd28-3b48f55d0be8', + originalTimestamp: '2020-10-20T08:14:28.778Z', + anonymousId: 'my-anonymous-id-new', + userId: 'newUserIdAlias', + properties: { + email: 'jamessampleton6@gmail.com', + lifecycleStageName: 'final Customer', + title: 'new Contact', + startDate: '2021-05-04T17:00:00+05:30', + endDate: '2022-06-04T17:30:00+05:30', + ownerId: '70054866612', + targetableType: 'Contact', + }, + event: 'lifecycle_stage', + previousId: 'sampleusrRudder3', + sentAt: '2020-10-20T08:14:28.778Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'domain-rudder.myfreshworks.com', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + FORM: {}, + JSON: { + contact: { + lifecycle_stage_id: 71012806409, + }, + unique_identifier: { + emails: 'jamessampleton6@gmail.com', + }, + }, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { + 'Content-Type': 'application/json', + Authorization: 'Token token=dummyApiKey', + }, + version: '1', + endpoint: 'https://domain-rudder.myfreshworks.com/crm/sales/api/contacts/upsert', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'freshmarketer', + description: 'Track call: with wrong lifecycleStageName', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.5', + }, + traits: { + name: 'Shehan Study', + category: 'SampleIdentify', + plan: 'Open source', + logins: 5, + createdAt: 1599264000, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.5', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 0.8999999761581421, + }, + campaign: { + source: 'google', + medium: 'medium', + term: 'keyword', + content: 'some content', + name: 'some campaign', + test: 'other value', + }, + page: { + path: '/destinations/amplitude', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/amplitude', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + }, + type: 'track', + messageId: 'dd46338d-5f83-493b-bd28-3b48f55d0be8', + originalTimestamp: '2020-10-20T08:14:28.778Z', + anonymousId: 'my-anonymous-id-new', + userId: 'newUserIdAlias', + properties: { + email: 'jamessampleton6@gmail.com', + lifecycleStageName: 'final ExCustomer', + title: 'new Contact', + startDate: '2021-05-04T17:00:00+05:30', + endDate: '2022-06-04T17:30:00+05:30', + ownerId: '70054866612', + targetableType: 'Contact', + }, + event: 'lifecycle_stage', + previousId: 'sampleusrRudder3', + sentAt: '2020-10-20T08:14:28.778Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'domain-rudder.myfreshworks.com', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'failed to fetch lifeCycleStages with final ExCustomer', + statTags: { + destType: 'FRESHMARKETER', + errorCategory: 'network', + errorType: 'aborted', + feature: 'processor', + implementation: 'native', + meta: 'instrumentation', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'freshmarketer', + description: 'Track call: Multiplexing', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.5', + }, + traits: { + name: 'Shehan Study', + category: 'SampleIdentify', + email: 'test@rudderstack.com', + plan: 'Open source', + logins: 5, + createdAt: 1599264000, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.5', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 0.8999999761581421, + }, + campaign: { + source: 'google', + medium: 'medium', + term: 'keyword', + content: 'some content', + name: 'some campaign', + test: 'other value', + }, + page: { + path: '/destinations/amplitude', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/amplitude', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + externalId: { + type: 'Contact', + }, + }, + type: 'track', + messageId: 'dd46338d-5f83-493b-bd28-3b48f55d0be8', + originalTimestamp: '2020-10-20T08:14:28.778Z', + anonymousId: 'my-anonymous-id-new', + userId: 'newUserIdAlias', + email: 'test@rudderstack.com', + properties: { + product_name: 'Shirt', + brand: 'Wrogn', + salesActivityName: 'own-calender', + title: 'new Contact', + startDate: '2021-05-04T17:00:00+05:30', + endDate: '2022-06-04T17:30:00+05:30', + ownerId: '70054866612', + lifecycleStageId: '71012139273', + }, + event: 'test_activity', + previousId: 'sampleusrRudder3', + sentAt: '2020-10-20T08:14:28.778Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'domain-rudder.myfreshworks.com', + rudderEventsToFreshmarketerEvents: [ + { + from: 'test_activity', + to: 'sales_activity', + }, + { + from: 'test_activity', + to: 'lifecycle_stage', + }, + { + from: 'test_event', + to: 'lifecycle_stage', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + FORM: {}, + JSON: { + sales_activity: { + title: 'new Contact', + end_date: '2022-06-04T17:30:00+05:30', + owner_id: '70054866612', + start_date: '2021-05-04T17:00:00+05:30', + created_at: '2020-10-20T08:14:28.778Z', + updated_at: '2020-10-20T08:14:28.778Z', + targetable_id: 70054866612, + targetable_type: 'Contact', + sales_activity_name: 'own-calender', + sales_activity_type_id: 70000666879, + }, + }, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'POST', + userId: '', + params: {}, + headers: { + 'Content-Type': 'application/json', + Authorization: 'Token token=dummyApiKey', + }, + version: '1', + endpoint: 'https://domain-rudder.myfreshworks.com/crm/sales/api/sales_activities', + }, + statusCode: 200, + }, + { + output: { + body: { + JSON: { + contact: { + lifecycle_stage_id: '71012139273', + }, + unique_identifier: { + emails: 'test@rudderstack.com', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + type: 'REST', + files: {}, + userId: '', + method: 'POST', + params: {}, + headers: { + Authorization: 'Token token=dummyApiKey', + 'Content-Type': 'application/json', + }, + version: '1', + endpoint: 'https://domain-rudder.myfreshworks.com/crm/sales/api/contacts/upsert', + }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/freshmarketer/router/data.ts b/test/integrations/destinations/freshmarketer/router/data.ts index bffb361ba5..03690b6e27 100644 --- a/test/integrations/destinations/freshmarketer/router/data.ts +++ b/test/integrations/destinations/freshmarketer/router/data.ts @@ -1,361 +1,304 @@ export const data = [ - { - name: 'freshmarketer', - description: 'Test 0', - feature: 'router', - module: 'destination', - version: 'v0', - input: { - request: { + { + name: 'freshmarketer', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'rudderstack-476952domain3105.myfreshworks.com', + }, + }, + metadata: { jobId: 1, userId: 'u1' }, + message: { + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2022-06-22T10:57:58Z', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99099', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, + locale: 'en-US', + os: { name: 'iOS', version: '14.4.1' }, + screen: { density: 2 }, + }, + traits: { + email: 'testuser@google.com', + first_name: 'Rk', + last_name: 'Mishra', + mobileNumber: '1-926-555-9504', + lifecycleStageId: 71010794467, + phone: '9988776655', + owner_id: '70000090119', + }, + type: 'identify', + sentAt: '2022-04-22T10:57:58Z', + }, + }, + { + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'rudderstack-476952domain3105.myfreshworks.com', + }, + }, + metadata: { jobId: 2, userId: 'u1' }, + message: { + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2022-06-22T10:57:58Z', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99099', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, + locale: 'en-US', + os: { name: 'iOS', version: '14.4.1' }, + screen: { density: 2 }, + }, + traits: { + email: 'testuser@google.com', + first_name: 'Rk', + last_name: 'Mishra', + mobileNumber: '1-926-555-9504', + lifecycleStageId: 71010794467, + phone: '9988776655', + owner_id: '70000090119', + }, + type: 'identify', + sentAt: '2022-04-22T10:57:58Z', + }, + }, + { + destination: { + Config: { apiKey: 'dummyApiKey', domain: 'domain-rudder.myfreshworks.com' }, + }, + metadata: { jobId: 3, userId: 'u1' }, + message: { + messageId: 'sadjb-1e2r3fhgb-12bvbbj', + originalTimestamp: '2022-06-22T10:57:58Z', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, + locale: 'en-US', + os: { name: 'iOS', version: '14.4.1' }, + screen: { density: 2 }, + traits: { email: 'testuser@google.com' }, + }, + traits: { + groupType: 'accounts', + name: 'Mark Twain', + phone: '919191919191', + numberOfEmployees: 51, + annualRevenue: 1000, + address: 'Red Colony', + city: 'Colony', + state: 'Haryana', + }, + type: 'group', + sentAt: '2022-04-22T10:57:58Z', + }, + }, + ], + destType: 'freshmarketer', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://rudderstack-476952domain3105.myfreshworks.com/crm/sales/api/contacts/upsert', + headers: { + Authorization: 'Token token=dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, body: { - input: [ - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "rudderstack-476952domain3105.myfreshworks.com" - } - }, - "metadata": { - "jobId": 1 - }, - "message": { - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2022-06-22T10:57:58Z", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99099", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - } - }, - "traits": { - "email": "testuser@google.com", - "first_name": "Rk", - "last_name": "Mishra", - "mobileNumber": "1-926-555-9504", - "lifecycleStageId": 71010794467, - "phone": "9988776655", - "owner_id": "70000090119" - }, - "type": "identify", - "sentAt": "2022-04-22T10:57:58Z" - } - }, - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "rudderstack-476952domain3105.myfreshworks.com" - } - }, - "metadata": { - "jobId": 2 - }, - "message": { - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2022-06-22T10:57:58Z", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99099", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - } - }, - "traits": { - "email": "testuser@google.com", - "first_name": "Rk", - "last_name": "Mishra", - "mobileNumber": "1-926-555-9504", - "lifecycleStageId": 71010794467, - "phone": "9988776655", - "owner_id": "70000090119" - }, - "type": "identify", - "sentAt": "2022-04-22T10:57:58Z" - } - }, - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "domain-rudder.myfreshworks.com" - } - }, - "metadata": { - "jobId": 3 - }, - "message": { - "messageId": "sadjb-1e2r3fhgb-12bvbbj", - "originalTimestamp": "2022-06-22T10:57:58Z", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99090", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - }, - "traits": { - "email": "testuser@google.com" - } - }, - "traits": { - "groupType": "accounts", - "name": "Mark Twain", - "phone": "919191919191", - "numberOfEmployees": 51, - "annualRevenue": 1000, - "address": "Red Colony", - "city": "Colony", - "state": "Haryana" - }, - "type": "group", - "sentAt": "2022-04-22T10:57:58Z" - } - } - ], - destType: 'freshmarketer', + JSON: { + contact: { + emails: 'testuser@google.com', + first_name: 'Rk', + last_name: 'Mishra', + work_number: '9988776655', + external_id: 'ea5cfab2-3961-4d8a-8187-3d1858c99099', + mobile_number: '1-926-555-9504', + created_at: '2022-06-22T10:57:58Z', + updated_at: '2022-06-22T10:57:58Z', + lifecycle_stage_id: 71010794467, + }, + unique_identifier: { emails: 'testuser@google.com' }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [{ jobId: 1, userId: 'u1' }], + batched: false, + statusCode: 200, + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'rudderstack-476952domain3105.myfreshworks.com', }, + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', method: 'POST', + endpoint: + 'https://rudderstack-476952domain3105.myfreshworks.com/crm/sales/api/contacts/upsert', + headers: { + Authorization: 'Token token=dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + contact: { + emails: 'testuser@google.com', + first_name: 'Rk', + last_name: 'Mishra', + work_number: '9988776655', + external_id: 'ea5cfab2-3961-4d8a-8187-3d1858c99099', + mobile_number: '1-926-555-9504', + created_at: '2022-06-22T10:57:58Z', + updated_at: '2022-06-22T10:57:58Z', + lifecycle_stage_id: 71010794467, + }, + unique_identifier: { emails: 'testuser@google.com' }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [{ jobId: 2, userId: 'u1' }], + batched: false, + statusCode: 200, + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'rudderstack-476952domain3105.myfreshworks.com', + }, + }, }, - }, - output: { - response: { - status: 200, + { + batchedRequest: { body: { - output: [ + XML: {}, + FORM: {}, + JSON: { + contact: { + sales_accounts: [ { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://rudderstack-476952domain3105.myfreshworks.com/crm/sales/api/contacts/upsert", - "headers": { - "Authorization": "Token token=dummyApiKey", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "contact": { - "emails": "testuser@google.com", - "first_name": "Rk", - "last_name": "Mishra", - "work_number": "9988776655", - "external_id": "ea5cfab2-3961-4d8a-8187-3d1858c99099", - "mobile_number": "1-926-555-9504", - "created_at": "2022-06-22T10:57:58Z", - "updated_at": "2022-06-22T10:57:58Z", - "lifecycle_stage_id": 71010794467 - }, - "unique_identifier": { - "emails": "testuser@google.com" - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - "metadata": [ - { - "jobId": 1 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "rudderstack-476952domain3105.myfreshworks.com" - } - } + id: 70003771198, + name: 'div-quer', + avatar: null, + partial: true, + website: null, + is_primary: true, + last_contacted: null, + record_type_id: '71010794477', }, { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://rudderstack-476952domain3105.myfreshworks.com/crm/sales/api/contacts/upsert", - "headers": { - "Authorization": "Token token=dummyApiKey", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "contact": { - "emails": "testuser@google.com", - "first_name": "Rk", - "last_name": "Mishra", - "work_number": "9988776655", - "external_id": "ea5cfab2-3961-4d8a-8187-3d1858c99099", - "mobile_number": "1-926-555-9504", - "created_at": "2022-06-22T10:57:58Z", - "updated_at": "2022-06-22T10:57:58Z", - "lifecycle_stage_id": 71010794467 - }, - "unique_identifier": { - "emails": "testuser@google.com" - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - "metadata": [ - { - "jobId": 2 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "rudderstack-476952domain3105.myfreshworks.com" - } - } + id: 70003825177, + name: 'BisleriGroup', + avatar: null, + partial: true, + website: null, + is_primary: false, + last_contacted: null, + record_type_id: '71010794477', }, - { - "batchedRequest": { - "body": { - "XML": {}, - "FORM": {}, - "JSON": { - "contact": { - "sales_accounts": [ - { - "id": 70003771198, - "name": "div-quer", - "avatar": null, - "partial": true, - "website": null, - "is_primary": true, - "last_contacted": null, - "record_type_id": "71010794477" - }, - { - "id": 70003825177, - "name": "BisleriGroup", - "avatar": null, - "partial": true, - "website": null, - "is_primary": false, - "last_contacted": null, - "record_type_id": "71010794477" - }, - { - "id": 70003771396, - "is_primary": false - } - ] - }, - "unique_identifier": { - "emails": "testuser@google.com" - } - }, - "JSON_ARRAY": {} - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Content-Type": "application/json", - "Authorization": "Token token=dummyApiKey" - }, - "version": "1", - "endpoint": "https://domain-rudder.myfreshworks.com/crm/sales/api/contacts/upsert" - }, - "metadata": [ - { - "jobId": 3 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "domain-rudder.myfreshworks.com" - } - } - } - ], + { id: 70003771396, is_primary: false }, + ], + }, + unique_identifier: { emails: 'testuser@google.com' }, + }, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { + 'Content-Type': 'application/json', + Authorization: 'Token token=dummyApiKey', }, + version: '1', + endpoint: 'https://domain-rudder.myfreshworks.com/crm/sales/api/contacts/upsert', + }, + metadata: [{ jobId: 3, userId: 'u1' }], + batched: false, + statusCode: 200, + destination: { + Config: { apiKey: 'dummyApiKey', domain: 'domain-rudder.myfreshworks.com' }, + }, }, + ], }, + }, }, + }, ]; diff --git a/test/integrations/destinations/freshsales/processor/data.ts b/test/integrations/destinations/freshsales/processor/data.ts index e3e6a4176a..eca3b88d9d 100644 --- a/test/integrations/destinations/freshsales/processor/data.ts +++ b/test/integrations/destinations/freshsales/processor/data.ts @@ -1,2668 +1,2688 @@ export const data = [ - { - "name": "freshsales", - "description": "Track call, event is not supported.", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.5" - }, - "traits": { - "name": "Shehan Study", - "category": "SampleIdentify", - "email": "test@rudderstack.com", - "plan": "Open source", - "logins": 5, - "createdAt": 1599264000 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.5" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 0.8999999761581421 - }, - "campaign": { - "source": "google", - "medium": "medium", - "term": "keyword", - "content": "some content", - "name": "some campaign", - "test": "other value" - }, - "page": { - "path": "/destinations/amplitude", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/amplitude", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - } - }, - "type": "track", - "messageId": "dd46338d-5f83-493b-bd28-3b48f55d0be8", - "originalTimestamp": "2020-10-20T08:14:28.778Z", - "anonymousId": "my-anonymous-id-new", - "userId": "newUserIdAlias", - "properties": { - "product_name": "Shirt", - "brand": "Wrogn" - }, - "event": { - "name": "Add to Cart" - }, - "previousId": "sampleusrRudder3", - "sentAt": "2020-10-20T08:14:28.778Z" - }, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "domain-rudder.myfreshworks.com" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "Event is a required field and should be a string", - "statTags": { - "destType": "FRESHSALES", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "freshsales", - "description": "Identify call for creating new user", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "rudderstack-476952domain3105.myfreshworks.com" - } - }, - "message": { - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2022-06-22T10:57:58Z", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99099", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - } - }, - "traits": { - "email": "testuser@google.com", - "first_name": "Rk", - "last_name": "Mishra", - "mobileNumber": "1-926-555-9504", - "lifecycleStageId": 71010794467, - "phone": "9988776655", - "owner_id": "70000090119" - }, - "type": "identify", - "sentAt": "2022-04-22T10:57:58Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "body": { - "XML": {}, - "FORM": {}, - "JSON": { - "contact": { - "emails": "testuser@google.com", - "last_name": "Mishra", - "created_at": "2022-06-22T10:57:58Z", - "first_name": "Rk", - "updated_at": "2022-06-22T10:57:58Z", - "external_id": "ea5cfab2-3961-4d8a-8187-3d1858c99099", - "work_number": "9988776655", - "mobile_number": "1-926-555-9504", - "lifecycle_stage_id": 71010794467 - }, - "unique_identifier": { - "emails": "testuser@google.com" - } - }, - "JSON_ARRAY": {} - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Content-Type": "application/json", - "Authorization": "Token token=dummyApiKey" - }, - "version": "1", - "endpoint": "https://rudderstack-476952domain3105.myfreshworks.com/crm/sales/api/contacts/upsert", - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "freshsales", - "description": "Identify call with numbers in lifecycleStageId, ownerId", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "rudderstack-476952domain3105.myfreshworks.com" - } - }, - "message": { - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2022-06-22T10:57:58Z", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99099", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - } - }, - "traits": { - "email": "testuser@google.com", - "first_name": "Rk", - "last_name": "Mishra", - "mobileNumber": "1-926-555-9504", - "lifecycleStageId": 71010794467, - "phone": "9988776655", - "owner_id": "70000090119" - }, - "type": "identify", - "sentAt": "2022-04-22T10:57:58Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "body": { - "XML": {}, - "FORM": {}, - "JSON": { - "contact": { - "emails": "testuser@google.com", - "last_name": "Mishra", - "created_at": "2022-06-22T10:57:58Z", - "first_name": "Rk", - "updated_at": "2022-06-22T10:57:58Z", - "external_id": "ea5cfab2-3961-4d8a-8187-3d1858c99099", - "work_number": "9988776655", - "mobile_number": "1-926-555-9504", - "lifecycle_stage_id": 71010794467 - }, - "unique_identifier": { - "emails": "testuser@google.com" - } - }, - "JSON_ARRAY": {} - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Content-Type": "application/json", - "Authorization": "Token token=dummyApiKey" - }, - "version": "1", - "endpoint": "https://rudderstack-476952domain3105.myfreshworks.com/crm/sales/api/contacts/upsert", - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "freshsales", - "description": "Identify call with wrong data type in lifecycleStageId, ownerId", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "rudderstack-476952domain3105.myfreshworks.com" - } - }, - "message": { - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2022-06-22T10:57:58Z", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99099", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - } - }, - "traits": { - "email": "testuser@google.com", - "first_name": "Rk", - "last_name": "Mishra", - "mobileNumber": "1-926-555-9504", - "lifecycleStageId": "rudderSample", - "phone": "9988776655", - "ownerId": "rudderSample" - }, - "type": "identify", - "sentAt": "2022-04-22T10:57:58Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://rudderstack-476952domain3105.myfreshworks.com/crm/sales/api/contacts/upsert", - "headers": { - "Authorization": "Token token=dummyApiKey", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "contact": { - "emails": "testuser@google.com", - "first_name": "Rk", - "last_name": "Mishra", - "work_number": "9988776655", - "external_id": "ea5cfab2-3961-4d8a-8187-3d1858c99099", - "mobile_number": "1-926-555-9504", - "created_at": "2022-06-22T10:57:58Z", - "updated_at": "2022-06-22T10:57:58Z" - }, - "unique_identifier": { - "emails": "testuser@google.com" - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "freshsales", - "description": "Identify call, email is not provided.", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "rudderstack-476952domain3105.myfreshworks.com" - } - }, - "message": { - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2022-06-22T10:57:58Z", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99099", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - } - }, - "traits": { - "first_name": "Rk", - "last_name": "Mishra", - "mobileNumber": "1-926-555-9504", - "lifecycleStageId": "rudderSample", - "phone": "9988776655", - "owner_id": "rudderSample" - }, - "type": "identify", - "sentAt": "2022-04-22T10:57:58Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "Missing required value from \"email\"", - "statTags": { - "destType": "FRESHSALES", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "freshsales", - "description": "Group call: testing with mock api", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "domain-rudder.myfreshworks.com" - } - }, - "message": { - "messageId": "sadjb-1e2r3fhgb-12bvbbj", - "originalTimestamp": "2022-06-22T10:57:58Z", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99090", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - }, - "traits": { - "email": "testuser@google.com" - } - }, - "traits": { - "groupType": "accounts", - "name": "Mark Twain", - "phone": "919191919191", - "numberOfEmployees": 51, - "annualRevenue": 1000, - "address": "Red Colony", - "city": "Colony", - "state": "Haryana" - }, - "type": "group", - "sentAt": "2022-04-22T10:57:58Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "body": { - "XML": {}, - "FORM": {}, - "JSON": { - "contact": { - "sales_accounts": [ - { - "id": 70003771198, - "name": "div-quer", - "avatar": null, - "partial": true, - "website": null, - "is_primary": true, - "last_contacted": null, - "record_type_id": "71010794477" - }, - { - "id": 70003825177, - "name": "BisleriGroup", - "avatar": null, - "partial": true, - "website": null, - "is_primary": false, - "last_contacted": null, - "record_type_id": "71010794477" - }, - { - "id": 70003771396, - "is_primary": false - } - ] - }, - "unique_identifier": { - "emails": "testuser@google.com" - } - }, - "JSON_ARRAY": {} - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Content-Type": "application/json", - "Authorization": "Token token=dummyApiKey" - }, - "version": "1", - "endpoint": "https://domain-rudder.myfreshworks.com/crm/sales/api/contacts/upsert", - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "freshsales", - "description": "Group call: name is required field.", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "domain-rudder.myfreshworks.com" - } - }, - "message": { - "messageId": "sadjb-1e2r3fhgb-12bvbbj", - "originalTimestamp": "2022-06-22T10:57:58Z", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99090", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - }, - "traits": { - "email": "testuser@google.com" - } - }, - "traits": { - "groupType": "accounts", - "phone": "919191919191", - "numberOfEmployees": 51, - "annualRevenue": 1000, - "address": "Red Colony", - "city": "Colony", - "state": "Haryana" - }, - "type": "group", - "sentAt": "2022-04-22T10:57:58Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "Missing required value from \"name\"", - "statTags": { - "destType": "FRESHSALES", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "freshsales", - "description": "missing message type", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "domain-rudder.myfreshworks.com" - } - }, - "message": { - "messageId": "sadjb-1e2r3fhgb-12bvbbj", - "originalTimestamp": "2022-06-22T10:57:58Z", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99090", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - }, - "traits": { - "email": "testuser4google.com" - } - }, - "traits": { - "name": "Mark Twain", - "phone": "919191919191", - "numberOfEmployees": 51, - "annualRevenue": 1000, - "address": "Red Colony", - "city": "Colony", - "state": "Haryana" - }, - "sentAt": "2022-04-22T10:57:58Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "Message Type is not present. Aborting message.", - "statTags": { - "destType": "FRESHSALES", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "freshsales", - "description": "Wrong message type", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "domain-rudder.myfreshworks.com" - } - }, - "message": { - "messageId": "sadjb-1e2r3fhgb-12bvbbj", - "originalTimestamp": "2022-06-22T10:57:58Z", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99090", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - }, - "traits": { - "email": "testuser4google.com" - } - }, - "traits": { - "name": "Mark Twain", - "phone": "919191919191", - "numberOfEmployees": 51, - "annualRevenue": 1000, - "address": "Red Colony", - "city": "Colony", - "state": "Haryana" - }, - "type": "page", - "sentAt": "2022-04-22T10:57:58Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "message type page not supported", - "statTags": { - "destType": "FRESHSALES", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "freshsales", - "description": "Group call: user email is missing", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "domain-rudder.myfreshworks.com" - } - }, - "message": { - "messageId": "sadjb-1e2r3fhgb-12bvbbj", - "originalTimestamp": "2022-06-22T10:57:58Z", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99090", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - }, - "traits": {} - }, - "traits": { - "groupType": "accounts", - "name": "div-quer", - "phone": "919191919191", - "numberOfEmployees": 51, - "annualRevenue": 1000, - "address": "Red Colony", - "city": "Lal colony", - "state": "Haryana" - }, - "type": "group", - "sentAt": "2022-04-22T10:57:58Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://domain-rudder.myfreshworks.com/crm/sales/api/sales_accounts/upsert", - "headers": { - "Authorization": "Token token=dummyApiKey", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "unique_identifier": { - "name": "div-quer" - }, - "sales_account": { - "name": "div-quer", - "phone": "919191919191", - "number_of_employees": 51, - "annual_revenue": 1000, - "address": "", - "city": "Lal colony", - "state": "Haryana", - "created_at": "2022-06-22T10:57:58Z", - "updated_at": "2022-06-22T10:57:58Z" - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "freshsales", - "description": "Identify call: Email is not present", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2022-06-22T10:57:58Z", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99099", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - } - }, - "traits": { - "first_name": "Rk", - "last_name": "Narayan", - "mobileNumber": "1-926-555-9504", - "phone": "9988776655" - }, - "type": "identify", - "sentAt": "2022-04-22T10:57:58Z" - }, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "domain-rudder.myfreshworks.com" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "Missing required value from \"email\"", - "statTags": { - "destType": "FRESHSALES", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "freshsales", - "description": "Track call, event is not supported.", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.5" - }, - "traits": { - "name": "Shehan Study", - "category": "SampleIdentify", - "email": "test@rudderstack.com", - "plan": "Open source", - "logins": 5, - "createdAt": 1599264000 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.5" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 0.8999999761581421 - }, - "campaign": { - "source": "google", - "medium": "medium", - "term": "keyword", - "content": "some content", - "name": "some campaign", - "test": "other value" - }, - "page": { - "path": "/destinations/amplitude", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/amplitude", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - } - }, - "type": "track", - "messageId": "dd46338d-5f83-493b-bd28-3b48f55d0be8", - "originalTimestamp": "2020-10-20T08:14:28.778Z", - "anonymousId": "my-anonymous-id-new", - "userId": "newUserIdAlias", - "properties": { - "product_name": "Shirt", - "brand": "Wrogn" - }, - "event": "Add to Cart", - "previousId": "sampleusrRudder3", - "sentAt": "2020-10-20T08:14:28.778Z" - }, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "domain-rudder.myfreshworks.com" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "event name Add to Cart is not supported. Aborting!", - "statTags": { - "destType": "FRESHSALES", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "freshsales", - "description": "Track call: some required properties is missing for sales_activity", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.5" - }, - "traits": { - "name": "Shehan Study", - "category": "SampleIdentify", - "email": "test@rudderstack.com", - "plan": "Open source", - "logins": 5, - "createdAt": 1599264000 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.5" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 0.8999999761581421 - }, - "campaign": { - "source": "google", - "medium": "medium", - "term": "keyword", - "content": "some content", - "name": "some campaign", - "test": "other value" - }, - "page": { - "path": "/destinations/amplitude", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/amplitude", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - } - }, - "type": "track", - "messageId": "dd46338d-5f83-493b-bd28-3b48f55d0be8", - "originalTimestamp": "2020-10-20T08:14:28.778Z", - "anonymousId": "my-anonymous-id-new", - "userId": "newUserIdAlias", - "email": "test@rudderstack.com", - "properties": { - "product_name": "Shirt", - "brand": "Wrogn" - }, - "event": "sales_activity", - "previousId": "sampleusrRudder3", - "sentAt": "2020-10-20T08:14:28.778Z" - }, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "domain-rudder.myfreshworks.com" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "Missing required value from \"properties.title\"", - "statTags": { - "destType": "FRESHSALES", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "freshsales", - "description": "Track call: for salesActivityName", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.5" - }, - "traits": { - "name": "Shehan Study", - "category": "SampleIdentify", - "email": "test@rudderstack.com", - "plan": "Open source", - "logins": 5, - "createdAt": 1599264000 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.5" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 0.8999999761581421 - }, - "campaign": { - "source": "google", - "medium": "medium", - "term": "keyword", - "content": "some content", - "name": "some campaign", - "test": "other value" - }, - "page": { - "path": "/destinations/amplitude", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/amplitude", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "externalId": { - "type": "Contact" - } - }, - "type": "track", - "messageId": "dd46338d-5f83-493b-bd28-3b48f55d0be8", - "originalTimestamp": "2020-10-20T08:14:28.778Z", - "anonymousId": "my-anonymous-id-new", - "userId": "newUserIdAlias", - "email": "test@rudderstack.com", - "properties": { - "product_name": "Shirt", - "brand": "Wrogn", - "salesActivityName": "own-calender", - "title": "new Contact", - "startDate": "2021-05-04T17:00:00+05:30", - "endDate": "2022-06-04T17:30:00+05:30", - "ownerId": "70054866612" - }, - "event": "test", - "previousId": "sampleusrRudder3", - "sentAt": "2020-10-20T08:14:28.778Z" - }, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "domain-rudder.myfreshworks.com", - "rudderEventsToFreshsalesEvents": [ - { - "from": "test", - "to": "sales_activity" - } - ] - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "body": { - "XML": {}, - "FORM": {}, - "JSON": { - "sales_activity": { - "title": "new Contact", - "created_at": "2020-10-20T08:14:28.778Z", - "end_date": "2022-06-04T17:30:00+05:30", - "owner_id": "70054866612", - "start_date": "2021-05-04T17:00:00+05:30", - "updated_at": "2020-10-20T08:14:28.778Z", - "targetable_id": 70054866612, - "targetable_type": "Contact", - "sales_activity_name": "own-calender", - "sales_activity_type_id": 70000666879 - } - }, - "JSON_ARRAY": {} - }, - "type": "REST", - "userId": "", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Content-Type": "application/json", - "Authorization": "Token token=dummyApiKey" - }, - "version": "1", - "endpoint": "https://domain-rudder.myfreshworks.com/crm/sales/api/sales_activities" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "freshsales", - "description": "Track call: lifecycle_stage_id", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.5" - }, - "traits": { - "name": "Shehan Study", - "category": "SampleIdentify", - "plan": "Open source", - "logins": 5, - "createdAt": 1599264000 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.5" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 0.8999999761581421 - }, - "campaign": { - "source": "google", - "medium": "medium", - "term": "keyword", - "content": "some content", - "name": "some campaign", - "test": "other value" - }, - "page": { - "path": "/destinations/amplitude", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/amplitude", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - } - }, - "type": "track", - "messageId": "dd46338d-5f83-493b-bd28-3b48f55d0be8", - "originalTimestamp": "2020-10-20T08:14:28.778Z", - "anonymousId": "my-anonymous-id-new", - "userId": "newUserIdAlias", - "properties": { - "email": "jamessampleton3@gmail.com", - "lifecycleStageId": "71012139273", - "title": "new Contact", - "startDate": "2021-05-04T17:00:00+05:30", - "endDate": "2022-06-04T17:30:00+05:30", - "ownerId": "70054866612", - "targetableType": "Contact" - }, - "event": "lifecycle_stage", - "previousId": "sampleusrRudder3", - "sentAt": "2020-10-20T08:14:28.778Z" - }, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "domain-rudder.myfreshworks.com" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://domain-rudder.myfreshworks.com/crm/sales/api/contacts/upsert", - "headers": { - "Authorization": "Token token=dummyApiKey", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "contact": { - "lifecycle_stage_id": "71012139273" - }, - "unique_identifier": { - "emails": "jamessampleton3@gmail.com" - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "freshsales", - "description": "Track call: In lifecycle stage, email is missing", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.5" - }, - "traits": { - "name": "Shehan Study", - "category": "SampleIdentify", - "plan": "Open source", - "logins": 5, - "createdAt": 1599264000 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.5" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 0.8999999761581421 - }, - "campaign": { - "source": "google", - "medium": "medium", - "term": "keyword", - "content": "some content", - "name": "some campaign", - "test": "other value" - }, - "page": { - "path": "/destinations/amplitude", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/amplitude", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - } - }, - "type": "track", - "messageId": "dd46338d-5f83-493b-bd28-3b48f55d0be8", - "originalTimestamp": "2020-10-20T08:14:28.778Z", - "anonymousId": "my-anonymous-id-new", - "userId": "newUserIdAlias", - "properties": { - "lifecycleStageId": "71012139273", - "title": "new Contact", - "startDate": "2021-05-04T17:00:00+05:30", - "endDate": "2022-06-04T17:30:00+05:30", - "ownerId": "70054866612", - "targetableType": "Contact" - }, - "event": "lifecycle_stage", - "previousId": "sampleusrRudder3", - "sentAt": "2020-10-20T08:14:28.778Z" - }, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "domain-rudder.myfreshworks.com" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "email is required for updating life Cycle Stages. Aborting!", - "statTags": { - "destType": "FRESHSALES", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "freshsales", - "description": "Track call: Either of lifecycleStageName or lifecycleStageId is required", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.5" - }, - "traits": { - "name": "Shehan Study", - "category": "SampleIdentify", - "email": "test@rudderstack.com", - "plan": "Open source", - "logins": 5, - "createdAt": 1599264000 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.5" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 0.8999999761581421 - }, - "campaign": { - "source": "google", - "medium": "medium", - "term": "keyword", - "content": "some content", - "name": "some campaign", - "test": "other value" - }, - "page": { - "path": "/destinations/amplitude", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/amplitude", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - } - }, - "type": "track", - "messageId": "dd46338d-5f83-493b-bd28-3b48f55d0be8", - "originalTimestamp": "2020-10-20T08:14:28.778Z", - "anonymousId": "my-anonymous-id-new", - "userId": "newUserIdAlias", - "email": "jamessampleton3@gmail.com", - "properties": { - "title": "new Contact", - "startDate": "2021-05-04T17:00:00+05:30", - "endDate": "2022-06-04T17:30:00+05:30", - "ownerId": "70054866612", - "targetableType": "Contact" - }, - "event": "lifecycle_stage", - "previousId": "sampleusrRudder3", - "sentAt": "2020-10-20T08:14:28.778Z" - }, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "domain-rudder.myfreshworks.com" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "Either of lifecycleStageName or lifecycleStageId is required. Aborting!", - "statTags": { - "destType": "FRESHSALES", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "freshsales", - "description": "Track call: Either of sales activity name or sales activity type id is required", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.5" - }, - "traits": { - "name": "Shehan Study", - "category": "SampleIdentify", - "email": "test@rudderstack.com", - "plan": "Open source", - "logins": 5, - "createdAt": 1599264000 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.5" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 0.8999999761581421 - }, - "campaign": { - "source": "google", - "medium": "medium", - "term": "keyword", - "content": "some content", - "name": "some campaign", - "test": "other value" - }, - "page": { - "path": "/destinations/amplitude", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/amplitude", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "externalId": { - "type": "Contact" - } - }, - "type": "track", - "messageId": "dd46338d-5f83-493b-bd28-3b48f55d0be8", - "originalTimestamp": "2020-10-20T08:14:28.778Z", - "anonymousId": "my-anonymous-id-new", - "userId": "newUserIdAlias", - "email": "test@rudderstack.com", - "properties": { - "product_name": "Shirt", - "brand": "Wrogn", - "title": "new Contact", - "startDate": "2021-05-04T17:00:00+05:30", - "endDate": "2022-06-04T17:30:00+05:30", - "ownerId": "70054866612" - }, - "event": "sales_activity", - "previousId": "sampleusrRudder3", - "sentAt": "2020-10-20T08:14:28.778Z" - }, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "domain-rudder.myfreshworks.com" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "Either of sales activity name or sales activity type id is required. Aborting!", - "statTags": { - "destType": "FRESHSALES", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "freshsales", - "description": "Track call: Either of email or targetable_id is required for creating sales activity.", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.5" - }, - "traits": { - "name": "Shehan Study", - "category": "SampleIdentify", - "plan": "Open source", - "logins": 5, - "createdAt": 1599264000 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.5" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 0.8999999761581421 - }, - "campaign": { - "source": "google", - "medium": "medium", - "term": "keyword", - "content": "some content", - "name": "some campaign", - "test": "other value" - }, - "page": { - "path": "/destinations/amplitude", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/amplitude", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "externalId": { - "type": "Contact" - } - }, - "type": "track", - "messageId": "dd46338d-5f83-493b-bd28-3b48f55d0be8", - "originalTimestamp": "2020-10-20T08:14:28.778Z", - "anonymousId": "my-anonymous-id-new", - "userId": "newUserIdAlias", - "properties": { - "product_name": "Shirt", - "brand": "Wrogn", - "salesActivityName": "own-calender", - "title": "new Contact", - "startDate": "2021-05-04T17:00:00+05:30", - "endDate": "2022-06-04T17:30:00+05:30", - "ownerId": "70054866612" - }, - "event": "sales_activity", - "previousId": "sampleusrRudder3", - "sentAt": "2020-10-20T08:14:28.778Z" - }, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "domain-rudder.myfreshworks.com" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "Either of email or targetable_id is required for creating sales activity. Aborting!", - "statTags": { - "destType": "FRESHSALES", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "freshsales", - "description": "Track call: sales activity with salesActivityTypeId", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.5" - }, - "traits": { - "name": "Shehan Study", - "category": "SampleIdentify", - "email": "test@rudderstack.com", - "plan": "Open source", - "logins": 5, - "createdAt": 1599264000 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.5" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 0.8999999761581421 - }, - "campaign": { - "source": "google", - "medium": "medium", - "term": "keyword", - "content": "some content", - "name": "some campaign", - "test": "other value" - }, - "page": { - "path": "/destinations/amplitude", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/amplitude", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "externalId": { - "type": "Contact" - } - }, - "type": "track", - "messageId": "dd46338d-5f83-493b-bd28-3b48f55d0be8", - "originalTimestamp": "2020-10-20T08:14:28.778Z", - "anonymousId": "my-anonymous-id-new", - "userId": "newUserIdAlias", - "email": "jamessampleton3@gmail.com", - "properties": { - "salesActivityTypeId": "70000663932", - "title": "new Contact", - "startDate": "2021-05-04T17:00:00+05:30", - "endDate": "2022-06-04T17:30:00+05:30", - "ownerId": "70054866612" - }, - "event": "sales_activity", - "previousId": "sampleusrRudder3", - "sentAt": "2020-10-20T08:14:28.778Z" - }, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "domain-rudder.myfreshworks.com" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "body": { - "XML": {}, - "FORM": {}, - "JSON": { - "sales_activity": { - "title": "new Contact", - "created_at": "2020-10-20T08:14:28.778Z", - "end_date": "2022-06-04T17:30:00+05:30", - "owner_id": "70054866612", - "start_date": "2021-05-04T17:00:00+05:30", - "updated_at": "2020-10-20T08:14:28.778Z", - "targetable_id": 70054866612, - "targetable_type": "Contact", - "sales_activity_type_id": "70000663932" - } - }, - "JSON_ARRAY": {} - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Content-Type": "application/json", - "Authorization": "Token token=dummyApiKey" - }, - "version": "1", - "endpoint": "https://domain-rudder.myfreshworks.com/crm/sales/api/sales_activities", - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "freshsales", - "description": "Track call: updated sales activity with salesActivityTypeId and targetableId", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.5" - }, - "traits": { - "name": "Shehan Study", - "category": "SampleIdentify", - "email": "test@rudderstack.com", - "plan": "Open source", - "logins": 5, - "createdAt": 1599264000 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.5" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 0.8999999761581421 - }, - "campaign": { - "source": "google", - "medium": "medium", - "term": "keyword", - "content": "some content", - "name": "some campaign", - "test": "other value" - }, - "page": { - "path": "/destinations/amplitude", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/amplitude", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "externalId": { - "id": "70052305908", - "type": "Contact" - } - }, - "type": "track", - "messageId": "dd46338d-5f83-493b-bd28-3b48f55d0be8", - "originalTimestamp": "2020-10-20T08:14:28.778Z", - "anonymousId": "my-anonymous-id-new", - "userId": "newUserIdAlias", - "properties": { - "salesActivityTypeId": "70000663932", - "title": "new Contact", - "startDate": "2021-05-04T17:00:00+05:30", - "endDate": "2022-06-04T17:30:00+05:30", - "ownerId": "70054866612" - }, - "event": "sales_activity", - "previousId": "sampleusrRudder3", - "sentAt": "2020-10-20T08:14:28.778Z" - }, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "domain-rudder.myfreshworks.com" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "body": { - "XML": {}, - "FORM": {}, - "JSON": { - "sales_activity": { - "title": "new Contact", - "created_at": "2020-10-20T08:14:28.778Z", - "end_date": "2022-06-04T17:30:00+05:30", - "owner_id": "70054866612", - "start_date": "2021-05-04T17:00:00+05:30", - "updated_at": "2020-10-20T08:14:28.778Z", - "targetable_id": "70052305908", - "targetable_type": "Contact", - "sales_activity_type_id": "70000663932" - } - }, - "JSON_ARRAY": {} - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Content-Type": "application/json", - "Authorization": "Token token=dummyApiKey" - }, - "version": "1", - "endpoint": "https://domain-rudder.myfreshworks.com/crm/sales/api/sales_activities", - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "freshsales", - "description": "Unsupported message Type", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "type": "page", - "messageId": "dd46338d-5f83-493b-bd28-3b48f55d0be8", - "originalTimestamp": "2020-10-20T08:14:28.778Z", - "anonymousId": "my-anonymous-id-new", - "userId": "newUserIdAlias", - "email": "jamessampleton3@gmail.com", - "properties": { - "lifecycleStageId": "71012139273", - "title": "new Contact", - "startDate": "2021-05-04T17:00:00+05:30", - "endDate": "2022-06-04T17:30:00+05:30", - "ownerId": "70054866612", - "targetableType": "Contact" - }, - "event": "lifecycle_stage", - "previousId": "sampleusrRudder3", - "sentAt": "2020-10-20T08:14:28.778Z" - }, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "domain-rudder.myfreshworks.com" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "message type page not supported", - "statTags": { - "destType": "FRESHSALES", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "freshsales", - "description": "Track call: with wrong sales activity name", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.5" - }, - "traits": { - "name": "Shehan Study", - "category": "SampleIdentify", - "email": "test@rudderstack.com", - "plan": "Open source", - "logins": 5, - "createdAt": 1599264000 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.5" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 0.8999999761581421 - }, - "campaign": { - "source": "google", - "medium": "medium", - "term": "keyword", - "content": "some content", - "name": "some campaign", - "test": "other value" - }, - "page": { - "path": "/destinations/amplitude", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/amplitude", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "externalId": { - "type": "Contact" - } - }, - "type": "track", - "messageId": "dd46338d-5f83-493b-bd28-3b48f55d0be8", - "originalTimestamp": "2020-10-20T08:14:28.778Z", - "anonymousId": "my-anonymous-id-new", - "userId": "newUserIdAlias", - "email": "test@rudderstack.com", - "properties": { - "product_name": "Shirt", - "brand": "Wrogn", - "salesActivityName": "own-list", - "title": "new Contact", - "startDate": "2021-05-04T17:00:00+05:30", - "endDate": "2022-06-04T17:30:00+05:30", - "ownerId": "70054866612" - }, - "event": "sales_activity", - "previousId": "sampleusrRudder3", - "sentAt": "2020-10-20T08:14:28.778Z" - }, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "domain-rudder.myfreshworks.com" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "sales Activity own-list doesn't exists. Aborting!", - "statTags": { - "destType": "FRESHSALES", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "freshsales", - "description": "Track call: update contacts with sales Activity name", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.5" - }, - "traits": { - "name": "Shehan Study", - "category": "SampleIdentify", - "plan": "Open source", - "logins": 5, - "createdAt": 1599264000 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.5" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 0.8999999761581421 - }, - "campaign": { - "source": "google", - "medium": "medium", - "term": "keyword", - "content": "some content", - "name": "some campaign", - "test": "other value" - }, - "page": { - "path": "/destinations/amplitude", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/amplitude", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - } - }, - "type": "track", - "messageId": "dd46338d-5f83-493b-bd28-3b48f55d0be8", - "originalTimestamp": "2020-10-20T08:14:28.778Z", - "anonymousId": "my-anonymous-id-new", - "userId": "newUserIdAlias", - "properties": { - "email": "jamessampleton6@gmail.com", - "lifecycleStageName": "final Customer", - "title": "new Contact", - "startDate": "2021-05-04T17:00:00+05:30", - "endDate": "2022-06-04T17:30:00+05:30", - "ownerId": "70054866612", - "targetableType": "Contact" - }, - "event": "lifecycle_stage", - "previousId": "sampleusrRudder3", - "sentAt": "2020-10-20T08:14:28.778Z" - }, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "domain-rudder.myfreshworks.com" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "body": { - "XML": {}, - "FORM": {}, - "JSON": { - "contact": { - "lifecycle_stage_id": 71012806409 - }, - "unique_identifier": { - "emails": "jamessampleton6@gmail.com" - } - }, - "JSON_ARRAY": {} - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Content-Type": "application/json", - "Authorization": "Token token=dummyApiKey" - }, - "version": "1", - "endpoint": "https://domain-rudder.myfreshworks.com/crm/sales/api/contacts/upsert", - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "freshsales", - "description": "Track call: with wrong lifecycleStageName", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.5" - }, - "traits": { - "name": "Shehan Study", - "category": "SampleIdentify", - "plan": "Open source", - "logins": 5, - "createdAt": 1599264000 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.5" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 0.8999999761581421 - }, - "campaign": { - "source": "google", - "medium": "medium", - "term": "keyword", - "content": "some content", - "name": "some campaign", - "test": "other value" - }, - "page": { - "path": "/destinations/amplitude", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/amplitude", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - } - }, - "type": "track", - "messageId": "dd46338d-5f83-493b-bd28-3b48f55d0be8", - "originalTimestamp": "2020-10-20T08:14:28.778Z", - "anonymousId": "my-anonymous-id-new", - "userId": "newUserIdAlias", - "properties": { - "email": "jamessampleton6@gmail.com", - "lifecycleStageName": "final ExCustomer", - "title": "new Contact", - "startDate": "2021-05-04T17:00:00+05:30", - "endDate": "2022-06-04T17:30:00+05:30", - "ownerId": "70054866612", - "targetableType": "Contact" - }, - "event": "lifecycle_stage", - "previousId": "sampleusrRudder3", - "sentAt": "2020-10-20T08:14:28.778Z" - }, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "domain": "domain-rudder.myfreshworks.com" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "failed to fetch lifeCycleStages with final ExCustomer", - "statTags": { - "destType": "FRESHSALES", - "errorCategory": "network", - "errorType": "aborted", - "feature": "processor", - "implementation": "native", - "meta": "instrumentation", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - } -] \ No newline at end of file + { + name: 'freshsales', + description: 'Track call, event is not supported.', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.5', + }, + traits: { + name: 'Shehan Study', + category: 'SampleIdentify', + email: 'test@rudderstack.com', + plan: 'Open source', + logins: 5, + createdAt: 1599264000, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.5', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 0.8999999761581421, + }, + campaign: { + source: 'google', + medium: 'medium', + term: 'keyword', + content: 'some content', + name: 'some campaign', + test: 'other value', + }, + page: { + path: '/destinations/amplitude', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/amplitude', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + }, + type: 'track', + messageId: 'dd46338d-5f83-493b-bd28-3b48f55d0be8', + originalTimestamp: '2020-10-20T08:14:28.778Z', + anonymousId: 'my-anonymous-id-new', + userId: 'newUserIdAlias', + properties: { + product_name: 'Shirt', + brand: 'Wrogn', + }, + event: { + name: 'Add to Cart', + }, + previousId: 'sampleusrRudder3', + sentAt: '2020-10-20T08:14:28.778Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'domain-rudder.myfreshworks.com', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Event is a required field and should be a string', + statTags: { + destType: 'FRESHSALES', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'freshsales', + description: 'Identify call for creating new user', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'rudderstack-476952domain3105.myfreshworks.com', + }, + }, + message: { + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2022-06-22T10:57:58Z', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99099', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + }, + traits: { + email: 'testuser@google.com', + first_name: 'Rk', + last_name: 'Mishra', + mobileNumber: '1-926-555-9504', + lifecycleStageId: 71010794467, + phone: '9988776655', + owner_id: '70000090119', + }, + type: 'identify', + sentAt: '2022-04-22T10:57:58Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + FORM: {}, + JSON: { + contact: { + emails: 'testuser@google.com', + last_name: 'Mishra', + created_at: '2022-06-22T10:57:58Z', + first_name: 'Rk', + updated_at: '2022-06-22T10:57:58Z', + external_id: 'ea5cfab2-3961-4d8a-8187-3d1858c99099', + work_number: '9988776655', + mobile_number: '1-926-555-9504', + lifecycle_stage_id: 71010794467, + }, + unique_identifier: { + emails: 'testuser@google.com', + }, + }, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { + 'Content-Type': 'application/json', + Authorization: 'Token token=dummyApiKey', + }, + version: '1', + endpoint: + 'https://rudderstack-476952domain3105.myfreshworks.com/crm/sales/api/contacts/upsert', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'freshsales', + description: 'Identify call with numbers in lifecycleStageId, ownerId', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'rudderstack-476952domain3105.myfreshworks.com', + }, + }, + message: { + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2022-06-22T10:57:58Z', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99099', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + }, + traits: { + email: 'testuser@google.com', + first_name: 'Rk', + last_name: 'Mishra', + mobileNumber: '1-926-555-9504', + lifecycleStageId: 71010794467, + phone: '9988776655', + owner_id: '70000090119', + }, + type: 'identify', + sentAt: '2022-04-22T10:57:58Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + FORM: {}, + JSON: { + contact: { + emails: 'testuser@google.com', + last_name: 'Mishra', + created_at: '2022-06-22T10:57:58Z', + first_name: 'Rk', + updated_at: '2022-06-22T10:57:58Z', + external_id: 'ea5cfab2-3961-4d8a-8187-3d1858c99099', + work_number: '9988776655', + mobile_number: '1-926-555-9504', + lifecycle_stage_id: 71010794467, + }, + unique_identifier: { + emails: 'testuser@google.com', + }, + }, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { + 'Content-Type': 'application/json', + Authorization: 'Token token=dummyApiKey', + }, + version: '1', + endpoint: + 'https://rudderstack-476952domain3105.myfreshworks.com/crm/sales/api/contacts/upsert', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'freshsales', + description: 'Identify call with wrong data type in lifecycleStageId, ownerId', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'rudderstack-476952domain3105.myfreshworks.com', + }, + }, + message: { + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2022-06-22T10:57:58Z', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99099', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + }, + traits: { + email: 'testuser@google.com', + first_name: 'Rk', + last_name: 'Mishra', + mobileNumber: '1-926-555-9504', + lifecycleStageId: 'rudderSample', + phone: '9988776655', + ownerId: 'rudderSample', + }, + type: 'identify', + sentAt: '2022-04-22T10:57:58Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://rudderstack-476952domain3105.myfreshworks.com/crm/sales/api/contacts/upsert', + headers: { + Authorization: 'Token token=dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + contact: { + emails: 'testuser@google.com', + first_name: 'Rk', + last_name: 'Mishra', + work_number: '9988776655', + external_id: 'ea5cfab2-3961-4d8a-8187-3d1858c99099', + mobile_number: '1-926-555-9504', + created_at: '2022-06-22T10:57:58Z', + updated_at: '2022-06-22T10:57:58Z', + }, + unique_identifier: { + emails: 'testuser@google.com', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'freshsales', + description: 'Identify call, email is not provided.', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'rudderstack-476952domain3105.myfreshworks.com', + }, + }, + message: { + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2022-06-22T10:57:58Z', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99099', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + }, + traits: { + first_name: 'Rk', + last_name: 'Mishra', + mobileNumber: '1-926-555-9504', + lifecycleStageId: 'rudderSample', + phone: '9988776655', + owner_id: 'rudderSample', + }, + type: 'identify', + sentAt: '2022-04-22T10:57:58Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Missing required value from "email"', + statTags: { + destType: 'FRESHSALES', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'freshsales', + description: 'Group call: testing with mock api', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'domain-rudder.myfreshworks.com', + }, + }, + message: { + messageId: 'sadjb-1e2r3fhgb-12bvbbj', + originalTimestamp: '2022-06-22T10:57:58Z', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + traits: { + email: 'testuser@google.com', + }, + }, + traits: { + groupType: 'accounts', + name: 'Mark Twain', + phone: '919191919191', + numberOfEmployees: 51, + annualRevenue: 1000, + address: 'Red Colony', + city: 'Colony', + state: 'Haryana', + }, + type: 'group', + sentAt: '2022-04-22T10:57:58Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + FORM: {}, + JSON: { + contact: { + sales_accounts: [ + { + id: 70003771198, + name: 'div-quer', + avatar: null, + partial: true, + website: null, + is_primary: true, + last_contacted: null, + record_type_id: '71010794477', + }, + { + id: 70003825177, + name: 'BisleriGroup', + avatar: null, + partial: true, + website: null, + is_primary: false, + last_contacted: null, + record_type_id: '71010794477', + }, + { + id: 70003771396, + is_primary: false, + }, + ], + }, + unique_identifier: { + emails: 'testuser@google.com', + }, + }, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { + 'Content-Type': 'application/json', + Authorization: 'Token token=dummyApiKey', + }, + version: '1', + endpoint: 'https://domain-rudder.myfreshworks.com/crm/sales/api/contacts/upsert', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'freshsales', + description: 'Group call: name is required field.', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'domain-rudder.myfreshworks.com', + }, + }, + message: { + messageId: 'sadjb-1e2r3fhgb-12bvbbj', + originalTimestamp: '2022-06-22T10:57:58Z', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + traits: { + email: 'testuser@google.com', + }, + }, + traits: { + groupType: 'accounts', + phone: '919191919191', + numberOfEmployees: 51, + annualRevenue: 1000, + address: 'Red Colony', + city: 'Colony', + state: 'Haryana', + }, + type: 'group', + sentAt: '2022-04-22T10:57:58Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Missing required value from "name"', + statTags: { + destType: 'FRESHSALES', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'freshsales', + description: 'missing message type', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'domain-rudder.myfreshworks.com', + }, + }, + message: { + messageId: 'sadjb-1e2r3fhgb-12bvbbj', + originalTimestamp: '2022-06-22T10:57:58Z', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + traits: { + email: 'testuser4google.com', + }, + }, + traits: { + name: 'Mark Twain', + phone: '919191919191', + numberOfEmployees: 51, + annualRevenue: 1000, + address: 'Red Colony', + city: 'Colony', + state: 'Haryana', + }, + sentAt: '2022-04-22T10:57:58Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Message Type is not present. Aborting message.', + statTags: { + destType: 'FRESHSALES', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'freshsales', + description: 'Wrong message type', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'domain-rudder.myfreshworks.com', + }, + }, + message: { + messageId: 'sadjb-1e2r3fhgb-12bvbbj', + originalTimestamp: '2022-06-22T10:57:58Z', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + traits: { + email: 'testuser4google.com', + }, + }, + traits: { + name: 'Mark Twain', + phone: '919191919191', + numberOfEmployees: 51, + annualRevenue: 1000, + address: 'Red Colony', + city: 'Colony', + state: 'Haryana', + }, + type: 'page', + sentAt: '2022-04-22T10:57:58Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'message type page not supported', + statTags: { + destType: 'FRESHSALES', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'freshsales', + description: 'Group call: user email is missing', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'domain-rudder.myfreshworks.com', + }, + }, + message: { + messageId: 'sadjb-1e2r3fhgb-12bvbbj', + originalTimestamp: '2022-06-22T10:57:58Z', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + traits: {}, + }, + traits: { + groupType: 'accounts', + name: 'div-quer', + phone: '919191919191', + numberOfEmployees: 51, + annualRevenue: 1000, + address: 'Red Colony', + city: 'Lal colony', + state: 'Haryana', + }, + type: 'group', + sentAt: '2022-04-22T10:57:58Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://domain-rudder.myfreshworks.com/crm/sales/api/sales_accounts/upsert', + headers: { + Authorization: 'Token token=dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + unique_identifier: { + name: 'div-quer', + }, + sales_account: { + name: 'div-quer', + phone: '919191919191', + number_of_employees: 51, + annual_revenue: 1000, + address: '', + city: 'Lal colony', + state: 'Haryana', + created_at: '2022-06-22T10:57:58Z', + updated_at: '2022-06-22T10:57:58Z', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'freshsales', + description: 'Identify call: Email is not present', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2022-06-22T10:57:58Z', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99099', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + }, + traits: { + first_name: 'Rk', + last_name: 'Narayan', + mobileNumber: '1-926-555-9504', + phone: '9988776655', + }, + type: 'identify', + sentAt: '2022-04-22T10:57:58Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'domain-rudder.myfreshworks.com', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Missing required value from "email"', + statTags: { + destType: 'FRESHSALES', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'freshsales', + description: 'Track call, event is not supported.', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.5', + }, + traits: { + name: 'Shehan Study', + category: 'SampleIdentify', + email: 'test@rudderstack.com', + plan: 'Open source', + logins: 5, + createdAt: 1599264000, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.5', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 0.8999999761581421, + }, + campaign: { + source: 'google', + medium: 'medium', + term: 'keyword', + content: 'some content', + name: 'some campaign', + test: 'other value', + }, + page: { + path: '/destinations/amplitude', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/amplitude', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + }, + type: 'track', + messageId: 'dd46338d-5f83-493b-bd28-3b48f55d0be8', + originalTimestamp: '2020-10-20T08:14:28.778Z', + anonymousId: 'my-anonymous-id-new', + userId: 'newUserIdAlias', + properties: { + product_name: 'Shirt', + brand: 'Wrogn', + }, + event: 'Add to Cart', + previousId: 'sampleusrRudder3', + sentAt: '2020-10-20T08:14:28.778Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'domain-rudder.myfreshworks.com', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'event name Add to Cart is not supported. Aborting!', + statTags: { + destType: 'FRESHSALES', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'freshsales', + description: 'Track call: some required properties is missing for sales_activity', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.5', + }, + traits: { + name: 'Shehan Study', + category: 'SampleIdentify', + email: 'test@rudderstack.com', + plan: 'Open source', + logins: 5, + createdAt: 1599264000, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.5', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 0.8999999761581421, + }, + campaign: { + source: 'google', + medium: 'medium', + term: 'keyword', + content: 'some content', + name: 'some campaign', + test: 'other value', + }, + page: { + path: '/destinations/amplitude', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/amplitude', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + }, + type: 'track', + messageId: 'dd46338d-5f83-493b-bd28-3b48f55d0be8', + originalTimestamp: '2020-10-20T08:14:28.778Z', + anonymousId: 'my-anonymous-id-new', + userId: 'newUserIdAlias', + email: 'test@rudderstack.com', + properties: { + product_name: 'Shirt', + brand: 'Wrogn', + }, + event: 'sales_activity', + previousId: 'sampleusrRudder3', + sentAt: '2020-10-20T08:14:28.778Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'domain-rudder.myfreshworks.com', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Missing required value from "properties.title"', + statTags: { + destType: 'FRESHSALES', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'freshsales', + description: 'Track call: for salesActivityName', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.5', + }, + traits: { + name: 'Shehan Study', + category: 'SampleIdentify', + email: 'test@rudderstack.com', + plan: 'Open source', + logins: 5, + createdAt: 1599264000, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.5', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 0.8999999761581421, + }, + campaign: { + source: 'google', + medium: 'medium', + term: 'keyword', + content: 'some content', + name: 'some campaign', + test: 'other value', + }, + page: { + path: '/destinations/amplitude', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/amplitude', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + externalId: { + type: 'Contact', + }, + }, + type: 'track', + messageId: 'dd46338d-5f83-493b-bd28-3b48f55d0be8', + originalTimestamp: '2020-10-20T08:14:28.778Z', + anonymousId: 'my-anonymous-id-new', + userId: 'newUserIdAlias', + email: 'test@rudderstack.com', + properties: { + product_name: 'Shirt', + brand: 'Wrogn', + salesActivityName: 'own-calender', + title: 'new Contact', + startDate: '2021-05-04T17:00:00+05:30', + endDate: '2022-06-04T17:30:00+05:30', + ownerId: '70054866612', + }, + event: 'test', + previousId: 'sampleusrRudder3', + sentAt: '2020-10-20T08:14:28.778Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'domain-rudder.myfreshworks.com', + rudderEventsToFreshsalesEvents: [ + { + from: 'test', + to: 'sales_activity', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + FORM: {}, + JSON: { + sales_activity: { + title: 'new Contact', + created_at: '2020-10-20T08:14:28.778Z', + end_date: '2022-06-04T17:30:00+05:30', + owner_id: '70054866612', + start_date: '2021-05-04T17:00:00+05:30', + updated_at: '2020-10-20T08:14:28.778Z', + targetable_id: 70054866612, + targetable_type: 'Contact', + sales_activity_name: 'own-calender', + sales_activity_type_id: 70000666879, + }, + }, + JSON_ARRAY: {}, + }, + type: 'REST', + userId: '', + files: {}, + method: 'POST', + params: {}, + headers: { + 'Content-Type': 'application/json', + Authorization: 'Token token=dummyApiKey', + }, + version: '1', + endpoint: 'https://domain-rudder.myfreshworks.com/crm/sales/api/sales_activities', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'freshsales', + description: 'Track call: lifecycle_stage_id', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.5', + }, + traits: { + name: 'Shehan Study', + category: 'SampleIdentify', + plan: 'Open source', + logins: 5, + createdAt: 1599264000, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.5', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 0.8999999761581421, + }, + campaign: { + source: 'google', + medium: 'medium', + term: 'keyword', + content: 'some content', + name: 'some campaign', + test: 'other value', + }, + page: { + path: '/destinations/amplitude', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/amplitude', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + }, + type: 'track', + messageId: 'dd46338d-5f83-493b-bd28-3b48f55d0be8', + originalTimestamp: '2020-10-20T08:14:28.778Z', + anonymousId: 'my-anonymous-id-new', + userId: 'newUserIdAlias', + properties: { + email: 'jamessampleton3@gmail.com', + lifecycleStageId: '71012139273', + title: 'new Contact', + startDate: '2021-05-04T17:00:00+05:30', + endDate: '2022-06-04T17:30:00+05:30', + ownerId: '70054866612', + targetableType: 'Contact', + }, + event: 'lifecycle_stage', + previousId: 'sampleusrRudder3', + sentAt: '2020-10-20T08:14:28.778Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'domain-rudder.myfreshworks.com', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://domain-rudder.myfreshworks.com/crm/sales/api/contacts/upsert', + headers: { + Authorization: 'Token token=dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + contact: { + lifecycle_stage_id: '71012139273', + }, + unique_identifier: { + emails: 'jamessampleton3@gmail.com', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'freshsales', + description: 'Track call: In lifecycle stage, email is missing', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.5', + }, + traits: { + name: 'Shehan Study', + category: 'SampleIdentify', + plan: 'Open source', + logins: 5, + createdAt: 1599264000, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.5', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 0.8999999761581421, + }, + campaign: { + source: 'google', + medium: 'medium', + term: 'keyword', + content: 'some content', + name: 'some campaign', + test: 'other value', + }, + page: { + path: '/destinations/amplitude', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/amplitude', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + }, + type: 'track', + messageId: 'dd46338d-5f83-493b-bd28-3b48f55d0be8', + originalTimestamp: '2020-10-20T08:14:28.778Z', + anonymousId: 'my-anonymous-id-new', + userId: 'newUserIdAlias', + properties: { + lifecycleStageId: '71012139273', + title: 'new Contact', + startDate: '2021-05-04T17:00:00+05:30', + endDate: '2022-06-04T17:30:00+05:30', + ownerId: '70054866612', + targetableType: 'Contact', + }, + event: 'lifecycle_stage', + previousId: 'sampleusrRudder3', + sentAt: '2020-10-20T08:14:28.778Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'domain-rudder.myfreshworks.com', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'email is required for updating life Cycle Stages. Aborting!', + statTags: { + destType: 'FRESHSALES', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'freshsales', + description: 'Track call: Either of lifecycleStageName or lifecycleStageId is required', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.5', + }, + traits: { + name: 'Shehan Study', + category: 'SampleIdentify', + email: 'test@rudderstack.com', + plan: 'Open source', + logins: 5, + createdAt: 1599264000, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.5', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 0.8999999761581421, + }, + campaign: { + source: 'google', + medium: 'medium', + term: 'keyword', + content: 'some content', + name: 'some campaign', + test: 'other value', + }, + page: { + path: '/destinations/amplitude', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/amplitude', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + }, + type: 'track', + messageId: 'dd46338d-5f83-493b-bd28-3b48f55d0be8', + originalTimestamp: '2020-10-20T08:14:28.778Z', + anonymousId: 'my-anonymous-id-new', + userId: 'newUserIdAlias', + email: 'jamessampleton3@gmail.com', + properties: { + title: 'new Contact', + startDate: '2021-05-04T17:00:00+05:30', + endDate: '2022-06-04T17:30:00+05:30', + ownerId: '70054866612', + targetableType: 'Contact', + }, + event: 'lifecycle_stage', + previousId: 'sampleusrRudder3', + sentAt: '2020-10-20T08:14:28.778Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'domain-rudder.myfreshworks.com', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Either of lifecycleStageName or lifecycleStageId is required. Aborting!', + statTags: { + destType: 'FRESHSALES', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'freshsales', + description: 'Track call: Either of sales activity name or sales activity type id is required', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.5', + }, + traits: { + name: 'Shehan Study', + category: 'SampleIdentify', + email: 'test@rudderstack.com', + plan: 'Open source', + logins: 5, + createdAt: 1599264000, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.5', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 0.8999999761581421, + }, + campaign: { + source: 'google', + medium: 'medium', + term: 'keyword', + content: 'some content', + name: 'some campaign', + test: 'other value', + }, + page: { + path: '/destinations/amplitude', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/amplitude', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + externalId: { + type: 'Contact', + }, + }, + type: 'track', + messageId: 'dd46338d-5f83-493b-bd28-3b48f55d0be8', + originalTimestamp: '2020-10-20T08:14:28.778Z', + anonymousId: 'my-anonymous-id-new', + userId: 'newUserIdAlias', + email: 'test@rudderstack.com', + properties: { + product_name: 'Shirt', + brand: 'Wrogn', + title: 'new Contact', + startDate: '2021-05-04T17:00:00+05:30', + endDate: '2022-06-04T17:30:00+05:30', + ownerId: '70054866612', + }, + event: 'sales_activity', + previousId: 'sampleusrRudder3', + sentAt: '2020-10-20T08:14:28.778Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'domain-rudder.myfreshworks.com', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Either of sales activity name or sales activity type id is required. Aborting!', + statTags: { + destType: 'FRESHSALES', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'freshsales', + description: + 'Track call: Either of email or targetable_id is required for creating sales activity.', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.5', + }, + traits: { + name: 'Shehan Study', + category: 'SampleIdentify', + plan: 'Open source', + logins: 5, + createdAt: 1599264000, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.5', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 0.8999999761581421, + }, + campaign: { + source: 'google', + medium: 'medium', + term: 'keyword', + content: 'some content', + name: 'some campaign', + test: 'other value', + }, + page: { + path: '/destinations/amplitude', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/amplitude', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + externalId: { + type: 'Contact', + }, + }, + type: 'track', + messageId: 'dd46338d-5f83-493b-bd28-3b48f55d0be8', + originalTimestamp: '2020-10-20T08:14:28.778Z', + anonymousId: 'my-anonymous-id-new', + userId: 'newUserIdAlias', + properties: { + product_name: 'Shirt', + brand: 'Wrogn', + salesActivityName: 'own-calender', + title: 'new Contact', + startDate: '2021-05-04T17:00:00+05:30', + endDate: '2022-06-04T17:30:00+05:30', + ownerId: '70054866612', + }, + event: 'sales_activity', + previousId: 'sampleusrRudder3', + sentAt: '2020-10-20T08:14:28.778Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'domain-rudder.myfreshworks.com', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'Either of email or targetable_id is required for creating sales activity. Aborting!', + statTags: { + destType: 'FRESHSALES', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'freshsales', + description: 'Track call: sales activity with salesActivityTypeId', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.5', + }, + traits: { + name: 'Shehan Study', + category: 'SampleIdentify', + email: 'test@rudderstack.com', + plan: 'Open source', + logins: 5, + createdAt: 1599264000, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.5', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 0.8999999761581421, + }, + campaign: { + source: 'google', + medium: 'medium', + term: 'keyword', + content: 'some content', + name: 'some campaign', + test: 'other value', + }, + page: { + path: '/destinations/amplitude', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/amplitude', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + externalId: { + type: 'Contact', + }, + }, + type: 'track', + messageId: 'dd46338d-5f83-493b-bd28-3b48f55d0be8', + originalTimestamp: '2020-10-20T08:14:28.778Z', + anonymousId: 'my-anonymous-id-new', + userId: 'newUserIdAlias', + email: 'jamessampleton3@gmail.com', + properties: { + salesActivityTypeId: '70000663932', + title: 'new Contact', + startDate: '2021-05-04T17:00:00+05:30', + endDate: '2022-06-04T17:30:00+05:30', + ownerId: '70054866612', + }, + event: 'sales_activity', + previousId: 'sampleusrRudder3', + sentAt: '2020-10-20T08:14:28.778Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'domain-rudder.myfreshworks.com', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + FORM: {}, + JSON: { + sales_activity: { + title: 'new Contact', + created_at: '2020-10-20T08:14:28.778Z', + end_date: '2022-06-04T17:30:00+05:30', + owner_id: '70054866612', + start_date: '2021-05-04T17:00:00+05:30', + updated_at: '2020-10-20T08:14:28.778Z', + targetable_id: 70054866612, + targetable_type: 'Contact', + sales_activity_type_id: '70000663932', + }, + }, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { + 'Content-Type': 'application/json', + Authorization: 'Token token=dummyApiKey', + }, + version: '1', + endpoint: 'https://domain-rudder.myfreshworks.com/crm/sales/api/sales_activities', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'freshsales', + description: 'Track call: updated sales activity with salesActivityTypeId and targetableId', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.5', + }, + traits: { + name: 'Shehan Study', + category: 'SampleIdentify', + email: 'test@rudderstack.com', + plan: 'Open source', + logins: 5, + createdAt: 1599264000, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.5', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 0.8999999761581421, + }, + campaign: { + source: 'google', + medium: 'medium', + term: 'keyword', + content: 'some content', + name: 'some campaign', + test: 'other value', + }, + page: { + path: '/destinations/amplitude', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/amplitude', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + externalId: { + id: '70052305908', + type: 'Contact', + }, + }, + type: 'track', + messageId: 'dd46338d-5f83-493b-bd28-3b48f55d0be8', + originalTimestamp: '2020-10-20T08:14:28.778Z', + anonymousId: 'my-anonymous-id-new', + userId: 'newUserIdAlias', + properties: { + salesActivityTypeId: '70000663932', + title: 'new Contact', + startDate: '2021-05-04T17:00:00+05:30', + endDate: '2022-06-04T17:30:00+05:30', + ownerId: '70054866612', + }, + event: 'sales_activity', + previousId: 'sampleusrRudder3', + sentAt: '2020-10-20T08:14:28.778Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'domain-rudder.myfreshworks.com', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + FORM: {}, + JSON: { + sales_activity: { + title: 'new Contact', + created_at: '2020-10-20T08:14:28.778Z', + end_date: '2022-06-04T17:30:00+05:30', + owner_id: '70054866612', + start_date: '2021-05-04T17:00:00+05:30', + updated_at: '2020-10-20T08:14:28.778Z', + targetable_id: '70052305908', + targetable_type: 'Contact', + sales_activity_type_id: '70000663932', + }, + }, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { + 'Content-Type': 'application/json', + Authorization: 'Token token=dummyApiKey', + }, + version: '1', + endpoint: 'https://domain-rudder.myfreshworks.com/crm/sales/api/sales_activities', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'freshsales', + description: 'Unsupported message Type', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + type: 'page', + messageId: 'dd46338d-5f83-493b-bd28-3b48f55d0be8', + originalTimestamp: '2020-10-20T08:14:28.778Z', + anonymousId: 'my-anonymous-id-new', + userId: 'newUserIdAlias', + email: 'jamessampleton3@gmail.com', + properties: { + lifecycleStageId: '71012139273', + title: 'new Contact', + startDate: '2021-05-04T17:00:00+05:30', + endDate: '2022-06-04T17:30:00+05:30', + ownerId: '70054866612', + targetableType: 'Contact', + }, + event: 'lifecycle_stage', + previousId: 'sampleusrRudder3', + sentAt: '2020-10-20T08:14:28.778Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'domain-rudder.myfreshworks.com', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'message type page not supported', + statTags: { + destType: 'FRESHSALES', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'freshsales', + description: 'Track call: with wrong sales activity name', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.5', + }, + traits: { + name: 'Shehan Study', + category: 'SampleIdentify', + email: 'test@rudderstack.com', + plan: 'Open source', + logins: 5, + createdAt: 1599264000, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.5', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 0.8999999761581421, + }, + campaign: { + source: 'google', + medium: 'medium', + term: 'keyword', + content: 'some content', + name: 'some campaign', + test: 'other value', + }, + page: { + path: '/destinations/amplitude', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/amplitude', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + externalId: { + type: 'Contact', + }, + }, + type: 'track', + messageId: 'dd46338d-5f83-493b-bd28-3b48f55d0be8', + originalTimestamp: '2020-10-20T08:14:28.778Z', + anonymousId: 'my-anonymous-id-new', + userId: 'newUserIdAlias', + email: 'test@rudderstack.com', + properties: { + product_name: 'Shirt', + brand: 'Wrogn', + salesActivityName: 'own-list', + title: 'new Contact', + startDate: '2021-05-04T17:00:00+05:30', + endDate: '2022-06-04T17:30:00+05:30', + ownerId: '70054866612', + }, + event: 'sales_activity', + previousId: 'sampleusrRudder3', + sentAt: '2020-10-20T08:14:28.778Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'domain-rudder.myfreshworks.com', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: "sales Activity own-list doesn't exists. Aborting!", + statTags: { + destType: 'FRESHSALES', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'freshsales', + description: 'Track call: update contacts with sales Activity name', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.5', + }, + traits: { + name: 'Shehan Study', + category: 'SampleIdentify', + plan: 'Open source', + logins: 5, + createdAt: 1599264000, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.5', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 0.8999999761581421, + }, + campaign: { + source: 'google', + medium: 'medium', + term: 'keyword', + content: 'some content', + name: 'some campaign', + test: 'other value', + }, + page: { + path: '/destinations/amplitude', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/amplitude', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + }, + type: 'track', + messageId: 'dd46338d-5f83-493b-bd28-3b48f55d0be8', + originalTimestamp: '2020-10-20T08:14:28.778Z', + anonymousId: 'my-anonymous-id-new', + userId: 'newUserIdAlias', + properties: { + email: 'jamessampleton6@gmail.com', + lifecycleStageName: 'final Customer', + title: 'new Contact', + startDate: '2021-05-04T17:00:00+05:30', + endDate: '2022-06-04T17:30:00+05:30', + ownerId: '70054866612', + targetableType: 'Contact', + }, + event: 'lifecycle_stage', + previousId: 'sampleusrRudder3', + sentAt: '2020-10-20T08:14:28.778Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'domain-rudder.myfreshworks.com', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + FORM: {}, + JSON: { + contact: { + lifecycle_stage_id: 71012806409, + }, + unique_identifier: { + emails: 'jamessampleton6@gmail.com', + }, + }, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { + 'Content-Type': 'application/json', + Authorization: 'Token token=dummyApiKey', + }, + version: '1', + endpoint: 'https://domain-rudder.myfreshworks.com/crm/sales/api/contacts/upsert', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'freshsales', + description: 'Track call: with wrong lifecycleStageName', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.5', + }, + traits: { + name: 'Shehan Study', + category: 'SampleIdentify', + plan: 'Open source', + logins: 5, + createdAt: 1599264000, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.5', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 0.8999999761581421, + }, + campaign: { + source: 'google', + medium: 'medium', + term: 'keyword', + content: 'some content', + name: 'some campaign', + test: 'other value', + }, + page: { + path: '/destinations/amplitude', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/amplitude', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + }, + type: 'track', + messageId: 'dd46338d-5f83-493b-bd28-3b48f55d0be8', + originalTimestamp: '2020-10-20T08:14:28.778Z', + anonymousId: 'my-anonymous-id-new', + userId: 'newUserIdAlias', + properties: { + email: 'jamessampleton6@gmail.com', + lifecycleStageName: 'final ExCustomer', + title: 'new Contact', + startDate: '2021-05-04T17:00:00+05:30', + endDate: '2022-06-04T17:30:00+05:30', + ownerId: '70054866612', + targetableType: 'Contact', + }, + event: 'lifecycle_stage', + previousId: 'sampleusrRudder3', + sentAt: '2020-10-20T08:14:28.778Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + domain: 'domain-rudder.myfreshworks.com', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'failed to fetch lifeCycleStages with final ExCustomer', + statTags: { + destType: 'FRESHSALES', + errorCategory: 'network', + errorType: 'aborted', + feature: 'processor', + implementation: 'native', + meta: 'instrumentation', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/freshsales/router/data.ts b/test/integrations/destinations/freshsales/router/data.ts index 12cbacf576..8548d337b3 100644 --- a/test/integrations/destinations/freshsales/router/data.ts +++ b/test/integrations/destinations/freshsales/router/data.ts @@ -1,185 +1,175 @@ export const data = [ - { - name: 'freshsales', - description: 'Test 0', - feature: 'router', - module: 'destination', - version: 'v0', - input: { - request: { - body: { - input: [ - { - "message": { - "context": { - "device": { - "name": "Mi", - "token": "dummyDeviceToken" - }, - "os": { - "name": "android" - }, - "traits": { - "address": { - "city": "city", - "country": "country", - "postalCode": "postalCode", - "state": "state", - "street": "street" - }, - "email": "user112@mail.com", - "firstName": "sample1", - "lastName": "user1" - } - }, - "messageId": "8184ebd7-3a19-45a3-a340-d6f449c63d27", - "originalTimestamp": "2022-08-30T11:28:48.429+05:30", - "receivedAt": "2022-08-30T11:28:43.648+05:30", - "request_ip": "[::1]", - "rudderId": "ed33ef22-569d-44b1-a6cb-063c69dca8f0", - "sentAt": "2022-08-30T11:28:48.429+05:30", - "timestamp": "2022-08-30T11:28:43.647+05:30", - "type": "identify", - "userId": "user113" - }, - "destination": { - "ID": "2E3xCNR3sae33y3AkGzuQ3ym05v", - "Name": "test", - "DestinationDefinition": { - "ID": "2E3x3AwySRvh6vXgYslvYApyFPb", - "Name": "FRESHSALES", - "DisplayName": "Freshsales", - "Config": { - "destConfig": { - "defaultConfig": ["apiKey", "domain"] - }, - "excludeKeys": [], - "includeKeys": ["apiKey", "domain"], - "saveDestinationResponse": true, - "supportedMessageTypes": ["identify", "group"], - "supportedSourceTypes": [ - "amp", - "android", - "cordova", - "cloud", - "flutter", - "ios", - "reactnative", - "unity", - "warehouse", - "web" - ], - "transformAt": "processor", - "transformAtV1": "processor" - }, - "ResponseRules": {} - }, - "Config": { - "apiKey": "hrkjfergeferf", - "domain": "rudderstack-479541159204968909.myfreshworks.com" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true, - "RevisionID": "2E3xCLWeb83vOGDh0mkN4Auei3i" - }, - "metadata": {} - } + { + name: 'freshsales', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + context: { + device: { name: 'Mi', token: 'dummyDeviceToken' }, + os: { name: 'android' }, + traits: { + address: { + city: 'city', + country: 'country', + postalCode: 'postalCode', + state: 'state', + street: 'street', + }, + email: 'user112@mail.com', + firstName: 'sample1', + lastName: 'user1', + }, + }, + messageId: '8184ebd7-3a19-45a3-a340-d6f449c63d27', + originalTimestamp: '2022-08-30T11:28:48.429+05:30', + receivedAt: '2022-08-30T11:28:43.648+05:30', + request_ip: '[::1]', + rudderId: 'ed33ef22-569d-44b1-a6cb-063c69dca8f0', + sentAt: '2022-08-30T11:28:48.429+05:30', + timestamp: '2022-08-30T11:28:43.647+05:30', + type: 'identify', + userId: 'user113', + }, + destination: { + ID: '2E3xCNR3sae33y3AkGzuQ3ym05v', + Name: 'test', + DestinationDefinition: { + ID: '2E3x3AwySRvh6vXgYslvYApyFPb', + Name: 'FRESHSALES', + DisplayName: 'Freshsales', + Config: { + destConfig: { defaultConfig: ['apiKey', 'domain'] }, + excludeKeys: [], + includeKeys: ['apiKey', 'domain'], + saveDestinationResponse: true, + supportedMessageTypes: ['identify', 'group'], + supportedSourceTypes: [ + 'amp', + 'android', + 'cordova', + 'cloud', + 'flutter', + 'ios', + 'reactnative', + 'unity', + 'warehouse', + 'web', ], - destType: 'freshsales', + transformAt: 'processor', + transformAtV1: 'processor', + }, + ResponseRules: {}, }, - method: 'POST', + Config: { + apiKey: 'hrkjfergeferf', + domain: 'rudderstack-479541159204968909.myfreshworks.com', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + RevisionID: '2E3xCLWeb83vOGDh0mkN4Auei3i', + }, + metadata: { userId: 'u1' }, }, + ], + destType: 'freshsales', }, - output: { - response: { - status: 200, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://rudderstack-479541159204968909.myfreshworks.com/crm/sales/api/contacts/upsert', + headers: { + Authorization: 'Token token=hrkjfergeferf', + 'Content-Type': 'application/json', + }, + params: {}, body: { - output: [ - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://rudderstack-479541159204968909.myfreshworks.com/crm/sales/api/contacts/upsert", - "headers": { - "Authorization": "Token token=hrkjfergeferf", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "contact": { - "emails": "user112@mail.com", - "first_name": "sample1", - "last_name": "user1", - "external_id": "user113", - "address": "street city state country postalCode", - "city": "city", - "state": "state", - "country": "country", - "zipcode": "postalCode", - "created_at": "2022-08-30T11:28:43.647+05:30", - "updated_at": "2022-08-30T11:28:43.647+05:30" - }, - "unique_identifier": { - "emails": "user112@mail.com" - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - "metadata": [{}], - "batched": false, - "statusCode": 200, - "destination": { - "ID": "2E3xCNR3sae33y3AkGzuQ3ym05v", - "Name": "test", - "DestinationDefinition": { - "ID": "2E3x3AwySRvh6vXgYslvYApyFPb", - "Name": "FRESHSALES", - "DisplayName": "Freshsales", - "Config": { - "destConfig": { - "defaultConfig": ["apiKey", "domain"] - }, - "excludeKeys": [], - "includeKeys": ["apiKey", "domain"], - "saveDestinationResponse": true, - "supportedMessageTypes": ["identify", "group"], - "supportedSourceTypes": [ - "amp", - "android", - "cordova", - "cloud", - "flutter", - "ios", - "reactnative", - "unity", - "warehouse", - "web" - ], - "transformAt": "processor", - "transformAtV1": "processor" - }, - "ResponseRules": {} - }, - "Config": { - "apiKey": "hrkjfergeferf", - "domain": "rudderstack-479541159204968909.myfreshworks.com" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true, - "RevisionID": "2E3xCLWeb83vOGDh0mkN4Auei3i" - } - } + JSON: { + contact: { + emails: 'user112@mail.com', + first_name: 'sample1', + last_name: 'user1', + external_id: 'user113', + address: 'street city state country postalCode', + city: 'city', + state: 'state', + country: 'country', + zipcode: 'postalCode', + created_at: '2022-08-30T11:28:43.647+05:30', + updated_at: '2022-08-30T11:28:43.647+05:30', + }, + unique_identifier: { emails: 'user112@mail.com' }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [{ userId: 'u1' }], + batched: false, + statusCode: 200, + destination: { + ID: '2E3xCNR3sae33y3AkGzuQ3ym05v', + Name: 'test', + DestinationDefinition: { + ID: '2E3x3AwySRvh6vXgYslvYApyFPb', + Name: 'FRESHSALES', + DisplayName: 'Freshsales', + Config: { + destConfig: { defaultConfig: ['apiKey', 'domain'] }, + excludeKeys: [], + includeKeys: ['apiKey', 'domain'], + saveDestinationResponse: true, + supportedMessageTypes: ['identify', 'group'], + supportedSourceTypes: [ + 'amp', + 'android', + 'cordova', + 'cloud', + 'flutter', + 'ios', + 'reactnative', + 'unity', + 'warehouse', + 'web', ], + transformAt: 'processor', + transformAtV1: 'processor', + }, + ResponseRules: {}, + }, + Config: { + apiKey: 'hrkjfergeferf', + domain: 'rudderstack-479541159204968909.myfreshworks.com', }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + RevisionID: '2E3xCLWeb83vOGDh0mkN4Auei3i', + }, }, + ], }, + }, }, + }, ]; diff --git a/test/integrations/destinations/ga/processor/data.ts b/test/integrations/destinations/ga/processor/data.ts index aa468b5038..43a222e025 100644 --- a/test/integrations/destinations/ga/processor/data.ts +++ b/test/integrations/destinations/ga/processor/data.ts @@ -1,9979 +1,10034 @@ export const mockFns = (_) => { - // @ts-ignore - jest - .useFakeTimers() - .setSystemTime(new Date('2023-09-29')); + // @ts-ignore + jest.useFakeTimers().setSystemTime(new Date('2023-09-29')); }; export const data = [ - { - "name": "ga", - "description": "Test 0", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "externalId": [ - { - "id": "lynnanderson@smith.net", - "identifierType": "device_id", - "type": "AM-users" - } - ], - "mappedToDestination": "true", - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "anonymousId": "123456", - "email": "test@rudderstack.com", - "address": { - "country": "India", - "postalCode": 712136, - "state": "WB", - "street": "", - "os_version": "test os" - }, - "ip": "0.0.0.0", - "age": 26 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "page": { - "path": "/destinations/amplitude", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/amplitude", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - } - }, - "traits": { - "anonymousId": "123456", - "email": "test@rudderstack.com", - "city": "kolkata", - "address": { - "country": "India", - "postalCode": 712136, - "state": "WB", - "street": "" - }, - "os_version": "test os", - "ip": "0.0.0.0", - "age": 26, - "an": "Test App name", - "ul": "Test ul" - }, - "type": "identify", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "123456", - "userId": "123456", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "name", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "name", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "action1", - "ec": "All", - "ni": 1, - "ul": "Test ul", - "an": "Test App name", - "cm1": "test@rudderstack.com", - "v": "1", - "t": "event", - "tid": "UA-165994240-1", - "ds": "web", - "npa": 1, - "aip": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "uid": "123456", - "cid": "123456", - "uip": "0.0.0.0", - "qt": 124901802438 - }, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "123456" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 1", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "traits": { - "name": "Rudder Test" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "properties": { - "plan": "standard plan", - "name": "rudder test" - }, - "type": "identify", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "name", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "name", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "action1", - "ec": "Rudder Test", - "cd1": "Rudder Test", - "cg2": "Rudder Test", - "v": "1", - "t": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "uid": "123456", - "cid": "00000000000000000000000000", - "ni": 1, - "uip": "0.0.0.0", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "ul": "en-US", - "qt": 124893881701 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 2", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "page", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "path": "/abc", - "referrer": "q", - "search": "", - "title": "a", - "url": "https://www.example.com/abc" - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "v": "1", - "t": "pageview", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "uip": "0.0.0.0", - "ul": "en-US", - "dh": "www.example.com", - "dl": "https://www.example.com/abc", - "dp": "%2Fabc", - "dr": "q", - "dt": "a", - "qt": 124893881701 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 3", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "test track event GA3", - "properties": { - "category": "test-category", - "user_actual_role": "system_admin, system_user", - "user_actual_id": 12345 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ec": "test-category", - "ni": 1, - "v": "1", - "el": "event", - "t": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ea": "test track event GA3", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "qt": 124893881700 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 4", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "order completed", - "properties": { - "order_id": "rudderstackorder1", - "total": 99.99, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298" - }, - { - "quantity": 3, - "price": 24.75, - "name": "other product", - "sku": "p-299" - } - ] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "pa": "purchase", - "tr": 99.99, - "ev": 100, - "pr1id": "p-298", - "pr1cd1": "my product", - "pr1nm": "my product", - "pr1pr": 24.75, - "pr2id": "p-299", - "pr2cd1": "other product", - "pr2nm": "other product", - "pr2pr": 24.75, - "ea": "order completed", - "ec": "EnhancedEcommerce", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ti": "rudderstackorder1", - "ts": 13.99, - "tt": 20.99, - "cu": "INR", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ni": 1, - "pr1qt": 1, - "pr2qt": 3, - "ul": "en-US", - "qt": 124893881700 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 5", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "product added", - "properties": { - "currency": "CAD", - "quantity": 1, - "price": 24.75, - "name": "my product 1", - "category": "cat 1", - "sku": "p-298", - "testDimension": true, - "testMetric": true, - "position": 4.5 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "product added", - "ec": "cat 1", - "pa": "add", - "pr1cd1": "my product 1", - "pr1id": "p-298", - "cd1": "my product 1", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "pr1nm": "my product 1", - "pr1ca": "cat 1", - "cu": "CAD", - "pr1ps": 4.5, - "pr1pr": 24.75, - "pr1qt": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ni": 1, - "ul": "en-US", - "qt": 124893881700 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 6", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "product removed", - "properties": { - "currency": "CAD", - "quantity": 1, - "price": 24.75, - "name": "my product 1", - "category": "cat 1", - "sku": "p-298", - "testDimension": true, - "testMetric": true, - "position": 4.5 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "product removed", - "ec": "cat 1", - "pa": "remove", - "pr1cd1": "my product 1", - "pr1id": "p-298", - "cd1": "my product 1", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "pr1nm": "my product 1", - "pr1ca": "cat 1", - "cu": "CAD", - "pr1ps": 4.5, - "pr1pr": 24.75, - "pr1qt": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "ni": 1, - "qt": 124893881700 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 7", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "product viewed", - "properties": { - "currency": "CAD", - "quantity": 1, - "price": 24.75, - "name": "my product 1", - "category": "cat 1", - "sku": "p-298", - "testDimension": true, - "testMetric": true, - "position": 4.5 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "product viewed", - "ec": "cat 1", - "pa": "detail", - "pr1cd1": "my product 1", - "pr1id": "p-298", - "cd1": "my product 1", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "pr1nm": "my product 1", - "pr1ca": "cat 1", - "cu": "CAD", - "pr1ps": 4.5, - "pr1pr": 24.75, - "pr1qt": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "ni": 1, - "qt": 124893881700 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 8", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "product removed", - "properties": { - "currency": "CAD", - "quantity": 1, - "price": 24.75, - "name": "my product 1", - "category": "cat 1", - "sku": "p-298", - "testDimension": true, - "testMetric": true, - "position": 4.5 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "product removed", - "ec": "cat 1", - "pa": "remove", - "pr1cd1": "my product 1", - "pr1id": "p-298", - "cd1": "my product 1", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "pr1nm": "my product 1", - "pr1ca": "cat 1", - "cu": "CAD", - "pr1ps": 4.5, - "pr1pr": 24.75, - "pr1qt": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "ni": 1, - "qt": 124893881701 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 9", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "product viewed", - "properties": { - "currency": "CAD", - "quantity": 1, - "price": 24.75, - "name": "my product 1", - "category": "cat 1", - "sku": "p-298", - "testDimension": true, - "testMetric": true, - "position": 4.5 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "product viewed", - "ec": "cat 1", - "pa": "detail", - "pr1cd1": "my product 1", - "pr1id": "p-298", - "cd1": "my product 1", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "pr1nm": "my product 1", - "pr1ca": "cat 1", - "cu": "CAD", - "pr1ps": 4.5, - "pr1pr": 24.75, - "pr1qt": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "ni": 1, - "qt": 124893881700 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 10", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "product list filtered", - "properties": { - "category": "cat 1", - "list_id": "1234", - "filters": [ - { - "type": "department", - "value": "beauty" - }, - { - "type": "price", - "value": "under" - } - ], - "sorts": [ - { - "type": "price", - "value": "desc" - } - ], - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "productDimension": "My Product Dimension", - "productMetric": "My Product Metric" - } - ], - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "product list filtered", - "ec": "cat 1", - "pa": "detail", - "il1pi1id": "507f1f77bcf86cd799439011", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "il1nm": "1234", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "cid": "00000000000000000000000000", - "uid": "12345", - "il1pi1qt": 1, - "il1pi1va": "department:beauty,price:under::price:desc", - "ul": "en-US", - "ni": 1, - "qt": 124893881700 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 11", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "product list viewed", - "properties": { - "category": "cat 1", - "list_id": "1234", - "filters": [ - { - "type": "department", - "value": "beauty" - }, - { - "type": "price", - "value": "under" - } - ], - "sorts": [ - { - "type": "price", - "value": "desc" - } - ], - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "productDimension": "My Product Dimension", - "productMetric": "My Product Metric", - "position": 10 - }, - { - "product_id": "507f1f77bcf86cdef799439011", - "productDimension": "My Product Dimension1", - "productMetric": "My Product Metric1", - "position": -10 - } - ], - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "product list viewed", - "ec": "cat 1", - "pa": "detail", - "il1pi1id": "507f1f77bcf86cd799439011", - "il1pi1ps": 10, - "il1pi2id": "507f1f77bcf86cdef799439011", - "il1pi2ps": -10, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "il1nm": "1234", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "cid": "00000000000000000000000000", - "uid": "12345", - "il1pi1qt": 1, - "il1pi1va": "department:beauty,price:under::price:desc", - "il1pi2qt": 1, - "il1pi2va": "department:beauty,price:under::price:desc", - "ul": "en-US", - "ni": 1, - "qt": 124893881700 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 12", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "product clicked", - "properties": { - "currency": "CAD", - "quantity": 1, - "price": 24.75, - "name": "my product", - "category": "cat 1", - "sku": "p-298", - "list": "search results", - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "product clicked", - "ec": "cat 1", - "pa": "click", - "pr1cd1": "my product", - "pr1id": "p-298", - "cd1": "my product", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "pr1nm": "my product", - "pr1ca": "cat 1", - "cu": "CAD", - "pr1pr": 24.75, - "pr1qt": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "pal": "search results", - "ul": "en-US", - "ni": 1, - "qt": 124893881700 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 13", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "promotion viewed", - "properties": { - "currency": "CAD", - "promotion_id": "PROMO_1234", - "name": "my product", - "creative": "summer_banner2", - "position": "banner_slot1", - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "promotion viewed", - "ec": "EnhancedEcommerce", - "cu": "CAD", - "promoa": "view", - "pa": "view", - "cd1": "my product", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "promo1id": "PROMO_1234", - "promo1cr": "summer_banner2", - "promo1ps": "banner_slot1", - "promo1nm": "my product", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "ni": 1, - "qt": 124893881700 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 14", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "promotion clicked", - "properties": { - "currency": "CAD", - "promotion_id": "PROMO_1234", - "name": "my product", - "creative": "summer_banner2", - "position": "banner_slot1", - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "promotion clicked", - "ec": "EnhancedEcommerce", - "cu": "CAD", - "promoa": "promo_click", - "pa": "promo_click", - "cd1": "my product", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "promo1id": "PROMO_1234", - "promo1cr": "summer_banner2", - "promo1ps": "banner_slot1", - "promo1nm": "my product", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "ni": 1, - "qt": 124893881700 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 15", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "checkout started", - "properties": { - "currency": "CAD", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298" - }, - { - "quantity": 1, - "price": 24.75, - "name": "my product 2", - "sku": "p-299" - } - ], - "step": 1, - "paymentMethod": "Visa", - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "pa": "checkout", - "pr1id": "p-298", - "pr1cd1": "my product", - "pr1nm": "my product", - "pr1pr": 24.75, - "pr2id": "p-299", - "pr2cd1": "my product 2", - "pr2nm": "my product 2", - "pr2pr": 24.75, - "ea": "checkout started", - "ec": "EnhancedEcommerce", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "cu": "CAD", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "cos": 1, - "pr1qt": 1, - "pr2qt": 1, - "ul": "en-US", - "ni": 1, - "qt": 124893881700 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 16", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "order updated", - "properties": { - "currency": "CAD", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298" - }, - { - "quantity": 1, - "price": 24.75, - "name": "my product 2", - "sku": "p-299" - } - ], - "step": 1, - "paymentMethod": "Visa", - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "pa": "checkout", - "pr1id": "p-298", - "pr1cd1": "my product", - "pr1nm": "my product", - "pr1pr": 24.75, - "pr2id": "p-299", - "pr2cd1": "my product 2", - "pr2nm": "my product 2", - "pr2pr": 24.75, - "ea": "order updated", - "ec": "EnhancedEcommerce", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "cu": "CAD", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "cos": 1, - "pr1qt": 1, - "pr2qt": 1, - "ul": "en-US", - "ni": 1, - "qt": 124893881700 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 17", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "checkout step viewed", - "properties": { - "currency": "CAD", - "step": 1 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "pa": "checkout", - "ea": "checkout step viewed", - "ec": "EnhancedEcommerce", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "cos": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "ni": 1, - "qt": 124893881700 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 18", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "checkout step completed", - "properties": { - "currency": "CAD", - "step": 1, - "paymentMethod": "Visa" - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "pa": "checkout_option", - "ea": "checkout step completed", - "ec": "EnhancedEcommerce", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "cos": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "ni": 1, - "qt": 124893881700 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 19", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "order refunded", - "properties": { - "products": [ - { - "quantity": 1, - "sku": "p-298" - }, - { - "quantity": 1, - "sku": "p-299" - } - ], - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ea": "order refunded", - "ec": "EnhancedEcommerce", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "pa": "refund", - "pr1id": "p-298", - "pr1qt": 1, - "pr2id": "p-299", - "ul": "en-US", - "pr2qt": 1, - "qt": 124893881700 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 20", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "order starterefundedd", - "properties": { - "products": [ - { - "quantity": 1, - "sku": "p-298" - }, - { - "quantity": 1, - "sku": "p-299" - } - ], - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ul": "en-US", - "ec": "All", - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ea": "order starterefundedd", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "qt": 124893881700 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 21", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "order starterefundedd", - "properties": { - "products": [ - { - "quantity": 1, - "sku": "p-298" - }, - { - "quantity": 1, - "sku": "p-299" - } - ], - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ul": "en-US", - "ec": "All", - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ea": "order starterefundedd", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "qt": 124893881700 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 22", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "order starterefundedd", - "properties": { - "products": [ - { - "quantity": 1, - "sku": "p-298" - }, - { - "quantity": 1, - "sku": "p-299" - } - ], - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ul": "en-US", - "ec": "All", - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "aip": 1, - "cid": "00000000000000000000000000", - "ea": "order starterefundedd", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "qt": 124893881700 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 23", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "order starterefundedd", - "properties": { - "products": [ - { - "quantity": 1, - "sku": "p-298" - }, - { - "quantity": 1, - "sku": "p-299" - } - ], - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ul": "en-US", - "ec": "All", - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "cid": "00000000000000000000000000", - "ea": "order starterefundedd", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "qt": 124893881700 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 24", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "order starterefundedd", - "properties": { - "products": [ - { - "quantity": 1, - "sku": "p-298" - }, - { - "quantity": 1, - "sku": "p-299" - } - ], - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ul": "en-US", - "ec": "All", - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ea": "order starterefundedd", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "qt": 124893881700 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 25", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "linkid test", - "properties": { - "linkid": "abc123", - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ul": "en-US", - "ec": "All", - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "linkid": "abc123", - "cid": "00000000000000000000000000", - "ea": "linkid test", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "qt": 124893881700 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 26", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "campaign": { - "name": "sampleName", - "source": "sampleSource", - "medium": "sampleMedium", - "content": "sampleContent", - "term": "sampleTerm" - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "campaign test", - "properties": { - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ul": "en-US", - "ec": "All", - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "cn": "sampleName", - "cs": "sampleSource", - "cm": "sampleMedium", - "cc": "sampleContent", - "ck": "sampleTerm", - "cid": "00000000000000000000000000", - "ea": "campaign test", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "qt": 124893881700 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 27", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "campaign": { - "name": "sampleName", - "source": "sampleSource", - "medium": "sampleMedium", - "content": "sampleContent", - "term": "sampleTerm" - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "event": "campaign test", - "properties": { - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ul": "en-US", - "ec": "All", - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "cn": "sampleName", - "cs": "sampleSource", - "cm": "sampleMedium", - "cc": "sampleContent", - "ck": "sampleTerm", - "cid": "00000000000000000000000000", - "ea": "campaign test", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "qt": 124893881700 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 28", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "campaign": { - "name": "sampleName", - "source": "sampleSource", - "medium": "sampleMedium", - "content": "sampleContent", - "term": "sampleTerm" - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "event": "campaign test", - "properties": { - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ul": "en-US", - "ec": "All", - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "cn": "sampleName", - "cs": "sampleSource", - "cm": "sampleMedium", - "cc": "sampleContent", - "ck": "sampleTerm", - "cid": "00000000000000000000000000", - "ea": "campaign test", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "qt": 124893881700 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 29", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.2" - }, - "traits": { - "abc": "1234" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.2" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36", - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "page": { - "path": "/tests/html/ecomm_test.html", - "referrer": "http://0.0.0.0:1112/tests/html/", - "search": "", - "title": "GA Ecommerce Test", - "url": "http://0.0.0.0:1112/tests/html/ecomm_test.html" - } - }, - "type": "identify", - "messageId": "bc8a6af8-37fd-46a9-9592-ea29a256435f", - "originalTimestamp": "2020-06-22T11:30:32.493Z", - "anonymousId": "38e169a1-3234-46f7-9ceb-c1a6a69005fe", - "userId": "123", - "integrations": { - "All": true - }, - "sentAt": "2020-06-22T11:30:32.494Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "User Enriched", - "dt": "GA Ecommerce Test", - "ec": "All", - "v": "1", - "t": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.1.2", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "uid": "123", - "cid": "38e169a1-3234-46f7-9ceb-c1a6a69005fe", - "ni": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36", - "ul": "en-GB", - "qt": 103120167507 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "38e169a1-3234-46f7-9ceb-c1a6a69005fe" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 30", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "page", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "v": "1", - "t": "pageview", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "uip": "0.0.0.0", - "qt": 124893881701 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 31", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "page", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "path": "/abc", - "referrer": "", - "search": "?xyz=1", - "title": "", - "url": "https://www.example.com/abc" - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "v": "1", - "t": "pageview", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "uip": "0.0.0.0", - "dh": "www.example.com", - "dl": "https://www.example.com/abc", - "dp": "%2Fabc%3Fxyz%3D1", - "qt": 124893881701 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 32", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "integrations": { - "All": true - }, - "event": "sample event", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ec": "All", - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ea": "sample event", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "uip": "0.0.0.0", - "qt": 124893881701 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 33", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Order Refunded", - "properties": { - "order_id": "rudderstackorder1", - "total": 99.99, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298" - }, - { - "quantity": 3, - "price": 24.75, - "name": "other product", - "sku": "p-299" - } - ] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "pa": "refund", - "ev": 100, - "pr1id": "p-298", - "pr1cd1": "my product", - "pr1nm": "my product", - "pr1pr": 24.75, - "pr1qt": 1, - "pr2id": "p-299", - "pr2cd1": "other product", - "pr2nm": "other product", - "pr2pr": 24.75, - "pr2qt": 3, - "ea": "Order Refunded", - "ec": "EnhancedEcommerce", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "cid": "00000000000000000000000000", - "ti": "rudderstackorder1", - "uid": "12345", - "ul": "en-US", - "ni": 1, - "qt": 124893881700 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 34", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Order Refunded", - "properties": { - "order_id": "rudderstackorder1", - "total": 99.99, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR" - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ev": 100, - "pa": "refund", - "ti": "rudderstackorder1", - "ea": "Order Refunded", - "ec": "EnhancedEcommerce", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "cid": "00000000000000000000000000", - "uid": "12345", - "ul": "en-US", - "ni": 1, - "qt": 124893881700 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 35", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Order Refunded", - "properties": { - "order_id": "rudderstackorder1", - "total": 99.99, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR", - "products": [] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ev": 100, - "pa": "refund", - "ti": "rudderstackorder1", - "ea": "Order Refunded", - "ec": "EnhancedEcommerce", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "cid": "00000000000000000000000000", - "uid": "12345", - "ul": "en-US", - "ni": 1, - "qt": 124893881700 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 36", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Order Refunded", - "properties": { - "order_id": "rudderstackorder1", - "total": 99.99, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298", - "product_id": "1" - }, - { - "quantity": 3, - "price": 24.75, - "name": "other product", - "sku": "p-299", - "product_id": "2" - } - ] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ev": 100, - "pa": "refund", - "pr1id": "1", - "pr1cd1": "my product", - "pr1nm": "my product", - "pr1pr": 24.75, - "pr1qt": 1, - "pr2id": "2", - "pr2cd1": "other product", - "pr2nm": "other product", - "pr2pr": 24.75, - "pr2qt": 3, - "ea": "Order Refunded", - "ec": "EnhancedEcommerce", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "cid": "00000000000000000000000000", - "ti": "rudderstackorder1", - "uid": "12345", - "ul": "en-US", - "ni": 1, - "qt": 124893881700 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 37", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Cart Shared", - "properties": { - "order_id": "rudderstackorder1", - "total": 99.99, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298", - "product_id": "1" - }, - { - "quantity": 3, - "price": 24.75, - "name": "other product", - "sku": "p-299", - "product_id": "2" - } - ] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ev": 100, - "ea": "Cart Shared", - "ec": "All", - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "st": " 1 2", - "ul": "en-US", - "qt": 124893881700 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 38", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Product Shared", - "properties": { - "product_id": "rudderstackorder1", - "total": 99.99, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR", - "url": "https://www.example.com/abc" - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ev": 100, - "ea": "Product Shared", - "ec": "All", - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "st": "https://www.example.com/abc", - "dh": "www.example.com", - "dl": "https://www.example.com/abc", - "dp": "%2Fabc", - "ul": "en-US", - "qt": 124893881700 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 39", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Product List Clicked", - "properties": { - "list_id": "Sample Product List", - "category": "Sample Product List", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298", - "product_id": "1" - }, - { - "quantity": 3, - "price": 24.75, - "name": "other product", - "sku": "p-299", - "product_id": "2" - } - ] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "Product List Clicked", - "ec": "Sample Product List", - "pa": "click", - "il1pi1id": "1", - "pr1cd1": "my product", - "il1pi1nm": "my product", - "il1pi1pr": 24.75, - "il1pi2id": "2", - "pr2cd1": "other product", - "il1pi2nm": "other product", - "il1pi2pr": 24.75, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "il1nm": "Sample Product List", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "cid": "00000000000000000000000000", - "uid": "12345", - "ni": 1, - "il1pi2qt": 3, - "il1pi1qt": 1, - "ul": "en-US", - "qt": 124893881700 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 40", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Product List Clicked", - "properties": { - "list_id": "Sample Product List", - "category": "Sample Product List", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298" - }, - { - "quantity": 3, - "price": 24.75, - "name": "other product", - "sku": "p-299" - } - ] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "Product List Clicked", - "ec": "Sample Product List", - "pa": "click", - "il1pi1id": "p-298", - "pr1cd1": "my product", - "il1pi1nm": "my product", - "il1pi1pr": 24.75, - "il1pi2id": "p-299", - "pr2cd1": "other product", - "il1pi2nm": "other product", - "il1pi2pr": 24.75, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "il1nm": "Sample Product List", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "cid": "00000000000000000000000000", - "uid": "12345", - "ul": "en-US", - "il1pi2qt": 3, - "il1pi1qt": 1, - "ni": 1, - "qt": 124893881700 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 41", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Product List Clicked", - "properties": { - "list_id": "Sample Product List", - "category": "Sample Product List", - "products": [] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ni": 1, - "ea": "Product List Clicked", - "ec": "Sample Product List", - "pa": "click", - "el": "event", - "v": "1", - "t": "event", - "tid": "UA-165994240-1", - "ds": "web", - "npa": 1, - "aip": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "ul": "en-US", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "il1nm": "Sample Product List", - "uid": "12345", - "cid": "00000000000000000000000000", - "qt": 124893881700 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 42", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Order Cancelled", - "properties": { - "order_id": "rudderstackorder1", - "total": 99.99, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298", - "product_id": "1" - }, - { - "quantity": 3, - "price": 24.75, - "name": "other product", - "sku": "p-299", - "product_id": "2" - } - ] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "pa": "refund", - "ev": 100, - "tr": 99.99, - "pr1id": "1", - "pr1cd1": "my product", - "pr1nm": "my product", - "pr1pr": 24.75, - "pr2id": "2", - "pr2cd1": "other product", - "pr2nm": "other product", - "pr2pr": 24.75, - "ea": "Order Cancelled", - "ec": "EnhancedEcommerce", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ti": "rudderstackorder1", - "ts": 13.99, - "tt": 20.99, - "cu": "INR", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "pr1qt": 1, - "pr2qt": 3, - "ni": 1, - "qt": 124893881700 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 43", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Order Cancelled", - "properties": { - "order_id": "rudderstackorder1", - "value": 99.99, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298", - "product_id": "1" - }, - { - "quantity": 3, - "price": 24.75, - "name": "other product", - "sku": "p-299", - "product_id": "2" - } - ] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "pa": "refund", - "tr": 99.99, - "pr1id": "1", - "pr1cd1": "my product", - "pr1nm": "my product", - "pr1pr": 24.75, - "pr2id": "2", - "pr2cd1": "other product", - "pr2nm": "other product", - "pr2pr": 24.75, - "ea": "Order Cancelled", - "ev": 100, - "ec": "EnhancedEcommerce", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ti": "rudderstackorder1", - "ts": 13.99, - "tt": 20.99, - "cu": "INR", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "pr1qt": 1, - "pr2qt": 3, - "ni": 1, - "qt": 124893881700 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 44", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Order Cancelled", - "properties": { - "order_id": "rudderstackorder1", - "revenue": 99.99, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298", - "product_id": "1" - }, - { - "quantity": 3, - "price": 24.75, - "name": "other product", - "sku": "p-299", - "product_id": "2" - } - ] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "pa": "refund", - "tr": 99.99, - "pr1id": "1", - "pr1cd1": "my product", - "pr1nm": "my product", - "pr1pr": 24.75, - "pr2id": "2", - "pr2cd1": "other product", - "pr2nm": "other product", - "pr2pr": 24.75, - "ea": "Order Cancelled", - "ev": 100, - "ec": "EnhancedEcommerce", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ti": "rudderstackorder1", - "ts": 13.99, - "tt": 20.99, - "cu": "INR", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "pr1qt": 1, - "pr2qt": 3, - "ni": 1, - "qt": 124893881700 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 45", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Order Cancelled", - "properties": { - "order_id": "rudderstackorder1", - "revenue": 99.99, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR", - "products": [] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "No product information supplied for transaction event", - "statTags": { - "destType": "GA", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 46", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Cart Viewed", - "properties": { - "order_id": "rudderstackorder1", - "revenue": 99.99, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298", - "product_id": "1" - }, - { - "quantity": 3, - "price": 24.75, - "name": "other product", - "sku": "p-299", - "product_id": "2" - } - ] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "Cart Viewed", - "ev": 100, - "ec": "EnhancedEcommerce", - "pa": "detail", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "cid": "00000000000000000000000000", - "uid": "12345", - "ul": "en-US", - "ni": 1, - "pr1cd1": "my product", - "pr1id": "1", - "pr1nm": "my product", - "pr1pr": 24.75, - "pr1qt": 1, - "pr2cd1": "other product", - "pr2id": "2", - "pr2nm": "other product", - "pr2pr": 24.75, - "pr2qt": 3, - "qt": 124893881700 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 47", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "traits": { - "name1": "Test" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "properties": { - "plan": "standard plan", - "name": "rudder test" - }, - "type": "identify", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "traits": { - "name1": "Test" - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "serverSideIdentifyEventCategory": "name", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "server side identify is not on", - "statTags": { - "destType": "GA", - "errorCategory": "dataValidation", - "errorType": "configuration", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 48", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "screen", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "name": "homescreen" - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "cd1": "homescreen", - "v": "1", - "t": "screenview", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "cd": "homescreen", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "uip": "0.0.0.0", - "qt": 124893881701 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 49", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "newtype", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "name": "homescreen" - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "Message type newtype not supported", - "statTags": { - "destType": "GA", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 50", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "traits": { - "name": "Test" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "properties": { - "plan": "standard plan", - "name": "rudder test" - }, - "type": "identify", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "userId": "12345", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "name", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "userId": "12345", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "action1", - "ec": "Test", - "ni": 1, - "cd1": "Test", - "v": "1", - "t": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "ul": "en-US", - "uid": "12345", - "cid": "827ccb0eea8a706c4c34a16891f84e7b", - "uip": "0.0.0.0", - "qt": 124901802438 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 51", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "traits": { - "name": "Test" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "properties": { - "plan": "standard plan", - "name": "rudder test" - }, - "type": "identify", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "userId": "12345", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "name", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "disableMd5": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "userId": "12345", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "action1", - "ec": "Test", - "ni": 1, - "cd1": "Test", - "v": "1", - "t": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "ul": "en-US", - "uid": "12345", - "uip": "0.0.0.0", - "qt": 124901802438 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 52", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "traits": { - "name": "Test" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "properties": { - "plan": "standard plan", - "name": "rudder test" - }, - "type": "identify", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "userId": "12345", - "integrations": { - "All": true, - "GA": { - "clientId": "clientId" - }, - "Google Analytics": { - "clientId": "clientId" - } - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "name", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "userId": "12345", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "action1", - "ec": "Test", - "ni": 1, - "cd1": "Test", - "v": "1", - "t": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "ul": "en-US", - "uid": "12345", - "cid": "clientId", - "uip": "0.0.0.0", - "qt": 124901802438 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 53", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "externalId": [ - { - "id": "externalClientId", - "type": "gaExternalId" - } - ], - "traits": { - "name": "Test" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "properties": { - "plan": "standard plan", - "name": "rudder test" - }, - "type": "identify", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "userId": "12345", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "name", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "userId": "12345", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "action1", - "ec": "Test", - "ni": 1, - "cd1": "Test", - "v": "1", - "t": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "ul": "en-US", - "uid": "12345", - "cid": "externalClientId", - "uip": "0.0.0.0", - "qt": 124901802438 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 54", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "product list viewed", - "properties": { - "nonInteraction": 0, - "category": "cat 1", - "list_id": "1234", - "filters": { - "a": "department", - "b": "beauty" - }, - "sorts": [ - { - "type": "price", - "value": "desc" - } - ], - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "productDimension": "My Product Dimension", - "productMetric": "My Product Metric", - "position": 10 - }, - { - "product_id": "507f1f77bcf86cdef799439011", - "productDimension": "My Product Dimension1", - "productMetric": "My Product Metric1", - "position": -10 - } - ], - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "content1" - }, - { - "from": "prop2", - "to": "content2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ni": 0, - "ea": "product list viewed", - "ec": "cat 1", - "pa": "detail", - "il1pi1id": "507f1f77bcf86cd799439011", - "il1pi1va": "::price:desc", - "il1pi1ps": 10, - "il1pi1qt": 1, - "il1pi2id": "507f1f77bcf86cdef799439011", - "il1pi2va": "::price:desc", - "il1pi2ps": -10, - "il1pi2qt": 1, - "el": "event", - "v": "1", - "t": "event", - "tid": "UA-165994240-1", - "ds": "web", - "npa": 1, - "aip": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "ul": "en-US", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "il1nm": "1234", - "uid": "12345", - "cid": "00000000000000000000000000", - "qt": 124893881700 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "ga", - "description": "Test 55", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "page", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "referrer": "https://google.com/answer/7554821?zippy=%2Cfields-in-event-snippets-for-counter-tags%2Cstep-add-the-global-snippet-to-every-page-of-your-site%2Cstep-add-the-event-snippet-to-pages-with-events-youre-tracking%2Cfields-in-the-global-snippet%2Cfields-in-the-event-snippet---overview%2Cfields-in-all-event-snippets%2Cexample-event-snippet-for-counter---standard-activities%2Cexample-event-snippet-for-counter---unique-activities%2Cexample-event-snippet-for-counter---per-session-activities%2Cfields-in-event-snippets-for-sales-tags%2Cexample-event-snippet-for-sales---transaction-activities%2Cexample-event-snippet-for-sales---items-sold-activities%2Ccustom-fields%2Cnoscript-section-of-event-snippets%2Cdo-i-need-to-set-up-cache-busting-with-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cstep-add-the-event-snippet-to-pages-with-events-youre-tracking%2Cfields-in-the-global-snippet%2Cfields-in-the-event-snippet---overview%2Cfields-in-all-event-snippets%2Cexample-event-snippet-for-counter---standard-activities%2Cexample-event-snippet-for-counter---unique-activities%2Cexample-event-snippet-for-counter---per-session-activities%2Cfields-in-event-snippets-for-sales-tags%2Cexample-event-snippet-for-sales---transaction-activities%2Cexample-event-snippet-for-sales---items-sold-activities%2Ccustom-fields%2Cnoscript-section-of-event-snippets%2Cdo-i-need-to-set-up-cache-busting-with-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cstep-add-the-event-snippet-to-pages-with-events-youre-tracking%2Cfields-in-the-global-snippet%2Cfields-in-the-event-snippet---overview%2Cfields-in-all-event-snippets%2Cexample-event-snippet-for-counter---standard-activities%2Cexample-event-snippet-for-counter---unique-activities%2Cexample-event-snippet-for-counter---per-session-activities%2Cfields-in-event-snippets-for-sales-tags%2Cexample-event-snippet-for-sales---transaction-activities%2Cexample-event-snippet-for-sales---items-sold-activities%2Ccustom-fields%2Cnoscript-section-of-event-snippets%2Cdo-i-need-to-set-up-cache-busting-with-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-tg%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learns-more-about-the-global-site-tag%2Cwhy-is-the-globalthe-head-when-iframe-and-image-tags-were-placed-in-the-body-placed-of-my-site%2Cwhere-can-i-learn-g2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-and-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-n-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag", - "search": "", - "title": "a", - "url": "https://support.google.com/campaignmanager/answer/7554821?zippy=%2Cfields-in-event-snippets-for-counter-tags%2Cstep-add-the-global-snippet-to-every-page-of-your-site%2Cstep-add-the-event-snippet-to-pages-with-events-youre-tracking%2Cfields-in-the-global-snippet%2Cfields-in-the-event-snippet---overview%2Cfields-in-all-event-snippets%2Cexample-event-snippet-for-counter---standard-activities%2Cexample-event-snippet-for-counter---unique-activities%2Cexample-event-snippet-for-counter---per-session-activities%2Cfields-in-event-snippets-for-sales-tags%2Cexample-event-snippet-for-sales---transaction-activities%2Cexample-event-snippet-for-sales---items-sold-activities%2Ccustom-fields%2Cnoscript-section-of-event-snippets%2Cdo-i-need-to-set-up-cache-busting-with-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cstep-add-the-event-snippet-to-pages-with-events-youre-tracking%2Cfields-in-the-global-snippet%2Cfields-in-the-event-snippet---overview%2Cfields-in-all-event-snippets%2Cexample-event-snippet-for-counter---standard-activities%2Cexample-event-snippet-for-counter---unique-activities%2Cexample-event-snippet-for-counter---per-session-activities%2Cfields-in-event-snippets-for-sales-tags%2Cexample-event-snippet-for-sales---transaction-activities%2Cexample-event-snippet-for-sales---items-sold-activities%2Ccustom-fields%2Cnoscript-section-of-event-snippets%2Cdo-i-need-to-set-up-cache-busting-with-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cstep-add-the-event-snippet-to-pages-with-events-youre-tracking%2Cfields-in-the-global-snippet%2Cfields-in-the-event-snippet---overview%2Cfields-in-all-event-snippets%2Cexample-event-snippet-for-counter---standard-activities%2Cexample-event-snippet-for-counter---unique-activities%2Cexample-event-snippet-for-counter---per-session-activities%2Cfields-in-event-snippets-for-sales-tags%2Cexample-event-snippet-for-sales---transaction-activities%2Cexample-event-snippet-for-sales---items-sold-activities%2Ccustom-fields%2Cnoscript-section-of-event-snippets%2Cdo-i-need-to-set-up-cache-busting-with-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-lakjsdlkfjalsdkfjis-the-global-site-tag-placed-in-the-head-lakjsdlkfjalsdkfjis-the-global-site-tag-placed-in-the-head-lakjsdlkfjalsdkfjakljshdlfkjahsldkfjahlskdfjhaklsjdfhalksjdhflakjshdflakjsdhfklasjhdflaksjhdflaksjdfhlakjshdflakjsdhfklasjhdflaksjhdflaksjdfhlakjshdflakjsdhfklasjhdflaksjhdflaksjdfhljkkwoipqpweoirpoqiwerpoqi1111111111111" - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "anonymizeIp": false, - "eventDeliveryTS": 1657516676962, - "eventFilteringOption": "disable", - "trackingID": "UA-165994240-1" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "dp": "%2Fcampaignmanager%2Fanswer%2F7554821", - "dl": "https://support.google.com/campaignmanager/answer/7554821?zippy=%2Cfields-in-event-snippets-for-counter-tags%2Cstep-add-the-global-snippet-to-every-page-of-your-site%2Cstep-add-the-event-snippet-to-pages-with-events-youre-tracking%2Cfields-in-the-global-snippet%2Cfields-in-the-event-snippet---overview%2Cfields-in-all-event-snippets%2Cexample-event-snippet-for-counter---standard-activities%2Cexample-event-snippet-for-counter---unique-activities%2Cexample-event-snippet-for-counter---per-session-activities%2Cfields-in-event-snippets-for-sales-tags%2Cexample-event-snippet-for-sales---transaction-activities%2Cexample-event-snippet-for-sales---items-sold-activities%2Ccustom-fields%2Cnoscript-section-of-event-snippets%2Cdo-i-need-to-set-up-cache-busting-with-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cstep-add-the-event-snippet-to-pages-with-events-youre-tracking%2Cfields-in-the-global-snippet%2Cfields-in-the-event-snippet---overview%2Cfields-in-all-event-snippets%2Cexample-event-snippet-for-counter---standard-activities%2Cexample-event-snippet-for-counter---unique-activities%2Cexample-event-snippet-for-counter---per-session-activities%2Cfields-in-event-snippets-for-sales-tags%2Cexample-event-snippet-for-sales---transaction-activities%2Cexample-event-snippet-for-sales---items-sold-activities%2Ccustom-fields%2Cnoscript-section-of-event-snippets%2Cdo-i-need-to-set-up-cache-busting-with-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cstep-add-the-event-snippet-to-pages-with-events-youre-tracking%2Cfields-in-the-global-snippet%2Cfields-in-the-event-snippet---overview%2Cfields-in-all-event-snippets%2Cexample-event-snippet-for-counter---standard-activities%2Cexample-event-snippet-for-counter---unique-activities%2Cexample-event-snippet-for-counter---per-session-activities%2Cfields-in-event-snippets-for-sales-tags%2Cexample-event-snippet-for-sales---transaction-activities%2Cexample-event-snippet-for-sales---items-sold-activities%2Ccustom-fields%2Cnoscript-section-of-event-snippets%2Cdo-i-need-to-set-up-cache-busting-with-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-lakjsdlkfjalsdkfjis-the-global-site-tag-placed-in-the-head-lakjsdlkfjalsdkfjis-the-global-site-tag-placed-in-the-head-lakjsdlkfjalsdkfjakljshdlfkjahsldkfjahlskdfjhaklsjdfhalksjdhflakjshdflakjsdhfklasjhdflaksjhdflaksjdfhlakjshdflakjsdhfklasjhdflaksjhdflaksjdfhlakjshdflakjsdhfklasjhdflaksjhdflaksjdfhljkkwoipqpweoirpoqiwerpoqi1111111111111", - "dh": "support.google.com", - "dt": "a", - "dr": "https://google.com/answer/7554821?zippy=%2Cfields-in-event-snippets-for-counter-tags%2Cstep-add-the-global-snippet-to-every-page-of-your-site%2Cstep-add-the-event-snippet-to-pages-with-events-youre-tracking%2Cfields-in-the-global-snippet%2Cfields-in-the-event-snippet---overview%2Cfields-in-all-event-snippets%2Cexample-event-snippet-for-counter---standard-activities%2Cexample-event-snippet-for-counter---unique-activities%2Cexample-event-snippet-for-counter---per-session-activities%2Cfields-in-event-snippets-for-sales-tags%2Cexample-event-snippet-for-sales---transaction-activities%2Cexample-event-snippet-for-sales---items-sold-activities%2Ccustom-fields%2Cnoscript-section-of-event-snippets%2Cdo-i-need-to-set-up-cache-busting-with-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cstep-add-the-event-snippet-to-pages-with-events-youre-tracking%2Cfields-in-the-global-snippet%2Cfields-in-the-event-snippet---overview%2Cfields-in-all-event-snippets%2Cexample-event-snippet-for-counter---standard-activities%2Cexample-event-snippet-for-counter---unique-activities%2Cexample-event-snippet-for-counter---per-session-activities%2Cfields-in-event-snippets-for-sales-tags%2Cexample-event-snippet-for-sales---transaction-activities%2Cexample-event-snippet-for-sales---items-sold-activities%2Ccustom-fields%2Cnoscript-section-of-event-snippets%2Cdo-i-need-to-set-up-cache-busting-with-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cstep-add-the-event-snippet-to-pages-with-events-youre-tracking%2Cfields-in-the-global-snippet%2Cfields-in-the-event-snippet---overview%2Cfields-in-all-event-snippets%2Cexample-event-snippet-for-counter---standard-activities%2Cexample-event-snippet-for-counter---unique-activities%2Cexample-event-snippet-for-counter---per-session-activities%2Cfields-in-event-snippets-for-sales-tags%2Cexample-event-snippet-for-sales---transaction-activities%2Cexample-event-snippet-for-sales---items-sold-activities%2Ccustom-fields%2Cnoscript-section-of-event-snippets%2Cdo-i-need-to-set-up-cache-busting-with-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-tg%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learns-more-about-the-global-site-tag%2Cwhy-is-the-globalthe-head-when-iframe-and-image-tags-were-placed-in-the-body-placed-of-my-site%2Cwhere-can-i-learn-g2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-and-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-n-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag", - "v": "1", - "t": "pageview", - "tid": "UA-165994240-1", - "ds": "web", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "ul": "en-US", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "cid": "00000000000000000000000000", - "uip": "0.0.0.0", - "qt": 124893881701 - }, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } - } -].map((d) => ({ ...d, mockFns })) \ No newline at end of file + { + name: 'ga', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + externalId: [ + { + id: 'lynnanderson@smith.net', + identifierType: 'device_id', + type: 'AM-users', + }, + ], + mappedToDestination: 'true', + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + anonymousId: '123456', + email: 'test@rudderstack.com', + address: { + country: 'India', + postalCode: 712136, + state: 'WB', + street: '', + os_version: 'test os', + }, + ip: '0.0.0.0', + age: 26, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + page: { + path: '/destinations/amplitude', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/amplitude', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + }, + traits: { + anonymousId: '123456', + email: 'test@rudderstack.com', + city: 'kolkata', + address: { + country: 'India', + postalCode: 712136, + state: 'WB', + street: '', + }, + os_version: 'test os', + ip: '0.0.0.0', + age: 26, + an: 'Test App name', + ul: 'Test ul', + }, + type: 'identify', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + userId: '123456', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'name', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'name', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ea: 'action1', + ec: 'All', + ni: 1, + ul: 'Test ul', + an: 'Test App name', + cm1: 'test@rudderstack.com', + v: '1', + t: 'event', + tid: 'UA-165994240-1', + ds: 'web', + npa: 1, + aip: 1, + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + uid: '123456', + cid: '123456', + uip: '0.0.0.0', + qt: 124901802438, + }, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '123456', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + traits: { + name: 'Rudder Test', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + properties: { + plan: 'standard plan', + name: 'rudder test', + }, + type: 'identify', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'name', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'name', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ea: 'action1', + ec: 'Rudder Test', + cd1: 'Rudder Test', + cg2: 'Rudder Test', + v: '1', + t: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + uid: '123456', + cid: '00000000000000000000000000', + ni: 1, + uip: '0.0.0.0', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + ul: 'en-US', + qt: 124893881701, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'page', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + path: '/abc', + referrer: 'q', + search: '', + title: 'a', + url: 'https://www.example.com/abc', + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + v: '1', + t: 'pageview', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + uip: '0.0.0.0', + ul: 'en-US', + dh: 'www.example.com', + dl: 'https://www.example.com/abc', + dp: '%2Fabc', + dr: 'q', + dt: 'a', + qt: 124893881701, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'test track event GA3', + properties: { + category: 'test-category', + user_actual_role: 'system_admin, system_user', + user_actual_id: 12345, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ec: 'test-category', + ni: 1, + v: '1', + el: 'event', + t: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + ea: 'test track event GA3', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + ul: 'en-US', + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'order completed', + properties: { + order_id: 'rudderstackorder1', + total: 99.99, + shipping: 13.99, + tax: 20.99, + currency: 'INR', + products: [ + { + quantity: 1, + price: 24.75, + name: 'my product', + sku: 'p-298', + }, + { + quantity: 3, + price: 24.75, + name: 'other product', + sku: 'p-299', + }, + ], + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + pa: 'purchase', + tr: 99.99, + ev: 100, + pr1id: 'p-298', + pr1cd1: 'my product', + pr1nm: 'my product', + pr1pr: 24.75, + pr2id: 'p-299', + pr2cd1: 'other product', + pr2nm: 'other product', + pr2pr: 24.75, + ea: 'order completed', + ec: 'EnhancedEcommerce', + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + ti: 'rudderstackorder1', + ts: 13.99, + tt: 20.99, + cu: 'INR', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + ni: 1, + pr1qt: 1, + pr2qt: 3, + ul: 'en-US', + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'product added', + properties: { + currency: 'CAD', + quantity: 1, + price: 24.75, + name: 'my product 1', + category: 'cat 1', + sku: 'p-298', + testDimension: true, + testMetric: true, + position: 4.5, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ea: 'product added', + ec: 'cat 1', + pa: 'add', + pr1cd1: 'my product 1', + pr1id: 'p-298', + cd1: 'my product 1', + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + pr1nm: 'my product 1', + pr1ca: 'cat 1', + cu: 'CAD', + pr1ps: 4.5, + pr1pr: 24.75, + pr1qt: 1, + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + ni: 1, + ul: 'en-US', + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 6', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'product removed', + properties: { + currency: 'CAD', + quantity: 1, + price: 24.75, + name: 'my product 1', + category: 'cat 1', + sku: 'p-298', + testDimension: true, + testMetric: true, + position: 4.5, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ea: 'product removed', + ec: 'cat 1', + pa: 'remove', + pr1cd1: 'my product 1', + pr1id: 'p-298', + cd1: 'my product 1', + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + pr1nm: 'my product 1', + pr1ca: 'cat 1', + cu: 'CAD', + pr1ps: 4.5, + pr1pr: 24.75, + pr1qt: 1, + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + ul: 'en-US', + ni: 1, + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 7', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'product viewed', + properties: { + currency: 'CAD', + quantity: 1, + price: 24.75, + name: 'my product 1', + category: 'cat 1', + sku: 'p-298', + testDimension: true, + testMetric: true, + position: 4.5, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ea: 'product viewed', + ec: 'cat 1', + pa: 'detail', + pr1cd1: 'my product 1', + pr1id: 'p-298', + cd1: 'my product 1', + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + pr1nm: 'my product 1', + pr1ca: 'cat 1', + cu: 'CAD', + pr1ps: 4.5, + pr1pr: 24.75, + pr1qt: 1, + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + ul: 'en-US', + ni: 1, + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 8', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'product removed', + properties: { + currency: 'CAD', + quantity: 1, + price: 24.75, + name: 'my product 1', + category: 'cat 1', + sku: 'p-298', + testDimension: true, + testMetric: true, + position: 4.5, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ea: 'product removed', + ec: 'cat 1', + pa: 'remove', + pr1cd1: 'my product 1', + pr1id: 'p-298', + cd1: 'my product 1', + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + pr1nm: 'my product 1', + pr1ca: 'cat 1', + cu: 'CAD', + pr1ps: 4.5, + pr1pr: 24.75, + pr1qt: 1, + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + ul: 'en-US', + ni: 1, + qt: 124893881701, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 9', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'product viewed', + properties: { + currency: 'CAD', + quantity: 1, + price: 24.75, + name: 'my product 1', + category: 'cat 1', + sku: 'p-298', + testDimension: true, + testMetric: true, + position: 4.5, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ea: 'product viewed', + ec: 'cat 1', + pa: 'detail', + pr1cd1: 'my product 1', + pr1id: 'p-298', + cd1: 'my product 1', + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + pr1nm: 'my product 1', + pr1ca: 'cat 1', + cu: 'CAD', + pr1ps: 4.5, + pr1pr: 24.75, + pr1qt: 1, + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + ul: 'en-US', + ni: 1, + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 10', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'product list filtered', + properties: { + category: 'cat 1', + list_id: '1234', + filters: [ + { + type: 'department', + value: 'beauty', + }, + { + type: 'price', + value: 'under', + }, + ], + sorts: [ + { + type: 'price', + value: 'desc', + }, + ], + products: [ + { + product_id: '507f1f77bcf86cd799439011', + productDimension: 'My Product Dimension', + productMetric: 'My Product Metric', + }, + ], + testDimension: true, + testMetric: true, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ea: 'product list filtered', + ec: 'cat 1', + pa: 'detail', + il1pi1id: '507f1f77bcf86cd799439011', + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + il1nm: '1234', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + cid: '00000000000000000000000000', + uid: '12345', + il1pi1qt: 1, + il1pi1va: 'department:beauty,price:under::price:desc', + ul: 'en-US', + ni: 1, + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 11', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'product list viewed', + properties: { + category: 'cat 1', + list_id: '1234', + filters: [ + { + type: 'department', + value: 'beauty', + }, + { + type: 'price', + value: 'under', + }, + ], + sorts: [ + { + type: 'price', + value: 'desc', + }, + ], + products: [ + { + product_id: '507f1f77bcf86cd799439011', + productDimension: 'My Product Dimension', + productMetric: 'My Product Metric', + position: 10, + }, + { + product_id: '507f1f77bcf86cdef799439011', + productDimension: 'My Product Dimension1', + productMetric: 'My Product Metric1', + position: -10, + }, + ], + testDimension: true, + testMetric: true, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ea: 'product list viewed', + ec: 'cat 1', + pa: 'detail', + il1pi1id: '507f1f77bcf86cd799439011', + il1pi1ps: 10, + il1pi2id: '507f1f77bcf86cdef799439011', + il1pi2ps: -10, + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + il1nm: '1234', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + cid: '00000000000000000000000000', + uid: '12345', + il1pi1qt: 1, + il1pi1va: 'department:beauty,price:under::price:desc', + il1pi2qt: 1, + il1pi2va: 'department:beauty,price:under::price:desc', + ul: 'en-US', + ni: 1, + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 12', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'product clicked', + properties: { + currency: 'CAD', + quantity: 1, + price: 24.75, + name: 'my product', + category: 'cat 1', + sku: 'p-298', + list: 'search results', + testDimension: true, + testMetric: true, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ea: 'product clicked', + ec: 'cat 1', + pa: 'click', + pr1cd1: 'my product', + pr1id: 'p-298', + cd1: 'my product', + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + pr1nm: 'my product', + pr1ca: 'cat 1', + cu: 'CAD', + pr1pr: 24.75, + pr1qt: 1, + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + pal: 'search results', + ul: 'en-US', + ni: 1, + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 13', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'promotion viewed', + properties: { + currency: 'CAD', + promotion_id: 'PROMO_1234', + name: 'my product', + creative: 'summer_banner2', + position: 'banner_slot1', + testDimension: true, + testMetric: true, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ea: 'promotion viewed', + ec: 'EnhancedEcommerce', + cu: 'CAD', + promoa: 'view', + pa: 'view', + cd1: 'my product', + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + promo1id: 'PROMO_1234', + promo1cr: 'summer_banner2', + promo1ps: 'banner_slot1', + promo1nm: 'my product', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + ul: 'en-US', + ni: 1, + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 14', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'promotion clicked', + properties: { + currency: 'CAD', + promotion_id: 'PROMO_1234', + name: 'my product', + creative: 'summer_banner2', + position: 'banner_slot1', + testDimension: true, + testMetric: true, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ea: 'promotion clicked', + ec: 'EnhancedEcommerce', + cu: 'CAD', + promoa: 'promo_click', + pa: 'promo_click', + cd1: 'my product', + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + promo1id: 'PROMO_1234', + promo1cr: 'summer_banner2', + promo1ps: 'banner_slot1', + promo1nm: 'my product', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + ul: 'en-US', + ni: 1, + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 15', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'checkout started', + properties: { + currency: 'CAD', + products: [ + { + quantity: 1, + price: 24.75, + name: 'my product', + sku: 'p-298', + }, + { + quantity: 1, + price: 24.75, + name: 'my product 2', + sku: 'p-299', + }, + ], + step: 1, + paymentMethod: 'Visa', + testDimension: true, + testMetric: true, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + pa: 'checkout', + pr1id: 'p-298', + pr1cd1: 'my product', + pr1nm: 'my product', + pr1pr: 24.75, + pr2id: 'p-299', + pr2cd1: 'my product 2', + pr2nm: 'my product 2', + pr2pr: 24.75, + ea: 'checkout started', + ec: 'EnhancedEcommerce', + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + cu: 'CAD', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + cos: 1, + pr1qt: 1, + pr2qt: 1, + ul: 'en-US', + ni: 1, + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 16', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'order updated', + properties: { + currency: 'CAD', + products: [ + { + quantity: 1, + price: 24.75, + name: 'my product', + sku: 'p-298', + }, + { + quantity: 1, + price: 24.75, + name: 'my product 2', + sku: 'p-299', + }, + ], + step: 1, + paymentMethod: 'Visa', + testDimension: true, + testMetric: true, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + pa: 'checkout', + pr1id: 'p-298', + pr1cd1: 'my product', + pr1nm: 'my product', + pr1pr: 24.75, + pr2id: 'p-299', + pr2cd1: 'my product 2', + pr2nm: 'my product 2', + pr2pr: 24.75, + ea: 'order updated', + ec: 'EnhancedEcommerce', + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + cu: 'CAD', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + cos: 1, + pr1qt: 1, + pr2qt: 1, + ul: 'en-US', + ni: 1, + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 17', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'checkout step viewed', + properties: { + currency: 'CAD', + step: 1, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + pa: 'checkout', + ea: 'checkout step viewed', + ec: 'EnhancedEcommerce', + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + cos: 1, + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + ul: 'en-US', + ni: 1, + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 18', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'checkout step completed', + properties: { + currency: 'CAD', + step: 1, + paymentMethod: 'Visa', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + pa: 'checkout_option', + ea: 'checkout step completed', + ec: 'EnhancedEcommerce', + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + cos: 1, + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + ul: 'en-US', + ni: 1, + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 19', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'order refunded', + properties: { + products: [ + { + quantity: 1, + sku: 'p-298', + }, + { + quantity: 1, + sku: 'p-299', + }, + ], + testDimension: true, + testMetric: true, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ni: 1, + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + ea: 'order refunded', + ec: 'EnhancedEcommerce', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + pa: 'refund', + pr1id: 'p-298', + pr1qt: 1, + pr2id: 'p-299', + ul: 'en-US', + pr2qt: 1, + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 20', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'order starterefundedd', + properties: { + products: [ + { + quantity: 1, + sku: 'p-298', + }, + { + quantity: 1, + sku: 'p-299', + }, + ], + testDimension: true, + testMetric: true, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ul: 'en-US', + ec: 'All', + ni: 1, + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + ea: 'order starterefundedd', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 21', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'order starterefundedd', + properties: { + products: [ + { + quantity: 1, + sku: 'p-298', + }, + { + quantity: 1, + sku: 'p-299', + }, + ], + testDimension: true, + testMetric: true, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ul: 'en-US', + ec: 'All', + ni: 1, + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + ea: 'order starterefundedd', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 22', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'order starterefundedd', + properties: { + products: [ + { + quantity: 1, + sku: 'p-298', + }, + { + quantity: 1, + sku: 'p-299', + }, + ], + testDimension: true, + testMetric: true, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ul: 'en-US', + ec: 'All', + ni: 1, + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + aip: 1, + cid: '00000000000000000000000000', + ea: 'order starterefundedd', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 23', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'order starterefundedd', + properties: { + products: [ + { + quantity: 1, + sku: 'p-298', + }, + { + quantity: 1, + sku: 'p-299', + }, + ], + testDimension: true, + testMetric: true, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ul: 'en-US', + ec: 'All', + ni: 1, + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + cid: '00000000000000000000000000', + ea: 'order starterefundedd', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 24', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'order starterefundedd', + properties: { + products: [ + { + quantity: 1, + sku: 'p-298', + }, + { + quantity: 1, + sku: 'p-299', + }, + ], + testDimension: true, + testMetric: true, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ul: 'en-US', + ec: 'All', + ni: 1, + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + ea: 'order starterefundedd', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 25', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'linkid test', + properties: { + linkid: 'abc123', + testDimension: true, + testMetric: true, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ul: 'en-US', + ec: 'All', + ni: 1, + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + linkid: 'abc123', + cid: '00000000000000000000000000', + ea: 'linkid test', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 26', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + campaign: { + name: 'sampleName', + source: 'sampleSource', + medium: 'sampleMedium', + content: 'sampleContent', + term: 'sampleTerm', + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'campaign test', + properties: { + testDimension: true, + testMetric: true, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ul: 'en-US', + ec: 'All', + ni: 1, + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + cn: 'sampleName', + cs: 'sampleSource', + cm: 'sampleMedium', + cc: 'sampleContent', + ck: 'sampleTerm', + cid: '00000000000000000000000000', + ea: 'campaign test', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 27', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + campaign: { + name: 'sampleName', + source: 'sampleSource', + medium: 'sampleMedium', + content: 'sampleContent', + term: 'sampleTerm', + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + event: 'campaign test', + properties: { + testDimension: true, + testMetric: true, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ul: 'en-US', + ec: 'All', + ni: 1, + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + cn: 'sampleName', + cs: 'sampleSource', + cm: 'sampleMedium', + cc: 'sampleContent', + ck: 'sampleTerm', + cid: '00000000000000000000000000', + ea: 'campaign test', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 28', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + campaign: { + name: 'sampleName', + source: 'sampleSource', + medium: 'sampleMedium', + content: 'sampleContent', + term: 'sampleTerm', + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + event: 'campaign test', + properties: { + testDimension: true, + testMetric: true, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ul: 'en-US', + ec: 'All', + ni: 1, + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + cn: 'sampleName', + cs: 'sampleSource', + cm: 'sampleMedium', + cc: 'sampleContent', + ck: 'sampleTerm', + cid: '00000000000000000000000000', + ea: 'campaign test', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 29', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.2', + }, + traits: { + abc: '1234', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.2', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36', + locale: 'en-GB', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + page: { + path: '/tests/html/ecomm_test.html', + referrer: 'http://0.0.0.0:1112/tests/html/', + search: '', + title: 'GA Ecommerce Test', + url: 'http://0.0.0.0:1112/tests/html/ecomm_test.html', + }, + }, + type: 'identify', + messageId: 'bc8a6af8-37fd-46a9-9592-ea29a256435f', + originalTimestamp: '2020-06-22T11:30:32.493Z', + anonymousId: '38e169a1-3234-46f7-9ceb-c1a6a69005fe', + userId: '123', + integrations: { + All: true, + }, + sentAt: '2020-06-22T11:30:32.494Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ea: 'User Enriched', + dt: 'GA Ecommerce Test', + ec: 'All', + v: '1', + t: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.1.2', + aiid: 'com.rudderlabs.javascript', + npa: 1, + uid: '123', + cid: '38e169a1-3234-46f7-9ceb-c1a6a69005fe', + ni: 1, + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36', + ul: 'en-GB', + qt: 103120167507, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '38e169a1-3234-46f7-9ceb-c1a6a69005fe', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 30', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'page', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + v: '1', + t: 'pageview', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + ul: 'en-US', + uip: '0.0.0.0', + qt: 124893881701, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 31', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'page', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + path: '/abc', + referrer: '', + search: '?xyz=1', + title: '', + url: 'https://www.example.com/abc', + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + v: '1', + t: 'pageview', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + ul: 'en-US', + uip: '0.0.0.0', + dh: 'www.example.com', + dl: 'https://www.example.com/abc', + dp: '%2Fabc%3Fxyz%3D1', + qt: 124893881701, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 32', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + integrations: { + All: true, + }, + event: 'sample event', + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ec: 'All', + ni: 1, + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + ea: 'sample event', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + ul: 'en-US', + uip: '0.0.0.0', + qt: 124893881701, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 33', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'Order Refunded', + properties: { + order_id: 'rudderstackorder1', + total: 99.99, + shipping: 13.99, + tax: 20.99, + currency: 'INR', + products: [ + { + quantity: 1, + price: 24.75, + name: 'my product', + sku: 'p-298', + }, + { + quantity: 3, + price: 24.75, + name: 'other product', + sku: 'p-299', + }, + ], + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + pa: 'refund', + ev: 100, + pr1id: 'p-298', + pr1cd1: 'my product', + pr1nm: 'my product', + pr1pr: 24.75, + pr1qt: 1, + pr2id: 'p-299', + pr2cd1: 'other product', + pr2nm: 'other product', + pr2pr: 24.75, + pr2qt: 3, + ea: 'Order Refunded', + ec: 'EnhancedEcommerce', + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + cid: '00000000000000000000000000', + ti: 'rudderstackorder1', + uid: '12345', + ul: 'en-US', + ni: 1, + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 34', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'Order Refunded', + properties: { + order_id: 'rudderstackorder1', + total: 99.99, + shipping: 13.99, + tax: 20.99, + currency: 'INR', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ev: 100, + pa: 'refund', + ti: 'rudderstackorder1', + ea: 'Order Refunded', + ec: 'EnhancedEcommerce', + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + cid: '00000000000000000000000000', + uid: '12345', + ul: 'en-US', + ni: 1, + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 35', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'Order Refunded', + properties: { + order_id: 'rudderstackorder1', + total: 99.99, + shipping: 13.99, + tax: 20.99, + currency: 'INR', + products: [], + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ev: 100, + pa: 'refund', + ti: 'rudderstackorder1', + ea: 'Order Refunded', + ec: 'EnhancedEcommerce', + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + cid: '00000000000000000000000000', + uid: '12345', + ul: 'en-US', + ni: 1, + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 36', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'Order Refunded', + properties: { + order_id: 'rudderstackorder1', + total: 99.99, + shipping: 13.99, + tax: 20.99, + currency: 'INR', + products: [ + { + quantity: 1, + price: 24.75, + name: 'my product', + sku: 'p-298', + product_id: '1', + }, + { + quantity: 3, + price: 24.75, + name: 'other product', + sku: 'p-299', + product_id: '2', + }, + ], + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ev: 100, + pa: 'refund', + pr1id: '1', + pr1cd1: 'my product', + pr1nm: 'my product', + pr1pr: 24.75, + pr1qt: 1, + pr2id: '2', + pr2cd1: 'other product', + pr2nm: 'other product', + pr2pr: 24.75, + pr2qt: 3, + ea: 'Order Refunded', + ec: 'EnhancedEcommerce', + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + cid: '00000000000000000000000000', + ti: 'rudderstackorder1', + uid: '12345', + ul: 'en-US', + ni: 1, + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 37', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'Cart Shared', + properties: { + order_id: 'rudderstackorder1', + total: 99.99, + shipping: 13.99, + tax: 20.99, + currency: 'INR', + products: [ + { + quantity: 1, + price: 24.75, + name: 'my product', + sku: 'p-298', + product_id: '1', + }, + { + quantity: 3, + price: 24.75, + name: 'other product', + sku: 'p-299', + product_id: '2', + }, + ], + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ev: 100, + ea: 'Cart Shared', + ec: 'All', + ni: 1, + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + st: ' 1 2', + ul: 'en-US', + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 38', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'Product Shared', + properties: { + product_id: 'rudderstackorder1', + total: 99.99, + shipping: 13.99, + tax: 20.99, + currency: 'INR', + url: 'https://www.example.com/abc', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ev: 100, + ea: 'Product Shared', + ec: 'All', + ni: 1, + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + st: 'https://www.example.com/abc', + dh: 'www.example.com', + dl: 'https://www.example.com/abc', + dp: '%2Fabc', + ul: 'en-US', + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 39', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'Product List Clicked', + properties: { + list_id: 'Sample Product List', + category: 'Sample Product List', + products: [ + { + quantity: 1, + price: 24.75, + name: 'my product', + sku: 'p-298', + product_id: '1', + }, + { + quantity: 3, + price: 24.75, + name: 'other product', + sku: 'p-299', + product_id: '2', + }, + ], + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ea: 'Product List Clicked', + ec: 'Sample Product List', + pa: 'click', + il1pi1id: '1', + pr1cd1: 'my product', + il1pi1nm: 'my product', + il1pi1pr: 24.75, + il1pi2id: '2', + pr2cd1: 'other product', + il1pi2nm: 'other product', + il1pi2pr: 24.75, + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + il1nm: 'Sample Product List', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + cid: '00000000000000000000000000', + uid: '12345', + ni: 1, + il1pi2qt: 3, + il1pi1qt: 1, + ul: 'en-US', + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 40', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'Product List Clicked', + properties: { + list_id: 'Sample Product List', + category: 'Sample Product List', + products: [ + { + quantity: 1, + price: 24.75, + name: 'my product', + sku: 'p-298', + }, + { + quantity: 3, + price: 24.75, + name: 'other product', + sku: 'p-299', + }, + ], + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ea: 'Product List Clicked', + ec: 'Sample Product List', + pa: 'click', + il1pi1id: 'p-298', + pr1cd1: 'my product', + il1pi1nm: 'my product', + il1pi1pr: 24.75, + il1pi2id: 'p-299', + pr2cd1: 'other product', + il1pi2nm: 'other product', + il1pi2pr: 24.75, + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + il1nm: 'Sample Product List', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + cid: '00000000000000000000000000', + uid: '12345', + ul: 'en-US', + il1pi2qt: 3, + il1pi1qt: 1, + ni: 1, + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 41', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'Product List Clicked', + properties: { + list_id: 'Sample Product List', + category: 'Sample Product List', + products: [], + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ni: 1, + ea: 'Product List Clicked', + ec: 'Sample Product List', + pa: 'click', + el: 'event', + v: '1', + t: 'event', + tid: 'UA-165994240-1', + ds: 'web', + npa: 1, + aip: 1, + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + ul: 'en-US', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + il1nm: 'Sample Product List', + uid: '12345', + cid: '00000000000000000000000000', + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 42', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'Order Cancelled', + properties: { + order_id: 'rudderstackorder1', + total: 99.99, + shipping: 13.99, + tax: 20.99, + currency: 'INR', + products: [ + { + quantity: 1, + price: 24.75, + name: 'my product', + sku: 'p-298', + product_id: '1', + }, + { + quantity: 3, + price: 24.75, + name: 'other product', + sku: 'p-299', + product_id: '2', + }, + ], + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + pa: 'refund', + ev: 100, + tr: 99.99, + pr1id: '1', + pr1cd1: 'my product', + pr1nm: 'my product', + pr1pr: 24.75, + pr2id: '2', + pr2cd1: 'other product', + pr2nm: 'other product', + pr2pr: 24.75, + ea: 'Order Cancelled', + ec: 'EnhancedEcommerce', + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + ti: 'rudderstackorder1', + ts: 13.99, + tt: 20.99, + cu: 'INR', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + ul: 'en-US', + pr1qt: 1, + pr2qt: 3, + ni: 1, + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 43', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'Order Cancelled', + properties: { + order_id: 'rudderstackorder1', + value: 99.99, + shipping: 13.99, + tax: 20.99, + currency: 'INR', + products: [ + { + quantity: 1, + price: 24.75, + name: 'my product', + sku: 'p-298', + product_id: '1', + }, + { + quantity: 3, + price: 24.75, + name: 'other product', + sku: 'p-299', + product_id: '2', + }, + ], + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + pa: 'refund', + tr: 99.99, + pr1id: '1', + pr1cd1: 'my product', + pr1nm: 'my product', + pr1pr: 24.75, + pr2id: '2', + pr2cd1: 'other product', + pr2nm: 'other product', + pr2pr: 24.75, + ea: 'Order Cancelled', + ev: 100, + ec: 'EnhancedEcommerce', + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + ti: 'rudderstackorder1', + ts: 13.99, + tt: 20.99, + cu: 'INR', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + ul: 'en-US', + pr1qt: 1, + pr2qt: 3, + ni: 1, + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 44', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'Order Cancelled', + properties: { + order_id: 'rudderstackorder1', + revenue: 99.99, + shipping: 13.99, + tax: 20.99, + currency: 'INR', + products: [ + { + quantity: 1, + price: 24.75, + name: 'my product', + sku: 'p-298', + product_id: '1', + }, + { + quantity: 3, + price: 24.75, + name: 'other product', + sku: 'p-299', + product_id: '2', + }, + ], + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + pa: 'refund', + tr: 99.99, + pr1id: '1', + pr1cd1: 'my product', + pr1nm: 'my product', + pr1pr: 24.75, + pr2id: '2', + pr2cd1: 'other product', + pr2nm: 'other product', + pr2pr: 24.75, + ea: 'Order Cancelled', + ev: 100, + ec: 'EnhancedEcommerce', + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + ti: 'rudderstackorder1', + ts: 13.99, + tt: 20.99, + cu: 'INR', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + ul: 'en-US', + pr1qt: 1, + pr2qt: 3, + ni: 1, + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 45', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'Order Cancelled', + properties: { + order_id: 'rudderstackorder1', + revenue: 99.99, + shipping: 13.99, + tax: 20.99, + currency: 'INR', + products: [], + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'No product information supplied for transaction event', + statTags: { + destType: 'GA', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 46', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'Cart Viewed', + properties: { + order_id: 'rudderstackorder1', + revenue: 99.99, + shipping: 13.99, + tax: 20.99, + currency: 'INR', + products: [ + { + quantity: 1, + price: 24.75, + name: 'my product', + sku: 'p-298', + product_id: '1', + }, + { + quantity: 3, + price: 24.75, + name: 'other product', + sku: 'p-299', + product_id: '2', + }, + ], + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ea: 'Cart Viewed', + ev: 100, + ec: 'EnhancedEcommerce', + pa: 'detail', + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + cid: '00000000000000000000000000', + uid: '12345', + ul: 'en-US', + ni: 1, + pr1cd1: 'my product', + pr1id: '1', + pr1nm: 'my product', + pr1pr: 24.75, + pr1qt: 1, + pr2cd1: 'other product', + pr2id: '2', + pr2nm: 'other product', + pr2pr: 24.75, + pr2qt: 3, + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 47', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + traits: { + name1: 'Test', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + properties: { + plan: 'standard plan', + name: 'rudder test', + }, + type: 'identify', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { + All: true, + }, + traits: { + name1: 'Test', + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + serverSideIdentifyEventCategory: 'name', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'server side identify is not on', + statTags: { + destType: 'GA', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 48', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'screen', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + name: 'homescreen', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + cd1: 'homescreen', + v: '1', + t: 'screenview', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + cd: 'homescreen', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + ul: 'en-US', + uip: '0.0.0.0', + qt: 124893881701, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 49', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'newtype', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + name: 'homescreen', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Message type newtype not supported', + statTags: { + destType: 'GA', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 50', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + traits: { + name: 'Test', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + properties: { + plan: 'standard plan', + name: 'rudder test', + }, + type: 'identify', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + userId: '12345', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'name', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + userId: '12345', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ea: 'action1', + ec: 'Test', + ni: 1, + cd1: 'Test', + v: '1', + t: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + ul: 'en-US', + uid: '12345', + cid: '827ccb0eea8a706c4c34a16891f84e7b', + uip: '0.0.0.0', + qt: 124901802438, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 51', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + traits: { + name: 'Test', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + properties: { + plan: 'standard plan', + name: 'rudder test', + }, + type: 'identify', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + userId: '12345', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'name', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + disableMd5: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + userId: '12345', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ea: 'action1', + ec: 'Test', + ni: 1, + cd1: 'Test', + v: '1', + t: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + ul: 'en-US', + uid: '12345', + uip: '0.0.0.0', + qt: 124901802438, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 52', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + traits: { + name: 'Test', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + properties: { + plan: 'standard plan', + name: 'rudder test', + }, + type: 'identify', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + userId: '12345', + integrations: { + All: true, + GA: { + clientId: 'clientId', + }, + 'Google Analytics': { + clientId: 'clientId', + }, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'name', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + userId: '12345', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ea: 'action1', + ec: 'Test', + ni: 1, + cd1: 'Test', + v: '1', + t: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + ul: 'en-US', + uid: '12345', + cid: 'clientId', + uip: '0.0.0.0', + qt: 124901802438, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 53', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + externalId: [ + { + id: 'externalClientId', + type: 'gaExternalId', + }, + ], + traits: { + name: 'Test', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + properties: { + plan: 'standard plan', + name: 'rudder test', + }, + type: 'identify', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + userId: '12345', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'name', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + userId: '12345', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ea: 'action1', + ec: 'Test', + ni: 1, + cd1: 'Test', + v: '1', + t: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + ul: 'en-US', + uid: '12345', + cid: 'externalClientId', + uip: '0.0.0.0', + qt: 124901802438, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 54', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'product list viewed', + properties: { + nonInteraction: 0, + category: 'cat 1', + list_id: '1234', + filters: { + a: 'department', + b: 'beauty', + }, + sorts: [ + { + type: 'price', + value: 'desc', + }, + ], + products: [ + { + product_id: '507f1f77bcf86cd799439011', + productDimension: 'My Product Dimension', + productMetric: 'My Product Metric', + position: 10, + }, + { + product_id: '507f1f77bcf86cdef799439011', + productDimension: 'My Product Dimension1', + productMetric: 'My Product Metric1', + position: -10, + }, + ], + testDimension: true, + testMetric: true, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'content1', + }, + { + from: 'prop2', + to: 'content2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ni: 0, + ea: 'product list viewed', + ec: 'cat 1', + pa: 'detail', + il1pi1id: '507f1f77bcf86cd799439011', + il1pi1va: '::price:desc', + il1pi1ps: 10, + il1pi1qt: 1, + il1pi2id: '507f1f77bcf86cdef799439011', + il1pi2va: '::price:desc', + il1pi2ps: -10, + il1pi2qt: 1, + el: 'event', + v: '1', + t: 'event', + tid: 'UA-165994240-1', + ds: 'web', + npa: 1, + aip: 1, + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + ul: 'en-US', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + il1nm: '1234', + uid: '12345', + cid: '00000000000000000000000000', + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 55', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'page', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + referrer: + 'https://google.com/answer/7554821?zippy=%2Cfields-in-event-snippets-for-counter-tags%2Cstep-add-the-global-snippet-to-every-page-of-your-site%2Cstep-add-the-event-snippet-to-pages-with-events-youre-tracking%2Cfields-in-the-global-snippet%2Cfields-in-the-event-snippet---overview%2Cfields-in-all-event-snippets%2Cexample-event-snippet-for-counter---standard-activities%2Cexample-event-snippet-for-counter---unique-activities%2Cexample-event-snippet-for-counter---per-session-activities%2Cfields-in-event-snippets-for-sales-tags%2Cexample-event-snippet-for-sales---transaction-activities%2Cexample-event-snippet-for-sales---items-sold-activities%2Ccustom-fields%2Cnoscript-section-of-event-snippets%2Cdo-i-need-to-set-up-cache-busting-with-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cstep-add-the-event-snippet-to-pages-with-events-youre-tracking%2Cfields-in-the-global-snippet%2Cfields-in-the-event-snippet---overview%2Cfields-in-all-event-snippets%2Cexample-event-snippet-for-counter---standard-activities%2Cexample-event-snippet-for-counter---unique-activities%2Cexample-event-snippet-for-counter---per-session-activities%2Cfields-in-event-snippets-for-sales-tags%2Cexample-event-snippet-for-sales---transaction-activities%2Cexample-event-snippet-for-sales---items-sold-activities%2Ccustom-fields%2Cnoscript-section-of-event-snippets%2Cdo-i-need-to-set-up-cache-busting-with-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cstep-add-the-event-snippet-to-pages-with-events-youre-tracking%2Cfields-in-the-global-snippet%2Cfields-in-the-event-snippet---overview%2Cfields-in-all-event-snippets%2Cexample-event-snippet-for-counter---standard-activities%2Cexample-event-snippet-for-counter---unique-activities%2Cexample-event-snippet-for-counter---per-session-activities%2Cfields-in-event-snippets-for-sales-tags%2Cexample-event-snippet-for-sales---transaction-activities%2Cexample-event-snippet-for-sales---items-sold-activities%2Ccustom-fields%2Cnoscript-section-of-event-snippets%2Cdo-i-need-to-set-up-cache-busting-with-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-tg%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learns-more-about-the-global-site-tag%2Cwhy-is-the-globalthe-head-when-iframe-and-image-tags-were-placed-in-the-body-placed-of-my-site%2Cwhere-can-i-learn-g2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-and-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-n-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag', + search: '', + title: 'a', + url: 'https://support.google.com/campaignmanager/answer/7554821?zippy=%2Cfields-in-event-snippets-for-counter-tags%2Cstep-add-the-global-snippet-to-every-page-of-your-site%2Cstep-add-the-event-snippet-to-pages-with-events-youre-tracking%2Cfields-in-the-global-snippet%2Cfields-in-the-event-snippet---overview%2Cfields-in-all-event-snippets%2Cexample-event-snippet-for-counter---standard-activities%2Cexample-event-snippet-for-counter---unique-activities%2Cexample-event-snippet-for-counter---per-session-activities%2Cfields-in-event-snippets-for-sales-tags%2Cexample-event-snippet-for-sales---transaction-activities%2Cexample-event-snippet-for-sales---items-sold-activities%2Ccustom-fields%2Cnoscript-section-of-event-snippets%2Cdo-i-need-to-set-up-cache-busting-with-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cstep-add-the-event-snippet-to-pages-with-events-youre-tracking%2Cfields-in-the-global-snippet%2Cfields-in-the-event-snippet---overview%2Cfields-in-all-event-snippets%2Cexample-event-snippet-for-counter---standard-activities%2Cexample-event-snippet-for-counter---unique-activities%2Cexample-event-snippet-for-counter---per-session-activities%2Cfields-in-event-snippets-for-sales-tags%2Cexample-event-snippet-for-sales---transaction-activities%2Cexample-event-snippet-for-sales---items-sold-activities%2Ccustom-fields%2Cnoscript-section-of-event-snippets%2Cdo-i-need-to-set-up-cache-busting-with-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cstep-add-the-event-snippet-to-pages-with-events-youre-tracking%2Cfields-in-the-global-snippet%2Cfields-in-the-event-snippet---overview%2Cfields-in-all-event-snippets%2Cexample-event-snippet-for-counter---standard-activities%2Cexample-event-snippet-for-counter---unique-activities%2Cexample-event-snippet-for-counter---per-session-activities%2Cfields-in-event-snippets-for-sales-tags%2Cexample-event-snippet-for-sales---transaction-activities%2Cexample-event-snippet-for-sales---items-sold-activities%2Ccustom-fields%2Cnoscript-section-of-event-snippets%2Cdo-i-need-to-set-up-cache-busting-with-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-lakjsdlkfjalsdkfjis-the-global-site-tag-placed-in-the-head-lakjsdlkfjalsdkfjis-the-global-site-tag-placed-in-the-head-lakjsdlkfjalsdkfjakljshdlfkjahsldkfjahlskdfjhaklsjdfhalksjdhflakjshdflakjsdhfklasjhdflaksjhdflaksjdfhlakjshdflakjsdhfklasjhdflaksjhdflaksjdfhlakjshdflakjsdhfklasjhdflaksjhdflaksjdfhljkkwoipqpweoirpoqiwerpoqi1111111111111', + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + anonymizeIp: false, + eventDeliveryTS: 1657516676962, + eventFilteringOption: 'disable', + trackingID: 'UA-165994240-1', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + dp: '%2Fcampaignmanager%2Fanswer%2F7554821', + dl: 'https://support.google.com/campaignmanager/answer/7554821?zippy=%2Cfields-in-event-snippets-for-counter-tags%2Cstep-add-the-global-snippet-to-every-page-of-your-site%2Cstep-add-the-event-snippet-to-pages-with-events-youre-tracking%2Cfields-in-the-global-snippet%2Cfields-in-the-event-snippet---overview%2Cfields-in-all-event-snippets%2Cexample-event-snippet-for-counter---standard-activities%2Cexample-event-snippet-for-counter---unique-activities%2Cexample-event-snippet-for-counter---per-session-activities%2Cfields-in-event-snippets-for-sales-tags%2Cexample-event-snippet-for-sales---transaction-activities%2Cexample-event-snippet-for-sales---items-sold-activities%2Ccustom-fields%2Cnoscript-section-of-event-snippets%2Cdo-i-need-to-set-up-cache-busting-with-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cstep-add-the-event-snippet-to-pages-with-events-youre-tracking%2Cfields-in-the-global-snippet%2Cfields-in-the-event-snippet---overview%2Cfields-in-all-event-snippets%2Cexample-event-snippet-for-counter---standard-activities%2Cexample-event-snippet-for-counter---unique-activities%2Cexample-event-snippet-for-counter---per-session-activities%2Cfields-in-event-snippets-for-sales-tags%2Cexample-event-snippet-for-sales---transaction-activities%2Cexample-event-snippet-for-sales---items-sold-activities%2Ccustom-fields%2Cnoscript-section-of-event-snippets%2Cdo-i-need-to-set-up-cache-busting-with-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cstep-add-the-event-snippet-to-pages-with-events-youre-tracking%2Cfields-in-the-global-snippet%2Cfields-in-the-event-snippet---overview%2Cfields-in-all-event-snippets%2Cexample-event-snippet-for-counter---standard-activities%2Cexample-event-snippet-for-counter---unique-activities%2Cexample-event-snippet-for-counter---per-session-activities%2Cfields-in-event-snippets-for-sales-tags%2Cexample-event-snippet-for-sales---transaction-activities%2Cexample-event-snippet-for-sales---items-sold-activities%2Ccustom-fields%2Cnoscript-section-of-event-snippets%2Cdo-i-need-to-set-up-cache-busting-with-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-lakjsdlkfjalsdkfjis-the-global-site-tag-placed-in-the-head-lakjsdlkfjalsdkfjis-the-global-site-tag-placed-in-the-head-lakjsdlkfjalsdkfjakljshdlfkjahsldkfjahlskdfjhaklsjdfhalksjdhflakjshdflakjsdhfklasjhdflaksjhdflaksjdfhlakjshdflakjsdhfklasjhdflaksjhdflaksjdfhlakjshdflakjsdhfklasjhdflaksjhdflaksjdfhljkkwoipqpweoirpoqiwerpoqi1111111111111', + dh: 'support.google.com', + dt: 'a', + dr: 'https://google.com/answer/7554821?zippy=%2Cfields-in-event-snippets-for-counter-tags%2Cstep-add-the-global-snippet-to-every-page-of-your-site%2Cstep-add-the-event-snippet-to-pages-with-events-youre-tracking%2Cfields-in-the-global-snippet%2Cfields-in-the-event-snippet---overview%2Cfields-in-all-event-snippets%2Cexample-event-snippet-for-counter---standard-activities%2Cexample-event-snippet-for-counter---unique-activities%2Cexample-event-snippet-for-counter---per-session-activities%2Cfields-in-event-snippets-for-sales-tags%2Cexample-event-snippet-for-sales---transaction-activities%2Cexample-event-snippet-for-sales---items-sold-activities%2Ccustom-fields%2Cnoscript-section-of-event-snippets%2Cdo-i-need-to-set-up-cache-busting-with-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cstep-add-the-event-snippet-to-pages-with-events-youre-tracking%2Cfields-in-the-global-snippet%2Cfields-in-the-event-snippet---overview%2Cfields-in-all-event-snippets%2Cexample-event-snippet-for-counter---standard-activities%2Cexample-event-snippet-for-counter---unique-activities%2Cexample-event-snippet-for-counter---per-session-activities%2Cfields-in-event-snippets-for-sales-tags%2Cexample-event-snippet-for-sales---transaction-activities%2Cexample-event-snippet-for-sales---items-sold-activities%2Ccustom-fields%2Cnoscript-section-of-event-snippets%2Cdo-i-need-to-set-up-cache-busting-with-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cstep-add-the-event-snippet-to-pages-with-events-youre-tracking%2Cfields-in-the-global-snippet%2Cfields-in-the-event-snippet---overview%2Cfields-in-all-event-snippets%2Cexample-event-snippet-for-counter---standard-activities%2Cexample-event-snippet-for-counter---unique-activities%2Cexample-event-snippet-for-counter---per-session-activities%2Cfields-in-event-snippets-for-sales-tags%2Cexample-event-snippet-for-sales---transaction-activities%2Cexample-event-snippet-for-sales---items-sold-activities%2Ccustom-fields%2Cnoscript-section-of-event-snippets%2Cdo-i-need-to-set-up-cache-busting-with-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-tg%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learns-more-about-the-global-site-tag%2Cwhy-is-the-globalthe-head-when-iframe-and-image-tags-were-placed-in-the-body-placed-of-my-site%2Cwhere-can-i-learn-g2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-and-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-n-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag', + v: '1', + t: 'pageview', + tid: 'UA-165994240-1', + ds: 'web', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + ul: 'en-US', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + cid: '00000000000000000000000000', + uip: '0.0.0.0', + qt: 124893881701, + }, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, +].map((d) => ({ ...d, mockFns })); diff --git a/test/integrations/destinations/ga/router/data.ts b/test/integrations/destinations/ga/router/data.ts index f0c2b86377..912d5490e7 100644 --- a/test/integrations/destinations/ga/router/data.ts +++ b/test/integrations/destinations/ga/router/data.ts @@ -1,487 +1,350 @@ export const mockFns = (_) => { - // @ts-ignore - jest - .useFakeTimers() - .setSystemTime(new Date('2023-09-29')); + // @ts-ignore + jest.useFakeTimers().setSystemTime(new Date('2023-09-29')); }; export const data = [ - { - name: 'ga', - description: 'Test 0', - feature: 'router', - module: 'destination', - version: 'v0', - input: { - request: { - body: { - input: [ - { - "message": { - "channel": "web", - "context": { - "traits": { - "name": "Rudder Test" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "properties": { - "plan": "standard plan", - "name": "rudder test" - }, - "type": "identify", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "metadata": { - "jobId": 1 - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "name", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "name", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "page", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "path": "/abc", - "referrer": "q", - "search": "", - "title": "a", - "url": "https://www.example.com/abc" - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "metadata": { - "jobId": 2 - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ], - destType: 'ga', + { + name: 'ga', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + channel: 'web', + context: { + traits: { name: 'Rudder Test' }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { name: '', version: '' }, + screen: { density: 2 }, }, - method: 'POST', + properties: { plan: 'standard plan', name: 'rudder test' }, + type: 'identify', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { All: true }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { jobId: 1, userId: 'u1' }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'name', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { from: 'name', to: 'dimension1' }, + { from: 'custom2', to: 'dimension2' }, + ], + metrics: [ + { from: 'email', to: 'metric1' }, + { from: 'trait2', to: 'metric2' }, + ], + resetCustomDimensionsOnPage: [ + { resetCustomDimensionsOnPage: 'abc' }, + { resetCustomDimensionsOnPage: 'xyz' }, + ], + contentGroupings: [ + { from: 'plan', to: 'contentGroup1' }, + { from: 'name', to: 'contentGroup2' }, + ], + }, + Enabled: true, + }, + }, + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { email: 'test@rudderstack.com' }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { name: '', version: '' }, + screen: { density: 2 }, + }, + type: 'page', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + path: '/abc', + referrer: 'q', + search: '', + title: 'a', + url: 'https://www.example.com/abc', + }, + integrations: { All: true }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + metadata: { jobId: 2, userId: 'u1' }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { from: 'name', to: 'dimension1' }, + { from: 'custom2', to: 'dimension2' }, + ], + metrics: [ + { from: 'email', to: 'metric1' }, + { from: 'trait2', to: 'metric2' }, + ], + resetCustomDimensionsOnPage: [ + { resetCustomDimensionsOnPage: 'abc' }, + { resetCustomDimensionsOnPage: 'xyz' }, + ], + contentGroupings: [ + { from: 'plan', to: 'contentGroup1' }, + { from: 'prop2', to: 'contentGroup2' }, + ], + }, + Enabled: true, + }, }, + ], + destType: 'ga', }, - output: { - response: { - status: 200, - body: { - output: [ - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "action1", - "ec": "Rudder Test", - "cd1": "Rudder Test", - "cg2": "Rudder Test", - "v": "1", - "t": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "uid": "123456", - "cid": "00000000000000000000000000", - "ni": 1, - "uip": "0.0.0.0", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "ul": "en-US", - "qt": 124893881701, - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "metadata": [ - { - "jobId": 1 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "name", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "name", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "v": "1", - "t": "pageview", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "uip": "0.0.0.0", - "ul": "en-US", - "dh": "www.example.com", - "dl": "https://www.example.com/abc", - "dp": "%2Fabc", - "dr": "q", - "dt": "a", - "qt": 124893881701, - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "metadata": [ - { - "jobId": 2 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ea: 'action1', + ec: 'Rudder Test', + cd1: 'Rudder Test', + cg2: 'Rudder Test', + v: '1', + t: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + uid: '123456', + cid: '00000000000000000000000000', + ni: 1, + uip: '0.0.0.0', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + ul: 'en-US', + qt: 124893881701, + }, + body: { JSON: {}, XML: {}, JSON_ARRAY: {}, FORM: {} }, + files: {}, + userId: '00000000000000000000000000', + }, + metadata: [{ jobId: 1, userId: 'u1' }], + batched: false, + statusCode: 200, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'name', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { from: 'name', to: 'dimension1' }, + { from: 'custom2', to: 'dimension2' }, + ], + metrics: [ + { from: 'email', to: 'metric1' }, + { from: 'trait2', to: 'metric2' }, + ], + resetCustomDimensionsOnPage: [ + { resetCustomDimensionsOnPage: 'abc' }, + { resetCustomDimensionsOnPage: 'xyz' }, + ], + contentGroupings: [ + { from: 'plan', to: 'contentGroup1' }, + { from: 'name', to: 'contentGroup2' }, + ], + }, + Enabled: true, + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + v: '1', + t: 'pageview', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + uip: '0.0.0.0', + ul: 'en-US', + dh: 'www.example.com', + dl: 'https://www.example.com/abc', + dp: '%2Fabc', + dr: 'q', + dt: 'a', + qt: 124893881701, + }, + body: { JSON: {}, XML: {}, JSON_ARRAY: {}, FORM: {} }, + files: {}, + userId: '00000000000000000000000000', + }, + metadata: [{ jobId: 2, userId: 'u1' }], + batched: false, + statusCode: 200, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { from: 'name', to: 'dimension1' }, + { from: 'custom2', to: 'dimension2' }, + ], + metrics: [ + { from: 'email', to: 'metric1' }, + { from: 'trait2', to: 'metric2' }, + ], + resetCustomDimensionsOnPage: [ + { resetCustomDimensionsOnPage: 'abc' }, + { resetCustomDimensionsOnPage: 'xyz' }, + ], + contentGroupings: [ + { from: 'plan', to: 'contentGroup1' }, + { from: 'prop2', to: 'contentGroup2' }, + ], }, + Enabled: true, + }, }, + ], }, - } + }, + }, + }, ].map((d) => ({ ...d, mockFns })); diff --git a/test/integrations/destinations/ga360/processor/data.ts b/test/integrations/destinations/ga360/processor/data.ts index 4ed196d8c5..40b3495062 100644 --- a/test/integrations/destinations/ga360/processor/data.ts +++ b/test/integrations/destinations/ga360/processor/data.ts @@ -1,9456 +1,9507 @@ export const mockFns = (_) => { - // @ts-ignore - jest - .useFakeTimers() - .setSystemTime(new Date('2023-09-29')); + // @ts-ignore + jest.useFakeTimers().setSystemTime(new Date('2023-09-29')); }; export const data = [ - { - "name": "ga360", - "description": "Test 0", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "traits": { - "name": "Rudder Test" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "properties": { - "plan": "standard plan", - "name": "rudder test" - }, - "type": "identify", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "name", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "name", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "action1", - "ec": "Rudder Test", - "cd1": "Rudder Test", - "cg2": "Rudder Test", - "v": "1", - "t": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "uid": "123456", - "cid": "00000000000000000000000000", - "ni": 1, - "uip": "0.0.0.0", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "ul": "en-US", - "qt": 124901802438 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } + { + name: 'ga360', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + traits: { + name: 'Rudder Test', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + properties: { + plan: 'standard plan', + name: 'rudder test', + }, + type: 'identify', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'name', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'name', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 1", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "page", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "path": "/abc", - "referrer": "q", - "search": "", - "title": "a", - "url": "https://www.example.com/abc" - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "v": "1", - "t": "pageview", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "uip": "0.0.0.0", - "ul": "en-US", - "dh": "www.example.com", - "dl": "https://www.example.com/abc", - "dp": "%2Fabc", - "dr": "q", - "dt": "a", - "qt": 124893881701, - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ea: 'action1', + ec: 'Rudder Test', + cd1: 'Rudder Test', + cg2: 'Rudder Test', + v: '1', + t: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + uid: '123456', + cid: '00000000000000000000000000', + ni: 1, + uip: '0.0.0.0', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + ul: 'en-US', + qt: 124901802438, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 2", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "test track event GA3", - "properties": { - "category": "test-category", - "user_actual_role": "system_admin, system_user", - "user_actual_id": 12345 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ec": "test-category", - "ni": 1, - "v": "1", - "el": "event", - "t": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ea": "test track event GA3", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "qt": 124893881700, - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } + }, + { + name: 'ga360', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'page', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + path: '/abc', + referrer: 'q', + search: '', + title: 'a', + url: 'https://www.example.com/abc', + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 3", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "order completed", - "properties": { - "order_id": "rudderstackorder1", - "total": 99.99, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298" - }, - { - "quantity": 3, - "price": 24.75, - "name": "other product", - "sku": "p-299" - } - ] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "pa": "purchase", - "tr": 99.99, - "ev": 100, - "pr1id": "p-298", - "pr1cd1": "my product", - "pr1nm": "my product", - "pr1pr": 24.75, - "pr2id": "p-299", - "pr2cd1": "other product", - "pr2nm": "other product", - "pr2pr": 24.75, - "ea": "order completed", - "ec": "EnhancedEcommerce", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ti": "rudderstackorder1", - "ts": 13.99, - "tt": 20.99, - "cu": "INR", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ni": 1, - "pr1qt": 1, - "pr2qt": 3, - "ul": "en-US", - "qt": 124893881700, - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + v: '1', + t: 'pageview', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + uip: '0.0.0.0', + ul: 'en-US', + dh: 'www.example.com', + dl: 'https://www.example.com/abc', + dp: '%2Fabc', + dr: 'q', + dt: 'a', + qt: 124893881701, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 4", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "product added", - "properties": { - "currency": "CAD", - "quantity": 1, - "price": 24.75, - "name": "my product 1", - "category": "cat 1", - "sku": "p-298", - "testDimension": true, - "testMetric": true, - "position": 4.5 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "product added", - "ec": "cat 1", - "pa": "add", - "pr1cd1": "my product 1", - "pr1id": "p-298", - "cd1": "my product 1", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "pr1nm": "my product 1", - "pr1ca": "cat 1", - "cu": "CAD", - "pr1ps": 4.5, - "pr1pr": 24.75, - "pr1qt": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ni": 1, - "ul": "en-US", - "qt": 124893881700, - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } + }, + { + name: 'ga360', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'test track event GA3', + properties: { + category: 'test-category', + user_actual_role: 'system_admin, system_user', + user_actual_id: 12345, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 5", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "product removed", - "properties": { - "currency": "CAD", - "quantity": 1, - "price": 24.75, - "name": "my product 1", - "category": "cat 1", - "sku": "p-298", - "testDimension": true, - "testMetric": true, - "position": 4.5 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "product removed", - "ec": "cat 1", - "pa": "remove", - "pr1cd1": "my product 1", - "pr1id": "p-298", - "cd1": "my product 1", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "pr1nm": "my product 1", - "pr1ca": "cat 1", - "cu": "CAD", - "pr1ps": 4.5, - "pr1pr": 24.75, - "pr1qt": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "ni": 1, - "qt": 124893881700, - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ec: 'test-category', + ni: 1, + v: '1', + el: 'event', + t: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + ea: 'test track event GA3', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + ul: 'en-US', + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 6", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "product viewed", - "properties": { - "currency": "CAD", - "quantity": 1, - "price": 24.75, - "name": "my product 1", - "category": "cat 1", - "sku": "p-298", - "testDimension": true, - "testMetric": true, - "position": 4.5 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "product viewed", - "ec": "cat 1", - "pa": "detail", - "pr1cd1": "my product 1", - "pr1id": "p-298", - "cd1": "my product 1", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "pr1nm": "my product 1", - "pr1ca": "cat 1", - "cu": "CAD", - "pr1ps": 4.5, - "pr1pr": 24.75, - "pr1qt": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "ni": 1, - "qt": 124893881700, - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } + }, + { + name: 'ga360', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'order completed', + properties: { + order_id: 'rudderstackorder1', + total: 99.99, + shipping: 13.99, + tax: 20.99, + currency: 'INR', + products: [ + { + quantity: 1, + price: 24.75, + name: 'my product', + sku: 'p-298', + }, + { + quantity: 3, + price: 24.75, + name: 'other product', + sku: 'p-299', + }, + ], + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 7", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "product removed", - "properties": { - "currency": "CAD", - "quantity": 1, - "price": 24.75, - "name": "my product 1", - "category": "cat 1", - "sku": "p-298", - "testDimension": true, - "testMetric": true, - "position": 4.5 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "product removed", - "ec": "cat 1", - "pa": "remove", - "pr1cd1": "my product 1", - "pr1id": "p-298", - "cd1": "my product 1", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "pr1nm": "my product 1", - "pr1ca": "cat 1", - "cu": "CAD", - "pr1ps": 4.5, - "pr1pr": 24.75, - "pr1qt": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "ni": 1, - "qt": 124893881700, - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + pa: 'purchase', + tr: 99.99, + ev: 100, + pr1id: 'p-298', + pr1cd1: 'my product', + pr1nm: 'my product', + pr1pr: 24.75, + pr2id: 'p-299', + pr2cd1: 'other product', + pr2nm: 'other product', + pr2pr: 24.75, + ea: 'order completed', + ec: 'EnhancedEcommerce', + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + ti: 'rudderstackorder1', + ts: 13.99, + tt: 20.99, + cu: 'INR', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + ni: 1, + pr1qt: 1, + pr2qt: 3, + ul: 'en-US', + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 8", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "product viewed", - "properties": { - "currency": "CAD", - "quantity": 1, - "price": 24.75, - "name": "my product 1", - "category": "cat 1", - "sku": "p-298", - "testDimension": true, - "testMetric": true, - "position": 4.5 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "product viewed", - "ec": "cat 1", - "pa": "detail", - "pr1cd1": "my product 1", - "pr1id": "p-298", - "cd1": "my product 1", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "pr1nm": "my product 1", - "pr1ca": "cat 1", - "cu": "CAD", - "pr1ps": 4.5, - "pr1pr": 24.75, - "pr1qt": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "ni": 1, - "qt": 124893881700, - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } + }, + { + name: 'ga360', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'product added', + properties: { + currency: 'CAD', + quantity: 1, + price: 24.75, + name: 'my product 1', + category: 'cat 1', + sku: 'p-298', + testDimension: true, + testMetric: true, + position: 4.5, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 9", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "product list filtered", - "properties": { - "category": "cat 1", - "list_id": "1234", - "filters": [ - { - "type": "department", - "value": "beauty" - }, - { - "type": "price", - "value": "under" - } - ], - "sorts": [ - { - "type": "price", - "value": "desc" - } - ], - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "productDimension": "My Product Dimension", - "productMetric": "My Product Metric" - } - ], - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "product list filtered", - "ec": "cat 1", - "pa": "detail", - "il1pi1id": "507f1f77bcf86cd799439011", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "il1nm": "1234", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "cid": "00000000000000000000000000", - "uid": "12345", - "il1pi1qt": 1, - "il1pi1va": "department:beauty,price:under::price:desc", - "ul": "en-US", - "ni": 1, - "qt": 124893881700, - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ea: 'product added', + ec: 'cat 1', + pa: 'add', + pr1cd1: 'my product 1', + pr1id: 'p-298', + cd1: 'my product 1', + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + pr1nm: 'my product 1', + pr1ca: 'cat 1', + cu: 'CAD', + pr1ps: 4.5, + pr1pr: 24.75, + pr1qt: 1, + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + ni: 1, + ul: 'en-US', + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 10", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "product list viewed", - "properties": { - "category": "cat 1", - "list_id": "1234", - "filters": [ - { - "type": "department", - "value": "beauty" - }, - { - "type": "price", - "value": "under" - } - ], - "sorts": [ - { - "type": "price", - "value": "desc" - } - ], - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "productDimension": "My Product Dimension", - "productMetric": "My Product Metric", - "position": 10 - }, - { - "product_id": "507f1f77bcf86cdef799439011", - "productDimension": "My Product Dimension1", - "productMetric": "My Product Metric1", - "position": -10 - } - ], - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "product list viewed", - "ec": "cat 1", - "pa": "detail", - "il1pi1id": "507f1f77bcf86cd799439011", - "il1pi1ps": 10, - "il1pi2id": "507f1f77bcf86cdef799439011", - "il1pi2ps": -10, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "il1nm": "1234", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "cid": "00000000000000000000000000", - "uid": "12345", - "il1pi1qt": 1, - "il1pi1va": "department:beauty,price:under::price:desc", - "il1pi2qt": 1, - "il1pi2va": "department:beauty,price:under::price:desc", - "ul": "en-US", - "ni": 1, - "qt": 124893881700, - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } + }, + { + name: 'ga360', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'product removed', + properties: { + currency: 'CAD', + quantity: 1, + price: 24.75, + name: 'my product 1', + category: 'cat 1', + sku: 'p-298', + testDimension: true, + testMetric: true, + position: 4.5, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 11", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "product clicked", - "properties": { - "currency": "CAD", - "quantity": 1, - "price": 24.75, - "name": "my product", - "category": "cat 1", - "sku": "p-298", - "list": "search results", - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "product clicked", - "ec": "cat 1", - "pa": "click", - "pr1cd1": "my product", - "pr1id": "p-298", - "cd1": "my product", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "pr1nm": "my product", - "pr1ca": "cat 1", - "cu": "CAD", - "pr1pr": 24.75, - "pr1qt": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "pal": "search results", - "ul": "en-US", - "ni": 1, - "qt": 124893881700, - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ea: 'product removed', + ec: 'cat 1', + pa: 'remove', + pr1cd1: 'my product 1', + pr1id: 'p-298', + cd1: 'my product 1', + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + pr1nm: 'my product 1', + pr1ca: 'cat 1', + cu: 'CAD', + pr1ps: 4.5, + pr1pr: 24.75, + pr1qt: 1, + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + ul: 'en-US', + ni: 1, + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 12", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "promotion viewed", - "properties": { - "currency": "CAD", - "promotion_id": "PROMO_1234", - "name": "my product", - "creative": "summer_banner2", - "position": "banner_slot1", - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "promotion viewed", - "ec": "EnhancedEcommerce", - "cu": "CAD", - "promoa": "view", - "pa": "view", - "cd1": "my product", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "promo1id": "PROMO_1234", - "promo1cr": "summer_banner2", - "promo1ps": "banner_slot1", - "promo1nm": "my product", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "ni": 1, - "qt": 124893881700, - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } + }, + { + name: 'ga360', + description: 'Test 6', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'product viewed', + properties: { + currency: 'CAD', + quantity: 1, + price: 24.75, + name: 'my product 1', + category: 'cat 1', + sku: 'p-298', + testDimension: true, + testMetric: true, + position: 4.5, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 13", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "promotion clicked", - "properties": { - "currency": "CAD", - "promotion_id": "PROMO_1234", - "name": "my product", - "creative": "summer_banner2", - "position": "banner_slot1", - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "promotion clicked", - "ec": "EnhancedEcommerce", - "cu": "CAD", - "promoa": "promo_click", - "pa": "promo_click", - "cd1": "my product", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "promo1id": "PROMO_1234", - "promo1cr": "summer_banner2", - "promo1ps": "banner_slot1", - "promo1nm": "my product", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "ni": 1, - "qt": 124893881700, - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ea: 'product viewed', + ec: 'cat 1', + pa: 'detail', + pr1cd1: 'my product 1', + pr1id: 'p-298', + cd1: 'my product 1', + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + pr1nm: 'my product 1', + pr1ca: 'cat 1', + cu: 'CAD', + pr1ps: 4.5, + pr1pr: 24.75, + pr1qt: 1, + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + ul: 'en-US', + ni: 1, + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 14", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "checkout started", - "properties": { - "currency": "CAD", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298" - }, - { - "quantity": 1, - "price": 24.75, - "name": "my product 2", - "sku": "p-299" - } - ], - "step": 1, - "paymentMethod": "Visa", - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "pa": "checkout", - "pr1id": "p-298", - "pr1cd1": "my product", - "pr1nm": "my product", - "pr1pr": 24.75, - "pr2id": "p-299", - "pr2cd1": "my product 2", - "pr2nm": "my product 2", - "pr2pr": 24.75, - "ea": "checkout started", - "ec": "EnhancedEcommerce", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "cu": "CAD", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "cos": 1, - "pr1qt": 1, - "pr2qt": 1, - "ul": "en-US", - "ni": 1, - "qt": 124893881700, - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } + }, + { + name: 'ga360', + description: 'Test 7', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'product removed', + properties: { + currency: 'CAD', + quantity: 1, + price: 24.75, + name: 'my product 1', + category: 'cat 1', + sku: 'p-298', + testDimension: true, + testMetric: true, + position: 4.5, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 15", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "order updated", - "properties": { - "currency": "CAD", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298" - }, - { - "quantity": 1, - "price": 24.75, - "name": "my product 2", - "sku": "p-299" - } - ], - "step": 1, - "paymentMethod": "Visa", - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "pa": "checkout", - "pr1id": "p-298", - "pr1cd1": "my product", - "pr1nm": "my product", - "pr1pr": 24.75, - "pr2id": "p-299", - "pr2cd1": "my product 2", - "pr2nm": "my product 2", - "pr2pr": 24.75, - "ea": "order updated", - "ec": "EnhancedEcommerce", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "cu": "CAD", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "cos": 1, - "pr1qt": 1, - "pr2qt": 1, - "ul": "en-US", - "ni": 1, - "qt": 124893881700, - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ea: 'product removed', + ec: 'cat 1', + pa: 'remove', + pr1cd1: 'my product 1', + pr1id: 'p-298', + cd1: 'my product 1', + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + pr1nm: 'my product 1', + pr1ca: 'cat 1', + cu: 'CAD', + pr1ps: 4.5, + pr1pr: 24.75, + pr1qt: 1, + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + ul: 'en-US', + ni: 1, + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 16", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "checkout step viewed", - "properties": { - "currency": "CAD", - "step": 1 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "pa": "checkout", - "ea": "checkout step viewed", - "ec": "EnhancedEcommerce", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "cos": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "ni": 1, - "qt": 124893881700, - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } + }, + { + name: 'ga360', + description: 'Test 8', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'product viewed', + properties: { + currency: 'CAD', + quantity: 1, + price: 24.75, + name: 'my product 1', + category: 'cat 1', + sku: 'p-298', + testDimension: true, + testMetric: true, + position: 4.5, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 17", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "checkout step completed", - "properties": { - "currency": "CAD", - "step": 1, - "paymentMethod": "Visa" - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "pa": "checkout_option", - "ea": "checkout step completed", - "ec": "EnhancedEcommerce", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "cos": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "ni": 1, - "qt": 124893881700, - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ea: 'product viewed', + ec: 'cat 1', + pa: 'detail', + pr1cd1: 'my product 1', + pr1id: 'p-298', + cd1: 'my product 1', + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + pr1nm: 'my product 1', + pr1ca: 'cat 1', + cu: 'CAD', + pr1ps: 4.5, + pr1pr: 24.75, + pr1qt: 1, + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + ul: 'en-US', + ni: 1, + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 18", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "order refunded", - "properties": { - "products": [ - { - "quantity": 1, - "sku": "p-298" - }, - { - "quantity": 1, - "sku": "p-299" - } - ], - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ea": "order refunded", - "ec": "EnhancedEcommerce", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "pa": "refund", - "pr1id": "p-298", - "pr1qt": 1, - "pr2id": "p-299", - "ul": "en-US", - "pr2qt": 1, - "qt": 124893881700, - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } + }, + { + name: 'ga360', + description: 'Test 9', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'product list filtered', + properties: { + category: 'cat 1', + list_id: '1234', + filters: [ + { + type: 'department', + value: 'beauty', + }, + { + type: 'price', + value: 'under', + }, + ], + sorts: [ + { + type: 'price', + value: 'desc', + }, + ], + products: [ + { + product_id: '507f1f77bcf86cd799439011', + productDimension: 'My Product Dimension', + productMetric: 'My Product Metric', + }, + ], + testDimension: true, + testMetric: true, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 19", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "order starterefundedd", - "properties": { - "products": [ - { - "quantity": 1, - "sku": "p-298" - }, - { - "quantity": 1, - "sku": "p-299" - } - ], - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ul": "en-US", - "ec": "All", - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ea": "order starterefundedd", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "qt": 124893881700, - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ea: 'product list filtered', + ec: 'cat 1', + pa: 'detail', + il1pi1id: '507f1f77bcf86cd799439011', + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + il1nm: '1234', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + cid: '00000000000000000000000000', + uid: '12345', + il1pi1qt: 1, + il1pi1va: 'department:beauty,price:under::price:desc', + ul: 'en-US', + ni: 1, + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 20", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "order starterefundedd", - "properties": { - "products": [ - { - "quantity": 1, - "sku": "p-298" - }, - { - "quantity": 1, - "sku": "p-299" - } - ], - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ul": "en-US", - "ec": "All", - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ea": "order starterefundedd", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "qt": 124893881700, - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } + }, + { + name: 'ga360', + description: 'Test 10', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'product list viewed', + properties: { + category: 'cat 1', + list_id: '1234', + filters: [ + { + type: 'department', + value: 'beauty', + }, + { + type: 'price', + value: 'under', + }, + ], + sorts: [ + { + type: 'price', + value: 'desc', + }, + ], + products: [ + { + product_id: '507f1f77bcf86cd799439011', + productDimension: 'My Product Dimension', + productMetric: 'My Product Metric', + position: 10, + }, + { + product_id: '507f1f77bcf86cdef799439011', + productDimension: 'My Product Dimension1', + productMetric: 'My Product Metric1', + position: -10, + }, + ], + testDimension: true, + testMetric: true, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 21", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "order starterefundedd", - "properties": { - "products": [ - { - "quantity": 1, - "sku": "p-298" - }, - { - "quantity": 1, - "sku": "p-299" - } - ], - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ul": "en-US", - "ec": "All", - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "aip": 1, - "cid": "00000000000000000000000000", - "ea": "order starterefundedd", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "qt": 124893881700, - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ea: 'product list viewed', + ec: 'cat 1', + pa: 'detail', + il1pi1id: '507f1f77bcf86cd799439011', + il1pi1ps: 10, + il1pi2id: '507f1f77bcf86cdef799439011', + il1pi2ps: -10, + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + il1nm: '1234', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + cid: '00000000000000000000000000', + uid: '12345', + il1pi1qt: 1, + il1pi1va: 'department:beauty,price:under::price:desc', + il1pi2qt: 1, + il1pi2va: 'department:beauty,price:under::price:desc', + ul: 'en-US', + ni: 1, + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 22", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "order starterefundedd", - "properties": { - "products": [ - { - "quantity": 1, - "sku": "p-298" - }, - { - "quantity": 1, - "sku": "p-299" - } - ], - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ul": "en-US", - "ec": "All", - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "cid": "00000000000000000000000000", - "ea": "order starterefundedd", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "qt": 124893881700, - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } + }, + { + name: 'ga360', + description: 'Test 11', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'product clicked', + properties: { + currency: 'CAD', + quantity: 1, + price: 24.75, + name: 'my product', + category: 'cat 1', + sku: 'p-298', + list: 'search results', + testDimension: true, + testMetric: true, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 23", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "order starterefundedd", - "properties": { - "products": [ - { - "quantity": 1, - "sku": "p-298" - }, - { - "quantity": 1, - "sku": "p-299" - } - ], - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ul": "en-US", - "ec": "All", - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ea": "order starterefundedd", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "qt": 124893881700, - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ea: 'product clicked', + ec: 'cat 1', + pa: 'click', + pr1cd1: 'my product', + pr1id: 'p-298', + cd1: 'my product', + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + pr1nm: 'my product', + pr1ca: 'cat 1', + cu: 'CAD', + pr1pr: 24.75, + pr1qt: 1, + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + pal: 'search results', + ul: 'en-US', + ni: 1, + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 24", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "linkid test", - "properties": { - "linkid": "abc123", - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ul": "en-US", - "ec": "All", - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "linkid": "abc123", - "cid": "00000000000000000000000000", - "ea": "linkid test", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "qt": 124893881700, - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } + }, + { + name: 'ga360', + description: 'Test 12', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'promotion viewed', + properties: { + currency: 'CAD', + promotion_id: 'PROMO_1234', + name: 'my product', + creative: 'summer_banner2', + position: 'banner_slot1', + testDimension: true, + testMetric: true, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 25", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "campaign": { - "name": "sampleName", - "source": "sampleSource", - "medium": "sampleMedium", - "content": "sampleContent", - "term": "sampleTerm" - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "campaign test", - "properties": { - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ul": "en-US", - "ec": "All", - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "cn": "sampleName", - "cs": "sampleSource", - "cm": "sampleMedium", - "cc": "sampleContent", - "ck": "sampleTerm", - "cid": "00000000000000000000000000", - "ea": "campaign test", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "qt": 124893881700, - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ea: 'promotion viewed', + ec: 'EnhancedEcommerce', + cu: 'CAD', + promoa: 'view', + pa: 'view', + cd1: 'my product', + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + promo1id: 'PROMO_1234', + promo1cr: 'summer_banner2', + promo1ps: 'banner_slot1', + promo1nm: 'my product', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + ul: 'en-US', + ni: 1, + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 26", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "campaign": { - "name": "sampleName", - "source": "sampleSource", - "medium": "sampleMedium", - "content": "sampleContent", - "term": "sampleTerm" - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "event": "campaign test", - "properties": { - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ul": "en-US", - "ec": "All", - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "cn": "sampleName", - "cs": "sampleSource", - "cm": "sampleMedium", - "cc": "sampleContent", - "ck": "sampleTerm", - "cid": "00000000000000000000000000", - "ea": "campaign test", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "qt": 124893881700, - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } + }, + { + name: 'ga360', + description: 'Test 13', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'promotion clicked', + properties: { + currency: 'CAD', + promotion_id: 'PROMO_1234', + name: 'my product', + creative: 'summer_banner2', + position: 'banner_slot1', + testDimension: true, + testMetric: true, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 27", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "campaign": { - "name": "sampleName", - "source": "sampleSource", - "medium": "sampleMedium", - "content": "sampleContent", - "term": "sampleTerm" - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "event": "campaign test", - "properties": { - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ul": "en-US", - "ec": "All", - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "cn": "sampleName", - "cs": "sampleSource", - "cm": "sampleMedium", - "cc": "sampleContent", - "ck": "sampleTerm", - "cid": "00000000000000000000000000", - "ea": "campaign test", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "qt": 124893881700, - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ea: 'promotion clicked', + ec: 'EnhancedEcommerce', + cu: 'CAD', + promoa: 'promo_click', + pa: 'promo_click', + cd1: 'my product', + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + promo1id: 'PROMO_1234', + promo1cr: 'summer_banner2', + promo1ps: 'banner_slot1', + promo1nm: 'my product', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + ul: 'en-US', + ni: 1, + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 28", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.2" - }, - "traits": { - "abc": "1234" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.2" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36", - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "page": { - "path": "/tests/html/ecomm_test.html", - "referrer": "http://0.0.0.0:1112/tests/html/", - "search": "", - "title": "GA Ecommerce Test", - "url": "http://0.0.0.0:1112/tests/html/ecomm_test.html" - } - }, - "type": "identify", - "messageId": "bc8a6af8-37fd-46a9-9592-ea29a256435f", - "originalTimestamp": "2020-06-22T11:30:32.493Z", - "anonymousId": "38e169a1-3234-46f7-9ceb-c1a6a69005fe", - "userId": "123", - "integrations": { - "All": true - }, - "sentAt": "2020-06-22T11:30:32.494Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "User Enriched", - "dt": "GA Ecommerce Test", - "ec": "All", - "v": "1", - "t": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.1.2", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "uid": "123", - "cid": "38e169a1-3234-46f7-9ceb-c1a6a69005fe", - "ni": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36", - "ul": "en-GB", - "qt": 103120167507, - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "38e169a1-3234-46f7-9ceb-c1a6a69005fe" - }, - "statusCode": 200 - } - ] - } - } + }, + { + name: 'ga360', + description: 'Test 14', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'checkout started', + properties: { + currency: 'CAD', + products: [ + { + quantity: 1, + price: 24.75, + name: 'my product', + sku: 'p-298', + }, + { + quantity: 1, + price: 24.75, + name: 'my product 2', + sku: 'p-299', + }, + ], + step: 1, + paymentMethod: 'Visa', + testDimension: true, + testMetric: true, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 29", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "page", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "v": "1", - "t": "pageview", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "uip": "0.0.0.0", - "qt": 124893881701, - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + pa: 'checkout', + pr1id: 'p-298', + pr1cd1: 'my product', + pr1nm: 'my product', + pr1pr: 24.75, + pr2id: 'p-299', + pr2cd1: 'my product 2', + pr2nm: 'my product 2', + pr2pr: 24.75, + ea: 'checkout started', + ec: 'EnhancedEcommerce', + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + cu: 'CAD', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + cos: 1, + pr1qt: 1, + pr2qt: 1, + ul: 'en-US', + ni: 1, + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 30", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "page", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "path": "/abc", - "referrer": "", - "search": "?xyz=1", - "title": "", - "url": "https://www.example.com/abc" - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "v": "1", - "t": "pageview", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "uip": "0.0.0.0", - "dh": "www.example.com", - "dl": "https://www.example.com/abc", - "dp": "%2Fabc%3Fxyz%3D1", - "qt": 124893881701, - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } + }, + { + name: 'ga360', + description: 'Test 15', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'order updated', + properties: { + currency: 'CAD', + products: [ + { + quantity: 1, + price: 24.75, + name: 'my product', + sku: 'p-298', + }, + { + quantity: 1, + price: 24.75, + name: 'my product 2', + sku: 'p-299', + }, + ], + step: 1, + paymentMethod: 'Visa', + testDimension: true, + testMetric: true, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 31", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "integrations": { - "All": true - }, - "event": "sample event", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ec": "All", - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ea": "sample event", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "uip": "0.0.0.0", - "qt": 124893881701, - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + pa: 'checkout', + pr1id: 'p-298', + pr1cd1: 'my product', + pr1nm: 'my product', + pr1pr: 24.75, + pr2id: 'p-299', + pr2cd1: 'my product 2', + pr2nm: 'my product 2', + pr2pr: 24.75, + ea: 'order updated', + ec: 'EnhancedEcommerce', + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + cu: 'CAD', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + cos: 1, + pr1qt: 1, + pr2qt: 1, + ul: 'en-US', + ni: 1, + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 32", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Order Refunded", - "properties": { - "order_id": "rudderstackorder1", - "total": 99.99, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298" - }, - { - "quantity": 3, - "price": 24.75, - "name": "other product", - "sku": "p-299" - } - ] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "pa": "refund", - "ev": 100, - "pr1id": "p-298", - "pr1cd1": "my product", - "pr1nm": "my product", - "pr1pr": 24.75, - "pr1qt": 1, - "pr2id": "p-299", - "pr2cd1": "other product", - "pr2nm": "other product", - "pr2pr": 24.75, - "pr2qt": 3, - "ea": "Order Refunded", - "ec": "EnhancedEcommerce", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "cid": "00000000000000000000000000", - "ti": "rudderstackorder1", - "uid": "12345", - "ul": "en-US", - "ni": 1, - "qt": 124893881700, - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } + }, + { + name: 'ga360', + description: 'Test 16', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'checkout step viewed', + properties: { + currency: 'CAD', + step: 1, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 33", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Order Refunded", - "properties": { - "order_id": "rudderstackorder1", - "total": 99.99, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR" - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ev": 100, - "pa": "refund", - "ti": "rudderstackorder1", - "ea": "Order Refunded", - "ec": "EnhancedEcommerce", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "cid": "00000000000000000000000000", - "uid": "12345", - "ul": "en-US", - "ni": 1, - "qt": 124893881700, - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + pa: 'checkout', + ea: 'checkout step viewed', + ec: 'EnhancedEcommerce', + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + cos: 1, + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + ul: 'en-US', + ni: 1, + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 34", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Order Refunded", - "properties": { - "order_id": "rudderstackorder1", - "total": 99.99, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR", - "products": [] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ev": 100, - "pa": "refund", - "ti": "rudderstackorder1", - "ea": "Order Refunded", - "ec": "EnhancedEcommerce", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "cid": "00000000000000000000000000", - "uid": "12345", - "ul": "en-US", - "ni": 1, - "qt": 124893881700, - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } + }, + { + name: 'ga360', + description: 'Test 17', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'checkout step completed', + properties: { + currency: 'CAD', + step: 1, + paymentMethod: 'Visa', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 35", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Order Refunded", - "properties": { - "order_id": "rudderstackorder1", - "total": 99.99, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298", - "product_id": "1" - }, - { - "quantity": 3, - "price": 24.75, - "name": "other product", - "sku": "p-299", - "product_id": "2" - } - ] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ev": 100, - "pa": "refund", - "pr1id": "1", - "pr1cd1": "my product", - "pr1nm": "my product", - "pr1pr": 24.75, - "pr1qt": 1, - "pr2id": "2", - "pr2cd1": "other product", - "pr2nm": "other product", - "pr2pr": 24.75, - "pr2qt": 3, - "ea": "Order Refunded", - "ec": "EnhancedEcommerce", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "cid": "00000000000000000000000000", - "ti": "rudderstackorder1", - "uid": "12345", - "ul": "en-US", - "ni": 1, - "qt": 124893881700, - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + pa: 'checkout_option', + ea: 'checkout step completed', + ec: 'EnhancedEcommerce', + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + cos: 1, + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + ul: 'en-US', + ni: 1, + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 36", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Cart Shared", - "properties": { - "order_id": "rudderstackorder1", - "total": 99.99, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298", - "product_id": "1" - }, - { - "quantity": 3, - "price": 24.75, - "name": "other product", - "sku": "p-299", - "product_id": "2" - } - ] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ev": 100, - "ea": "Cart Shared", - "ec": "All", - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "st": " 1 2", - "ul": "en-US", - "qt": 124893881700, - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } + }, + { + name: 'ga360', + description: 'Test 18', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'order refunded', + properties: { + products: [ + { + quantity: 1, + sku: 'p-298', + }, + { + quantity: 1, + sku: 'p-299', + }, + ], + testDimension: true, + testMetric: true, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 37", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Product Shared", - "properties": { - "product_id": "rudderstackorder1", - "total": 99.99, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR", - "url": "https://www.example.com/abc" - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ev": 100, - "ea": "Product Shared", - "ec": "All", - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "st": "https://www.example.com/abc", - "dh": "www.example.com", - "dl": "https://www.example.com/abc", - "dp": "%2Fabc", - "ul": "en-US", - "qt": 124893881700, - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ni: 1, + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + ea: 'order refunded', + ec: 'EnhancedEcommerce', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + pa: 'refund', + pr1id: 'p-298', + pr1qt: 1, + pr2id: 'p-299', + ul: 'en-US', + pr2qt: 1, + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 38", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Product List Clicked", - "properties": { - "list_id": "Sample Product List", - "category": "Sample Product List", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298", - "product_id": "1" - }, - { - "quantity": 3, - "price": 24.75, - "name": "other product", - "sku": "p-299", - "product_id": "2" - } - ] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "Product List Clicked", - "ec": "Sample Product List", - "pa": "click", - "il1pi1id": "1", - "pr1cd1": "my product", - "il1pi1nm": "my product", - "il1pi1pr": 24.75, - "il1pi2id": "2", - "pr2cd1": "other product", - "il1pi2nm": "other product", - "il1pi2pr": 24.75, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "il1nm": "Sample Product List", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "cid": "00000000000000000000000000", - "uid": "12345", - "ni": 1, - "il1pi2qt": 3, - "il1pi1qt": 1, - "ul": "en-US", - "qt": 124893881700, - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } + }, + { + name: 'ga360', + description: 'Test 19', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'order starterefundedd', + properties: { + products: [ + { + quantity: 1, + sku: 'p-298', + }, + { + quantity: 1, + sku: 'p-299', + }, + ], + testDimension: true, + testMetric: true, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 39", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Product List Clicked", - "properties": { - "list_id": "Sample Product List", - "category": "Sample Product List", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298" - }, - { - "quantity": 3, - "price": 24.75, - "name": "other product", - "sku": "p-299" - } - ] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "Product List Clicked", - "ec": "Sample Product List", - "pa": "click", - "il1pi1id": "p-298", - "pr1cd1": "my product", - "il1pi1nm": "my product", - "il1pi1pr": 24.75, - "il1pi2id": "p-299", - "pr2cd1": "other product", - "il1pi2nm": "other product", - "il1pi2pr": 24.75, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "il1nm": "Sample Product List", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "cid": "00000000000000000000000000", - "uid": "12345", - "ul": "en-US", - "il1pi2qt": 3, - "il1pi1qt": 1, - "ni": 1, - "qt": 124893881700, - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ul: 'en-US', + ec: 'All', + ni: 1, + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + ea: 'order starterefundedd', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 40", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Product List Clicked", - "properties": { - "list_id": "Sample Product List", - "category": "Sample Product List", - "products": [] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ni": 1, - "ea": "Product List Clicked", - "ec": "Sample Product List", - "pa": "click", - "el": "event", - "v": "1", - "t": "event", - "tid": "UA-165994240-1", - "ds": "web", - "npa": 1, - "aip": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "ul": "en-US", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "il1nm": "Sample Product List", - "uid": "12345", - "cid": "00000000000000000000000000", - "qt": 124893881700 - }, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } + }, + { + name: 'ga360', + description: 'Test 20', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'order starterefundedd', + properties: { + products: [ + { + quantity: 1, + sku: 'p-298', + }, + { + quantity: 1, + sku: 'p-299', + }, + ], + testDimension: true, + testMetric: true, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 41", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Order Cancelled", - "properties": { - "order_id": "rudderstackorder1", - "total": 99.99, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298", - "product_id": "1" - }, - { - "quantity": 3, - "price": 24.75, - "name": "other product", - "sku": "p-299", - "product_id": "2" - } - ] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "pa": "refund", - "ev": 100, - "tr": 99.99, - "pr1id": "1", - "pr1cd1": "my product", - "pr1nm": "my product", - "pr1pr": 24.75, - "pr2id": "2", - "pr2cd1": "other product", - "pr2nm": "other product", - "pr2pr": 24.75, - "ea": "Order Cancelled", - "ec": "EnhancedEcommerce", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ti": "rudderstackorder1", - "ts": 13.99, - "tt": 20.99, - "cu": "INR", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "pr1qt": 1, - "pr2qt": 3, - "ni": 1, - "qt": 124893881700, - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ul: 'en-US', + ec: 'All', + ni: 1, + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + ea: 'order starterefundedd', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 42", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Order Cancelled", - "properties": { - "order_id": "rudderstackorder1", - "value": 99.99, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298", - "product_id": "1" - }, - { - "quantity": 3, - "price": 24.75, - "name": "other product", - "sku": "p-299", - "product_id": "2" - } - ] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "pa": "refund", - "tr": 99.99, - "pr1id": "1", - "pr1cd1": "my product", - "pr1nm": "my product", - "pr1pr": 24.75, - "pr2id": "2", - "pr2cd1": "other product", - "pr2nm": "other product", - "pr2pr": 24.75, - "ea": "Order Cancelled", - "ev": 100, - "ec": "EnhancedEcommerce", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ti": "rudderstackorder1", - "ts": 13.99, - "tt": 20.99, - "cu": "INR", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "pr1qt": 1, - "pr2qt": 3, - "ni": 1, - "qt": 124893881700, - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } + }, + { + name: 'ga360', + description: 'Test 21', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'order starterefundedd', + properties: { + products: [ + { + quantity: 1, + sku: 'p-298', + }, + { + quantity: 1, + sku: 'p-299', + }, + ], + testDimension: true, + testMetric: true, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 43", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Order Cancelled", - "properties": { - "order_id": "rudderstackorder1", - "revenue": 99.99, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298", - "product_id": "1" - }, - { - "quantity": 3, - "price": 24.75, - "name": "other product", - "sku": "p-299", - "product_id": "2" - } - ] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "pa": "refund", - "tr": 99.99, - "pr1id": "1", - "pr1cd1": "my product", - "pr1nm": "my product", - "pr1pr": 24.75, - "pr2id": "2", - "pr2cd1": "other product", - "pr2nm": "other product", - "pr2pr": 24.75, - "ea": "Order Cancelled", - "ev": 100, - "ec": "EnhancedEcommerce", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ti": "rudderstackorder1", - "ts": 13.99, - "tt": 20.99, - "cu": "INR", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "pr1qt": 1, - "pr2qt": 3, - "ni": 1, - "qt": 124893881700, - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ul: 'en-US', + ec: 'All', + ni: 1, + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + aip: 1, + cid: '00000000000000000000000000', + ea: 'order starterefundedd', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 44", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Order Cancelled", - "properties": { - "order_id": "rudderstackorder1", - "revenue": 99.99, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR", - "products": [] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "No product information supplied for transaction event", - "statTags": { - "destType": "GA360", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } + }, + { + name: 'ga360', + description: 'Test 22', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'order starterefundedd', + properties: { + products: [ + { + quantity: 1, + sku: 'p-298', + }, + { + quantity: 1, + sku: 'p-299', + }, + ], + testDimension: true, + testMetric: true, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 45", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Cart Viewed", - "properties": { - "order_id": "rudderstackorder1", - "revenue": 99.99, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298", - "product_id": "1" - }, - { - "quantity": 3, - "price": 24.75, - "name": "other product", - "sku": "p-299", - "product_id": "2" - } - ] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "Cart Viewed", - "ev": 100, - "ec": "EnhancedEcommerce", - "pa": "detail", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "cid": "00000000000000000000000000", - "uid": "12345", - "ul": "en-US", - "ni": 1, - "pr1cd1": "my product", - "pr1id": "1", - "pr1nm": "my product", - "pr1pr": 24.75, - "pr1qt": 1, - "pr2cd1": "other product", - "pr2id": "2", - "pr2nm": "other product", - "pr2pr": 24.75, - "pr2qt": 3, - "qt": 124893881700, - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ul: 'en-US', + ec: 'All', + ni: 1, + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + cid: '00000000000000000000000000', + ea: 'order starterefundedd', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 46", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "traits": { - "name1": "Test" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "properties": { - "plan": "standard plan", - "name": "rudder test" - }, - "type": "identify", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "traits": { - "name1": "Test" - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "serverSideIdentifyEventCategory": "name", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "server side identify is not on", - "statTags": { - "destType": "GA360", - "errorCategory": "dataValidation", - "errorType": "configuration", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } + }, + { + name: 'ga360', + description: 'Test 23', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'order starterefundedd', + properties: { + products: [ + { + quantity: 1, + sku: 'p-298', + }, + { + quantity: 1, + sku: 'p-299', + }, + ], + testDimension: true, + testMetric: true, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 47", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "screen", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "name": "homescreen" - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "cd1": "homescreen", - "v": "1", - "t": "screenview", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "cd": "homescreen", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "uip": "0.0.0.0", - "qt": 124893881701, - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "statusCode": 200 - } - ] - } - } + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ul: 'en-US', + ec: 'All', + ni: 1, + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + ea: 'order starterefundedd', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 48", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "newtype", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "name": "homescreen" - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "Message type newtype not supported", - "statTags": { - "destType": "GA360", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } + }, + { + name: 'ga360', + description: 'Test 24', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'linkid test', + properties: { + linkid: 'abc123', + testDimension: true, + testMetric: true, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 49", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "traits": { - "name": "Test" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "properties": { - "plan": "standard plan", - "name": "rudder test" - }, - "type": "identify", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "userId": "12345", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "name", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "userId": "12345", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "action1", - "ec": "Test", - "ni": 1, - "cd1": "Test", - "v": "1", - "t": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "ul": "en-US", - "uid": "12345", - "cid": "827ccb0eea8a706c4c34a16891f84e7b", - "uip": "0.0.0.0", - "qt": 124901802438 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - "statusCode": 200 - } - ] - } - } + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ul: 'en-US', + ec: 'All', + ni: 1, + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + linkid: 'abc123', + cid: '00000000000000000000000000', + ea: 'linkid test', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 50", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "traits": { - "name": "Test" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "properties": { - "plan": "standard plan", - "name": "rudder test" - }, - "type": "identify", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "userId": "12345", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "name", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "disableMd5": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "userId": "12345", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "action1", - "ec": "Test", - "ni": 1, - "cd1": "Test", - "v": "1", - "t": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "ul": "en-US", - "uid": "12345", - "uip": "0.0.0.0", - "qt": 124901802438 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - "statusCode": 200 - } - ] - } - } + }, + { + name: 'ga360', + description: 'Test 25', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + campaign: { + name: 'sampleName', + source: 'sampleSource', + medium: 'sampleMedium', + content: 'sampleContent', + term: 'sampleTerm', + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'campaign test', + properties: { + testDimension: true, + testMetric: true, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 51", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "traits": { - "name": "Test" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "properties": { - "plan": "standard plan", - "name": "rudder test" - }, - "type": "identify", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "userId": "12345", - "integrations": { - "All": true, - "GA": { - "clientId": "clientId" - }, - "Google Analytics": { - "clientId": "clientId" - } - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "name", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "userId": "12345", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "action1", - "ec": "Test", - "ni": 1, - "cd1": "Test", - "v": "1", - "t": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "ul": "en-US", - "uid": "12345", - "cid": "clientId", - "uip": "0.0.0.0", - "qt": 124901802438 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - "statusCode": 200 - } - ] - } - } + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ul: 'en-US', + ec: 'All', + ni: 1, + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + cn: 'sampleName', + cs: 'sampleSource', + cm: 'sampleMedium', + cc: 'sampleContent', + ck: 'sampleTerm', + cid: '00000000000000000000000000', + ea: 'campaign test', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, }, - { - "name": "ga360", - "description": "Test 52", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "channel": "web", - "context": { - "externalId": [ - { - "id": "externalClientId", - "type": "gaExternalId" - } - ], - "traits": { - "name": "Test" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "properties": { - "plan": "standard plan", - "name": "rudder test" - }, - "type": "identify", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "userId": "12345", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "name", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "userId": "12345", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "action1", - "ec": "Test", - "ni": 1, - "cd1": "Test", - "v": "1", - "t": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "ul": "en-US", - "uid": "12345", - "cid": "externalClientId", - "uip": "0.0.0.0", - "qt": 124901802438 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - "statusCode": 200 - } - ] - } - } - } -].map((d) => ({ ...d, mockFns })) \ No newline at end of file + }, + { + name: 'ga360', + description: 'Test 26', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + campaign: { + name: 'sampleName', + source: 'sampleSource', + medium: 'sampleMedium', + content: 'sampleContent', + term: 'sampleTerm', + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + event: 'campaign test', + properties: { + testDimension: true, + testMetric: true, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ul: 'en-US', + ec: 'All', + ni: 1, + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + cn: 'sampleName', + cs: 'sampleSource', + cm: 'sampleMedium', + cc: 'sampleContent', + ck: 'sampleTerm', + cid: '00000000000000000000000000', + ea: 'campaign test', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga360', + description: 'Test 27', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + campaign: { + name: 'sampleName', + source: 'sampleSource', + medium: 'sampleMedium', + content: 'sampleContent', + term: 'sampleTerm', + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + event: 'campaign test', + properties: { + testDimension: true, + testMetric: true, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ul: 'en-US', + ec: 'All', + ni: 1, + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + cn: 'sampleName', + cs: 'sampleSource', + cm: 'sampleMedium', + cc: 'sampleContent', + ck: 'sampleTerm', + cid: '00000000000000000000000000', + ea: 'campaign test', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga360', + description: 'Test 28', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.2', + }, + traits: { + abc: '1234', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.2', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36', + locale: 'en-GB', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + page: { + path: '/tests/html/ecomm_test.html', + referrer: 'http://0.0.0.0:1112/tests/html/', + search: '', + title: 'GA Ecommerce Test', + url: 'http://0.0.0.0:1112/tests/html/ecomm_test.html', + }, + }, + type: 'identify', + messageId: 'bc8a6af8-37fd-46a9-9592-ea29a256435f', + originalTimestamp: '2020-06-22T11:30:32.493Z', + anonymousId: '38e169a1-3234-46f7-9ceb-c1a6a69005fe', + userId: '123', + integrations: { + All: true, + }, + sentAt: '2020-06-22T11:30:32.494Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ea: 'User Enriched', + dt: 'GA Ecommerce Test', + ec: 'All', + v: '1', + t: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.1.2', + aiid: 'com.rudderlabs.javascript', + npa: 1, + uid: '123', + cid: '38e169a1-3234-46f7-9ceb-c1a6a69005fe', + ni: 1, + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36', + ul: 'en-GB', + qt: 103120167507, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '38e169a1-3234-46f7-9ceb-c1a6a69005fe', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga360', + description: 'Test 29', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'page', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + v: '1', + t: 'pageview', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + ul: 'en-US', + uip: '0.0.0.0', + qt: 124893881701, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga360', + description: 'Test 30', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'page', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + path: '/abc', + referrer: '', + search: '?xyz=1', + title: '', + url: 'https://www.example.com/abc', + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + v: '1', + t: 'pageview', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + ul: 'en-US', + uip: '0.0.0.0', + dh: 'www.example.com', + dl: 'https://www.example.com/abc', + dp: '%2Fabc%3Fxyz%3D1', + qt: 124893881701, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga360', + description: 'Test 31', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + integrations: { + All: true, + }, + event: 'sample event', + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ec: 'All', + ni: 1, + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + ea: 'sample event', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + ul: 'en-US', + uip: '0.0.0.0', + qt: 124893881701, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga360', + description: 'Test 32', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'Order Refunded', + properties: { + order_id: 'rudderstackorder1', + total: 99.99, + shipping: 13.99, + tax: 20.99, + currency: 'INR', + products: [ + { + quantity: 1, + price: 24.75, + name: 'my product', + sku: 'p-298', + }, + { + quantity: 3, + price: 24.75, + name: 'other product', + sku: 'p-299', + }, + ], + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + pa: 'refund', + ev: 100, + pr1id: 'p-298', + pr1cd1: 'my product', + pr1nm: 'my product', + pr1pr: 24.75, + pr1qt: 1, + pr2id: 'p-299', + pr2cd1: 'other product', + pr2nm: 'other product', + pr2pr: 24.75, + pr2qt: 3, + ea: 'Order Refunded', + ec: 'EnhancedEcommerce', + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + cid: '00000000000000000000000000', + ti: 'rudderstackorder1', + uid: '12345', + ul: 'en-US', + ni: 1, + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga360', + description: 'Test 33', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'Order Refunded', + properties: { + order_id: 'rudderstackorder1', + total: 99.99, + shipping: 13.99, + tax: 20.99, + currency: 'INR', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ev: 100, + pa: 'refund', + ti: 'rudderstackorder1', + ea: 'Order Refunded', + ec: 'EnhancedEcommerce', + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + cid: '00000000000000000000000000', + uid: '12345', + ul: 'en-US', + ni: 1, + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga360', + description: 'Test 34', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'Order Refunded', + properties: { + order_id: 'rudderstackorder1', + total: 99.99, + shipping: 13.99, + tax: 20.99, + currency: 'INR', + products: [], + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ev: 100, + pa: 'refund', + ti: 'rudderstackorder1', + ea: 'Order Refunded', + ec: 'EnhancedEcommerce', + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + cid: '00000000000000000000000000', + uid: '12345', + ul: 'en-US', + ni: 1, + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga360', + description: 'Test 35', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'Order Refunded', + properties: { + order_id: 'rudderstackorder1', + total: 99.99, + shipping: 13.99, + tax: 20.99, + currency: 'INR', + products: [ + { + quantity: 1, + price: 24.75, + name: 'my product', + sku: 'p-298', + product_id: '1', + }, + { + quantity: 3, + price: 24.75, + name: 'other product', + sku: 'p-299', + product_id: '2', + }, + ], + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ev: 100, + pa: 'refund', + pr1id: '1', + pr1cd1: 'my product', + pr1nm: 'my product', + pr1pr: 24.75, + pr1qt: 1, + pr2id: '2', + pr2cd1: 'other product', + pr2nm: 'other product', + pr2pr: 24.75, + pr2qt: 3, + ea: 'Order Refunded', + ec: 'EnhancedEcommerce', + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + cid: '00000000000000000000000000', + ti: 'rudderstackorder1', + uid: '12345', + ul: 'en-US', + ni: 1, + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga360', + description: 'Test 36', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'Cart Shared', + properties: { + order_id: 'rudderstackorder1', + total: 99.99, + shipping: 13.99, + tax: 20.99, + currency: 'INR', + products: [ + { + quantity: 1, + price: 24.75, + name: 'my product', + sku: 'p-298', + product_id: '1', + }, + { + quantity: 3, + price: 24.75, + name: 'other product', + sku: 'p-299', + product_id: '2', + }, + ], + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ev: 100, + ea: 'Cart Shared', + ec: 'All', + ni: 1, + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + st: ' 1 2', + ul: 'en-US', + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga360', + description: 'Test 37', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'Product Shared', + properties: { + product_id: 'rudderstackorder1', + total: 99.99, + shipping: 13.99, + tax: 20.99, + currency: 'INR', + url: 'https://www.example.com/abc', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ev: 100, + ea: 'Product Shared', + ec: 'All', + ni: 1, + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + st: 'https://www.example.com/abc', + dh: 'www.example.com', + dl: 'https://www.example.com/abc', + dp: '%2Fabc', + ul: 'en-US', + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga360', + description: 'Test 38', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'Product List Clicked', + properties: { + list_id: 'Sample Product List', + category: 'Sample Product List', + products: [ + { + quantity: 1, + price: 24.75, + name: 'my product', + sku: 'p-298', + product_id: '1', + }, + { + quantity: 3, + price: 24.75, + name: 'other product', + sku: 'p-299', + product_id: '2', + }, + ], + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ea: 'Product List Clicked', + ec: 'Sample Product List', + pa: 'click', + il1pi1id: '1', + pr1cd1: 'my product', + il1pi1nm: 'my product', + il1pi1pr: 24.75, + il1pi2id: '2', + pr2cd1: 'other product', + il1pi2nm: 'other product', + il1pi2pr: 24.75, + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + il1nm: 'Sample Product List', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + cid: '00000000000000000000000000', + uid: '12345', + ni: 1, + il1pi2qt: 3, + il1pi1qt: 1, + ul: 'en-US', + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga360', + description: 'Test 39', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'Product List Clicked', + properties: { + list_id: 'Sample Product List', + category: 'Sample Product List', + products: [ + { + quantity: 1, + price: 24.75, + name: 'my product', + sku: 'p-298', + }, + { + quantity: 3, + price: 24.75, + name: 'other product', + sku: 'p-299', + }, + ], + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ea: 'Product List Clicked', + ec: 'Sample Product List', + pa: 'click', + il1pi1id: 'p-298', + pr1cd1: 'my product', + il1pi1nm: 'my product', + il1pi1pr: 24.75, + il1pi2id: 'p-299', + pr2cd1: 'other product', + il1pi2nm: 'other product', + il1pi2pr: 24.75, + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + il1nm: 'Sample Product List', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + cid: '00000000000000000000000000', + uid: '12345', + ul: 'en-US', + il1pi2qt: 3, + il1pi1qt: 1, + ni: 1, + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga360', + description: 'Test 40', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'Product List Clicked', + properties: { + list_id: 'Sample Product List', + category: 'Sample Product List', + products: [], + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ni: 1, + ea: 'Product List Clicked', + ec: 'Sample Product List', + pa: 'click', + el: 'event', + v: '1', + t: 'event', + tid: 'UA-165994240-1', + ds: 'web', + npa: 1, + aip: 1, + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + ul: 'en-US', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + il1nm: 'Sample Product List', + uid: '12345', + cid: '00000000000000000000000000', + qt: 124893881700, + }, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga360', + description: 'Test 41', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'Order Cancelled', + properties: { + order_id: 'rudderstackorder1', + total: 99.99, + shipping: 13.99, + tax: 20.99, + currency: 'INR', + products: [ + { + quantity: 1, + price: 24.75, + name: 'my product', + sku: 'p-298', + product_id: '1', + }, + { + quantity: 3, + price: 24.75, + name: 'other product', + sku: 'p-299', + product_id: '2', + }, + ], + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + pa: 'refund', + ev: 100, + tr: 99.99, + pr1id: '1', + pr1cd1: 'my product', + pr1nm: 'my product', + pr1pr: 24.75, + pr2id: '2', + pr2cd1: 'other product', + pr2nm: 'other product', + pr2pr: 24.75, + ea: 'Order Cancelled', + ec: 'EnhancedEcommerce', + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + ti: 'rudderstackorder1', + ts: 13.99, + tt: 20.99, + cu: 'INR', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + ul: 'en-US', + pr1qt: 1, + pr2qt: 3, + ni: 1, + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga360', + description: 'Test 42', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'Order Cancelled', + properties: { + order_id: 'rudderstackorder1', + value: 99.99, + shipping: 13.99, + tax: 20.99, + currency: 'INR', + products: [ + { + quantity: 1, + price: 24.75, + name: 'my product', + sku: 'p-298', + product_id: '1', + }, + { + quantity: 3, + price: 24.75, + name: 'other product', + sku: 'p-299', + product_id: '2', + }, + ], + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + pa: 'refund', + tr: 99.99, + pr1id: '1', + pr1cd1: 'my product', + pr1nm: 'my product', + pr1pr: 24.75, + pr2id: '2', + pr2cd1: 'other product', + pr2nm: 'other product', + pr2pr: 24.75, + ea: 'Order Cancelled', + ev: 100, + ec: 'EnhancedEcommerce', + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + ti: 'rudderstackorder1', + ts: 13.99, + tt: 20.99, + cu: 'INR', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + ul: 'en-US', + pr1qt: 1, + pr2qt: 3, + ni: 1, + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga360', + description: 'Test 43', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'Order Cancelled', + properties: { + order_id: 'rudderstackorder1', + revenue: 99.99, + shipping: 13.99, + tax: 20.99, + currency: 'INR', + products: [ + { + quantity: 1, + price: 24.75, + name: 'my product', + sku: 'p-298', + product_id: '1', + }, + { + quantity: 3, + price: 24.75, + name: 'other product', + sku: 'p-299', + product_id: '2', + }, + ], + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + pa: 'refund', + tr: 99.99, + pr1id: '1', + pr1cd1: 'my product', + pr1nm: 'my product', + pr1pr: 24.75, + pr2id: '2', + pr2cd1: 'other product', + pr2nm: 'other product', + pr2pr: 24.75, + ea: 'Order Cancelled', + ev: 100, + ec: 'EnhancedEcommerce', + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + ti: 'rudderstackorder1', + ts: 13.99, + tt: 20.99, + cu: 'INR', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + ul: 'en-US', + pr1qt: 1, + pr2qt: 3, + ni: 1, + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga360', + description: 'Test 44', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'Order Cancelled', + properties: { + order_id: 'rudderstackorder1', + revenue: 99.99, + shipping: 13.99, + tax: 20.99, + currency: 'INR', + products: [], + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'No product information supplied for transaction event', + statTags: { + destType: 'GA360', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'ga360', + description: 'Test 45', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'Cart Viewed', + properties: { + order_id: 'rudderstackorder1', + revenue: 99.99, + shipping: 13.99, + tax: 20.99, + currency: 'INR', + products: [ + { + quantity: 1, + price: 24.75, + name: 'my product', + sku: 'p-298', + product_id: '1', + }, + { + quantity: 3, + price: 24.75, + name: 'other product', + sku: 'p-299', + product_id: '2', + }, + ], + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ea: 'Cart Viewed', + ev: 100, + ec: 'EnhancedEcommerce', + pa: 'detail', + v: '1', + t: 'event', + el: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + cid: '00000000000000000000000000', + uid: '12345', + ul: 'en-US', + ni: 1, + pr1cd1: 'my product', + pr1id: '1', + pr1nm: 'my product', + pr1pr: 24.75, + pr1qt: 1, + pr2cd1: 'other product', + pr2id: '2', + pr2nm: 'other product', + pr2pr: 24.75, + pr2qt: 3, + qt: 124893881700, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga360', + description: 'Test 46', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + traits: { + name1: 'Test', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + properties: { + plan: 'standard plan', + name: 'rudder test', + }, + type: 'identify', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { + All: true, + }, + traits: { + name1: 'Test', + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + serverSideIdentifyEventCategory: 'name', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'server side identify is not on', + statTags: { + destType: 'GA360', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'ga360', + description: 'Test 47', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'screen', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + name: 'homescreen', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + cd1: 'homescreen', + v: '1', + t: 'screenview', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + cd: 'homescreen', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + ul: 'en-US', + uip: '0.0.0.0', + qt: 124893881701, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga360', + description: 'Test 48', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'newtype', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + name: 'homescreen', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Message type newtype not supported', + statTags: { + destType: 'GA360', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'ga360', + description: 'Test 49', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + traits: { + name: 'Test', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + properties: { + plan: 'standard plan', + name: 'rudder test', + }, + type: 'identify', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + userId: '12345', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'name', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + userId: '12345', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ea: 'action1', + ec: 'Test', + ni: 1, + cd1: 'Test', + v: '1', + t: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + ul: 'en-US', + uid: '12345', + cid: '827ccb0eea8a706c4c34a16891f84e7b', + uip: '0.0.0.0', + qt: 124901802438, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga360', + description: 'Test 50', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + traits: { + name: 'Test', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + properties: { + plan: 'standard plan', + name: 'rudder test', + }, + type: 'identify', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + userId: '12345', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'name', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + disableMd5: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + userId: '12345', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ea: 'action1', + ec: 'Test', + ni: 1, + cd1: 'Test', + v: '1', + t: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + ul: 'en-US', + uid: '12345', + uip: '0.0.0.0', + qt: 124901802438, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga360', + description: 'Test 51', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + traits: { + name: 'Test', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + properties: { + plan: 'standard plan', + name: 'rudder test', + }, + type: 'identify', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + userId: '12345', + integrations: { + All: true, + GA: { + clientId: 'clientId', + }, + 'Google Analytics': { + clientId: 'clientId', + }, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'name', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + userId: '12345', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ea: 'action1', + ec: 'Test', + ni: 1, + cd1: 'Test', + v: '1', + t: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + ul: 'en-US', + uid: '12345', + cid: 'clientId', + uip: '0.0.0.0', + qt: 124901802438, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ga360', + description: 'Test 52', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + externalId: [ + { + id: 'externalClientId', + type: 'gaExternalId', + }, + ], + traits: { + name: 'Test', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + properties: { + plan: 'standard plan', + name: 'rudder test', + }, + type: 'identify', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + userId: '12345', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'name', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { + from: 'name', + to: 'dimension1', + }, + { + from: 'custom2', + to: 'dimension2', + }, + ], + metrics: [ + { + from: 'email', + to: 'metric1', + }, + { + from: 'trait2', + to: 'metric2', + }, + ], + resetCustomDimensionsOnPage: [ + { + resetCustomDimensionsOnPage: 'abc', + }, + { + resetCustomDimensionsOnPage: 'xyz', + }, + ], + contentGroupings: [ + { + from: 'plan', + to: 'contentGroup1', + }, + { + from: 'prop2', + to: 'contentGroup2', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + userId: '12345', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ea: 'action1', + ec: 'Test', + ni: 1, + cd1: 'Test', + v: '1', + t: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + ul: 'en-US', + uid: '12345', + cid: 'externalClientId', + uip: '0.0.0.0', + qt: 124901802438, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + statusCode: 200, + }, + ], + }, + }, + }, +].map((d) => ({ ...d, mockFns })); diff --git a/test/integrations/destinations/ga360/router/data.ts b/test/integrations/destinations/ga360/router/data.ts index 15086b6b2f..e56fccaeb8 100644 --- a/test/integrations/destinations/ga360/router/data.ts +++ b/test/integrations/destinations/ga360/router/data.ts @@ -1,487 +1,350 @@ export const mockFns = (_) => { - // @ts-ignore - jest - .useFakeTimers() - .setSystemTime(new Date('2023-09-29')); + // @ts-ignore + jest.useFakeTimers().setSystemTime(new Date('2023-09-29')); }; export const data = [ - { - name: 'ga360', - description: 'Test 0', - feature: 'router', - module: 'destination', - version: 'v0', - input: { - request: { - body: { - input: [ - { - "message": { - "channel": "web", - "context": { - "traits": { - "name": "Rudder Test" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "properties": { - "plan": "standard plan", - "name": "rudder test" - }, - "type": "identify", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "metadata": { - "jobId": 1 - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "name", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "name", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "page", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "path": "/abc", - "referrer": "q", - "search": "", - "title": "a", - "url": "https://www.example.com/abc" - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "metadata": { - "jobId": 2 - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ], - destType: 'ga360', + { + name: 'ga360', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + channel: 'web', + context: { + traits: { name: 'Rudder Test' }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { name: '', version: '' }, + screen: { density: 2 }, }, - method: 'POST', + properties: { plan: 'standard plan', name: 'rudder test' }, + type: 'identify', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { All: true }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { jobId: 1, userId: 'u1' }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'name', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { from: 'name', to: 'dimension1' }, + { from: 'custom2', to: 'dimension2' }, + ], + metrics: [ + { from: 'email', to: 'metric1' }, + { from: 'trait2', to: 'metric2' }, + ], + resetCustomDimensionsOnPage: [ + { resetCustomDimensionsOnPage: 'abc' }, + { resetCustomDimensionsOnPage: 'xyz' }, + ], + contentGroupings: [ + { from: 'plan', to: 'contentGroup1' }, + { from: 'name', to: 'contentGroup2' }, + ], + }, + Enabled: true, + }, + }, + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { email: 'test@rudderstack.com' }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { name: '', version: '' }, + screen: { density: 2 }, + }, + type: 'page', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + path: '/abc', + referrer: 'q', + search: '', + title: 'a', + url: 'https://www.example.com/abc', + }, + integrations: { All: true }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + metadata: { jobId: 2, userId: 'u1' }, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { from: 'name', to: 'dimension1' }, + { from: 'custom2', to: 'dimension2' }, + ], + metrics: [ + { from: 'email', to: 'metric1' }, + { from: 'trait2', to: 'metric2' }, + ], + resetCustomDimensionsOnPage: [ + { resetCustomDimensionsOnPage: 'abc' }, + { resetCustomDimensionsOnPage: 'xyz' }, + ], + contentGroupings: [ + { from: 'plan', to: 'contentGroup1' }, + { from: 'prop2', to: 'contentGroup2' }, + ], + }, + Enabled: true, + }, }, + ], + destType: 'ga360', }, - output: { - response: { - status: 200, - body: { - output: [ - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "action1", - "ec": "Rudder Test", - "cd1": "Rudder Test", - "cg2": "Rudder Test", - "v": "1", - "t": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "uid": "123456", - "cid": "00000000000000000000000000", - "ni": 1, - "uip": "0.0.0.0", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "ul": "en-US", - "qt": 124901802438, - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "metadata": [ - { - "jobId": 1 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "name", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "name", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "v": "1", - "t": "pageview", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "uip": "0.0.0.0", - "ul": "en-US", - "dh": "www.example.com", - "dl": "https://www.example.com/abc", - "dp": "%2Fabc", - "dr": "q", - "dt": "a", - "qt": 124893881701, - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "metadata": [ - { - "jobId": 2 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } - ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + ea: 'action1', + ec: 'Rudder Test', + cd1: 'Rudder Test', + cg2: 'Rudder Test', + v: '1', + t: 'event', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + uid: '123456', + cid: '00000000000000000000000000', + ni: 1, + uip: '0.0.0.0', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + ul: 'en-US', + qt: 124901802438, + }, + body: { JSON: {}, XML: {}, JSON_ARRAY: {}, FORM: {} }, + files: {}, + userId: '00000000000000000000000000', + }, + metadata: [{ jobId: 1, userId: 'u1' }], + batched: false, + statusCode: 200, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'name', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { from: 'name', to: 'dimension1' }, + { from: 'custom2', to: 'dimension2' }, + ], + metrics: [ + { from: 'email', to: 'metric1' }, + { from: 'trait2', to: 'metric2' }, + ], + resetCustomDimensionsOnPage: [ + { resetCustomDimensionsOnPage: 'abc' }, + { resetCustomDimensionsOnPage: 'xyz' }, + ], + contentGroupings: [ + { from: 'plan', to: 'contentGroup1' }, + { from: 'name', to: 'contentGroup2' }, + ], + }, + Enabled: true, + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://www.google-analytics.com/collect', + headers: {}, + params: { + v: '1', + t: 'pageview', + tid: 'UA-165994240-1', + ds: 'web', + an: 'RudderLabs JavaScript SDK', + av: '1.0.0', + aiid: 'com.rudderlabs.javascript', + npa: 1, + aip: 1, + cid: '00000000000000000000000000', + ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + uid: '12345', + uip: '0.0.0.0', + ul: 'en-US', + dh: 'www.example.com', + dl: 'https://www.example.com/abc', + dp: '%2Fabc', + dr: 'q', + dt: 'a', + qt: 124893881701, + }, + body: { JSON: {}, XML: {}, JSON_ARRAY: {}, FORM: {} }, + files: {}, + userId: '00000000000000000000000000', + }, + metadata: [{ jobId: 2, userId: 'u1' }], + batched: false, + statusCode: 200, + destination: { + Config: { + trackingID: 'UA-165994240-1', + doubleClick: true, + enhancedLinkAttribution: true, + classic: true, + ignoredReferrers: '', + serverClassic: false, + includeSearch: true, + trackCategorizedPages: true, + trackNamedPages: true, + sampleRate: '100', + siteSpeedSampleRate: '1', + setAllMappedProps: true, + enableServerSideIdentify: true, + serverSideIdentifyEventCategory: 'cat1', + serverSideIdentifyEventAction: 'action1', + anonymizeIp: true, + domain: 'domain', + enhancedEcommerce: true, + nonInteraction: true, + optimize: 'abc123', + sendUserId: true, + useGoogleAmpClientId: true, + 'web-useNativeSDK': true, + dimensions: [ + { from: 'name', to: 'dimension1' }, + { from: 'custom2', to: 'dimension2' }, + ], + metrics: [ + { from: 'email', to: 'metric1' }, + { from: 'trait2', to: 'metric2' }, + ], + resetCustomDimensionsOnPage: [ + { resetCustomDimensionsOnPage: 'abc' }, + { resetCustomDimensionsOnPage: 'xyz' }, + ], + contentGroupings: [ + { from: 'plan', to: 'contentGroup1' }, + { from: 'prop2', to: 'contentGroup2' }, + ], }, + Enabled: true, + }, }, + ], }, - } + }, + }, + }, ].map((d) => ({ ...d, mockFns })); diff --git a/test/integrations/destinations/gainsight/processor/data.ts b/test/integrations/destinations/gainsight/processor/data.ts index 5844c22b65..dc4fe25e1b 100644 --- a/test/integrations/destinations/gainsight/processor/data.ts +++ b/test/integrations/destinations/gainsight/processor/data.ts @@ -1,970 +1,979 @@ export const data = [ - { - "name": "gainsight", - "description": "Test 0", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "domain": "demo-domain.gainsightcloud.com", - "accessKey": "sample-access-key", - "personMap": [], - "companyMap": [], - "eventNameMap": [], - "eventVersionMap": [] - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "anon_id", - "type": "identify", - "traits": { - "email": "cosmo@krammer.com", - "name": "Cosmo Krammer", - "linkedinUrl": "https://linkedin.com/cosmo-krammer", - "location": "New York", - "emailOptOut": true, - "masterAvatarTypeCode": 10 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {}, - "JSON": { - "Email": "cosmo@krammer.com", - "Name": "Cosmo Krammer", - "LinkedinUrl": "https://linkedin.com/cosmo-krammer", - "Location": "New York", - "EmailOptOut": true, - "MasterAvatarTypeCode": 10 - } - }, - "type": "REST", - "files": {}, - "method": "PUT", - "params": {}, - "headers": { - "Accesskey": "sample-access-key", - "Content-Type": "application/json" - }, - "version": "1", - "endpoint": "https://demo-domain.gainsightcloud.com/v1.0/api/people", - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "gainsight", - "description": "Test 1", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "domain": "demo-domain.gainsightcloud.com", - "accessKey": "sample-access-key", - "personMap": [ - { - "from": "age", - "to": "age__gc" - } - ], - "companyMap": [], - "eventNameMap": [], - "eventVersionMap": [] - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "anon_id", - "type": "identify", - "traits": { - "email": "cosmo@krammer.com", - "name": "Cosmo Krammer", - "linkedinUrl": "https://linkedin.com/cosmo-krammer", - "location": "New York", - "emailOptOut": true, - "masterAvatarTypeCode": 10, - "age": 35, - "randomKey": "this should be dropped" - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {}, - "JSON": { - "Email": "cosmo@krammer.com", - "Name": "Cosmo Krammer", - "LinkedinUrl": "https://linkedin.com/cosmo-krammer", - "Location": "New York", - "EmailOptOut": true, - "MasterAvatarTypeCode": 10, - "age__gc": 35 - } - }, - "type": "REST", - "files": {}, - "method": "PUT", - "params": {}, - "headers": { - "Accesskey": "sample-access-key", - "Content-Type": "application/json" - }, - "version": "1", - "endpoint": "https://demo-domain.gainsightcloud.com/v1.0/api/people", - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "gainsight", - "description": "Test 2", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "domain": "demo-domain.gainsightcloud.com", - "accessKey": "sample-access-key", - "personMap": [], - "companyMap": [], - "eventNameMap": [], - "eventVersionMap": [] - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "anon_id", - "type": "identify", - "traits": { - "name": "Cosmo Krammer", - "linkedinUrl": "https://linkedin.com/cosmo-krammer", - "location": "New York", - "emailOptOut": true, - "masterAvatarTypeCode": 10 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "email is required for identify", - "statTags": { - "destType": "GAINSIGHT", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "gainsight", - "description": "Test 3", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "domain": "demo-domain.gainsightcloud.com", - "accessKey": "sample-access-key", - "sharedSecret": "sample-shared-secret", - "eventNameMap": [ - { - "from": "Ticket Resolved", - "to": "Ticket Resolved Event" - } - ], - "eventVersionMap": [ - { - "from": "Ticket Resolved", - "to": "1.0.0" - } - ], - "topicName": "Ticket Actions", - "tenantId": "sample-tenant-id", - "personMap": [], - "companyMap": [] - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "anon_id", - "type": "track", - "event": "Ticket Resolved", - "properties": { - "ticketId": "sample-ticket-id", - "actionEmail": "sample@email.com", - "status": "resovled" - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {}, - "JSON": { - "ticketId": "sample-ticket-id", - "actionEmail": "sample@email.com", - "status": "resovled" - } - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Accesskey": "sample-access-key", - "tenantId": "sample-tenant-id", - "sharedSecret": "sample-shared-secret", - "Content-Type": "application/json", - "topicName": "Ticket Actions", - "eventName": "Ticket Resolved Event", - "eventVersion": "1.0.0" - }, - "version": "1", - "endpoint": "https://demo-domain.gainsightcloud.com/v1.0/api/eventManager/event", - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "gainsight", - "description": "Test 4", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "domain": "demo-domain.gainsightcloud.com", - "accessKey": "sample-access-key", - "sharedSecret": "sample-shared-secret", - "personMap": [], - "companyMap": [], - "eventNameMap": [], - "eventVersionMap": [] - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "email": "krammer@seinfeld.com" - } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "anon_id", - "type": "group", - "traits": { - "name": "Kramerica Industries", - "industry": "Sitcom", - "employees": "100", - "status": "complete", - "companyType": "spoof" - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {}, - "JSON": { - "Email": "krammer@seinfeld.com", - "companies": [ - { - "Company_ID": "1P0203VCESP7AUQMV9E953G" - } - ] - } - }, - "type": "REST", - "files": {}, - "method": "PUT", - "params": {}, - "headers": { - "Accesskey": "sample-access-key", - "Content-Type": "application/json" - }, - "version": "1", - "endpoint": "https://demo-domain.gainsightcloud.com/v1.0/api/people", - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "gainsight", - "description": "Test 5", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "domain": "demo-domain.gainsightcloud.com", - "accessKey": "sample-access-key", - "sharedSecret": "sample-shared-secret", - "personMap": [], - "companyMap": [], - "eventNameMap": [], - "eventVersionMap": [] - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "email": "krammer@seinfeld.com" - } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "anon_id", - "type": "group", - "traits": { - "name": "Seinfeld Corps", - "industry": "TV Series", - "employees": "50", - "status": "complete" - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {}, - "JSON": { - "Email": "krammer@seinfeld.com", - "companies": [ - { - "Company_ID": "1P0203VCESP7AUQMV9E953G" - } - ] - } - }, - "type": "REST", - "files": {}, - "method": "PUT", - "params": {}, - "headers": { - "Accesskey": "sample-access-key", - "Content-Type": "application/json" - }, - "version": "1", - "endpoint": "https://demo-domain.gainsightcloud.com/v1.0/api/people", - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "gainsight", - "description": "Test 6", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "domain": "demo-domain.gainsightcloud.com", - "accessKey": "sample-access-key", - "personMap": [], - "companyMap": [], - "eventNameMap": [], - "eventVersionMap": [] - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "anon_id", - "type": "identify", - "traits": { - "email": "cosmo@krammer.com", - "firstname": "Cosmo", - "lastname": "Krammer", - "linkedinUrl": "https://linkedin.com/cosmo-krammer", - "location": "New York", - "emailOptOut": true, - "masterAvatarTypeCode": 10 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {}, - "JSON": { - "Email": "cosmo@krammer.com", - "FirstName": "Cosmo", - "LastName": "Krammer", - "Name": "Cosmo Krammer", - "LinkedinUrl": "https://linkedin.com/cosmo-krammer", - "Location": "New York", - "EmailOptOut": true, - "MasterAvatarTypeCode": 10 - } - }, - "type": "REST", - "files": {}, - "method": "PUT", - "params": {}, - "headers": { - "Accesskey": "sample-access-key", - "Content-Type": "application/json" - }, - "version": "1", - "endpoint": "https://demo-domain.gainsightcloud.com/v1.0/api/people", - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "gainsight", - "description": "Test 7", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "domain": "demo-domain.gainsightcloud.com", - "accessKey": "sample-access-key", - "sharedSecret": "sample-shared-secret", - "eventNameMap": [ - { - "from": "Ticket Resolved", - "to": "Ticket Resolved Event" - } - ], - "eventVersionMap": [ - { - "from": "Ticket Resolved", - "to": "1.0.0" - } - ], - "topicName": "Ticket Actions", - "tenantId": "sample-tenant-id", - "personMap": [], - "companyMap": [], - "contractId": "externalId-shall-get-precedence" - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "gainsightEventContractId", - "id": "sample-contract-id" - } - ] - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "anon_id", - "type": "track", - "event": "Ticket Resolved", - "properties": { - "ticketId": "sample-ticket-id", - "actionEmail": "sample@email.com", - "status": "resovled" - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {}, - "JSON": { - "ticketId": "sample-ticket-id", - "actionEmail": "sample@email.com", - "status": "resovled" - } - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Accesskey": "sample-access-key", - "tenantId": "sample-tenant-id", - "sharedSecret": "sample-shared-secret", - "Content-Type": "application/json", - "topicName": "Ticket Actions", - "eventName": "Ticket Resolved Event", - "eventVersion": "1.0.0", - "contractId": "sample-contract-id" - }, - "version": "1", - "endpoint": "https://demo-domain.gainsightcloud.com/v1.0/api/eventManager/event", - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "gainsight", - "description": "Test 8", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "domain": "demo-domain.gainsightcloud.com", - "accessKey": "sample-access-key", - "personMap": [ - { - "from": "car", - "to": "car__gc" - } - ], - "companyMap": [], - "eventNameMap": [], - "eventVersionMap": [] - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "anon_id", - "type": "identify", - "traits": { - "name": "Bruce Wayne", - "email": "ceo@waynefoundation.com", - "car": "Batmobile", - "comments": "I am Batman!", - "lastName": "Wayne", - "location": "Gotham Central", - "firstName": "Bruce", - "linkedinUrl": "https://www.linkedin.com/in/notyourBatman/" - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {}, - "JSON": { - "Name": "Bruce Wayne", - "Email": "ceo@waynefoundation.com", - "car__gc": "Batmobile", - "Comments": "I am Batman!", - "LastName": "Wayne", - "Location": "Gotham Central", - "FirstName": "Bruce", - "LinkedinUrl": "https://www.linkedin.com/in/notyourBatman/" - } - }, - "type": "REST", - "files": {}, - "method": "PUT", - "params": {}, - "headers": { - "Accesskey": "sample-access-key", - "Content-Type": "application/json" - }, - "version": "1", - "endpoint": "https://demo-domain.gainsightcloud.com/v1.0/api/people", - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - } -] \ No newline at end of file + { + name: 'gainsight', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + domain: 'demo-domain.gainsightcloud.com', + accessKey: 'sample-access-key', + personMap: [], + companyMap: [], + eventNameMap: [], + eventVersionMap: [], + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: 'anon_id', + type: 'identify', + traits: { + email: 'cosmo@krammer.com', + name: 'Cosmo Krammer', + linkedinUrl: 'https://linkedin.com/cosmo-krammer', + location: 'New York', + emailOptOut: true, + masterAvatarTypeCode: 10, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + Email: 'cosmo@krammer.com', + Name: 'Cosmo Krammer', + LinkedinUrl: 'https://linkedin.com/cosmo-krammer', + Location: 'New York', + EmailOptOut: true, + MasterAvatarTypeCode: 10, + }, + }, + type: 'REST', + files: {}, + method: 'PUT', + params: {}, + headers: { + Accesskey: 'sample-access-key', + 'Content-Type': 'application/json', + }, + version: '1', + endpoint: 'https://demo-domain.gainsightcloud.com/v1.0/api/people', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'gainsight', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + domain: 'demo-domain.gainsightcloud.com', + accessKey: 'sample-access-key', + personMap: [ + { + from: 'age', + to: 'age__gc', + }, + ], + companyMap: [], + eventNameMap: [], + eventVersionMap: [], + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: 'anon_id', + type: 'identify', + traits: { + email: 'cosmo@krammer.com', + name: 'Cosmo Krammer', + linkedinUrl: 'https://linkedin.com/cosmo-krammer', + location: 'New York', + emailOptOut: true, + masterAvatarTypeCode: 10, + age: 35, + randomKey: 'this should be dropped', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + Email: 'cosmo@krammer.com', + Name: 'Cosmo Krammer', + LinkedinUrl: 'https://linkedin.com/cosmo-krammer', + Location: 'New York', + EmailOptOut: true, + MasterAvatarTypeCode: 10, + age__gc: 35, + }, + }, + type: 'REST', + files: {}, + method: 'PUT', + params: {}, + headers: { + Accesskey: 'sample-access-key', + 'Content-Type': 'application/json', + }, + version: '1', + endpoint: 'https://demo-domain.gainsightcloud.com/v1.0/api/people', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'gainsight', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + domain: 'demo-domain.gainsightcloud.com', + accessKey: 'sample-access-key', + personMap: [], + companyMap: [], + eventNameMap: [], + eventVersionMap: [], + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: 'anon_id', + type: 'identify', + traits: { + name: 'Cosmo Krammer', + linkedinUrl: 'https://linkedin.com/cosmo-krammer', + location: 'New York', + emailOptOut: true, + masterAvatarTypeCode: 10, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'email is required for identify', + statTags: { + destType: 'GAINSIGHT', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'gainsight', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + domain: 'demo-domain.gainsightcloud.com', + accessKey: 'sample-access-key', + sharedSecret: 'sample-shared-secret', + eventNameMap: [ + { + from: 'Ticket Resolved', + to: 'Ticket Resolved Event', + }, + ], + eventVersionMap: [ + { + from: 'Ticket Resolved', + to: '1.0.0', + }, + ], + topicName: 'Ticket Actions', + tenantId: 'sample-tenant-id', + personMap: [], + companyMap: [], + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: 'anon_id', + type: 'track', + event: 'Ticket Resolved', + properties: { + ticketId: 'sample-ticket-id', + actionEmail: 'sample@email.com', + status: 'resovled', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + ticketId: 'sample-ticket-id', + actionEmail: 'sample@email.com', + status: 'resovled', + }, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { + Accesskey: 'sample-access-key', + tenantId: 'sample-tenant-id', + sharedSecret: 'sample-shared-secret', + 'Content-Type': 'application/json', + topicName: 'Ticket Actions', + eventName: 'Ticket Resolved Event', + eventVersion: '1.0.0', + }, + version: '1', + endpoint: 'https://demo-domain.gainsightcloud.com/v1.0/api/eventManager/event', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'gainsight', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + domain: 'demo-domain.gainsightcloud.com', + accessKey: 'sample-access-key', + sharedSecret: 'sample-shared-secret', + personMap: [], + companyMap: [], + eventNameMap: [], + eventVersionMap: [], + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + traits: { + email: 'krammer@seinfeld.com', + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: 'anon_id', + type: 'group', + traits: { + name: 'Kramerica Industries', + industry: 'Sitcom', + employees: '100', + status: 'complete', + companyType: 'spoof', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + Email: 'krammer@seinfeld.com', + companies: [ + { + Company_ID: '1P0203VCESP7AUQMV9E953G', + }, + ], + }, + }, + type: 'REST', + files: {}, + method: 'PUT', + params: {}, + headers: { + Accesskey: 'sample-access-key', + 'Content-Type': 'application/json', + }, + version: '1', + endpoint: 'https://demo-domain.gainsightcloud.com/v1.0/api/people', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'gainsight', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + domain: 'demo-domain.gainsightcloud.com', + accessKey: 'sample-access-key', + sharedSecret: 'sample-shared-secret', + personMap: [], + companyMap: [], + eventNameMap: [], + eventVersionMap: [], + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + traits: { + email: 'krammer@seinfeld.com', + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: 'anon_id', + type: 'group', + traits: { + name: 'Seinfeld Corps', + industry: 'TV Series', + employees: '50', + status: 'complete', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + Email: 'krammer@seinfeld.com', + companies: [ + { + Company_ID: '1P0203VCESP7AUQMV9E953G', + }, + ], + }, + }, + type: 'REST', + files: {}, + method: 'PUT', + params: {}, + headers: { + Accesskey: 'sample-access-key', + 'Content-Type': 'application/json', + }, + version: '1', + endpoint: 'https://demo-domain.gainsightcloud.com/v1.0/api/people', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'gainsight', + description: 'Test 6', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + domain: 'demo-domain.gainsightcloud.com', + accessKey: 'sample-access-key', + personMap: [], + companyMap: [], + eventNameMap: [], + eventVersionMap: [], + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: 'anon_id', + type: 'identify', + traits: { + email: 'cosmo@krammer.com', + firstname: 'Cosmo', + lastname: 'Krammer', + linkedinUrl: 'https://linkedin.com/cosmo-krammer', + location: 'New York', + emailOptOut: true, + masterAvatarTypeCode: 10, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + Email: 'cosmo@krammer.com', + FirstName: 'Cosmo', + LastName: 'Krammer', + Name: 'Cosmo Krammer', + LinkedinUrl: 'https://linkedin.com/cosmo-krammer', + Location: 'New York', + EmailOptOut: true, + MasterAvatarTypeCode: 10, + }, + }, + type: 'REST', + files: {}, + method: 'PUT', + params: {}, + headers: { + Accesskey: 'sample-access-key', + 'Content-Type': 'application/json', + }, + version: '1', + endpoint: 'https://demo-domain.gainsightcloud.com/v1.0/api/people', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'gainsight', + description: 'Test 7', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + domain: 'demo-domain.gainsightcloud.com', + accessKey: 'sample-access-key', + sharedSecret: 'sample-shared-secret', + eventNameMap: [ + { + from: 'Ticket Resolved', + to: 'Ticket Resolved Event', + }, + ], + eventVersionMap: [ + { + from: 'Ticket Resolved', + to: '1.0.0', + }, + ], + topicName: 'Ticket Actions', + tenantId: 'sample-tenant-id', + personMap: [], + companyMap: [], + contractId: 'externalId-shall-get-precedence', + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'gainsightEventContractId', + id: 'sample-contract-id', + }, + ], + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: 'anon_id', + type: 'track', + event: 'Ticket Resolved', + properties: { + ticketId: 'sample-ticket-id', + actionEmail: 'sample@email.com', + status: 'resovled', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + ticketId: 'sample-ticket-id', + actionEmail: 'sample@email.com', + status: 'resovled', + }, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { + Accesskey: 'sample-access-key', + tenantId: 'sample-tenant-id', + sharedSecret: 'sample-shared-secret', + 'Content-Type': 'application/json', + topicName: 'Ticket Actions', + eventName: 'Ticket Resolved Event', + eventVersion: '1.0.0', + contractId: 'sample-contract-id', + }, + version: '1', + endpoint: 'https://demo-domain.gainsightcloud.com/v1.0/api/eventManager/event', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'gainsight', + description: 'Test 8', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + domain: 'demo-domain.gainsightcloud.com', + accessKey: 'sample-access-key', + personMap: [ + { + from: 'car', + to: 'car__gc', + }, + ], + companyMap: [], + eventNameMap: [], + eventVersionMap: [], + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: 'anon_id', + type: 'identify', + traits: { + name: 'Bruce Wayne', + email: 'ceo@waynefoundation.com', + car: 'Batmobile', + comments: 'I am Batman!', + lastName: 'Wayne', + location: 'Gotham Central', + firstName: 'Bruce', + linkedinUrl: 'https://www.linkedin.com/in/notyourBatman/', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + Name: 'Bruce Wayne', + Email: 'ceo@waynefoundation.com', + car__gc: 'Batmobile', + Comments: 'I am Batman!', + LastName: 'Wayne', + Location: 'Gotham Central', + FirstName: 'Bruce', + LinkedinUrl: 'https://www.linkedin.com/in/notyourBatman/', + }, + }, + type: 'REST', + files: {}, + method: 'PUT', + params: {}, + headers: { + Accesskey: 'sample-access-key', + 'Content-Type': 'application/json', + }, + version: '1', + endpoint: 'https://demo-domain.gainsightcloud.com/v1.0/api/people', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/gainsight/router/data.ts b/test/integrations/destinations/gainsight/router/data.ts index d5873e8465..9550fa892b 100644 --- a/test/integrations/destinations/gainsight/router/data.ts +++ b/test/integrations/destinations/gainsight/router/data.ts @@ -1,451 +1,436 @@ export const data = [ - { - name: 'gainsight', - description: 'Test 0', - feature: 'router', - module: 'destination', - version: 'v0', - input: { - request: { - body: { - input: [ - { - "message": { - "type": "identify", - "sentAt": "2021-05-28T11:22:01.842Z", - "userId": "live-test", - "channel": "web", - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.1.18", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "file:///Users/anurajguha/workspace/simple-html-test/index.html", - "path": "/Users/anurajguha/workspace/simple-html-test/index.html", - "title": "Test", - "search": "", - "tab_url": "file:///Users/anurajguha/workspace/simple-html-test/index.html", - "referrer": "$direct", - "initial_referrer": "$direct", - "referring_domain": "", - "initial_referring_domain": "" - }, - "locale": "en-GB", - "screen": { - "density": 2 - }, - "traits": { - "name": "Cosmo Krammer", - "email": "cosmo@krammer.com", - "location": "New York", - "emailOptOut": true, - "linkedinUrl": "https://linkedin.com/cosmo-krammer", - "masterAvatarTypeCode": 10 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.18" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36" - }, - "rudderId": "94d40f2f-5787-4798-8a03-34f3b02f5ede", - "messageId": "8274e525-d99c-4f55-b67a-bbc890d1444c", - "timestamp": "2021-05-28T16:52:01.859+05:30", - "receivedAt": "2021-05-28T16:52:01.859+05:30", - "request_ip": "[::1]", - "anonymousId": "1585ea2f-dddc-4d23-935f-c1196405d61e", - "integrations": { - "All": true - }, - "originalTimestamp": "2021-05-28T11:22:01.842Z" - }, - "metadata": { - "userId": "94d40f2f-5787-4798-8a03-34f3b02f5ede", - "jobId": 1, - "sourceId": "1syvMwC0K62eIb4yAV9kFJtbDEA", - "destinationId": "1syvZAuiGo4l1SIsil0TxDEx34G", - "attemptNum": 0, - "receivedAt": "2021-05-28T16:52:01.859+05:30", - "createdAt": "2021-05-28T11:22:02.463Z", - "firstAttemptedAt": "", - "transformAt": "router" - }, - "destination": { - "ID": "1syvZAuiGo4l1SIsil0TxDEx34G", - "Name": "gainsight-dev-dest", - "DestinationDefinition": { - "ID": "1syuhEt4I8jpvlwJc4lr1IiLjPu", - "Name": "GAINSIGHT", - "DisplayName": "Gainsight", - "Config": { - "destConfig": { - "defaultConfig": [ - "accessKey", - "sharedSecret", - "tenantId", - "domain", - "personMap", - "companyMap", - "topicName", - "eventNameMap", - "eventVersionMap", - "contractId" - ] - }, - "excludeKeys": [], - "includeKeys": [], - "saveDestinationResponse": true, - "secretKeys": ["accessKey", "sharedSecret"], - "supportedSourceTypes": ["android", "ios", "web", "unity", "amp", "cloud", "reactnative"], - "transformAt": "router", - "transformAtV1": "router" - }, - "ResponseRules": {} - }, - "Config": { - "accessKey": "sample-access-key", - "contractId": "", - "domain": "demo-account.gainsightcloud.com", - "sharedSecret": "", - "tenantId": "", - "topicName": "" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - { - "message": { - "type": "track", - "event": "Demo Request", - "sentAt": "2021-05-28T11:52:12.893Z", - "userId": "", - "channel": "web", - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.1.18", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "file:///Users/anurajguha/workspace/simple-html-test/index.html", - "path": "/Users/anurajguha/workspace/simple-html-test/index.html", - "title": "Test", - "search": "", - "tab_url": "file:///Users/anurajguha/workspace/simple-html-test/index.html", - "referrer": "$direct", - "initial_referrer": "$direct", - "referring_domain": "", - "initial_referring_domain": "" - }, - "locale": "en-GB", - "screen": { - "density": 2 - }, - "traits": {}, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.18" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36" - }, - "rudderId": "1a30a93f-916b-4c39-ad20-1ce7bbbd7754", - "messageId": "f5619b1a-8704-42a8-bab9-92bbeaa44896", - "timestamp": "2021-05-28T17:22:12.905+05:30", - "properties": { - "email": "sample@user.com", - "status": "active" - }, - "receivedAt": "2021-05-28T17:22:12.905+05:30", - "request_ip": "[::1]", - "anonymousId": "1585ea2f-dddc-4d23-935f-c1196405d61e", - "integrations": { - "All": true - }, - "originalTimestamp": "2021-05-28T11:52:12.893Z" - }, - "metadata": { - "userId": "1a30a93f-916b-4c39-ad20-1ce7bbbd7754", - "jobId": 2, - "sourceId": "1syvMwC0K62eIb4yAV9kFJtbDEA", - "destinationId": "1syvZAuiGo4l1SIsil0TxDEx34G", - "attemptNum": 0, - "receivedAt": "2021-05-28T17:22:12.905+05:30", - "createdAt": "2021-05-28T11:52:15.283Z", - "firstAttemptedAt": "", - "transformAt": "router" - }, - "destination": { - "ID": "1syvZAuiGo4l1SIsil0TxDEx34G", - "Name": "gainsight-dev-dest", - "DestinationDefinition": { - "ID": "1syuhEt4I8jpvlwJc4lr1IiLjPu", - "Name": "GAINSIGHT", - "DisplayName": "Gainsight", - "Config": { - "destConfig": { - "defaultConfig": [ - "accessKey", - "sharedSecret", - "tenantId", - "domain", - "personMap", - "companyMap", - "topicName", - "eventNameMap", - "eventVersionMap", - "contractId" - ] - }, - "excludeKeys": [], - "includeKeys": [], - "saveDestinationResponse": true, - "secretKeys": ["accessKey", "sharedSecret"], - "supportedSourceTypes": ["android", "ios", "web", "unity", "amp", "cloud", "reactnative"], - "transformAt": "router", - "transformAtV1": "router" - }, - "ResponseRules": {} - }, - "Config": { - "accessKey": "sample-access-key", - "contractId": "sample-contract-id", - "domain": "demo-account.gainsightcloud.com", - "eventNameMap": [ - { - "from": "Demo Request", - "to": "Product Demo" - } - ], - "eventVersionMap": [ - { - "from": "Demo Request", - "to": "1.0.0" - } - ], - "sharedSecret": "sample-shared-secret", - "tenantId": "sample-tenant-id", - "topicName": "Support Tickets" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - } + { + name: 'gainsight', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + type: 'identify', + sentAt: '2021-05-28T11:22:01.842Z', + userId: 'live-test', + channel: 'web', + context: { + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.18', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'file:///Users/anurajguha/workspace/simple-html-test/index.html', + path: '/Users/anurajguha/workspace/simple-html-test/index.html', + title: 'Test', + search: '', + tab_url: 'file:///Users/anurajguha/workspace/simple-html-test/index.html', + referrer: '$direct', + initial_referrer: '$direct', + referring_domain: '', + initial_referring_domain: '', + }, + locale: 'en-GB', + screen: { density: 2 }, + traits: { + name: 'Cosmo Krammer', + email: 'cosmo@krammer.com', + location: 'New York', + emailOptOut: true, + linkedinUrl: 'https://linkedin.com/cosmo-krammer', + masterAvatarTypeCode: 10, + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.18' }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36', + }, + rudderId: '94d40f2f-5787-4798-8a03-34f3b02f5ede', + messageId: '8274e525-d99c-4f55-b67a-bbc890d1444c', + timestamp: '2021-05-28T16:52:01.859+05:30', + receivedAt: '2021-05-28T16:52:01.859+05:30', + request_ip: '[::1]', + anonymousId: '1585ea2f-dddc-4d23-935f-c1196405d61e', + integrations: { All: true }, + originalTimestamp: '2021-05-28T11:22:01.842Z', + }, + metadata: { + userId: '94d40f2f-5787-4798-8a03-34f3b02f5ede', + jobId: 1, + sourceId: '1syvMwC0K62eIb4yAV9kFJtbDEA', + destinationId: '1syvZAuiGo4l1SIsil0TxDEx34G', + attemptNum: 0, + receivedAt: '2021-05-28T16:52:01.859+05:30', + createdAt: '2021-05-28T11:22:02.463Z', + firstAttemptedAt: '', + transformAt: 'router', + }, + destination: { + ID: '1syvZAuiGo4l1SIsil0TxDEx34G', + Name: 'gainsight-dev-dest', + DestinationDefinition: { + ID: '1syuhEt4I8jpvlwJc4lr1IiLjPu', + Name: 'GAINSIGHT', + DisplayName: 'Gainsight', + Config: { + destConfig: { + defaultConfig: [ + 'accessKey', + 'sharedSecret', + 'tenantId', + 'domain', + 'personMap', + 'companyMap', + 'topicName', + 'eventNameMap', + 'eventVersionMap', + 'contractId', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['accessKey', 'sharedSecret'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + transformAt: 'router', + transformAtV1: 'router', + }, + ResponseRules: {}, + }, + Config: { + accessKey: 'sample-access-key', + contractId: '', + domain: 'demo-account.gainsightcloud.com', + sharedSecret: '', + tenantId: '', + topicName: '', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + { + message: { + type: 'track', + event: 'Demo Request', + sentAt: '2021-05-28T11:52:12.893Z', + userId: '', + channel: 'web', + context: { + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.18', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'file:///Users/anurajguha/workspace/simple-html-test/index.html', + path: '/Users/anurajguha/workspace/simple-html-test/index.html', + title: 'Test', + search: '', + tab_url: 'file:///Users/anurajguha/workspace/simple-html-test/index.html', + referrer: '$direct', + initial_referrer: '$direct', + referring_domain: '', + initial_referring_domain: '', + }, + locale: 'en-GB', + screen: { density: 2 }, + traits: {}, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.18' }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36', + }, + rudderId: '1a30a93f-916b-4c39-ad20-1ce7bbbd7754', + messageId: 'f5619b1a-8704-42a8-bab9-92bbeaa44896', + timestamp: '2021-05-28T17:22:12.905+05:30', + properties: { email: 'sample@user.com', status: 'active' }, + receivedAt: '2021-05-28T17:22:12.905+05:30', + request_ip: '[::1]', + anonymousId: '1585ea2f-dddc-4d23-935f-c1196405d61e', + integrations: { All: true }, + originalTimestamp: '2021-05-28T11:52:12.893Z', + }, + metadata: { + userId: '1a30a93f-916b-4c39-ad20-1ce7bbbd7754', + jobId: 2, + sourceId: '1syvMwC0K62eIb4yAV9kFJtbDEA', + destinationId: '1syvZAuiGo4l1SIsil0TxDEx34G', + attemptNum: 0, + receivedAt: '2021-05-28T17:22:12.905+05:30', + createdAt: '2021-05-28T11:52:15.283Z', + firstAttemptedAt: '', + transformAt: 'router', + }, + destination: { + ID: '1syvZAuiGo4l1SIsil0TxDEx34G', + Name: 'gainsight-dev-dest', + DestinationDefinition: { + ID: '1syuhEt4I8jpvlwJc4lr1IiLjPu', + Name: 'GAINSIGHT', + DisplayName: 'Gainsight', + Config: { + destConfig: { + defaultConfig: [ + 'accessKey', + 'sharedSecret', + 'tenantId', + 'domain', + 'personMap', + 'companyMap', + 'topicName', + 'eventNameMap', + 'eventVersionMap', + 'contractId', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['accessKey', 'sharedSecret'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', ], - destType: 'gainsight', + transformAt: 'router', + transformAtV1: 'router', + }, + ResponseRules: {}, + }, + Config: { + accessKey: 'sample-access-key', + contractId: 'sample-contract-id', + domain: 'demo-account.gainsightcloud.com', + eventNameMap: [{ from: 'Demo Request', to: 'Product Demo' }], + eventVersionMap: [{ from: 'Demo Request', to: '1.0.0' }], + sharedSecret: 'sample-shared-secret', + tenantId: 'sample-tenant-id', + topicName: 'Support Tickets', }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, }, + ], + destType: 'gainsight', }, - output: { - response: { - status: 200, + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'PUT', + endpoint: 'https://demo-account.gainsightcloud.com/v1.0/api/people', + headers: { Accesskey: 'sample-access-key', 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + Email: 'cosmo@krammer.com', + Name: 'Cosmo Krammer', + LinkedinUrl: 'https://linkedin.com/cosmo-krammer', + Location: 'New York', + EmailOptOut: true, + MasterAvatarTypeCode: 10, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + userId: '94d40f2f-5787-4798-8a03-34f3b02f5ede', + jobId: 1, + sourceId: '1syvMwC0K62eIb4yAV9kFJtbDEA', + destinationId: '1syvZAuiGo4l1SIsil0TxDEx34G', + attemptNum: 0, + receivedAt: '2021-05-28T16:52:01.859+05:30', + createdAt: '2021-05-28T11:22:02.463Z', + firstAttemptedAt: '', + transformAt: 'router', + }, + ], + batched: false, + statusCode: 200, + destination: { + ID: '1syvZAuiGo4l1SIsil0TxDEx34G', + Name: 'gainsight-dev-dest', + DestinationDefinition: { + ID: '1syuhEt4I8jpvlwJc4lr1IiLjPu', + Name: 'GAINSIGHT', + DisplayName: 'Gainsight', + Config: { + destConfig: { + defaultConfig: [ + 'accessKey', + 'sharedSecret', + 'tenantId', + 'domain', + 'personMap', + 'companyMap', + 'topicName', + 'eventNameMap', + 'eventVersionMap', + 'contractId', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['accessKey', 'sharedSecret'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + transformAt: 'router', + transformAtV1: 'router', + }, + ResponseRules: {}, + }, + Config: { + accessKey: 'sample-access-key', + contractId: '', + domain: 'demo-account.gainsightcloud.com', + sharedSecret: '', + tenantId: '', + topicName: '', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://demo-account.gainsightcloud.com/v1.0/api/eventManager/event', + headers: { + sharedSecret: 'sample-shared-secret', + topicName: 'Support Tickets', + tenantId: 'sample-tenant-id', + 'Content-Type': 'application/json', + eventName: 'Product Demo', + eventVersion: '1.0.0', + contractId: 'sample-contract-id', + Accesskey: 'sample-access-key', + }, + params: {}, body: { - output: [ - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "PUT", - "endpoint": "https://demo-account.gainsightcloud.com/v1.0/api/people", - "headers": { - "Accesskey": "sample-access-key", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "Email": "cosmo@krammer.com", - "Name": "Cosmo Krammer", - "LinkedinUrl": "https://linkedin.com/cosmo-krammer", - "Location": "New York", - "EmailOptOut": true, - "MasterAvatarTypeCode": 10 - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - "metadata": [ - { - "userId": "94d40f2f-5787-4798-8a03-34f3b02f5ede", - "jobId": 1, - "sourceId": "1syvMwC0K62eIb4yAV9kFJtbDEA", - "destinationId": "1syvZAuiGo4l1SIsil0TxDEx34G", - "attemptNum": 0, - "receivedAt": "2021-05-28T16:52:01.859+05:30", - "createdAt": "2021-05-28T11:22:02.463Z", - "firstAttemptedAt": "", - "transformAt": "router" - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "ID": "1syvZAuiGo4l1SIsil0TxDEx34G", - "Name": "gainsight-dev-dest", - "DestinationDefinition": { - "ID": "1syuhEt4I8jpvlwJc4lr1IiLjPu", - "Name": "GAINSIGHT", - "DisplayName": "Gainsight", - "Config": { - "destConfig": { - "defaultConfig": [ - "accessKey", - "sharedSecret", - "tenantId", - "domain", - "personMap", - "companyMap", - "topicName", - "eventNameMap", - "eventVersionMap", - "contractId" - ] - }, - "excludeKeys": [], - "includeKeys": [], - "saveDestinationResponse": true, - "secretKeys": ["accessKey", "sharedSecret"], - "supportedSourceTypes": ["android", "ios", "web", "unity", "amp", "cloud", "reactnative"], - "transformAt": "router", - "transformAtV1": "router" - }, - "ResponseRules": {} - }, - "Config": { - "accessKey": "sample-access-key", - "contractId": "", - "domain": "demo-account.gainsightcloud.com", - "sharedSecret": "", - "tenantId": "", - "topicName": "" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://demo-account.gainsightcloud.com/v1.0/api/eventManager/event", - "headers": { - "sharedSecret": "sample-shared-secret", - "topicName": "Support Tickets", - "tenantId": "sample-tenant-id", - "Content-Type": "application/json", - "eventName": "Product Demo", - "eventVersion": "1.0.0", - "contractId": "sample-contract-id", - "Accesskey": "sample-access-key" - }, - "params": {}, - "body": { - "JSON": { - "email": "sample@user.com", - "status": "active" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - "metadata": [ - { - "userId": "1a30a93f-916b-4c39-ad20-1ce7bbbd7754", - "jobId": 2, - "sourceId": "1syvMwC0K62eIb4yAV9kFJtbDEA", - "destinationId": "1syvZAuiGo4l1SIsil0TxDEx34G", - "attemptNum": 0, - "receivedAt": "2021-05-28T17:22:12.905+05:30", - "createdAt": "2021-05-28T11:52:15.283Z", - "firstAttemptedAt": "", - "transformAt": "router" - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "ID": "1syvZAuiGo4l1SIsil0TxDEx34G", - "Name": "gainsight-dev-dest", - "DestinationDefinition": { - "ID": "1syuhEt4I8jpvlwJc4lr1IiLjPu", - "Name": "GAINSIGHT", - "DisplayName": "Gainsight", - "Config": { - "destConfig": { - "defaultConfig": [ - "accessKey", - "sharedSecret", - "tenantId", - "domain", - "personMap", - "companyMap", - "topicName", - "eventNameMap", - "eventVersionMap", - "contractId" - ] - }, - "excludeKeys": [], - "includeKeys": [], - "saveDestinationResponse": true, - "secretKeys": ["accessKey", "sharedSecret"], - "supportedSourceTypes": ["android", "ios", "web", "unity", "amp", "cloud", "reactnative"], - "transformAt": "router", - "transformAtV1": "router" - }, - "ResponseRules": {} - }, - "Config": { - "accessKey": "sample-access-key", - "contractId": "sample-contract-id", - "domain": "demo-account.gainsightcloud.com", - "eventNameMap": [ - { - "from": "Demo Request", - "to": "Product Demo" - } - ], - "eventVersionMap": [ - { - "from": "Demo Request", - "to": "1.0.0" - } - ], - "sharedSecret": "sample-shared-secret", - "tenantId": "sample-tenant-id", - "topicName": "Support Tickets" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - } + JSON: { email: 'sample@user.com', status: 'active' }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + userId: '1a30a93f-916b-4c39-ad20-1ce7bbbd7754', + jobId: 2, + sourceId: '1syvMwC0K62eIb4yAV9kFJtbDEA', + destinationId: '1syvZAuiGo4l1SIsil0TxDEx34G', + attemptNum: 0, + receivedAt: '2021-05-28T17:22:12.905+05:30', + createdAt: '2021-05-28T11:52:15.283Z', + firstAttemptedAt: '', + transformAt: 'router', + }, + ], + batched: false, + statusCode: 200, + destination: { + ID: '1syvZAuiGo4l1SIsil0TxDEx34G', + Name: 'gainsight-dev-dest', + DestinationDefinition: { + ID: '1syuhEt4I8jpvlwJc4lr1IiLjPu', + Name: 'GAINSIGHT', + DisplayName: 'Gainsight', + Config: { + destConfig: { + defaultConfig: [ + 'accessKey', + 'sharedSecret', + 'tenantId', + 'domain', + 'personMap', + 'companyMap', + 'topicName', + 'eventNameMap', + 'eventVersionMap', + 'contractId', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['accessKey', 'sharedSecret'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', ], + transformAt: 'router', + transformAtV1: 'router', + }, + ResponseRules: {}, + }, + Config: { + accessKey: 'sample-access-key', + contractId: 'sample-contract-id', + domain: 'demo-account.gainsightcloud.com', + eventNameMap: [{ from: 'Demo Request', to: 'Product Demo' }], + eventVersionMap: [{ from: 'Demo Request', to: '1.0.0' }], + sharedSecret: 'sample-shared-secret', + tenantId: 'sample-tenant-id', + topicName: 'Support Tickets', }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, }, + ], }, + }, }, + }, ]; diff --git a/test/integrations/destinations/gainsight_px/router/data.ts b/test/integrations/destinations/gainsight_px/router/data.ts index 3b735c5b69..7dc131127d 100644 --- a/test/integrations/destinations/gainsight_px/router/data.ts +++ b/test/integrations/destinations/gainsight_px/router/data.ts @@ -16,10 +16,7 @@ export const data = [ userId: 'stanley-kubrick', channel: 'web', context: { - os: { - name: '', - version: '', - }, + os: { name: '', version: '' }, app: { name: 'RudderLabs JavaScript SDK', build: '1.0.0', @@ -55,10 +52,7 @@ export const data = [ countryName: 'USA', hobbyCustomField: 'Making films. Being a genius', }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.1.18', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.18' }, campaign: {}, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36', @@ -69,9 +63,7 @@ export const data = [ receivedAt: '2021-06-25T14:29:52.911+05:30', request_ip: '[::1]', anonymousId: '1585ea2f-dddc-4d23-935f-c1196405d61e', - integrations: { - All: true, - }, + integrations: { All: true }, originalTimestamp: '2021-06-25T08:59:52.891Z', }, metadata: { @@ -122,28 +114,13 @@ export const data = [ ResponseRules: {}, }, Config: { - accountAttributeMap: [ - { - from: 'cultureCustomField', - to: 'culture', - }, - ], + accountAttributeMap: [{ from: 'cultureCustomField', to: 'culture' }], apiKey: 'sample-api-key', eventDelivery: false, eventDeliveryTS: 1624472902670, - globalContextMap: [ - { - from: 'kubrickTest', - to: 'value', - }, - ], + globalContextMap: [{ from: 'kubrickTest', to: 'value' }], productTagKey: 'AP-SAMPLE-2', - userAttributeMap: [ - { - from: 'hobbyCustomField', - to: 'hobby', - }, - ], + userAttributeMap: [{ from: 'hobbyCustomField', to: 'hobby' }], }, Enabled: true, Transformations: [], @@ -158,10 +135,7 @@ export const data = [ userId: 'adifhas9734', channel: 'web', context: { - os: { - name: '', - version: '', - }, + os: { name: '', version: '' }, app: { name: 'RudderLabs JavaScript SDK', build: '1.0.0', @@ -194,10 +168,7 @@ export const data = [ firstname: 'test', previousCompany: 'testprevCompany2', }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.1.18', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.18' }, campaign: {}, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36', @@ -207,28 +178,18 @@ export const data = [ timestamp: '2021-06-26T16:11:22.335+05:30', properties: { array: [1, 2, 3], - nested: { - json: 'test', - }, + nested: { json: 'test' }, status: 'testing', description: 'Example track call', fullyNested: [ - { - a: 1, - b: 2, - }, - { - a: 1, - b: [1, 2, 3], - }, + { a: 1, b: 2 }, + { a: 1, b: [1, 2, 3] }, ], }, receivedAt: '2021-06-26T16:11:22.335+05:30', request_ip: '[::1]', anonymousId: '1585ea2f-dddc-4d23-935f-c1196405d61e', - integrations: { - All: true, - }, + integrations: { All: true }, originalTimestamp: '2021-06-26T10:41:22.316Z', }, metadata: { @@ -279,28 +240,13 @@ export const data = [ ResponseRules: {}, }, Config: { - accountAttributeMap: [ - { - from: 'cultureCustomField', - to: 'culture', - }, - ], + accountAttributeMap: [{ from: 'cultureCustomField', to: 'culture' }], apiKey: 'sample-api-key', eventDelivery: false, eventDeliveryTS: 1624472902670, - globalContextMap: [ - { - from: 'kubrickTest', - to: 'value', - }, - ], + globalContextMap: [{ from: 'kubrickTest', to: 'value' }], productTagKey: 'AP-SAMPLE-2', - userAttributeMap: [ - { - from: 'hobbyCustomField', - to: 'hobby', - }, - ], + userAttributeMap: [{ from: 'hobbyCustomField', to: 'hobby' }], }, Enabled: true, Transformations: [], @@ -334,15 +280,10 @@ export const data = [ gender: 'MALE', title: 'Director/Film Maker', score: 100, - location: { - countryName: 'USA', - countryCode: 'US', - }, + location: { countryName: 'USA', countryCode: 'US' }, firstName: 'Stanley', lastName: 'Kubrick', - customAttributes: { - hobby: 'Making films. Being a genius', - }, + customAttributes: { hobby: 'Making films. Being a genius' }, propertyKeys: ['AP-SAMPLE-2'], type: 'USER', }, @@ -404,28 +345,13 @@ export const data = [ ResponseRules: {}, }, Config: { - accountAttributeMap: [ - { - from: 'cultureCustomField', - to: 'culture', - }, - ], + accountAttributeMap: [{ from: 'cultureCustomField', to: 'culture' }], apiKey: 'sample-api-key', eventDelivery: false, eventDeliveryTS: 1624472902670, - globalContextMap: [ - { - from: 'kubrickTest', - to: 'value', - }, - ], + globalContextMap: [{ from: 'kubrickTest', to: 'value' }], productTagKey: 'AP-SAMPLE-2', - userAttributeMap: [ - { - from: 'hobbyCustomField', - to: 'hobby', - }, - ], + userAttributeMap: [{ from: 'hobbyCustomField', to: 'hobby' }], }, Enabled: true, Transformations: [], @@ -459,9 +385,7 @@ export const data = [ referrer: '$direct', propertyKey: 'AP-SAMPLE-2', userType: 'USER', - globalContext: { - kubrickTest: 'value', - }, + globalContext: { kubrickTest: 'value' }, }, XML: {}, JSON_ARRAY: {}, @@ -521,28 +445,13 @@ export const data = [ ResponseRules: {}, }, Config: { - accountAttributeMap: [ - { - from: 'cultureCustomField', - to: 'culture', - }, - ], + accountAttributeMap: [{ from: 'cultureCustomField', to: 'culture' }], apiKey: 'sample-api-key', eventDelivery: false, eventDeliveryTS: 1624472902670, - globalContextMap: [ - { - from: 'kubrickTest', - to: 'value', - }, - ], + globalContextMap: [{ from: 'kubrickTest', to: 'value' }], productTagKey: 'AP-SAMPLE-2', - userAttributeMap: [ - { - from: 'hobbyCustomField', - to: 'hobby', - }, - ], + userAttributeMap: [{ from: 'hobbyCustomField', to: 'hobby' }], }, Enabled: true, Transformations: [], diff --git a/test/integrations/destinations/gcs_datalake/processor/data.ts b/test/integrations/destinations/gcs_datalake/processor/data.ts index 2148d5a3e6..46c7788709 100644 --- a/test/integrations/destinations/gcs_datalake/processor/data.ts +++ b/test/integrations/destinations/gcs_datalake/processor/data.ts @@ -1,191 +1,194 @@ export const data = [ - { - name: 'gcs_datalake', - description: 'No Message type', - feature: 'processor', - module: 'destination', - version: 'v0', - input: { - request: { - body: [ - { - "message": { - "receivedAt": "2023-09-29T15:07:16.650Z", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderstack.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Product List Clicked", - "properties": { - "list_id": "Sample Product List", - "category": "Sample Product List", - "products": [] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "bucketName": "ps-data-mdm-prod-rudderstack", - "prefix": "", - "namespace": "", - "credentials": "randomcreds", - "syncFrequency": "30", - "tableSuffix": "", - "timeWindowLayout": "2006/01/02/15" - }, - "Enabled": true - } - }, - ], - method: 'POST', + { + name: 'gcs_datalake', + description: 'No Message type', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + receivedAt: '2023-09-29T15:07:16.650Z', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'Product List Clicked', + properties: { + list_id: 'Sample Product List', + category: 'Sample Product List', + products: [], + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', }, - pathSuffix: '', - }, - output: { - response: { - status: 200, - body: [ - { - "output": { - "metadata": { - "table": "tracks", - "columns": { - "uuid_ts": "datetime", - "context_app_build": "string", - "context_app_name": "string", - "context_app_namespace": "string", - "context_app_version": "string", - "context_traits_email": "string", - "context_library_name": "string", - "context_library_version": "string", - "context_user_agent": "string", - "context_locale": "string", - "context_screen_density": "int", - "event_text": "string", - "id": "string", - "anonymous_id": "string", - "user_id": "string", - "sent_at": "datetime", - "received_at": "datetime", - "original_timestamp": "datetime", - "channel": "string", - "event": "string" - }, - "receivedAt": "2023-09-29T15:07:16.650Z" - }, - "data": { - "context_app_build": "1.0.0", - "context_app_name": "RudderLabs JavaScript SDK", - "context_app_namespace": "com.rudderlabs.javascript", - "context_app_version": "1.0.0", - "context_traits_email": "test@rudderstack.com", - "context_library_name": "RudderLabs JavaScript SDK", - "context_library_version": "1.0.0", - "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "context_locale": "en-US", - "context_screen_density": 2, - "event_text": "Product List Clicked", - "id": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "anonymous_id": "00000000000000000000000000", - "user_id": "12345", - "sent_at": "2019-10-14T11:15:53.296Z", - "received_at": "2023-09-29T15:07:16.650Z", - "original_timestamp": "2019-10-14T11:15:18.300Z", - "channel": "web", - "event": "product_list_clicked" - }, - "userId": "" - }, - "statusCode": 200 - }, - { - "output": { - "metadata": { - "table": "product_list_clicked", - "columns": { - "uuid_ts": "datetime", - "list_id": "string", - "category": "string", - "context_app_build": "string", - "context_app_name": "string", - "context_app_namespace": "string", - "context_app_version": "string", - "context_traits_email": "string", - "context_library_name": "string", - "context_library_version": "string", - "context_user_agent": "string", - "context_locale": "string", - "context_screen_density": "int", - "event_text": "string", - "id": "string", - "anonymous_id": "string", - "user_id": "string", - "sent_at": "datetime", - "received_at": "datetime", - "original_timestamp": "datetime", - "channel": "string", - "event": "string" - }, - "receivedAt": "2023-09-29T15:07:16.650Z" - }, - "data": { - "list_id": "Sample Product List", - "category": "Sample Product List", - "context_app_build": "1.0.0", - "context_app_name": "RudderLabs JavaScript SDK", - "context_app_namespace": "com.rudderlabs.javascript", - "context_app_version": "1.0.0", - "context_traits_email": "test@rudderstack.com", - "context_library_name": "RudderLabs JavaScript SDK", - "context_library_version": "1.0.0", - "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "context_locale": "en-US", - "context_screen_density": 2, - "event_text": "Product List Clicked", - "id": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "anonymous_id": "00000000000000000000000000", - "user_id": "12345", - "sent_at": "2019-10-14T11:15:53.296Z", - "received_at": "2023-09-29T15:07:16.650Z", - "original_timestamp": "2019-10-14T11:15:18.300Z", - "channel": "web", - "event": "product_list_clicked" - }, - "userId": "" - }, - "statusCode": 200 - } - ], + destination: { + Config: { + bucketName: 'ps-data-mdm-prod-rudderstack', + prefix: '', + namespace: '', + credentials: 'randomcreds', + syncFrequency: '30', + tableSuffix: '', + timeWindowLayout: '2006/01/02/15', + }, + Enabled: true, }, - }, - } + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + metadata: { + table: 'tracks', + columns: { + uuid_ts: 'datetime', + context_app_build: 'string', + context_app_name: 'string', + context_app_namespace: 'string', + context_app_version: 'string', + context_traits_email: 'string', + context_library_name: 'string', + context_library_version: 'string', + context_user_agent: 'string', + context_locale: 'string', + context_screen_density: 'int', + event_text: 'string', + id: 'string', + anonymous_id: 'string', + user_id: 'string', + sent_at: 'datetime', + received_at: 'datetime', + original_timestamp: 'datetime', + channel: 'string', + event: 'string', + }, + receivedAt: '2023-09-29T15:07:16.650Z', + }, + data: { + context_app_build: '1.0.0', + context_app_name: 'RudderLabs JavaScript SDK', + context_app_namespace: 'com.rudderlabs.javascript', + context_app_version: '1.0.0', + context_traits_email: 'test@rudderstack.com', + context_library_name: 'RudderLabs JavaScript SDK', + context_library_version: '1.0.0', + context_user_agent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + context_locale: 'en-US', + context_screen_density: 2, + event_text: 'Product List Clicked', + id: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + anonymous_id: '00000000000000000000000000', + user_id: '12345', + sent_at: '2019-10-14T11:15:53.296Z', + received_at: '2023-09-29T15:07:16.650Z', + original_timestamp: '2019-10-14T11:15:18.300Z', + channel: 'web', + event: 'product_list_clicked', + }, + userId: '', + }, + statusCode: 200, + }, + { + output: { + metadata: { + table: 'product_list_clicked', + columns: { + uuid_ts: 'datetime', + list_id: 'string', + category: 'string', + context_app_build: 'string', + context_app_name: 'string', + context_app_namespace: 'string', + context_app_version: 'string', + context_traits_email: 'string', + context_library_name: 'string', + context_library_version: 'string', + context_user_agent: 'string', + context_locale: 'string', + context_screen_density: 'int', + event_text: 'string', + id: 'string', + anonymous_id: 'string', + user_id: 'string', + sent_at: 'datetime', + received_at: 'datetime', + original_timestamp: 'datetime', + channel: 'string', + event: 'string', + }, + receivedAt: '2023-09-29T15:07:16.650Z', + }, + data: { + list_id: 'Sample Product List', + category: 'Sample Product List', + context_app_build: '1.0.0', + context_app_name: 'RudderLabs JavaScript SDK', + context_app_namespace: 'com.rudderlabs.javascript', + context_app_version: '1.0.0', + context_traits_email: 'test@rudderstack.com', + context_library_name: 'RudderLabs JavaScript SDK', + context_library_version: '1.0.0', + context_user_agent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + context_locale: 'en-US', + context_screen_density: 2, + event_text: 'Product List Clicked', + id: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + anonymous_id: '00000000000000000000000000', + user_id: '12345', + sent_at: '2019-10-14T11:15:53.296Z', + received_at: '2023-09-29T15:07:16.650Z', + original_timestamp: '2019-10-14T11:15:18.300Z', + channel: 'web', + event: 'product_list_clicked', + }, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, ]; diff --git a/test/integrations/destinations/gladly/router/data.ts b/test/integrations/destinations/gladly/router/data.ts index 413c92e247..462edd9772 100644 --- a/test/integrations/destinations/gladly/router/data.ts +++ b/test/integrations/destinations/gladly/router/data.ts @@ -22,32 +22,21 @@ export const data = [ lastName: 'Rudderlabs', address: 'california usa', }, - externalId: [ - { - id: 'user@1', - type: 'GladlyCustomerId', - }, - ], + externalId: [{ id: 'user@1', type: 'GladlyCustomerId' }], }, type: 'identify', originalTimestamp: '2023-11-10T14:42:44.724Z', timestamp: '2023-11-22T10:12:44.75705:30', }, destination: { - DestinationDefinition: { - Config: { - cdkV2Enabled: true, - }, - }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, Config: { apiToken: 'testApiToken', userName: 'testUserName', domain: 'rudderlabs.us-uat.gladly.qa', }, }, - metadata: { - jobId: 1, - }, + metadata: { jobId: 1, userId: 'u1' }, }, { message: { @@ -62,32 +51,21 @@ export const data = [ lastName: 'Rudderstack', address: 'New York, USA', }, - externalId: [ - { - id: 'user@2', - type: 'GladlyCustomerId', - }, - ], + externalId: [{ id: 'user@2', type: 'GladlyCustomerId' }], }, type: 'identify', originalTimestamp: '2023-11-10T14:42:44.724Z', timestamp: '2023-11-22T10:12:44.75705:30', }, destination: { - DestinationDefinition: { - Config: { - cdkV2Enabled: true, - }, - }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, Config: { apiToken: 'testApiToken', userName: 'testUserName', domain: 'rudderlabs.us-uat.gladly.qa', }, }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, }, { message: { @@ -100,32 +78,21 @@ export const data = [ lastName: 'Rudderstack', address: 'New York, USA', }, - externalId: [ - { - id: 'user@3', - type: 'GladlyCustomerId', - }, - ], + externalId: [{ id: 'user@3', type: 'GladlyCustomerId' }], }, type: 'identify', originalTimestamp: '2023-11-10T14:42:44.724Z', timestamp: '2023-11-22T10:12:44.75705:30', }, destination: { - DestinationDefinition: { - Config: { - cdkV2Enabled: true, - }, - }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, Config: { apiToken: 'testApiToken', userName: 'testUserName', domain: 'rudderlabs.us-uat.gladly.qa', }, }, - metadata: { - jobId: 3, - }, + metadata: { jobId: 3, userId: 'u1' }, }, ], destType: 'gladly', @@ -145,21 +112,11 @@ export const data = [ FORM: {}, JSON: { address: 'california usa', - customAttributes: { - age: 23, - }, - emails: [ - { - original: 'test@rudderlabs.com', - }, - ], + customAttributes: { age: 23 }, + emails: [{ original: 'test@rudderlabs.com' }], externalCustomerId: 'externalCustomer@1', id: 'user@1', - phones: [ - { - original: '+91 9999999999', - }, - ], + phones: [{ original: '+91 9999999999' }], }, JSON_ARRAY: {}, XML: {}, @@ -181,17 +138,9 @@ export const data = [ domain: 'rudderlabs.us-uat.gladly.qa', userName: 'testUserName', }, - DestinationDefinition: { - Config: { - cdkV2Enabled: true, - }, - }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, }, - metadata: [ - { - jobId: 1, - }, - ], + metadata: [{ jobId: 1, userId: 'u1' }], statusCode: 200, }, { @@ -201,20 +150,10 @@ export const data = [ FORM: {}, JSON: { address: 'New York, USA', - customAttributes: { - age: 23, - }, - emails: [ - { - original: 'test+2@rudderlabs.com', - }, - ], + customAttributes: { age: 23 }, + emails: [{ original: 'test+2@rudderlabs.com' }], externalCustomerId: 'externalCustomer@2', - phones: [ - { - original: '+91 9999999998', - }, - ], + phones: [{ original: '+91 9999999998' }], }, JSON_ARRAY: {}, XML: {}, @@ -236,17 +175,9 @@ export const data = [ domain: 'rudderlabs.us-uat.gladly.qa', userName: 'testUserName', }, - DestinationDefinition: { - Config: { - cdkV2Enabled: true, - }, - }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, }, - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], statusCode: 200, }, { @@ -257,11 +188,7 @@ export const data = [ JSON: { address: 'New York, USA', externalCustomerId: 'externalCustomer@3', - phones: [ - { - original: '+91 9999999988', - }, - ], + phones: [{ original: '+91 9999999988' }], }, JSON_ARRAY: {}, XML: {}, @@ -283,17 +210,9 @@ export const data = [ domain: 'rudderlabs.us-uat.gladly.qa', userName: 'testUserName', }, - DestinationDefinition: { - Config: { - cdkV2Enabled: true, - }, - }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, }, - metadata: [ - { - jobId: 3, - }, - ], + metadata: [{ jobId: 3, userId: 'u1' }], statusCode: 200, }, ], @@ -316,12 +235,7 @@ export const data = [ userId: 'externalCustomer@1', channel: 'web', context: { - externalId: [ - { - id: 'externalCustomer@1', - identifierType: 'externalCustomerId', - }, - ], + externalId: [{ id: 'externalCustomer@1', identifierType: 'externalCustomerId' }], mappedToDestination: true, }, traits: { @@ -337,32 +251,21 @@ export const data = [ timestamp: '2023-11-22T10:12:44.75705:30', }, destination: { - DestinationDefinition: { - Config: { - cdkV2Enabled: true, - }, - }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, Config: { apiToken: 'testApiToken', userName: 'testUserName', domain: 'rudderlabs.us-uat.gladly.qa', }, }, - metadata: { - jobId: 1, - }, + metadata: { jobId: 1, userId: 'u1' }, }, { message: { userId: 'externalCustomer@2', channel: 'web', context: { - externalId: [ - { - id: 'externalCustomer@2', - identifierType: 'externalCustomerId', - }, - ], + externalId: [{ id: 'externalCustomer@2', identifierType: 'externalCustomerId' }], mappedToDestination: true, }, traits: { @@ -378,32 +281,21 @@ export const data = [ timestamp: '2023-11-22T10:12:44.75705:30', }, destination: { - DestinationDefinition: { - Config: { - cdkV2Enabled: true, - }, - }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, Config: { apiToken: 'testApiToken', userName: 'testUserName', domain: 'rudderlabs.us-uat.gladly.qa', }, }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, }, { message: { userId: 'externalCustomer@3', channel: 'web', context: { - externalId: [ - { - id: 'externalCustomer@3', - identifierType: 'externalCustomerId', - }, - ], + externalId: [{ id: 'externalCustomer@3', identifierType: 'externalCustomerId' }], mappedToDestination: true, }, traits: { @@ -418,20 +310,14 @@ export const data = [ timestamp: '2023-11-22T10:12:44.75705:30', }, destination: { - DestinationDefinition: { - Config: { - cdkV2Enabled: true, - }, - }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, Config: { apiToken: 'testApiToken', userName: 'testUserName', domain: 'rudderlabs.us-uat.gladly.qa', }, }, - metadata: { - jobId: 3, - }, + metadata: { jobId: 3, userId: 'u1' }, }, ], destType: 'gladly', @@ -451,18 +337,10 @@ export const data = [ FORM: {}, JSON: { address: 'california usa', - emails: [ - { - original: 'test@rudderlabs.com', - }, - ], + emails: [{ original: 'test@rudderlabs.com' }], externalCustomerId: 'externalCustomer@1', id: 'user@1', - phones: [ - { - original: '+91 9999999999', - }, - ], + phones: [{ original: '+91 9999999999' }], }, JSON_ARRAY: {}, XML: {}, @@ -484,17 +362,9 @@ export const data = [ domain: 'rudderlabs.us-uat.gladly.qa', userName: 'testUserName', }, - DestinationDefinition: { - Config: { - cdkV2Enabled: true, - }, - }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, }, - metadata: [ - { - jobId: 1, - }, - ], + metadata: [{ jobId: 1, userId: 'u1' }], statusCode: 200, }, { @@ -504,17 +374,9 @@ export const data = [ FORM: {}, JSON: { address: 'New York, USA', - emails: [ - { - original: 'test+2@rudderlabs.com', - }, - ], + emails: [{ original: 'test+2@rudderlabs.com' }], externalCustomerId: 'externalCustomer@2', - phones: [ - { - original: '+91 9999999998', - }, - ], + phones: [{ original: '+91 9999999998' }], }, JSON_ARRAY: {}, XML: {}, @@ -536,17 +398,9 @@ export const data = [ domain: 'rudderlabs.us-uat.gladly.qa', userName: 'testUserName', }, - DestinationDefinition: { - Config: { - cdkV2Enabled: true, - }, - }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, }, - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], statusCode: 200, }, { @@ -557,11 +411,7 @@ export const data = [ JSON: { address: 'New York, USA', externalCustomerId: 'externalCustomer@3', - phones: [ - { - original: '+91 9999999988', - }, - ], + phones: [{ original: '+91 9999999988' }], }, JSON_ARRAY: {}, XML: {}, @@ -583,17 +433,9 @@ export const data = [ domain: 'rudderlabs.us-uat.gladly.qa', userName: 'testUserName', }, - DestinationDefinition: { - Config: { - cdkV2Enabled: true, - }, - }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, }, - metadata: [ - { - jobId: 3, - }, - ], + metadata: [{ jobId: 3, userId: 'u1' }], statusCode: 200, }, ], diff --git a/test/integrations/destinations/google_adwords_enhanced_conversions/router/data.ts b/test/integrations/destinations/google_adwords_enhanced_conversions/router/data.ts index 4153630323..62ee03c46d 100644 --- a/test/integrations/destinations/google_adwords_enhanced_conversions/router/data.ts +++ b/test/integrations/destinations/google_adwords_enhanced_conversions/router/data.ts @@ -17,6 +17,7 @@ export const data = [ developer_token: 'ijkl91011', }, jobId: 1, + userId: 'u1', }, destination: { Config: { @@ -25,12 +26,8 @@ export const data = [ subAccount: true, loginCustomerId: '11', listOfConversions: [ - { - conversions: 'Page View', - }, - { - conversions: 'Product Added', - }, + { conversions: 'Page View' }, + { conversions: 'Product Added' }, ], authStatus: 'active', }, @@ -52,21 +49,13 @@ export const data = [ state: 'UK', streetAddress: '71 Cherry Court SOUTHAMPTON SO53 5PD UK', }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', locale: 'en-US', ip: '0.0.0.0', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, }, event: 'Page View', type: 'track', @@ -110,9 +99,7 @@ export const data = [ }, ], }, - integrations: { - All: true, - }, + integrations: { All: true }, name: 'ApplicationLoaded', sentAt: '2019-10-14T11:15:53.296Z', }, @@ -125,6 +112,7 @@ export const data = [ developer_token: 'ijkl91011', }, jobId: 2, + userId: 'u1', }, destination: { Config: { @@ -133,21 +121,15 @@ export const data = [ subAccount: true, loginCustomerId: '', listOfConversions: [ - { - conversions: 'Page View', - }, - { - conversions: 'Product Added', - }, + { conversions: 'Page View' }, + { conversions: 'Product Added' }, ], authStatus: 'active', }, }, message: { type: 'identify', - traits: { - status: 'elizabeth', - }, + traits: { status: 'elizabeth' }, userId: 'emrichardson820+22822@gmail.com', channel: 'sources', context: { @@ -174,10 +156,7 @@ export const data = [ }, }, { - metadata: { - secret: {}, - jobId: 3, - }, + metadata: { secret: {}, jobId: 3, userId: 'u1' }, destination: { Config: { rudderAccountId: '25u5whFH7gVTnCiAjn4ykoCLGoC', @@ -185,12 +164,8 @@ export const data = [ subAccount: true, loginCustomerId: '11', listOfConversions: [ - { - conversions: 'Page View', - }, - { - conversions: 'Product Added', - }, + { conversions: 'Page View' }, + { conversions: 'Product Added' }, ], authStatus: 'active', }, @@ -212,21 +187,13 @@ export const data = [ state: 'UK', streetAddress: '71 Cherry Court SOUTHAMPTON SO53 5PD UK', }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', locale: 'en-US', ip: '0.0.0.0', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, }, event: 'Page View', type: 'track', @@ -270,9 +237,7 @@ export const data = [ }, ], }, - integrations: { - All: true, - }, + integrations: { All: true }, name: 'ApplicationLoaded', sentAt: '2019-10-14T11:15:53.296Z', }, @@ -311,10 +276,7 @@ export const data = [ gclid: 'gclid1234', conversionDateTime: '2022-01-01 12:32:45-08:00', }, - restatementValue: { - adjustedValue: 10, - currencyCode: 'INR', - }, + restatementValue: { adjustedValue: 10, currencyCode: 'INR' }, orderId: '10000', adjustmentDateTime: '2022-01-01 12:32:45-08:00', userAgent: @@ -355,6 +317,7 @@ export const data = [ developer_token: 'ijkl91011', }, jobId: 1, + userId: 'u1', }, ], batched: false, @@ -382,6 +345,7 @@ export const data = [ developer_token: 'ijkl91011', }, jobId: 2, + userId: 'u1', }, ], destination: { @@ -391,12 +355,8 @@ export const data = [ subAccount: true, loginCustomerId: '', listOfConversions: [ - { - conversions: 'Page View', - }, - { - conversions: 'Product Added', - }, + { conversions: 'Page View' }, + { conversions: 'Product Added' }, ], authStatus: 'active', }, @@ -414,12 +374,7 @@ export const data = [ }, }, { - metadata: [ - { - secret: {}, - jobId: 3, - }, - ], + metadata: [{ secret: {}, jobId: 3, userId: 'u1' }], destination: { Config: { rudderAccountId: '25u5whFH7gVTnCiAjn4ykoCLGoC', @@ -427,12 +382,8 @@ export const data = [ subAccount: true, loginCustomerId: '11', listOfConversions: [ - { - conversions: 'Page View', - }, - { - conversions: 'Product Added', - }, + { conversions: 'Page View' }, + { conversions: 'Product Added' }, ], authStatus: 'active', }, diff --git a/test/integrations/destinations/google_adwords_offline_conversions/dataDelivery/data.ts b/test/integrations/destinations/google_adwords_offline_conversions/dataDelivery/data.ts index 284632ae09..ae75273399 100644 --- a/test/integrations/destinations/google_adwords_offline_conversions/dataDelivery/data.ts +++ b/test/integrations/destinations/google_adwords_offline_conversions/dataDelivery/data.ts @@ -1,750 +1,768 @@ export const data = [ - { - name: 'google_adwords_offline_conversions', - description: 'Test 0', - feature: 'dataDelivery', - module: 'destination', - version: 'v0', - input: { - request: { - body: { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v14/customers/11122233331/offlineUserDataJobs", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json", - "developer-token": "ijkl91011", - "login-customer-id": "logincustomerid" - }, - "params": { - "customerId": "1112223333", - "event": "Sign-up - click" - }, - "body": { - "JSON": { - "addConversionPayload": { - "enable_partial_failure": false, - "enable_warnings": false, - "operations": [ - { - "create": { - "transaction_attribute": { - "CUSTOM_KEY": "CUSTOM_VALUE", - "currency_code": "INR", - "order_id": "order id", - "store_attribute": { - "store_code": "store code" - }, - "transaction_amount_micros": "100000000", - "transaction_date_time": "2019-10-14 11:15:18+00:00" - }, - "userIdentifiers": [ - { - "hashedEmail": "6db61e6dcbcf2390e4a46af26f26a133a3bee45021422fc7ae86e9136f14110", - "userIdentifierSource": "UNSPECIFIED" - } - ] - } - } - ], - "validate_only": false - }, - "createJobPayload": { - "job": { - "storeSalesMetadata": { - "custom_key": "CUSTOM_KEY", - "loyaltyFraction": 1, - "transaction_upload_fraction": "1" - }, - "type": "STORE_SALES_UPLOAD_FIRST_PARTY" - } - }, - "event": "1112223333", - "executeJobPayload": { - "validate_only": false - }, - "isStoreConversion": true + { + name: 'google_adwords_offline_conversions', + description: 'Test 0', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://googleads.googleapis.com/v14/customers/11122233331/offlineUserDataJobs', + headers: { + Authorization: 'Bearer abcd1234', + 'Content-Type': 'application/json', + 'developer-token': 'ijkl91011', + 'login-customer-id': 'logincustomerid', + }, + params: { + customerId: '1112223333', + event: 'Sign-up - click', + }, + body: { + JSON: { + addConversionPayload: { + enable_partial_failure: false, + enable_warnings: false, + operations: [ + { + create: { + transaction_attribute: { + CUSTOM_KEY: 'CUSTOM_VALUE', + currency_code: 'INR', + order_id: 'order id', + store_attribute: { + store_code: 'store code', }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - method: 'POST', - }, - }, - output: { - response: { - status: 400, - body: { - "output": { - "status": 400, - "message": "[Google Ads Offline Conversions]:: Request contains an invalid argument. during google_ads_offline_store_conversions Add Conversion", - "destinationResponse": { - "error": { - "code": 400, - "details": [ - { - "@type": "type.googleapis.com/google.ads.googleads.v14.errors.GoogleAdsFailure", - "errors": [ - { - "errorCode": { - "offlineUserDataJobError": "INVALID_SHA256_FORMAT" - }, - "message": "The SHA256 encoded value is malformed.", - "location": { - "fieldPathElements": [ - { - "fieldName": "operations", - "index": 0 - }, - { - "fieldName": "create" - }, - { - "fieldName": "user_identifiers", - "index": 0 - }, - { - "fieldName": "hashed_email" - } - ] - } - } - ], - "requestId": "68697987" - } - ], - "message": "Request contains an invalid argument.", - "status": "INVALID_ARGUMENT" - } + transaction_amount_micros: '100000000', + transaction_date_time: '2019-10-14 11:15:18+00:00', + }, + userIdentifiers: [ + { + hashedEmail: + '6db61e6dcbcf2390e4a46af26f26a133a3bee45021422fc7ae86e9136f14110', + userIdentifierSource: 'UNSPECIFIED', }, - "statTags": { - "destType": "GOOGLE_ADWORDS_OFFLINE_CONVERSIONS", - "destinationId": "Non-determininable", - "errorCategory": "network", - "errorType": "aborted", - "feature": "dataDelivery", - "implementation": "native", - "module": "destination", - "workspaceId": "Non-determininable", - } - } + ], + }, + }, + ], + validate_only: false, + }, + createJobPayload: { + job: { + storeSalesMetadata: { + custom_key: 'CUSTOM_KEY', + loyaltyFraction: 1, + transaction_upload_fraction: '1', + }, + type: 'STORE_SALES_UPLOAD_FIRST_PARTY', }, + }, + event: '1112223333', + executeJobPayload: { + validate_only: false, + }, + isStoreConversion: true, }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, }, + method: 'POST', + }, }, - { - name: 'google_adwords_offline_conversions', - description: 'Test 1', - feature: 'dataDelivery', - module: 'destination', - version: 'v0', - input: { - request: { - "body": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v14/customers/1112223333/offlineUserDataJobs", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json", - "developer-token": "ijkl91011", - "login-customer-id": "logincustomerid" - }, - "params": { - "customerId": "1112223333", - "event": "Sign-up - click" - }, - "body": { - "JSON": { - "addConversionPayload": { - "enable_partial_failure": false, - "enable_warnings": false, - "operations": [ - { - "create": { - "transaction_attribute": { - "CUSTOM_KEY": "CUSTOM_VALUE", - "currency_code": "INR", - "order_id": "order id", - "store_attribute": { - "store_code": "store code" - }, - "transaction_amount_micros": "100000000", - "transaction_date_time": "2019-10-14 11:15:18+00:00" - }, - "userIdentifiers": [ - { - "hashedEmail": "6db61e6dcbcf2390e4a46af426f26a133a3bee45021422fc7ae86e9136f14110", - "userIdentifierSource": "UNSPECIFIED" - } - ] - } - } - ], - "validate_only": false + output: { + response: { + status: 400, + body: { + output: { + status: 400, + message: + '[Google Ads Offline Conversions]:: Request contains an invalid argument. during google_ads_offline_store_conversions Add Conversion', + destinationResponse: { + error: { + code: 400, + details: [ + { + '@type': 'type.googleapis.com/google.ads.googleads.v14.errors.GoogleAdsFailure', + errors: [ + { + errorCode: { + offlineUserDataJobError: 'INVALID_SHA256_FORMAT', + }, + message: 'The SHA256 encoded value is malformed.', + location: { + fieldPathElements: [ + { + fieldName: 'operations', + index: 0, }, - "createJobPayload": { - "job": { - "storeSalesMetadata": { - "custom_key": "CUSTOM_KEY", - "loyaltyFraction": 1, - "transaction_upload_fraction": "1" - }, - "type": "STORE_SALES_UPLOAD_FIRST_PARTY" - } + { + fieldName: 'create', }, - "event": "1112223333", - "executeJobPayload": { - "validate_only": false + { + fieldName: 'user_identifiers', + index: 0, + }, + { + fieldName: 'hashed_email', }, - "isStoreConversion": true + ], }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } + }, + ], + requestId: '68697987', + }, + ], + message: 'Request contains an invalid argument.', + status: 'INVALID_ARGUMENT', + }, }, - }, - output: { - response: { - status: 200, - body: { - "output": { - "status": 200, - "message": "[Google Ads Offline Conversions Response Handler] - Request processed successfully", - "destinationResponse": { - "response": { - "name": "customers/111-222-3333/operations/abcd=" - }, - "status": 200 - } - } - }, + statTags: { + destType: 'GOOGLE_ADWORDS_OFFLINE_CONVERSIONS', + destinationId: 'Non-determininable', + errorCategory: 'network', + errorType: 'aborted', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + workspaceId: 'Non-determininable', }, + }, }, + }, }, - { - name: 'google_adwords_offline_conversions', - description: 'Test 2', - feature: 'dataDelivery', - module: 'destination', - version: 'v0', - input: { - request: { - "body": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v14/customers/customerid/offlineUserDataJobs", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json", - "developer-token": "ijkl91011", - "login-customer-id": "logincustomerid" - }, - "params": { - "customerId": "1112223333", - "event": "Sign-up - click" - }, - "body": { - "JSON": { - "addConversionPayload": { - "enable_partial_failure": false, - "enable_warnings": false, - "operations": [ - { - "create": { - "transaction_attribute": { - "CUSTOM_KEY": "CUSTOM_VALUE", - "currency_code": "INR", - "order_id": "order id", - "store_attribute": { - "store_code": "store code" - }, - "transaction_amount_micros": "100000000", - "transaction_date_time": "2019-10-14 11:15:18+00:00" - }, - "userIdentifiers": [ - { - "hashedEmail": "6db61e6dcbcf2390e4a46af426f26a133a3bee45021422fc7ae86e9136f14110", - "userIdentifierSource": "UNSPECIFIED" - } - ] - } - } - ], - "validate_only": false - }, - "createJobPayload": { - "job": { - "storeSalesMetadata": { - "custom_key": "CUSTOM_KEY", - "loyaltyFraction": 1, - "transaction_upload_fraction": "1" - }, - "type": "STORE_SALES_UPLOAD_FIRST_PARTY" - } - }, - "event": "1112223333", - "executeJobPayload": { - "validate_only": false - }, - "isStoreConversion": true + }, + { + name: 'google_adwords_offline_conversions', + description: 'Test 1', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://googleads.googleapis.com/v14/customers/1112223333/offlineUserDataJobs', + headers: { + Authorization: 'Bearer abcd1234', + 'Content-Type': 'application/json', + 'developer-token': 'ijkl91011', + 'login-customer-id': 'logincustomerid', + }, + params: { + customerId: '1112223333', + event: 'Sign-up - click', + }, + body: { + JSON: { + addConversionPayload: { + enable_partial_failure: false, + enable_warnings: false, + operations: [ + { + create: { + transaction_attribute: { + CUSTOM_KEY: 'CUSTOM_VALUE', + currency_code: 'INR', + order_id: 'order id', + store_attribute: { + store_code: 'store code', + }, + transaction_amount_micros: '100000000', + transaction_date_time: '2019-10-14 11:15:18+00:00', + }, + userIdentifiers: [ + { + hashedEmail: + '6db61e6dcbcf2390e4a46af426f26a133a3bee45021422fc7ae86e9136f14110', + userIdentifierSource: 'UNSPECIFIED', }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} + ], }, - "files": {} - } + }, + ], + validate_only: false, + }, + createJobPayload: { + job: { + storeSalesMetadata: { + custom_key: 'CUSTOM_KEY', + loyaltyFraction: 1, + transaction_upload_fraction: '1', + }, + type: 'STORE_SALES_UPLOAD_FIRST_PARTY', + }, + }, + event: '1112223333', + executeJobPayload: { + validate_only: false, + }, + isStoreConversion: true, }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, }, - output: { - response: { - status: 401, - body: { - "output": { - "status": 401, - "message": "[Google Ads Offline Conversions]:: Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project. during google_ads_offline_store_conversions Job Creation", - "authErrorCategory": "REFRESH_TOKEN", - "destinationResponse": { - "error": { - "code": 401, - "message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.", - "status": "UNAUTHENTICATED" - } - }, - "statTags": { - "destType": "GOOGLE_ADWORDS_OFFLINE_CONVERSIONS", - "destinationId": "Non-determininable", - "errorCategory": "network", - "errorType": "aborted", - "feature": "dataDelivery", - "implementation": "native", - "module": "destination", - "workspaceId": "Non-determininable" - } - } - } + }, + }, + output: { + response: { + status: 200, + body: { + output: { + status: 200, + message: + '[Google Ads Offline Conversions Response Handler] - Request processed successfully', + destinationResponse: { + response: { + name: 'customers/111-222-3333/operations/abcd=', + }, + status: 200, }, + }, }, + }, }, - { - name: 'google_adwords_offline_conversions', - description: 'Test 3', - feature: 'dataDelivery', - module: 'destination', - version: 'v0', - input: { - request: { - "body": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v14/customers/1234567890:uploadClickConversions", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json", - "developer-token": "ijkl91011" - }, - "params": { - "event": "Sign-up - click", - "customerId": "1234567890", - "customVariables": [ - { - "from": "value", - "to": "revenue" - }, - { - "from": "total", - "to": "cost" - } - ], - "properties": { - "gbraid": "gbraid", - "wbraid": "wbraid", - "externalAttributionCredit": 10, - "externalAttributionModel": "externalAttributionModel", - "conversionCustomVariable": "conversionCustomVariable", - "value": "value", - "merchantId": "9876merchantId", - "feedCountryCode": "feedCountryCode", - "feedLanguageCode": "feedLanguageCode", - "localTransactionCost": 20, - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "quantity": "2", - "price": "50", - "sku": "45790-32", - "name": "Monopoly: 3rd Edition", - "position": "1", - "category": "cars", - "url": "https://www.example.com/product/path", - "image_url": "https://www.example.com/product/path.jpg" - } - ], - "userIdentifierSource": "FIRST_PARTY", - "conversionEnvironment": "WEB", - "gclid": "gclid", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "conversionValue": "1", - "currency": "GBP", - "orderId": "PL-123QR" - } - }, - "body": { - "JSON": { - "conversions": [ - { - "gbraid": "gbraid", - "wbraid": "wbraid", - "externalAttributionData": { - "externalAttributionCredit": 10, - "externalAttributionModel": "externalAttributionModel" - }, - "cartData": { - "merchantId": 9876, - "feedCountryCode": "feedCountryCode", - "feedLanguageCode": "feedLanguageCode", - "localTransactionCost": 20, - "items": [ - { - "productId": "507f1f77bcf86cd799439011", - "quantity": 2, - "unitPrice": 50 - } - ] - }, - "userIdentifiers": [ - { - "userIdentifierSource": "FIRST_PARTY", - "hashedEmail": "6db61e6dcbcf2390e4a46af426f26a133a3bee45021422fc7ae86e9136f14110" - } - ], - "conversionEnvironment": "WEB", - "gclid": "gclid", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "conversionValue": 1, - "currencyCode": "GBP", - "orderId": "PL-123QR" - } - ], - "partialFailure": true + }, + { + name: 'google_adwords_offline_conversions', + description: 'Test 2', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://googleads.googleapis.com/v14/customers/customerid/offlineUserDataJobs', + headers: { + Authorization: 'Bearer abcd1234', + 'Content-Type': 'application/json', + 'developer-token': 'ijkl91011', + 'login-customer-id': 'logincustomerid', + }, + params: { + customerId: '1112223333', + event: 'Sign-up - click', + }, + body: { + JSON: { + addConversionPayload: { + enable_partial_failure: false, + enable_warnings: false, + operations: [ + { + create: { + transaction_attribute: { + CUSTOM_KEY: 'CUSTOM_VALUE', + currency_code: 'INR', + order_id: 'order id', + store_attribute: { + store_code: 'store code', + }, + transaction_amount_micros: '100000000', + transaction_date_time: '2019-10-14 11:15:18+00:00', + }, + userIdentifiers: [ + { + hashedEmail: + '6db61e6dcbcf2390e4a46af426f26a133a3bee45021422fc7ae86e9136f14110', + userIdentifierSource: 'UNSPECIFIED', }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} + ], }, - "files": {} - } + }, + ], + validate_only: false, + }, + createJobPayload: { + job: { + storeSalesMetadata: { + custom_key: 'CUSTOM_KEY', + loyaltyFraction: 1, + transaction_upload_fraction: '1', + }, + type: 'STORE_SALES_UPLOAD_FIRST_PARTY', + }, + }, + event: '1112223333', + executeJobPayload: { + validate_only: false, + }, + isStoreConversion: true, }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, }, - output: { - response: { - status: 401, - body: { - "output": { - "status": 401, - "message": "[Google Ads Offline Conversions]:: [{\"error\":{\"code\":401,\"message\":\"Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.\",\"status\":\"UNAUTHENTICATED\"}}] during google_ads_offline_conversions response transformation", - "authErrorCategory": "REFRESH_TOKEN", - "destinationResponse": [ - { - "error": { - "code": 401, - "message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.", - "status": "UNAUTHENTICATED" - } - } - ], - "statTags": { - "destType": "GOOGLE_ADWORDS_OFFLINE_CONVERSIONS", - "destinationId": "Non-determininable", - "errorCategory": "network", - "errorType": "aborted", - "feature": "dataDelivery", - "implementation": "native", - "module": "destination", - "workspaceId": "Non-determininable", - } - } - } + }, + }, + output: { + response: { + status: 401, + body: { + output: { + status: 401, + message: + '[Google Ads Offline Conversions]:: Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project. during google_ads_offline_store_conversions Job Creation', + authErrorCategory: 'REFRESH_TOKEN', + destinationResponse: { + error: { + code: 401, + message: + 'Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.', + status: 'UNAUTHENTICATED', + }, }, + statTags: { + destType: 'GOOGLE_ADWORDS_OFFLINE_CONVERSIONS', + destinationId: 'Non-determininable', + errorCategory: 'network', + errorType: 'aborted', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + workspaceId: 'Non-determininable', + }, + }, }, + }, }, - { - name: 'google_adwords_offline_conversions', - description: 'Test 4', - feature: 'dataDelivery', - module: 'destination', - version: 'v0', - input: { - "request": { - "body": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v14/customers/1234567891:uploadClickConversions", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json", - "developer-token": "ijkl91011" - }, - "params": { - "event": "Sign-up - click", - "customerId": "1234567891", - "customVariables": [ - { - "from": "Value", - "to": "revenue" - }, - { - "from": "total", - "to": "cost" - } - ], - "properties": { - "gbraid": "gbraid", - "wbraid": "wbraid", - "externalAttributionCredit": 10, - "externalAttributionModel": "externalAttributionModel", - "conversionCustomVariable": "conversionCustomVariable", - "Value": "value", - "merchantId": "9876merchantId", - "feedCountryCode": "feedCountryCode", - "feedLanguageCode": "feedLanguageCode", - "localTransactionCost": 20, - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "quantity": "2", - "price": "50", - "sku": "45790-32", - "name": "Monopoly: 3rd Edition", - "position": "1", - "category": "cars", - "url": "https://www.example.com/product/path", - "image_url": "https://www.example.com/product/path.jpg" - } - ], - "userIdentifierSource": "FIRST_PARTY", - "conversionEnvironment": "WEB", - "gclid": "gclid", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "conversionValue": "1", - "currency": "GBP", - "orderId": "PL-123QR" - } - }, - "body": { - "JSON": { - "conversions": [ - { - "gbraid": "gbraid", - "wbraid": "wbraid", - "externalAttributionData": { - "externalAttributionCredit": 10, - "externalAttributionModel": "externalAttributionModel" - }, - "cartData": { - "merchantId": 9876, - "feedCountryCode": "feedCountryCode", - "feedLanguageCode": "feedLanguageCode", - "localTransactionCost": 20, - "items": [ - { - "productId": "507f1f77bcf86cd799439011", - "quantity": 2, - "unitPrice": 50 - } - ] - }, - "userIdentifiers": [ - { - "userIdentifierSource": "FIRST_PARTY", - "hashedPhoneNumber": "04e1dabb7c1348b72bfa87da179c9697c69af74827649266a5da8cdbb367abcd" - } - ], - "conversionEnvironment": "WEB", - "gclid": "gclid", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "conversionValue": 1, - "currencyCode": "GBP", - "orderId": "PL-123QR" - } - ], - "partialFailure": true - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} + }, + { + name: 'google_adwords_offline_conversions', + description: 'Test 3', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://googleads.googleapis.com/v14/customers/1234567890:uploadClickConversions', + headers: { + Authorization: 'Bearer abcd1234', + 'Content-Type': 'application/json', + 'developer-token': 'ijkl91011', + }, + params: { + event: 'Sign-up - click', + customerId: '1234567890', + customVariables: [ + { + from: 'value', + to: 'revenue', + }, + { + from: 'total', + to: 'cost', + }, + ], + properties: { + gbraid: 'gbraid', + wbraid: 'wbraid', + externalAttributionCredit: 10, + externalAttributionModel: 'externalAttributionModel', + conversionCustomVariable: 'conversionCustomVariable', + value: 'value', + merchantId: '9876merchantId', + feedCountryCode: 'feedCountryCode', + feedLanguageCode: 'feedLanguageCode', + localTransactionCost: 20, + products: [ + { + product_id: '507f1f77bcf86cd799439011', + quantity: '2', + price: '50', + sku: '45790-32', + name: 'Monopoly: 3rd Edition', + position: '1', + category: 'cars', + url: 'https://www.example.com/product/path', + image_url: 'https://www.example.com/product/path.jpg', + }, + ], + userIdentifierSource: 'FIRST_PARTY', + conversionEnvironment: 'WEB', + gclid: 'gclid', + conversionDateTime: '2022-01-01 12:32:45-08:00', + conversionValue: '1', + currency: 'GBP', + orderId: 'PL-123QR', + }, + }, + body: { + JSON: { + conversions: [ + { + gbraid: 'gbraid', + wbraid: 'wbraid', + externalAttributionData: { + externalAttributionCredit: 10, + externalAttributionModel: 'externalAttributionModel', + }, + cartData: { + merchantId: 9876, + feedCountryCode: 'feedCountryCode', + feedLanguageCode: 'feedLanguageCode', + localTransactionCost: 20, + items: [ + { + productId: '507f1f77bcf86cd799439011', + quantity: 2, + unitPrice: 50, + }, + ], + }, + userIdentifiers: [ + { + userIdentifierSource: 'FIRST_PARTY', + hashedEmail: + '6db61e6dcbcf2390e4a46af426f26a133a3bee45021422fc7ae86e9136f14110', }, - "files": {} - } - } + ], + conversionEnvironment: 'WEB', + gclid: 'gclid', + conversionDateTime: '2022-01-01 12:32:45-08:00', + conversionValue: 1, + currencyCode: 'GBP', + orderId: 'PL-123QR', + }, + ], + partialFailure: true, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, }, - output: { - response: { - status: 200, - body: { - "output": { - "status": 200, - "message": "[Google Ads Offline Conversions Response Handler] - Request processed successfully", - "destinationResponse": { - "response": [ - { - "adjustmentType": "ENHANCEMENT", - "conversionAction": "customers/1234567891/conversionActions/874224905", - "adjustmentDateTime": "2021-01-01 12:32:45-08:00", - "gclidDateTimePair": { - "gclid": "1234", - "conversionDateTime": "2021-01-01 12:32:45-08:00" - }, - "orderId": "12345" - } - ], - "status": 200 - } - } - } + }, + }, + output: { + response: { + status: 401, + body: { + output: { + status: 401, + message: + '[Google Ads Offline Conversions]:: [{"error":{"code":401,"message":"Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.","status":"UNAUTHENTICATED"}}] during google_ads_offline_conversions response transformation', + authErrorCategory: 'REFRESH_TOKEN', + destinationResponse: [ + { + error: { + code: 401, + message: + 'Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.', + status: 'UNAUTHENTICATED', + }, + }, + ], + statTags: { + destType: 'GOOGLE_ADWORDS_OFFLINE_CONVERSIONS', + destinationId: 'Non-determininable', + errorCategory: 'network', + errorType: 'aborted', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + workspaceId: 'Non-determininable', }, + }, }, + }, }, - { - name: 'google_adwords_offline_conversions', - description: 'Test 5', - feature: 'dataDelivery', - module: 'destination', - version: 'v0', - input: { - "request": { - "body": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v14/customers/1234567891:uploadClickConversions", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json", - "developer-token": "ijkl91011" - }, - "params": { - "event": "Sign-up - click", - "customerId": "1234567891", - "customVariables": [], - "properties": { - "gbraid": "gbraid", - "wbraid": "wbraid", - "externalAttributionCredit": 10, - "externalAttributionModel": "externalAttributionModel", - "conversionCustomVariable": "conversionCustomVariable", - "value": "value", - "merchantId": "9876merchantId", - "feedCountryCode": "feedCountryCode", - "feedLanguageCode": "feedLanguageCode", - "localTransactionCost": 20, - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "quantity": "2", - "price": "50", - "sku": "45790-32", - "name": "Monopoly: 3rd Edition", - "position": "1", - "category": "cars", - "url": "https://www.example.com/product/path", - "image_url": "https://www.example.com/product/path.jpg" - } - ], - "userIdentifierSource": "FIRST_PARTY", - "conversionEnvironment": "WEB", - "gclid": "gclid", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "conversionValue": "1", - "currency": "GBP", - "orderId": "PL-123QR" - } + }, + { + name: 'google_adwords_offline_conversions', + description: 'Test 4', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://googleads.googleapis.com/v14/customers/1234567891:uploadClickConversions', + headers: { + Authorization: 'Bearer abcd1234', + 'Content-Type': 'application/json', + 'developer-token': 'ijkl91011', + }, + params: { + event: 'Sign-up - click', + customerId: '1234567891', + customVariables: [ + { + from: 'Value', + to: 'revenue', + }, + { + from: 'total', + to: 'cost', + }, + ], + properties: { + gbraid: 'gbraid', + wbraid: 'wbraid', + externalAttributionCredit: 10, + externalAttributionModel: 'externalAttributionModel', + conversionCustomVariable: 'conversionCustomVariable', + Value: 'value', + merchantId: '9876merchantId', + feedCountryCode: 'feedCountryCode', + feedLanguageCode: 'feedLanguageCode', + localTransactionCost: 20, + products: [ + { + product_id: '507f1f77bcf86cd799439011', + quantity: '2', + price: '50', + sku: '45790-32', + name: 'Monopoly: 3rd Edition', + position: '1', + category: 'cars', + url: 'https://www.example.com/product/path', + image_url: 'https://www.example.com/product/path.jpg', + }, + ], + userIdentifierSource: 'FIRST_PARTY', + conversionEnvironment: 'WEB', + gclid: 'gclid', + conversionDateTime: '2022-01-01 12:32:45-08:00', + conversionValue: '1', + currency: 'GBP', + orderId: 'PL-123QR', + }, + }, + body: { + JSON: { + conversions: [ + { + gbraid: 'gbraid', + wbraid: 'wbraid', + externalAttributionData: { + externalAttributionCredit: 10, + externalAttributionModel: 'externalAttributionModel', + }, + cartData: { + merchantId: 9876, + feedCountryCode: 'feedCountryCode', + feedLanguageCode: 'feedLanguageCode', + localTransactionCost: 20, + items: [ + { + productId: '507f1f77bcf86cd799439011', + quantity: 2, + unitPrice: 50, + }, + ], + }, + userIdentifiers: [ + { + userIdentifierSource: 'FIRST_PARTY', + hashedPhoneNumber: + '04e1dabb7c1348b72bfa87da179c9697c69af74827649266a5da8cdbb367abcd', }, - "body": { - "JSON": { - "conversions": [ - { - "gbraid": "gbraid", - "wbraid": "wbraid", - "externalAttributionData": { - "externalAttributionCredit": 10, - "externalAttributionModel": "externalAttributionModel" - }, - "cartData": { - "merchantId": 9876, - "feedCountryCode": "feedCountryCode", - "feedLanguageCode": "feedLanguageCode", - "localTransactionCost": 20, - "items": [ - { - "productId": "507f1f77bcf86cd799439011", - "quantity": 2, - "unitPrice": 50 - } - ] - }, - "userIdentifiers": [ - { - "userIdentifierSource": "FIRST_PARTY", - "hashedPhoneNumber": "04e1dabb7c1348b72bfa87da179c9697c69af74827649266a5da8cdbb367abcd" - } - ], - "conversionEnvironment": "WEB", - "gclid": "gclid", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "conversionValue": 1, - "currencyCode": "GBP", - "orderId": "PL-123QR" - } - ], - "partialFailure": true - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} + ], + conversionEnvironment: 'WEB', + gclid: 'gclid', + conversionDateTime: '2022-01-01 12:32:45-08:00', + conversionValue: 1, + currencyCode: 'GBP', + orderId: 'PL-123QR', + }, + ], + partialFailure: true, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + }, + }, + output: { + response: { + status: 200, + body: { + output: { + status: 200, + message: + '[Google Ads Offline Conversions Response Handler] - Request processed successfully', + destinationResponse: { + response: [ + { + adjustmentType: 'ENHANCEMENT', + conversionAction: 'customers/1234567891/conversionActions/874224905', + adjustmentDateTime: '2021-01-01 12:32:45-08:00', + gclidDateTimePair: { + gclid: '1234', + conversionDateTime: '2021-01-01 12:32:45-08:00', + }, + orderId: '12345', + }, + ], + status: 200, + }, + }, + }, + }, + }, + }, + { + name: 'google_adwords_offline_conversions', + description: 'Test 5', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://googleads.googleapis.com/v14/customers/1234567891:uploadClickConversions', + headers: { + Authorization: 'Bearer abcd1234', + 'Content-Type': 'application/json', + 'developer-token': 'ijkl91011', + }, + params: { + event: 'Sign-up - click', + customerId: '1234567891', + customVariables: [], + properties: { + gbraid: 'gbraid', + wbraid: 'wbraid', + externalAttributionCredit: 10, + externalAttributionModel: 'externalAttributionModel', + conversionCustomVariable: 'conversionCustomVariable', + value: 'value', + merchantId: '9876merchantId', + feedCountryCode: 'feedCountryCode', + feedLanguageCode: 'feedLanguageCode', + localTransactionCost: 20, + products: [ + { + product_id: '507f1f77bcf86cd799439011', + quantity: '2', + price: '50', + sku: '45790-32', + name: 'Monopoly: 3rd Edition', + position: '1', + category: 'cars', + url: 'https://www.example.com/product/path', + image_url: 'https://www.example.com/product/path.jpg', + }, + ], + userIdentifierSource: 'FIRST_PARTY', + conversionEnvironment: 'WEB', + gclid: 'gclid', + conversionDateTime: '2022-01-01 12:32:45-08:00', + conversionValue: '1', + currency: 'GBP', + orderId: 'PL-123QR', + }, + }, + body: { + JSON: { + conversions: [ + { + gbraid: 'gbraid', + wbraid: 'wbraid', + externalAttributionData: { + externalAttributionCredit: 10, + externalAttributionModel: 'externalAttributionModel', + }, + cartData: { + merchantId: 9876, + feedCountryCode: 'feedCountryCode', + feedLanguageCode: 'feedLanguageCode', + localTransactionCost: 20, + items: [ + { + productId: '507f1f77bcf86cd799439011', + quantity: 2, + unitPrice: 50, + }, + ], + }, + userIdentifiers: [ + { + userIdentifierSource: 'FIRST_PARTY', + hashedPhoneNumber: + '04e1dabb7c1348b72bfa87da179c9697c69af74827649266a5da8cdbb367abcd', }, - "files": {} - } - } + ], + conversionEnvironment: 'WEB', + gclid: 'gclid', + conversionDateTime: '2022-01-01 12:32:45-08:00', + conversionValue: 1, + currencyCode: 'GBP', + orderId: 'PL-123QR', + }, + ], + partialFailure: true, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, }, - output: { - response: { - status: 200, - body: { - "output": { - "destinationResponse": { - "response": [ - { - "adjustmentDateTime": "2021-01-01 12:32:45-08:00", - "adjustmentType": "ENHANCEMENT", - "conversionAction": "customers/1234567891/conversionActions/874224905", - "gclidDateTimePair": { - "conversionDateTime": "2021-01-01 12:32:45-08:00", - "gclid": "1234" - }, - "orderId": "12345" - } - ], - "status": 200 - }, - "message": "[Google Ads Offline Conversions Response Handler] - Request processed successfully", - "status": 200 - } - } + }, + }, + output: { + response: { + status: 200, + body: { + output: { + destinationResponse: { + response: [ + { + adjustmentDateTime: '2021-01-01 12:32:45-08:00', + adjustmentType: 'ENHANCEMENT', + conversionAction: 'customers/1234567891/conversionActions/874224905', + gclidDateTimePair: { + conversionDateTime: '2021-01-01 12:32:45-08:00', + gclid: '1234', + }, + orderId: '12345', + }, + ], + status: 200, }, + message: + '[Google Ads Offline Conversions Response Handler] - Request processed successfully', + status: 200, + }, }, - } + }, + }, + }, ]; diff --git a/test/integrations/destinations/google_adwords_offline_conversions/router/data.ts b/test/integrations/destinations/google_adwords_offline_conversions/router/data.ts index c5d2f2f524..1536af8187 100644 --- a/test/integrations/destinations/google_adwords_offline_conversions/router/data.ts +++ b/test/integrations/destinations/google_adwords_offline_conversions/router/data.ts @@ -41,21 +41,13 @@ export const data = [ postalCode: 'EC3M', streetAddress: '71 Cherry Court SOUTHAMPTON SO53 5PD UK', }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', locale: 'en-US', ip: '0.0.0.0', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, }, event: 'Promotion Clicked', type: 'track', @@ -94,9 +86,7 @@ export const data = [ conversionValue: '1', currency: 'GBP', }, - integrations: { - All: true, - }, + integrations: { All: true }, name: 'ApplicationLoaded', sentAt: '2019-10-14T11:15:53.296Z', }, @@ -106,55 +96,26 @@ export const data = [ refresh_token: 'efgh5678', developer_token: 'ijkl91011', }, + userId: 'u1', }, destination: { Config: { customerId: '962-581-2972', eventsToOfflineConversionsTypeMapping: [ - { - from: 'Sign up completed', - to: 'click', - }, - { - from: 'Download', - to: 'call', - }, - { - from: 'Promotion Clicked', - to: 'click', - }, - { - from: 'Product Searched', - to: 'call', - }, + { from: 'Sign up completed', to: 'click' }, + { from: 'Download', to: 'call' }, + { from: 'Promotion Clicked', to: 'click' }, + { from: 'Product Searched', to: 'call' }, ], eventsToConversionsNamesMapping: [ - { - from: 'Sign up completed', - to: 'Sign-up - click', - }, - { - from: 'Download', - to: 'Page view', - }, - { - from: 'Promotion Clicked', - to: 'Sign-up - click', - }, - { - from: 'Product Searched', - to: 'search', - }, + { from: 'Sign up completed', to: 'Sign-up - click' }, + { from: 'Download', to: 'Page view' }, + { from: 'Promotion Clicked', to: 'Sign-up - click' }, + { from: 'Product Searched', to: 'search' }, ], customVariables: [ - { - from: 'value', - to: 'revenue', - }, - { - from: 'total', - to: 'cost', - }, + { from: 'value', to: 'revenue' }, + { from: 'total', to: 'cost' }, ], UserIdentifierSource: 'THIRD_PARTY', conversionEnvironment: 'WEB', @@ -195,21 +156,13 @@ export const data = [ postalCode: 'EC3M', streetAddress: '71 Cherry Court SOUTHAMPTON SO53 5PD UK', }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', locale: 'en-US', ip: '0.0.0.0', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, }, event: 'Product Searched', type: 'track', @@ -240,19 +193,15 @@ export const data = [ userIdentifierSource: 'FIRST_PARTY', conversionEnvironment: 'WEB', gclid: 'gclid', - conversionCustomVariable: 'conversionCustomVariable', value: 'value', - callerId: 'callerId', callStartDateTime: '2022-08-28 15:01:30+05:30', conversionDateTime: '2022-01-01 12:32:45-08:00', conversionValue: '1', currency: 'GBP', }, - integrations: { - All: true, - }, + integrations: { All: true }, name: 'ApplicationLoaded', sentAt: '2019-10-14T11:15:53.296Z', }, @@ -262,55 +211,26 @@ export const data = [ refresh_token: 'efgh5678', developer_token: 'ijkl91011', }, + userId: 'u1', }, destination: { Config: { customerId: '962-581-2972', eventsToOfflineConversionsTypeMapping: [ - { - from: 'Sign up completed', - to: 'click', - }, - { - from: 'Download', - to: 'call', - }, - { - from: 'Promotion Clicked', - to: 'click', - }, - { - from: 'Product Searched', - to: 'call', - }, + { from: 'Sign up completed', to: 'click' }, + { from: 'Download', to: 'call' }, + { from: 'Promotion Clicked', to: 'click' }, + { from: 'Product Searched', to: 'call' }, ], eventsToConversionsNamesMapping: [ - { - from: 'Sign up completed', - to: 'Sign-up - click', - }, - { - from: 'Download', - to: 'Page view', - }, - { - from: 'Promotion Clicked', - to: 'Sign-up - click', - }, - { - from: 'Product Searched', - to: 'search', - }, + { from: 'Sign up completed', to: 'Sign-up - click' }, + { from: 'Download', to: 'Page view' }, + { from: 'Promotion Clicked', to: 'Sign-up - click' }, + { from: 'Product Searched', to: 'search' }, ], customVariables: [ - { - from: 'value', - to: 'revenue', - }, - { - from: 'total', - to: 'cost', - }, + { from: 'value', to: 'revenue' }, + { from: 'total', to: 'cost' }, ], UserIdentifierSource: 'THIRD_PARTY', conversionEnvironment: 'WEB', @@ -324,11 +244,7 @@ export const data = [ { message: { channel: 'web', - context: { - traits: { - firstName: 'John', - }, - }, + context: { traits: { firstName: 'John' } }, event: 'Product Clicked', type: 'track', messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', @@ -348,9 +264,7 @@ export const data = [ callerId: '1234', callStartDateTime: '2019-10-14T11:15:18.299Z', }, - integrations: { - All: true, - }, + integrations: { All: true }, name: 'ApplicationLoaded', sentAt: '2019-10-14T11:15:53.296Z', }, @@ -361,6 +275,7 @@ export const data = [ developer_token: 'ijkl91011', }, jobId: 1, + userId: 'u1', }, destination: { Config: { @@ -405,11 +320,7 @@ export const data = [ { message: { channel: 'web', - context: { - traits: { - firstName: 'John', - }, - }, + context: { traits: { firstName: 'John' } }, event: 'Order Completed', type: 'track', messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', @@ -429,9 +340,7 @@ export const data = [ callerId: '1234', callStartDateTime: '2019-10-14T11:15:18.299Z', }, - integrations: { - All: true, - }, + integrations: { All: true }, name: 'ApplicationLoaded', sentAt: '2019-10-14T11:15:53.296Z', }, @@ -442,6 +351,7 @@ export const data = [ developer_token: 'ijkl91011', }, jobId: 2, + userId: 'u1', }, destination: { Config: { @@ -486,11 +396,7 @@ export const data = [ { message: { channel: 'web', - context: { - traits: { - firstName: 'John', - }, - }, + context: { traits: { firstName: 'John' } }, event: 'Order Completed', type: 'track', messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', @@ -510,9 +416,7 @@ export const data = [ callerId: '1234', callStartDateTime: '2019-10-14T11:15:18.299Z', }, - integrations: { - All: true, - }, + integrations: { All: true }, name: 'ApplicationLoaded', sentAt: '2019-10-14T11:15:53.296Z', }, @@ -523,6 +427,7 @@ export const data = [ developer_token: 'ijkl91011', }, jobId: 3, + userId: 'u1', }, destination: { Config: { @@ -656,6 +561,7 @@ export const data = [ developer_token: 'ijkl91011', }, jobId: 1, + userId: 'u1', }, { secret: { @@ -664,6 +570,7 @@ export const data = [ developer_token: 'ijkl91011', }, jobId: 2, + userId: 'u1', }, ], batched: true, @@ -807,6 +714,7 @@ export const data = [ refresh_token: 'efgh5678', developer_token: 'ijkl91011', }, + userId: 'u1', }, ], batched: false, @@ -916,6 +824,7 @@ export const data = [ refresh_token: 'efgh5678', developer_token: 'ijkl91011', }, + userId: 'u1', }, ], batched: false, @@ -1005,6 +914,7 @@ export const data = [ developer_token: 'ijkl91011', }, jobId: 2, + userId: 'u1', }, ], batched: false, @@ -1058,6 +968,7 @@ export const data = [ developer_token: 'ijkl91011', }, jobId: 3, + userId: 'u1', }, ], batched: false, diff --git a/test/integrations/destinations/google_adwords_remarketing_lists/router/data.ts b/test/integrations/destinations/google_adwords_remarketing_lists/router/data.ts index c60e32aaf6..8c12225400 100644 --- a/test/integrations/destinations/google_adwords_remarketing_lists/router/data.ts +++ b/test/integrations/destinations/google_adwords_remarketing_lists/router/data.ts @@ -17,6 +17,7 @@ export const data = [ developer_token: 'ijkl9101', }, jobId: 1, + userId: 'u1', }, destination: { Config: { @@ -50,12 +51,7 @@ export const data = [ }, enablePartialFailure: true, }, - context: { - ip: '14.5.67.21', - library: { - name: 'http', - }, - }, + context: { ip: '14.5.67.21', library: { name: 'http' } }, timestamp: '2020-02-02T00:23:09.544Z', }, }, @@ -67,6 +63,7 @@ export const data = [ developer_token: 'ijkl9101', }, jobId: 2, + userId: 'u1', }, destination: { Config: { @@ -101,12 +98,7 @@ export const data = [ }, enablePartialFailure: true, }, - context: { - ip: '14.5.67.21', - library: { - name: 'http', - }, - }, + context: { ip: '14.5.67.21', library: { name: 'http' } }, timestamp: '2020-02-02T00:23:09.544Z', }, }, @@ -118,6 +110,7 @@ export const data = [ developer_token: 'ijkl9101', }, jobId: 3, + userId: 'u1', }, destination: { Config: { @@ -151,12 +144,7 @@ export const data = [ }, enablePartialFailure: true, }, - context: { - ip: '14.5.67.21', - library: { - name: 'http', - }, - }, + context: { ip: '14.5.67.21', library: { name: 'http' } }, timestamp: '2020-02-02T00:23:09.544Z', }, }, @@ -168,6 +156,7 @@ export const data = [ developer_token: 'ijkl9101', }, jobId: 4, + userId: 'u1', }, destination: { Config: { @@ -211,12 +200,7 @@ export const data = [ }, enablePartialFailure: true, }, - context: { - ip: '14.5.67.21', - library: { - name: 'http', - }, - }, + context: { ip: '14.5.67.21', library: { name: 'http' } }, timestamp: '2020-02-02T00:23:09.544Z', }, }, @@ -290,6 +274,7 @@ export const data = [ developer_token: 'ijkl9101', }, jobId: 1, + userId: 'u1', }, ], batched: false, @@ -325,15 +310,7 @@ export const data = [ JSON: { enablePartialFailure: true, operations: [ - { - create: { - userIdentifiers: [ - { - thirdPartyUserId: 'useri1234', - }, - ], - }, - }, + { create: { userIdentifiers: [{ thirdPartyUserId: 'useri1234' }] } }, ], }, JSON_ARRAY: {}, @@ -351,6 +328,7 @@ export const data = [ developer_token: 'ijkl9101', }, jobId: 2, + userId: 'u1', }, ], batched: false, @@ -427,6 +405,7 @@ export const data = [ developer_token: 'ijkl9101', }, jobId: 3, + userId: 'u1', }, ], batched: false, @@ -551,6 +530,7 @@ export const data = [ developer_token: 'ijkl9101', }, jobId: 4, + userId: 'u1', }, ], batched: false, diff --git a/test/integrations/destinations/google_cloud_function/router/data.ts b/test/integrations/destinations/google_cloud_function/router/data.ts index 0661d4cb15..50a559e27c 100644 --- a/test/integrations/destinations/google_cloud_function/router/data.ts +++ b/test/integrations/destinations/google_cloud_function/router/data.ts @@ -20,9 +20,7 @@ export const data = [ maxBatchSize: '2', }, }, - metadata: { - jobId: '1', - }, + metadata: { jobId: '1', userId: 'u1' }, message: { channel: 'web', context: { @@ -32,21 +30,13 @@ export const data = [ namespace: 'com.rudderlabs.javascript', version: '1.0.0', }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', locale: 'en-US', ip: '0.0.0.0', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, }, messageId: '84e26acc-56a5-4835-8233-591137fca468', session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', @@ -61,9 +51,7 @@ export const data = [ emailOptOut: true, masterAvatarTypeCode: 10, }, - integrations: { - All: true, - }, + integrations: { All: true }, sentAt: '2019-10-14T09:03:22.563Z', }, }, @@ -77,9 +65,7 @@ export const data = [ maxBatchSize: '2', }, }, - metadata: { - jobId: '2', - }, + metadata: { jobId: '2', userId: 'u1' }, message: { channel: 'web', context: { @@ -89,21 +75,13 @@ export const data = [ namespace: 'com.rudderlabs.javascript', version: '1.0.0', }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', locale: 'en-US', ip: '0.0.0.0', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, }, messageId: '84e26acc-56a5-4835-8233-591137fca468', session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', @@ -118,9 +96,7 @@ export const data = [ emailOptOut: true, masterAvatarTypeCode: 10, }, - integrations: { - All: true, - }, + integrations: { All: true }, sentAt: '2019-10-14T09:03:22.563Z', }, }, @@ -135,9 +111,7 @@ export const data = [ maxBatchSize: '2', }, }, - metadata: { - jobId: '3', - }, + metadata: { jobId: '3', userId: 'u1' }, message: { channel: 'web', context: { @@ -147,21 +121,13 @@ export const data = [ namespace: 'com.rudderlabs.javascript', version: '1.0.0', }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', locale: 'en-US', ip: '0.0.0.0', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, }, messageId: '84e26acc-56a5-4835-8233-591137fca468', session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', @@ -176,9 +142,7 @@ export const data = [ emailOptOut: true, masterAvatarTypeCode: 10, }, - integrations: { - All: true, - }, + integrations: { All: true }, sentAt: '2019-10-14T09:03:22.563Z', }, }, @@ -204,21 +168,13 @@ export const data = [ namespace: 'com.rudderlabs.javascript', version: '1.0.0', }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', locale: 'en-US', ip: '0.0.0.0', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, }, messageId: '84e26acc-56a5-4835-8233-591137fca468', session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', @@ -233,9 +189,7 @@ export const data = [ emailOptOut: true, masterAvatarTypeCode: 10, }, - integrations: { - All: true, - }, + integrations: { All: true }, sentAt: '2019-10-14T09:03:22.563Z', }, { @@ -247,21 +201,13 @@ export const data = [ namespace: 'com.rudderlabs.javascript', version: '1.0.0', }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', locale: 'en-US', ip: '0.0.0.0', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, }, messageId: '84e26acc-56a5-4835-8233-591137fca468', session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', @@ -276,13 +222,14 @@ export const data = [ emailOptOut: true, masterAvatarTypeCode: 10, }, - integrations: { - All: true, - }, + integrations: { All: true }, sentAt: '2019-10-14T09:03:22.563Z', }, ], - metadata: [{ jobId: '1' }, { jobId: '3' }], + metadata: [ + { jobId: '1', userId: 'u1' }, + { jobId: '3', userId: 'u1' }, + ], batched: true, statusCode: 200, destination: { @@ -306,7 +253,7 @@ export const data = [ maxBatchSize: '2', }, }, - metadata: [{ jobId: '2' }], + metadata: [{ jobId: '2', userId: 'u1' }], batched: false, statusCode: 400, error: '[GCF]:: Url not found. Aborting', @@ -345,9 +292,7 @@ export const data = [ maxBatchSize: '2', }, }, - metadata: { - jobId: '1', - }, + metadata: { jobId: '1', userId: 'u1' }, message: { channel: 'web', context: { @@ -357,21 +302,13 @@ export const data = [ namespace: 'com.rudderlabs.javascript', version: '1.0.0', }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', locale: 'en-US', ip: '0.0.0.0', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, }, messageId: '84e26acc-56a5-4835-8233-591137fca468', session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', @@ -386,9 +323,7 @@ export const data = [ emailOptOut: true, masterAvatarTypeCode: 10, }, - integrations: { - All: true, - }, + integrations: { All: true }, sentAt: '2019-10-14T09:03:22.563Z', }, }, @@ -402,9 +337,7 @@ export const data = [ maxBatchSize: '2', }, }, - metadata: { - jobId: '2', - }, + metadata: { jobId: '2', userId: 'u1' }, message: { channel: 'web', context: { @@ -414,21 +347,13 @@ export const data = [ namespace: 'com.rudderlabs.javascript', version: '1.0.0', }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', locale: 'en-US', ip: '0.0.0.0', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, }, messageId: '84e26acc-56a5-4835-8233-591137fca468', session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', @@ -443,9 +368,7 @@ export const data = [ emailOptOut: true, masterAvatarTypeCode: 10, }, - integrations: { - All: true, - }, + integrations: { All: true }, sentAt: '2019-10-14T09:03:22.563Z', }, }, @@ -460,9 +383,7 @@ export const data = [ maxBatchSize: '2', }, }, - metadata: { - jobId: '3', - }, + metadata: { jobId: '3', userId: 'u1' }, message: { channel: 'web', context: { @@ -472,21 +393,13 @@ export const data = [ namespace: 'com.rudderlabs.javascript', version: '1.0.0', }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', locale: 'en-US', ip: '0.0.0.0', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, }, messageId: '84e26acc-56a5-4835-8233-591137fca468', session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', @@ -501,9 +414,7 @@ export const data = [ emailOptOut: true, masterAvatarTypeCode: 10, }, - integrations: { - All: true, - }, + integrations: { All: true }, sentAt: '2019-10-14T09:03:22.563Z', }, }, @@ -529,21 +440,13 @@ export const data = [ namespace: 'com.rudderlabs.javascript', version: '1.0.0', }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', locale: 'en-US', ip: '0.0.0.0', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, }, messageId: '84e26acc-56a5-4835-8233-591137fca468', session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', @@ -558,9 +461,7 @@ export const data = [ emailOptOut: true, masterAvatarTypeCode: 10, }, - integrations: { - All: true, - }, + integrations: { All: true }, sentAt: '2019-10-14T09:03:22.563Z', }, { @@ -572,21 +473,13 @@ export const data = [ namespace: 'com.rudderlabs.javascript', version: '1.0.0', }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', locale: 'en-US', ip: '0.0.0.0', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, }, messageId: '84e26acc-56a5-4835-8233-591137fca468', session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', @@ -601,13 +494,14 @@ export const data = [ emailOptOut: true, masterAvatarTypeCode: 10, }, - integrations: { - All: true, - }, + integrations: { All: true }, sentAt: '2019-10-14T09:03:22.563Z', }, ], - metadata: [{ jobId: '1' }, { jobId: '3' }], + metadata: [ + { jobId: '1', userId: 'u1' }, + { jobId: '3', userId: 'u1' }, + ], batched: true, statusCode: 200, destination: { @@ -631,7 +525,7 @@ export const data = [ maxBatchSize: '2', }, }, - metadata: [{ jobId: '2' }], + metadata: [{ jobId: '2', userId: 'u1' }], batched: false, statusCode: 400, error: '[GCF]:: Url not found. Aborting', diff --git a/test/integrations/destinations/googlesheets/router/data.ts b/test/integrations/destinations/googlesheets/router/data.ts index 20fe270e5f..bdc686efda 100644 --- a/test/integrations/destinations/googlesheets/router/data.ts +++ b/test/integrations/destinations/googlesheets/router/data.ts @@ -14,62 +14,20 @@ export const data = [ Config: { credentials: '{ sheets credentials }', eventKeyMap: [ - { - from: 'firstName', - to: 'First Name', - }, - { - from: 'lastName', - to: 'Last Name', - }, - { - from: 'birthday', - to: 'Birthday', - }, - { - from: 'address.city', - to: 'City', - }, - { - from: 'address.country', - to: 'Country', - }, - { - from: 'revenue', - to: 'Revenue', - }, - { - from: 'offer', - to: 'Offer', - }, - { - from: 'title', - to: 'Title Page', - }, - { - from: 'Cart Value', - to: 'Cart Value', - }, - { - from: 'revenue', - to: 'Revenue', - }, - { - from: 'context.app.build', - to: 'App Build', - }, - { - from: 'context.app.name', - to: 'App Name', - }, - { - from: 'context.library.name', - to: 'Library Name', - }, - { - from: 'context.ip', - to: 'IP', - }, + { from: 'firstName', to: 'First Name' }, + { from: 'lastName', to: 'Last Name' }, + { from: 'birthday', to: 'Birthday' }, + { from: 'address.city', to: 'City' }, + { from: 'address.country', to: 'Country' }, + { from: 'revenue', to: 'Revenue' }, + { from: 'offer', to: 'Offer' }, + { from: 'title', to: 'Title Page' }, + { from: 'Cart Value', to: 'Cart Value' }, + { from: 'revenue', to: 'Revenue' }, + { from: 'context.app.build', to: 'App Build' }, + { from: 'context.app.name', to: 'App Name' }, + { from: 'context.library.name', to: 'Library Name' }, + { from: 'context.ip', to: 'IP' }, ], sheetId: 'rudder_sheet_id', sheetName: 'rudder_sheet', @@ -121,10 +79,7 @@ export const data = [ married: true, customerType: 'Prime', custom_tags: ['Test_User', 'Interested_User', 'DIY_Hobby'], - custom_mappings: { - Office: 'Trastkiv', - Country: 'Russia', - }, + custom_mappings: { Office: 'Trastkiv', Country: 'Russia' }, address: { city: 'kolkata', country: 'India', @@ -136,71 +91,27 @@ export const data = [ integrations: { All: true }, sentAt: '2019-10-14T09:03:22.563Z', }, - metadata: { - jobId: 1, - }, + metadata: { jobId: 1, userId: 'u1' }, }, { destination: { Config: { credentials: '{ sheets credentials }', eventKeyMap: [ - { - from: 'firstName', - to: 'First Name', - }, - { - from: 'lastName', - to: 'Last Name', - }, - { - from: 'birthday', - to: 'Birthday', - }, - { - from: 'address.city', - to: 'City', - }, - { - from: 'address.country', - to: 'Country', - }, - { - from: 'revenue', - to: 'Revenue', - }, - { - from: 'offer', - to: 'Offer', - }, - { - from: 'title', - to: 'Title Page', - }, - { - from: 'Cart Value', - to: 'Cart Value', - }, - { - from: 'revenue', - to: 'Revenue', - }, - { - from: 'context.app.build', - to: 'App Build', - }, - { - from: 'context.app.name', - to: 'App Name', - }, - { - from: 'context.library.name', - to: 'Library Name', - }, - { - from: 'context.ip', - to: 'IP', - }, + { from: 'firstName', to: 'First Name' }, + { from: 'lastName', to: 'Last Name' }, + { from: 'birthday', to: 'Birthday' }, + { from: 'address.city', to: 'City' }, + { from: 'address.country', to: 'Country' }, + { from: 'revenue', to: 'Revenue' }, + { from: 'offer', to: 'Offer' }, + { from: 'title', to: 'Title Page' }, + { from: 'Cart Value', to: 'Cart Value' }, + { from: 'revenue', to: 'Revenue' }, + { from: 'context.app.build', to: 'App Build' }, + { from: 'context.app.name', to: 'App Name' }, + { from: 'context.library.name', to: 'Library Name' }, + { from: 'context.ip', to: 'IP' }, ], sheetId: 'rudder_sheet_id', sheetName: 'rudder_sheet', @@ -232,26 +143,16 @@ export const data = [ name: 'generic_x86', type: 'android', }, - library: { - name: 'com.rudderstack.android.sdk.core', - version: '0.1.4', - }, + library: { name: 'com.rudderstack.android.sdk.core', version: '0.1.4' }, locale: 'en-US', - network: { - carrier: 'Android', - bluetooth: false, - cellular: true, - wifi: true, - }, + network: { carrier: 'Android', bluetooth: false, cellular: true, wifi: true }, os: { name: 'Android', version: '9' }, screen: { density: 420, height: 1794, width: 1080 }, timezone: 'Asia/Kolkata', }, timestamp: '2020-02-02T00:23:09.544Z', }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, }, ], destType: 'googlesheets', @@ -272,50 +173,17 @@ export const data = [ attributeKey: 'messageId', attributeValue: '84e26acc-56a5-4835-8233-591137fca468', }, - '1': { - attributeKey: 'First Name', - attributeValue: 'James', - }, - '2': { - attributeKey: 'Last Name', - attributeValue: 'Doe', - }, - '3': { - attributeKey: 'Birthday', - attributeValue: '1614775793', - }, - '4': { - attributeKey: 'City', - attributeValue: 'kolkata', - }, - '5': { - attributeKey: 'Country', - attributeValue: 'India', - }, - '6': { - attributeKey: 'Revenue', - attributeValue: '', - }, - '7': { - attributeKey: 'Offer', - attributeValue: '', - }, - '8': { - attributeKey: 'Title Page', - attributeValue: '', - }, - '9': { - attributeKey: 'Cart Value', - attributeValue: '', - }, - '10': { - attributeKey: 'Revenue', - attributeValue: '', - }, - '11': { - attributeKey: 'App Build', - attributeValue: '1.0.0', - }, + '1': { attributeKey: 'First Name', attributeValue: 'James' }, + '2': { attributeKey: 'Last Name', attributeValue: 'Doe' }, + '3': { attributeKey: 'Birthday', attributeValue: '1614775793' }, + '4': { attributeKey: 'City', attributeValue: 'kolkata' }, + '5': { attributeKey: 'Country', attributeValue: 'India' }, + '6': { attributeKey: 'Revenue', attributeValue: '' }, + '7': { attributeKey: 'Offer', attributeValue: '' }, + '8': { attributeKey: 'Title Page', attributeValue: '' }, + '9': { attributeKey: 'Cart Value', attributeValue: '' }, + '10': { attributeKey: 'Revenue', attributeValue: '' }, + '11': { attributeKey: 'App Build', attributeValue: '1.0.0' }, '12': { attributeKey: 'App Name', attributeValue: 'RudderLabs JavaScript SDK', @@ -324,74 +192,29 @@ export const data = [ attributeKey: 'Library Name', attributeValue: 'RudderLabs JavaScript SDK', }, - '14': { - attributeKey: 'IP', - attributeValue: '0.0.0.0', - }, + '14': { attributeKey: 'IP', attributeValue: '0.0.0.0' }, }, }, { message: { - '0': { - attributeKey: 'messageId', - attributeValue: '', - }, - '1': { - attributeKey: 'First Name', - attributeValue: '', - }, - '2': { - attributeKey: 'Last Name', - attributeValue: '', - }, - '3': { - attributeKey: 'Birthday', - attributeValue: '', - }, - '4': { - attributeKey: 'City', - attributeValue: '', - }, - '5': { - attributeKey: 'Country', - attributeValue: '', - }, - '6': { - attributeKey: 'Revenue', - attributeValue: 5.99, - }, - '7': { - attributeKey: 'Offer', - attributeValue: 'Discount', - }, - '8': { - attributeKey: 'Title Page', - attributeValue: '', - }, - '9': { - attributeKey: 'Cart Value', - attributeValue: '', - }, - '10': { - attributeKey: 'Revenue', - attributeValue: 5.99, - }, - '11': { - attributeKey: 'App Build', - attributeValue: '1', - }, - '12': { - attributeKey: 'App Name', - attributeValue: 'RudderAndroidClient', - }, + '0': { attributeKey: 'messageId', attributeValue: '' }, + '1': { attributeKey: 'First Name', attributeValue: '' }, + '2': { attributeKey: 'Last Name', attributeValue: '' }, + '3': { attributeKey: 'Birthday', attributeValue: '' }, + '4': { attributeKey: 'City', attributeValue: '' }, + '5': { attributeKey: 'Country', attributeValue: '' }, + '6': { attributeKey: 'Revenue', attributeValue: 5.99 }, + '7': { attributeKey: 'Offer', attributeValue: 'Discount' }, + '8': { attributeKey: 'Title Page', attributeValue: '' }, + '9': { attributeKey: 'Cart Value', attributeValue: '' }, + '10': { attributeKey: 'Revenue', attributeValue: 5.99 }, + '11': { attributeKey: 'App Build', attributeValue: '1' }, + '12': { attributeKey: 'App Name', attributeValue: 'RudderAndroidClient' }, '13': { attributeKey: 'Library Name', attributeValue: 'com.rudderstack.android.sdk.core', }, - '14': { - attributeKey: 'IP', - attributeValue: '14.5.67.21', - }, + '14': { attributeKey: 'IP', attributeValue: '14.5.67.21' }, }, }, ], @@ -399,12 +222,8 @@ export const data = [ spreadSheet: 'rudder_sheet', }, metadata: [ - { - jobId: 1, - }, - { - jobId: 2, - }, + { jobId: 1, userId: 'u1' }, + { jobId: 2, userId: 'u1' }, ], batched: true, statusCode: 200, @@ -412,62 +231,20 @@ export const data = [ Config: { credentials: '{ sheets credentials }', eventKeyMap: [ - { - from: 'firstName', - to: 'First Name', - }, - { - from: 'lastName', - to: 'Last Name', - }, - { - from: 'birthday', - to: 'Birthday', - }, - { - from: 'address.city', - to: 'City', - }, - { - from: 'address.country', - to: 'Country', - }, - { - from: 'revenue', - to: 'Revenue', - }, - { - from: 'offer', - to: 'Offer', - }, - { - from: 'title', - to: 'Title Page', - }, - { - from: 'Cart Value', - to: 'Cart Value', - }, - { - from: 'revenue', - to: 'Revenue', - }, - { - from: 'context.app.build', - to: 'App Build', - }, - { - from: 'context.app.name', - to: 'App Name', - }, - { - from: 'context.library.name', - to: 'Library Name', - }, - { - from: 'context.ip', - to: 'IP', - }, + { from: 'firstName', to: 'First Name' }, + { from: 'lastName', to: 'Last Name' }, + { from: 'birthday', to: 'Birthday' }, + { from: 'address.city', to: 'City' }, + { from: 'address.country', to: 'Country' }, + { from: 'revenue', to: 'Revenue' }, + { from: 'offer', to: 'Offer' }, + { from: 'title', to: 'Title Page' }, + { from: 'Cart Value', to: 'Cart Value' }, + { from: 'revenue', to: 'Revenue' }, + { from: 'context.app.build', to: 'App Build' }, + { from: 'context.app.name', to: 'App Name' }, + { from: 'context.library.name', to: 'Library Name' }, + { from: 'context.ip', to: 'IP' }, ], sheetId: 'rudder_sheet_id', sheetName: 'rudder_sheet', diff --git a/test/integrations/destinations/heap/router/data.ts b/test/integrations/destinations/heap/router/data.ts index 24efbf4b15..3aa8fae2ca 100644 --- a/test/integrations/destinations/heap/router/data.ts +++ b/test/integrations/destinations/heap/router/data.ts @@ -11,9 +11,7 @@ export const data = [ input: [ { destination: { - Config: { - appId: '', - }, + Config: { appId: '' }, DestinationDefinition: { DisplayName: 'Heap.io', ID: '1WTbl0l5GjOQKOvfmcGwk0T49kV', @@ -24,9 +22,7 @@ export const data = [ Name: 'heap test', Transformations: [], }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, message: { anonymousId: 'sampath', channel: 'web', @@ -38,28 +34,15 @@ export const data = [ version: '1.0.0', }, ip: '0.0.0.0', - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, locale: 'en-US', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', }, - integrations: { - All: true, - }, - traits: { - anonymousId: 'sampath', - email: 'sampath@gmail.com', - }, + integrations: { All: true }, + traits: { anonymousId: 'sampath', email: 'sampath@gmail.com' }, messageId: 'fca2e71a-5d30-48e1-ba45-761c16e3820f', originalTimestamp: '2020-01-16T13:21:59.076Z', receivedAt: '2020-01-16T18:52:03.871+05:30', @@ -72,9 +55,7 @@ export const data = [ }, { destination: { - Config: { - appId: '', - }, + Config: { appId: '' }, DestinationDefinition: { DisplayName: 'Heap.io', ID: '1WTbl0l5GjOQKOvfmcGwk0T49kV', @@ -85,9 +66,7 @@ export const data = [ Name: 'heap test', Transformations: [], }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 3, userId: 'u1' }, message: { anonymousId: 'sampath', channel: 'web', @@ -99,35 +78,19 @@ export const data = [ version: '1.0.0', }, ip: '0.0.0.0', - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, locale: 'en-US', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, - traits: { - anonymousId: 'sampath', - email: 'sampath@gmail.com', - }, + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: { anonymousId: 'sampath', email: 'sampath@gmail.com' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', }, event: 'Send Transactional Email', - integrations: { - All: true, - }, + integrations: { All: true }, messageId: 'c0c5b892-0d54-449f-b85f-ebb39ff04e67', originalTimestamp: '2020-01-16T13:23:20.844Z', - properties: { - subject: 'Welcome to My App!', - variation: 'A', - }, + properties: { subject: 'Welcome to My App!', variation: 'A' }, receivedAt: '2020-01-16T18:53:23.804+05:30', request_ip: '[::1]:62312', sentAt: '2020-01-16T13:23:23.782Z', @@ -138,9 +101,7 @@ export const data = [ }, { destination: { - Config: { - appId: '', - }, + Config: { appId: '' }, DestinationDefinition: { DisplayName: 'Heap.io', ID: '1WTbl0l5GjOQKOvfmcGwk0T49kV', @@ -151,9 +112,7 @@ export const data = [ Name: 'heap test', Transformations: [], }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 4, userId: 'u1' }, message: { anonymousId: 'sampath', channel: 'web', @@ -165,29 +124,16 @@ export const data = [ version: '1.0.0', }, ip: '0.0.0.0', - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, locale: 'en-US', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, - traits: { - anonymousId: 'sampath', - email: 'sampath@gmail.com', - }, + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: { anonymousId: 'sampath', email: 'sampath@gmail.com' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', }, event: 'Send Transactional Email', - integrations: { - All: true, - }, + integrations: { All: true }, messageId: 'c0c5b892-0d54-449f-b85f-ebb39ff04e67', originalTimestamp: '2020-01-16T13:23:20.844Z', properties: { @@ -219,18 +165,12 @@ export const data = [ type: 'REST', method: 'POST', endpoint: 'https://heapanalytics.com/api/add_user_properties', - headers: { - 'Content-Type': 'application/json', - Accept: 'application/json', - }, + headers: { 'Content-Type': 'application/json', Accept: 'application/json' }, params: {}, body: { JSON: { identity: 'sampath', - properties: { - anonymousId: 'sampath', - email: 'sampath@gmail.com', - }, + properties: { anonymousId: 'sampath', email: 'sampath@gmail.com' }, app_id: '', }, XML: {}, @@ -240,17 +180,11 @@ export const data = [ files: {}, userId: 'sampath', }, - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], batched: false, statusCode: 200, destination: { - Config: { - appId: '', - }, + Config: { appId: '' }, DestinationDefinition: { DisplayName: 'Heap.io', ID: '1WTbl0l5GjOQKOvfmcGwk0T49kV', @@ -268,19 +202,13 @@ export const data = [ type: 'REST', method: 'POST', endpoint: 'https://heapanalytics.com/api/track', - headers: { - 'Content-Type': 'application/json', - Accept: 'application/json', - }, + headers: { 'Content-Type': 'application/json', Accept: 'application/json' }, params: {}, body: { JSON: { identity: 'sampath', event: 'Send Transactional Email', - properties: { - subject: 'Welcome to My App!', - variation: 'A', - }, + properties: { subject: 'Welcome to My App!', variation: 'A' }, app_id: '', timestamp: '2020-01-16T18:53:20.866+05:30', }, @@ -291,17 +219,11 @@ export const data = [ files: {}, userId: 'sampath', }, - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 3, userId: 'u1' }], batched: false, statusCode: 200, destination: { - Config: { - appId: '', - }, + Config: { appId: '' }, DestinationDefinition: { DisplayName: 'Heap.io', ID: '1WTbl0l5GjOQKOvfmcGwk0T49kV', @@ -319,19 +241,13 @@ export const data = [ type: 'REST', method: 'POST', endpoint: 'https://heapanalytics.com/api/track', - headers: { - 'Content-Type': 'application/json', - Accept: 'application/json', - }, + headers: { 'Content-Type': 'application/json', Accept: 'application/json' }, params: {}, body: { JSON: { identity: 'sampath', event: 'Send Transactional Email', - properties: { - subject: 'Welcome to My App!', - variation: 'A', - }, + properties: { subject: 'Welcome to My App!', variation: 'A' }, app_id: '', timestamp: '2020-01-16T18:53:20.866+05:30', idempotency_key: '1234', @@ -343,17 +259,11 @@ export const data = [ files: {}, userId: 'sampath', }, - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 4, userId: 'u1' }], batched: false, statusCode: 200, destination: { - Config: { - appId: '', - }, + Config: { appId: '' }, DestinationDefinition: { DisplayName: 'Heap.io', ID: '1WTbl0l5GjOQKOvfmcGwk0T49kV', @@ -382,9 +292,7 @@ export const data = [ input: [ { destination: { - Config: { - appId: '', - }, + Config: { appId: '' }, DestinationDefinition: { DisplayName: 'Heap.io', ID: '1WTbl0l5GjOQKOvfmcGwk0T49kV', @@ -395,9 +303,7 @@ export const data = [ Name: 'heap test', Transformations: [], }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, message: { anonymousId: 'sampath', channel: 'web', @@ -409,28 +315,15 @@ export const data = [ version: '1.0.0', }, ip: '0.0.0.0', - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, locale: 'en-US', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', }, - integrations: { - All: true, - }, - traits: { - anonymousId: 'sampath', - email: 'sampath@gmail.com', - }, + integrations: { All: true }, + traits: { anonymousId: 'sampath', email: 'sampath@gmail.com' }, messageId: 'fca2e71a-5d30-48e1-ba45-761c16e3820f', originalTimestamp: '2020-01-16T13:21:59.076Z', receivedAt: '2020-01-16T18:52:03.871+05:30', @@ -443,9 +336,7 @@ export const data = [ }, { destination: { - Config: { - appId: '', - }, + Config: { appId: '' }, DestinationDefinition: { DisplayName: 'Heap.io', ID: '1WTbl0l5GjOQKOvfmcGwk0T49kV', @@ -456,9 +347,7 @@ export const data = [ Name: 'heap test', Transformations: [], }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 3, userId: 'u1' }, message: { anonymousId: 'sampath', channel: 'web', @@ -470,35 +359,19 @@ export const data = [ version: '1.0.0', }, ip: '0.0.0.0', - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, locale: 'en-US', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, - traits: { - anonymousId: 'sampath', - email: 'sampath@gmail.com', - }, + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: { anonymousId: 'sampath', email: 'sampath@gmail.com' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', }, event: 'Send Transactional Email', - integrations: { - All: true, - }, + integrations: { All: true }, messageId: 'c0c5b892-0d54-449f-b85f-ebb39ff04e67', originalTimestamp: '2020-01-16T13:23:20.844Z', - properties: { - subject: 'Welcome to My App!', - variation: 'A', - }, + properties: { subject: 'Welcome to My App!', variation: 'A' }, receivedAt: '2020-01-16T18:53:23.804+05:30', request_ip: '[::1]:62312', sentAt: '2020-01-16T13:23:23.782Z', @@ -509,9 +382,7 @@ export const data = [ }, { destination: { - Config: { - appId: '', - }, + Config: { appId: '' }, DestinationDefinition: { DisplayName: 'Heap.io', ID: '1WTbl0l5GjOQKOvfmcGwk0T49kV', @@ -522,9 +393,7 @@ export const data = [ Name: 'heap test', Transformations: [], }, - metadata: { - jobId: 4, - }, + metadata: { jobId: 4, userId: 'u1' }, message: { anonymousId: 'sampath', channel: 'web', @@ -536,28 +405,15 @@ export const data = [ version: '1.0.0', }, ip: '0.0.0.0', - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, locale: 'en-US', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', }, - integrations: { - All: true, - }, - traits: { - anonymousId: 'sampath', - email: 'sampath@gmail.com', - }, + integrations: { All: true }, + traits: { anonymousId: 'sampath', email: 'sampath@gmail.com' }, messageId: 'fca2e71a-5d30-48e1-ba45-761c16e3820f', originalTimestamp: '2020-01-16T13:21:59.076Z', receivedAt: '2020-01-16T18:52:03.871+05:30', @@ -569,9 +425,7 @@ export const data = [ }, { destination: { - Config: { - appId: '', - }, + Config: { appId: '' }, DestinationDefinition: { DisplayName: 'Heap.io', ID: '1WTbl0l5GjOQKOvfmcGwk0T49kV', @@ -582,9 +436,7 @@ export const data = [ Name: 'heap test', Transformations: [], }, - metadata: { - jobId: 5, - }, + metadata: { jobId: 5, userId: 'u1' }, message: { anonymousId: 'sampath', channel: 'web', @@ -596,35 +448,19 @@ export const data = [ version: '1.0.0', }, ip: '0.0.0.0', - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, locale: 'en-US', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, - traits: { - anonymousId: 'sampath', - email: 'sampath@gmail.com', - }, + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: { anonymousId: 'sampath', email: 'sampath@gmail.com' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', }, event: 'Send Transactional Email', - integrations: { - All: true, - }, + integrations: { All: true }, messageId: 'c0c5b892-0d54-449f-b85f-ebb39ff04e67', originalTimestamp: '2020-01-16T13:23:20.844Z', - properties: { - subject: 'Welcome to My App!', - variation: 'A', - }, + properties: { subject: 'Welcome to My App!', variation: 'A' }, receivedAt: '2020-01-16T18:53:23.804+05:30', request_ip: '[::1]:62312', sentAt: '2020-01-16T13:23:23.782Z', @@ -649,18 +485,12 @@ export const data = [ type: 'REST', method: 'POST', endpoint: 'https://heapanalytics.com/api/add_user_properties', - headers: { - 'Content-Type': 'application/json', - Accept: 'application/json', - }, + headers: { 'Content-Type': 'application/json', Accept: 'application/json' }, params: {}, body: { JSON: { identity: 'sampath', - properties: { - anonymousId: 'sampath', - email: 'sampath@gmail.com', - }, + properties: { anonymousId: 'sampath', email: 'sampath@gmail.com' }, app_id: '', }, XML: {}, @@ -670,17 +500,11 @@ export const data = [ files: {}, userId: 'sampath', }, - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], batched: false, statusCode: 200, destination: { - Config: { - appId: '', - }, + Config: { appId: '' }, DestinationDefinition: { DisplayName: 'Heap.io', ID: '1WTbl0l5GjOQKOvfmcGwk0T49kV', @@ -698,19 +522,13 @@ export const data = [ type: 'REST', method: 'POST', endpoint: 'https://heapanalytics.com/api/track', - headers: { - 'Content-Type': 'application/json', - Accept: 'application/json', - }, + headers: { 'Content-Type': 'application/json', Accept: 'application/json' }, params: {}, body: { JSON: { identity: 'sampath', event: 'Send Transactional Email', - properties: { - subject: 'Welcome to My App!', - variation: 'A', - }, + properties: { subject: 'Welcome to My App!', variation: 'A' }, app_id: '', timestamp: '2020-01-16T18:53:20.866+05:30', }, @@ -721,17 +539,11 @@ export const data = [ files: {}, userId: 'sampath', }, - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 3, userId: 'u1' }], batched: false, statusCode: 200, destination: { - Config: { - appId: '', - }, + Config: { appId: '' }, DestinationDefinition: { DisplayName: 'Heap.io', ID: '1WTbl0l5GjOQKOvfmcGwk0T49kV', @@ -745,9 +557,7 @@ export const data = [ }, { destination: { - Config: { - appId: '', - }, + Config: { appId: '' }, DestinationDefinition: { DisplayName: 'Heap.io', ID: '1WTbl0l5GjOQKOvfmcGwk0T49kV', @@ -758,11 +568,7 @@ export const data = [ Name: 'heap test', Transformations: [], }, - metadata: [ - { - jobId: 4, - }, - ], + metadata: [{ jobId: 4, userId: 'u1' }], batched: false, statusCode: 400, error: 'invalid message type for heap', @@ -777,9 +583,7 @@ export const data = [ }, { destination: { - Config: { - appId: '', - }, + Config: { appId: '' }, DestinationDefinition: { DisplayName: 'Heap.io', ID: '1WTbl0l5GjOQKOvfmcGwk0T49kV', @@ -790,11 +594,7 @@ export const data = [ Name: 'heap test', Transformations: [], }, - metadata: [ - { - jobId: 5, - }, - ], + metadata: [{ jobId: 5, userId: 'u1' }], batched: false, statusCode: 400, error: 'message type page not supported for heap', diff --git a/test/integrations/destinations/hs/router/data.ts b/test/integrations/destinations/hs/router/data.ts index 95d9d88212..3a30232f9f 100644 --- a/test/integrations/destinations/hs/router/data.ts +++ b/test/integrations/destinations/hs/router/data.ts @@ -21,14 +21,7 @@ export const data = [ message: { type: 'identify', sentAt: '2022-08-23T05:59:38.214Z', - traits: { - to: { - id: 1, - }, - from: { - id: 9405415215, - }, - }, + traits: { to: { id: 1 }, from: { id: 9405415215 } }, userId: '1', channel: 'sources', context: { @@ -60,9 +53,7 @@ export const data = [ request_ip: '10.1.90.32', originalTimestamp: '2022-08-23T05:59:38.214Z', }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, }, ], destType: 'hs', @@ -82,36 +73,17 @@ export const data = [ method: 'POST', endpoint: 'https://api.hubapi.com/crm/v3/associations/companies/contacts/batch/create', - headers: { - 'Content-Type': 'application/json', - Authorization: 'Bearer pat-123', - }, + headers: { 'Content-Type': 'application/json', Authorization: 'Bearer pat-123' }, params: {}, body: { - JSON: { - inputs: [ - { - to: { - id: 1, - }, - from: { - id: 9405415215, - }, - type: 'engineer', - }, - ], - }, + JSON: { inputs: [{ to: { id: 1 }, from: { id: 9405415215 }, type: 'engineer' }] }, JSON_ARRAY: {}, XML: {}, FORM: {}, }, files: {}, }, - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], batched: true, statusCode: 200, destination: { @@ -153,47 +125,26 @@ export const data = [ firstname: 'Test Hubspot1', anonymousId: '1111', }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', locale: 'en-GB', ip: '0.0.0.0', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, - page: { - path: '', - referrer: '', - search: '', - title: '', - url: '', - }, + os: { name: '', version: '' }, + screen: { density: 2 }, + page: { path: '', referrer: '', search: '', title: '', url: '' }, }, type: 'identify', messageId: '50360b9c-ea8d-409c-b672-c9230f91cce5', originalTimestamp: '2019-10-15T09:35:31.288Z', anonymousId: '00000000000000000000000000', userId: '12345', - integrations: { - All: true, - }, + integrations: { All: true }, sentAt: '2019-10-14T09:03:22.563Z', }, - metadata: { - jobId: 1, - }, + metadata: { jobId: 1, userId: 'u1' }, destination: { - Config: { - apiKey: 'dummy-apikey', - hubID: 'dummy-hubId', - }, + Config: { apiKey: 'dummy-apikey', hubID: 'dummy-hubId' }, secretConfig: {}, ID: '1mMy5cqbtfuaKZv1IhVQKnBdVwe', name: 'Hubspot', @@ -224,25 +175,14 @@ export const data = [ namespace: 'com.rudderlabs.javascript', version: '1.0.0', }, - traits: { - email: 'testhubspot2@email.com', - firstname: 'Test Hubspot2', - }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + traits: { email: 'testhubspot2@email.com', firstname: 'Test Hubspot2' }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', locale: 'en-GB', ip: '0.0.0.0', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, }, type: 'track', messageId: '08829772-d991-427c-b976-b4c4f4430b4e', @@ -256,14 +196,9 @@ export const data = [ }, sentAt: '2019-10-14T11:15:53.296Z', }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, destination: { - Config: { - apiKey: 'dummy-apikey', - hubID: 'dummy-hubId', - }, + Config: { apiKey: 'dummy-apikey', hubID: 'dummy-hubId' }, secretConfig: {}, ID: '1mMy5cqbtfuaKZv1IhVQKnBdVwe', name: 'Hubspot', @@ -291,24 +226,14 @@ export const data = [ method: 'POST', endpoint: 'https://api.hubapi.com/contacts/v1/contact/createOrUpdate/email/testhubspot2@email.com', - headers: { - 'Content-Type': 'application/json', - }, + headers: { 'Content-Type': 'application/json' }, userId: '00000000000000000000000000', - params: { - hapikey: 'dummy-apikey', - }, + params: { hapikey: 'dummy-apikey' }, body: { JSON: { properties: [ - { - property: 'email', - value: 'testhubspot3@email.com', - }, - { - property: 'firstname', - value: 'Test Hubspot3', - }, + { property: 'email', value: 'testhubspot3@email.com' }, + { property: 'firstname', value: 'Test Hubspot3' }, ], }, XML: {}, @@ -317,14 +242,9 @@ export const data = [ files: {}, statusCode: 200, }, - metadata: { - jobId: 3, - }, + metadata: { jobId: 3, userId: 'u1' }, destination: { - Config: { - apiKey: 'dummy-apikey', - hubID: 'dummy-hubId', - }, + Config: { apiKey: 'dummy-apikey', hubID: 'dummy-hubId' }, secretConfig: {}, ID: '1mMy5cqbtfuaKZv1IhVQKnBdVwe', name: 'Hubspot', @@ -360,47 +280,26 @@ export const data = [ firstname: 'Test Hubspot4', anonymousId: '4444', }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', locale: 'en-GB', ip: '0.0.0.0', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, - page: { - path: '', - referrer: '', - search: '', - title: '', - url: '', - }, + os: { name: '', version: '' }, + screen: { density: 2 }, + page: { path: '', referrer: '', search: '', title: '', url: '' }, }, type: 'identify', messageId: '50360b9c-ea8d-409c-b672-c9230f91cce5', originalTimestamp: '2019-10-15T09:35:31.288Z', anonymousId: '00000000000000000000000000', userId: '12345', - integrations: { - All: true, - }, + integrations: { All: true }, sentAt: '2019-10-14T09:03:22.563Z', }, - metadata: { - jobId: 4, - }, + metadata: { jobId: 4, userId: 'u1' }, destination: { - Config: { - apiKey: 'rate-limit-id', - hubID: 'dummy-hubId', - }, + Config: { apiKey: 'rate-limit-id', hubID: 'dummy-hubId' }, secretConfig: {}, ID: '1mMy5cqbtfuaKZv1IhVQKnBdVwe', name: 'Hubspot', @@ -438,12 +337,8 @@ export const data = [ type: 'REST', method: 'POST', endpoint: 'https://api.hubapi.com/contacts/v1/contact/batch/', - headers: { - 'Content-Type': 'application/json', - }, - params: { - hapikey: 'dummy-apikey', - }, + headers: { 'Content-Type': 'application/json' }, + params: { hapikey: 'dummy-apikey' }, body: { JSON: {}, JSON_ARRAY: { @@ -456,23 +351,14 @@ export const data = [ files: {}, }, metadata: [ - { - jobId: 3, - }, - { - jobId: 1, - }, - { - jobId: 4, - }, + { jobId: 3, userId: 'u1' }, + { jobId: 1, userId: 'u1' }, + { jobId: 4, userId: 'u1' }, ], batched: true, statusCode: 200, destination: { - Config: { - apiKey: 'dummy-apikey', - hubID: 'dummy-hubId', - }, + Config: { apiKey: 'dummy-apikey', hubID: 'dummy-hubId' }, secretConfig: {}, ID: '1mMy5cqbtfuaKZv1IhVQKnBdVwe', name: 'Hubspot', @@ -499,35 +385,21 @@ export const data = [ type: 'REST', method: 'GET', endpoint: 'https://track.hubspot.com/v1/event', - headers: { - 'Content-Type': 'application/json', - }, + headers: { 'Content-Type': 'application/json' }, params: { _a: 'dummy-hubId', _n: 'test track event HS', email: 'testhubspot2@email.com', firstname: 'Test Hubspot2', }, - body: { - JSON: {}, - JSON_ARRAY: {}, - XML: {}, - FORM: {}, - }, + body: { JSON: {}, JSON_ARRAY: {}, XML: {}, FORM: {} }, files: {}, }, - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], batched: false, statusCode: 200, destination: { - Config: { - apiKey: 'dummy-apikey', - hubID: 'dummy-hubId', - }, + Config: { apiKey: 'dummy-apikey', hubID: 'dummy-hubId' }, secretConfig: {}, ID: '1mMy5cqbtfuaKZv1IhVQKnBdVwe', name: 'Hubspot', @@ -569,11 +441,7 @@ export const data = [ context: { mappedToDestination: true, externalId: [ - { - identifierType: 'email', - id: 'testhubspot2@email.com', - type: 'HS-lead', - }, + { identifierType: 'email', id: 'testhubspot2@email.com', type: 'HS-lead' }, ], sources: { job_id: '24c5HJxHomh6YCngEOCgjS5r1KX/Syncher', @@ -585,25 +453,16 @@ export const data = [ }, }, type: 'identify', - traits: { - firstname: 'Test Hubspot', - anonymousId: '12345', - country: 'India', - }, + traits: { firstname: 'Test Hubspot', anonymousId: '12345', country: 'India' }, messageId: '50360b9c-ea8d-409c-b672-c9230f91cce5', originalTimestamp: '2019-10-15T09:35:31.288Z', anonymousId: '00000000000000000000000000', userId: '12345', - integrations: { - All: true, - }, + integrations: { All: true }, sentAt: '2019-10-14T09:03:22.563Z', }, destination: { - Config: { - apiKey: 'dummy-apikey', - hubID: 'dummy-hubId', - }, + Config: { apiKey: 'dummy-apikey', hubID: 'dummy-hubId' }, secretConfig: {}, ID: '1mMy5cqbtfuaKZv1IhVQKnBdVwe', name: 'Hubspot', @@ -623,9 +482,7 @@ export const data = [ isConnectionEnabled: true, isProcessorEnabled: true, }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, }, { message: { @@ -633,11 +490,7 @@ export const data = [ context: { mappedToDestination: true, externalId: [ - { - identifierType: 'email', - id: 'testhubspot@email.com', - type: 'HS-lead', - }, + { identifierType: 'email', id: 'testhubspot@email.com', type: 'HS-lead' }, ], sources: { job_id: '24c5HJxHomh6YCngEOCgjS5r1KX/Syncher', @@ -649,25 +502,16 @@ export const data = [ }, }, type: 'identify', - traits: { - firstname: 'Test Hubspot 1', - anonymousId: '123451', - country: 'India 1', - }, + traits: { firstname: 'Test Hubspot 1', anonymousId: '123451', country: 'India 1' }, messageId: '50360b9c-ea8d-409c-b672-c9230f91cce5', originalTimestamp: '2019-10-15T09:35:31.288Z', anonymousId: '00000000000000000000000000', userId: '12345', - integrations: { - All: true, - }, + integrations: { All: true }, sentAt: '2019-10-14T09:03:22.563Z', }, destination: { - Config: { - apiKey: 'dummy-apikey', - hubID: 'dummy-hubId', - }, + Config: { apiKey: 'dummy-apikey', hubID: 'dummy-hubId' }, secretConfig: {}, ID: '1mMy5cqbtfuaKZv1IhVQKnBdVwe', name: 'Hubspot', @@ -687,9 +531,7 @@ export const data = [ isConnectionEnabled: true, isProcessorEnabled: true, }, - metadata: { - jobId: 3, - }, + metadata: { jobId: 3, userId: 'u1' }, }, ], destType: 'hs', @@ -708,12 +550,8 @@ export const data = [ type: 'REST', method: 'POST', endpoint: 'https://api.hubapi.com/crm/v3/objects/lead/batch/create', - headers: { - 'Content-Type': 'application/json', - }, - params: { - hapikey: 'dummy-apikey', - }, + headers: { 'Content-Type': 'application/json' }, + params: { hapikey: 'dummy-apikey' }, body: { JSON: { inputs: [ @@ -733,18 +571,11 @@ export const data = [ }, files: {}, }, - metadata: [ - { - jobId: 3, - }, - ], + metadata: [{ jobId: 3, userId: 'u1' }], batched: true, statusCode: 200, destination: { - Config: { - apiKey: 'dummy-apikey', - hubID: 'dummy-hubId', - }, + Config: { apiKey: 'dummy-apikey', hubID: 'dummy-hubId' }, secretConfig: {}, ID: '1mMy5cqbtfuaKZv1IhVQKnBdVwe', name: 'Hubspot', @@ -771,12 +602,8 @@ export const data = [ type: 'REST', method: 'POST', endpoint: 'https://api.hubapi.com/crm/v3/objects/lead/batch/update', - headers: { - 'Content-Type': 'application/json', - }, - params: { - hapikey: 'dummy-apikey', - }, + headers: { 'Content-Type': 'application/json' }, + params: { hapikey: 'dummy-apikey' }, body: { JSON: { inputs: [ @@ -797,18 +624,11 @@ export const data = [ }, files: {}, }, - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], batched: true, statusCode: 200, destination: { - Config: { - apiKey: 'dummy-apikey', - hubID: 'dummy-hubId', - }, + Config: { apiKey: 'dummy-apikey', hubID: 'dummy-hubId' }, secretConfig: {}, ID: '1mMy5cqbtfuaKZv1IhVQKnBdVwe', name: 'Hubspot', @@ -850,11 +670,7 @@ export const data = [ context: { mappedToDestination: true, externalId: [ - { - identifierType: 'email', - id: 'testhubspot2@email.com', - type: 'HS-lead', - }, + { identifierType: 'email', id: 'testhubspot2@email.com', type: 'HS-lead' }, ], sources: { job_id: '24c5HJxHomh6YCngEOCgjS5r1KX/Syncher', @@ -866,18 +682,12 @@ export const data = [ }, }, type: 'identify', - traits: { - firstname: 'Test Hubspot', - anonymousId: '12345', - country: 'India', - }, + traits: { firstname: 'Test Hubspot', anonymousId: '12345', country: 'India' }, messageId: '50360b9c-ea8d-409c-b672-c9230f91cce5', originalTimestamp: '2019-10-15T09:35:31.288Z', anonymousId: '00000000000000000000000000', userId: '12345', - integrations: { - All: true, - }, + integrations: { All: true }, sentAt: '2019-10-14T09:03:22.563Z', }, destination: { @@ -893,42 +703,22 @@ export const data = [ rsEventName: 'Purchase', hubspotEventName: 'pedummy-hubId_rs_hub_test', eventProperties: [ - { - from: 'Revenue', - to: 'value', - }, - { - from: 'Price', - to: 'cost', - }, + { from: 'Revenue', to: 'value' }, + { from: 'Price', to: 'cost' }, ], }, { rsEventName: 'Order Complete', hubspotEventName: 'pedummy-hubId_rs_hub_chair', eventProperties: [ - { - from: 'firstName', - to: 'first_name', - }, - { - from: 'lastName', - to: 'last_name', - }, + { from: 'firstName', to: 'first_name' }, + { from: 'lastName', to: 'last_name' }, ], }, ], eventFilteringOption: 'disable', - blacklistedEvents: [ - { - eventName: '', - }, - ], - whitelistedEvents: [ - { - eventName: '', - }, - ], + blacklistedEvents: [{ eventName: '' }], + whitelistedEvents: [{ eventName: '' }], }, secretConfig: {}, ID: '1mMy5cqbtfuaKZv1IhVQKnBdVwe', @@ -949,9 +739,7 @@ export const data = [ isConnectionEnabled: true, isProcessorEnabled: true, }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, }, { message: { @@ -959,11 +747,7 @@ export const data = [ context: { mappedToDestination: true, externalId: [ - { - identifierType: 'email', - id: 'testhubspot@email.com', - type: 'HS-lead', - }, + { identifierType: 'email', id: 'testhubspot@email.com', type: 'HS-lead' }, ], sources: { job_id: '24c5HJxHomh6YCngEOCgjS5r1KX/Syncher', @@ -975,18 +759,12 @@ export const data = [ }, }, type: 'identify', - traits: { - firstname: 'Test Hubspot 1', - anonymousId: '123451', - country: 'India 1', - }, + traits: { firstname: 'Test Hubspot 1', anonymousId: '123451', country: 'India 1' }, messageId: '50360b9c-ea8d-409c-b672-c9230f91cce5', originalTimestamp: '2019-10-15T09:35:31.288Z', anonymousId: '00000000000000000000000000', userId: '12345', - integrations: { - All: true, - }, + integrations: { All: true }, sentAt: '2019-10-14T09:03:22.563Z', }, destination: { @@ -1002,42 +780,22 @@ export const data = [ rsEventName: 'Purchase', hubspotEventName: 'pedummy-hubId_rs_hub_test', eventProperties: [ - { - from: 'Revenue', - to: 'value', - }, - { - from: 'Price', - to: 'cost', - }, + { from: 'Revenue', to: 'value' }, + { from: 'Price', to: 'cost' }, ], }, { rsEventName: 'Order Complete', hubspotEventName: 'pedummy-hubId_rs_hub_chair', eventProperties: [ - { - from: 'firstName', - to: 'first_name', - }, - { - from: 'lastName', - to: 'last_name', - }, + { from: 'firstName', to: 'first_name' }, + { from: 'lastName', to: 'last_name' }, ], }, ], eventFilteringOption: 'disable', - blacklistedEvents: [ - { - eventName: '', - }, - ], - whitelistedEvents: [ - { - eventName: '', - }, - ], + blacklistedEvents: [{ eventName: '' }], + whitelistedEvents: [{ eventName: '' }], }, secretConfig: {}, ID: '1mMy5cqbtfuaKZv1IhVQKnBdVwe', @@ -1058,9 +816,7 @@ export const data = [ isConnectionEnabled: true, isProcessorEnabled: true, }, - metadata: { - jobId: 3, - }, + metadata: { jobId: 3, userId: 'u1' }, }, { message: { @@ -1096,9 +852,7 @@ export const data = [ originalTimestamp: '2019-10-15T09:35:31.288Z', anonymousId: '00000000000000000000000000', userId: '12345', - integrations: { - All: true, - }, + integrations: { All: true }, sentAt: '2019-10-14T09:03:22.563Z', }, destination: { @@ -1114,42 +868,22 @@ export const data = [ rsEventName: 'Purchase', hubspotEventName: 'pedummy-hubId_rs_hub_test', eventProperties: [ - { - from: 'Revenue', - to: 'value', - }, - { - from: 'Price', - to: 'cost', - }, + { from: 'Revenue', to: 'value' }, + { from: 'Price', to: 'cost' }, ], }, { rsEventName: 'Order Complete', hubspotEventName: 'pedummy-hubId_rs_hub_chair', eventProperties: [ - { - from: 'firstName', - to: 'first_name', - }, - { - from: 'lastName', - to: 'last_name', - }, + { from: 'firstName', to: 'first_name' }, + { from: 'lastName', to: 'last_name' }, ], }, ], eventFilteringOption: 'disable', - blacklistedEvents: [ - { - eventName: '', - }, - ], - whitelistedEvents: [ - { - eventName: '', - }, - ], + blacklistedEvents: [{ eventName: '' }], + whitelistedEvents: [{ eventName: '' }], }, secretConfig: {}, ID: '1mMy5cqbtfuaKZv1IhVQKnBdVwe', @@ -1170,9 +904,7 @@ export const data = [ isConnectionEnabled: true, isProcessorEnabled: true, }, - metadata: { - jobId: 4, - }, + metadata: { jobId: 4, userId: 'u1' }, }, ], destType: 'hs', @@ -1227,12 +959,8 @@ export const data = [ files: {}, }, metadata: [ - { - jobId: 3, - }, - { - jobId: 4, - }, + { jobId: 3, userId: 'u1' }, + { jobId: 4, userId: 'u1' }, ], batched: true, statusCode: 200, @@ -1249,42 +977,22 @@ export const data = [ rsEventName: 'Purchase', hubspotEventName: 'pedummy-hubId_rs_hub_test', eventProperties: [ - { - from: 'Revenue', - to: 'value', - }, - { - from: 'Price', - to: 'cost', - }, + { from: 'Revenue', to: 'value' }, + { from: 'Price', to: 'cost' }, ], }, { rsEventName: 'Order Complete', hubspotEventName: 'pedummy-hubId_rs_hub_chair', eventProperties: [ - { - from: 'firstName', - to: 'first_name', - }, - { - from: 'lastName', - to: 'last_name', - }, + { from: 'firstName', to: 'first_name' }, + { from: 'lastName', to: 'last_name' }, ], }, ], eventFilteringOption: 'disable', - blacklistedEvents: [ - { - eventName: '', - }, - ], - whitelistedEvents: [ - { - eventName: '', - }, - ], + blacklistedEvents: [{ eventName: '' }], + whitelistedEvents: [{ eventName: '' }], }, secretConfig: {}, ID: '1mMy5cqbtfuaKZv1IhVQKnBdVwe', @@ -1337,11 +1045,7 @@ export const data = [ }, files: {}, }, - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], batched: true, statusCode: 200, destination: { @@ -1357,42 +1061,22 @@ export const data = [ rsEventName: 'Purchase', hubspotEventName: 'pedummy-hubId_rs_hub_test', eventProperties: [ - { - from: 'Revenue', - to: 'value', - }, - { - from: 'Price', - to: 'cost', - }, + { from: 'Revenue', to: 'value' }, + { from: 'Price', to: 'cost' }, ], }, { rsEventName: 'Order Complete', hubspotEventName: 'pedummy-hubId_rs_hub_chair', eventProperties: [ - { - from: 'firstName', - to: 'first_name', - }, - { - from: 'lastName', - to: 'last_name', - }, + { from: 'firstName', to: 'first_name' }, + { from: 'lastName', to: 'last_name' }, ], }, ], eventFilteringOption: 'disable', - blacklistedEvents: [ - { - eventName: '', - }, - ], - whitelistedEvents: [ - { - eventName: '', - }, - ], + blacklistedEvents: [{ eventName: '' }], + whitelistedEvents: [{ eventName: '' }], }, secretConfig: {}, ID: '1mMy5cqbtfuaKZv1IhVQKnBdVwe', @@ -1444,42 +1128,24 @@ export const data = [ firstname: 'Test Hubspot22', anonymousId: '4444', }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', locale: 'en-GB', ip: '0.0.0.0', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, - page: { - path: '', - referrer: '', - search: '', - title: '', - url: '', - }, + os: { name: '', version: '' }, + screen: { density: 2 }, + page: { path: '', referrer: '', search: '', title: '', url: '' }, }, type: 'identify', messageId: '50360b9c-ea8d-409c-b672-c9230f91cce5', originalTimestamp: '2019-10-15T09:35:31.288Z', anonymousId: '00000000000000000000000000', userId: '12345', - integrations: { - All: true, - }, + integrations: { All: true }, sentAt: '2019-10-14T09:03:22.563Z', }, - metadata: { - jobId: 1, - }, + metadata: { jobId: 1, userId: 'u1' }, destination: { Config: { authorizationType: 'newPrivateAppApi', @@ -1493,42 +1159,22 @@ export const data = [ rsEventName: 'Purchase', hubspotEventName: 'pedummy-hubId_rs_hub_test', eventProperties: [ - { - from: 'Revenue', - to: 'value', - }, - { - from: 'Price', - to: 'cost', - }, + { from: 'Revenue', to: 'value' }, + { from: 'Price', to: 'cost' }, ], }, { rsEventName: 'Order Complete', hubspotEventName: 'pedummy-hubId_rs_hub_chair', eventProperties: [ - { - from: 'firstName', - to: 'first_name', - }, - { - from: 'lastName', - to: 'last_name', - }, + { from: 'firstName', to: 'first_name' }, + { from: 'lastName', to: 'last_name' }, ], }, ], eventFilteringOption: 'disable', - blacklistedEvents: [ - { - eventName: '', - }, - ], - whitelistedEvents: [ - { - eventName: '', - }, - ], + blacklistedEvents: [{ eventName: '' }], + whitelistedEvents: [{ eventName: '' }], }, secretConfig: {}, ID: '1mMy5cqbtfuaKZv1IhVQKnBdVwe', @@ -1565,42 +1211,24 @@ export const data = [ firstname: 'Test Hubspot44', anonymousId: '4444', }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', locale: 'en-GB', ip: '0.0.0.0', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, - page: { - path: '', - referrer: '', - search: '', - title: '', - url: '', - }, + os: { name: '', version: '' }, + screen: { density: 2 }, + page: { path: '', referrer: '', search: '', title: '', url: '' }, }, type: 'identify', messageId: '50360b9c-ea8d-409c-b672-c9230f91cce5', originalTimestamp: '2019-10-15T09:35:31.288Z', anonymousId: '00000000000000000000000000', userId: '12345', - integrations: { - All: true, - }, + integrations: { All: true }, sentAt: '2019-10-14T09:03:22.563Z', }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, destination: { Config: { authorizationType: 'newPrivateAppApi', @@ -1614,42 +1242,22 @@ export const data = [ rsEventName: 'Purchase', hubspotEventName: 'pedummy-hubId_rs_hub_test', eventProperties: [ - { - from: 'Revenue', - to: 'value', - }, - { - from: 'Price', - to: 'cost', - }, + { from: 'Revenue', to: 'value' }, + { from: 'Price', to: 'cost' }, ], }, { rsEventName: 'Order Complete', hubspotEventName: 'pedummy-hubId_rs_hub_chair', eventProperties: [ - { - from: 'firstName', - to: 'first_name', - }, - { - from: 'lastName', - to: 'last_name', - }, + { from: 'firstName', to: 'first_name' }, + { from: 'lastName', to: 'last_name' }, ], }, ], eventFilteringOption: 'disable', - blacklistedEvents: [ - { - eventName: '', - }, - ], - whitelistedEvents: [ - { - eventName: '', - }, - ], + blacklistedEvents: [{ eventName: '' }], + whitelistedEvents: [{ eventName: '' }], }, secretConfig: {}, ID: '1mMy5cqbtfuaKZv1IhVQKnBdVwe', @@ -1685,13 +1293,9 @@ export const data = [ ], }, event: 'Purchase', - properties: { - Revenue: 'name1', - }, - }, - metadata: { - jobId: 3, + properties: { Revenue: 'name1' }, }, + metadata: { jobId: 3, userId: 'u1' }, destination: { Config: { authorizationType: 'newPrivateAppApi', @@ -1705,42 +1309,22 @@ export const data = [ rsEventName: 'Purchase', hubspotEventName: 'pedummy-hubId_rs_hub_test', eventProperties: [ - { - from: 'Revenue', - to: 'value', - }, - { - from: 'Price', - to: 'cost', - }, + { from: 'Revenue', to: 'value' }, + { from: 'Price', to: 'cost' }, ], }, { rsEventName: 'Order Complete', hubspotEventName: 'pedummy-hubId_rs_hub_chair', eventProperties: [ - { - from: 'firstName', - to: 'first_name', - }, - { - from: 'lastName', - to: 'last_name', - }, + { from: 'firstName', to: 'first_name' }, + { from: 'lastName', to: 'last_name' }, ], }, ], eventFilteringOption: 'disable', - blacklistedEvents: [ - { - eventName: '', - }, - ], - whitelistedEvents: [ - { - eventName: '', - }, - ], + blacklistedEvents: [{ eventName: '' }], + whitelistedEvents: [{ eventName: '' }], }, secretConfig: {}, ID: '1mMy5cqbtfuaKZv1IhVQKnBdVwe', @@ -1777,42 +1361,24 @@ export const data = [ firstname: 'Test Hubspot22', anonymousId: '4444', }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', locale: 'en-GB', ip: '0.0.0.0', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, - page: { - path: '', - referrer: '', - search: '', - title: '', - url: '', - }, + os: { name: '', version: '' }, + screen: { density: 2 }, + page: { path: '', referrer: '', search: '', title: '', url: '' }, }, type: 'identify', messageId: '50360b9c-ea8d-409c-b672-c9230f91cce5', originalTimestamp: '2019-10-15T09:35:31.288Z', anonymousId: '00000000000000000000000000', userId: '12345', - integrations: { - All: true, - }, + integrations: { All: true }, sentAt: '2019-10-14T09:03:22.563Z', }, - metadata: { - jobId: 4, - }, + metadata: { jobId: 4, userId: 'u1' }, destination: { Config: { authorizationType: 'newPrivateAppApi', @@ -1826,42 +1392,22 @@ export const data = [ rsEventName: 'Purchase', hubspotEventName: 'pedummy-hubId_rs_hub_test', eventProperties: [ - { - from: 'Revenue', - to: 'value', - }, - { - from: 'Price', - to: 'cost', - }, + { from: 'Revenue', to: 'value' }, + { from: 'Price', to: 'cost' }, ], }, { rsEventName: 'Order Complete', hubspotEventName: 'pedummy-hubId_rs_hub_chair', eventProperties: [ - { - from: 'firstName', - to: 'first_name', - }, - { - from: 'lastName', - to: 'last_name', - }, + { from: 'firstName', to: 'first_name' }, + { from: 'lastName', to: 'last_name' }, ], }, ], eventFilteringOption: 'disable', - blacklistedEvents: [ - { - eventName: '', - }, - ], - whitelistedEvents: [ - { - eventName: '', - }, - ], + blacklistedEvents: [{ eventName: '' }], + whitelistedEvents: [{ eventName: '' }], }, secretConfig: {}, ID: '1mMy5cqbtfuaKZv1IhVQKnBdVwe', @@ -1898,42 +1444,24 @@ export const data = [ firstname: 'Test Hubspot44', anonymousId: '4444', }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', locale: 'en-GB', ip: '0.0.0.0', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, - page: { - path: '', - referrer: '', - search: '', - title: '', - url: '', - }, + os: { name: '', version: '' }, + screen: { density: 2 }, + page: { path: '', referrer: '', search: '', title: '', url: '' }, }, type: 'identify', messageId: '50360b9c-ea8d-409c-b672-c9230f91cce5', originalTimestamp: '2019-10-15T09:35:31.288Z', anonymousId: '00000000000000000000000000', userId: '12345', - integrations: { - All: true, - }, + integrations: { All: true }, sentAt: '2019-10-14T09:03:22.563Z', }, - metadata: { - jobId: 5, - }, + metadata: { jobId: 5, userId: 'u1' }, destination: { Config: { authorizationType: 'newPrivateAppApi', @@ -1947,42 +1475,22 @@ export const data = [ rsEventName: 'Purchase', hubspotEventName: 'pedummy-hubId_rs_hub_test', eventProperties: [ - { - from: 'Revenue', - to: 'value', - }, - { - from: 'Price', - to: 'cost', - }, + { from: 'Revenue', to: 'value' }, + { from: 'Price', to: 'cost' }, ], }, { rsEventName: 'Order Complete', hubspotEventName: 'pedummy-hubId_rs_hub_chair', eventProperties: [ - { - from: 'firstName', - to: 'first_name', - }, - { - from: 'lastName', - to: 'last_name', - }, + { from: 'firstName', to: 'first_name' }, + { from: 'lastName', to: 'last_name' }, ], }, ], eventFilteringOption: 'disable', - blacklistedEvents: [ - { - eventName: '', - }, - ], - whitelistedEvents: [ - { - eventName: '', - }, - ], + blacklistedEvents: [{ eventName: '' }], + whitelistedEvents: [{ eventName: '' }], }, secretConfig: {}, ID: '1mMy5cqbtfuaKZv1IhVQKnBdVwe', @@ -2029,17 +1537,9 @@ export const data = [ body: { JSON: { inputs: [ + { properties: { email: 'noname@email.com', firstname: 'Test Hubspot44' } }, { - properties: { - email: 'noname@email.com', - firstname: 'Test Hubspot44', - }, - }, - { - properties: { - email: 'testhubspot@email.com', - firstname: 'Test Hubspot44', - }, + properties: { email: 'testhubspot@email.com', firstname: 'Test Hubspot44' }, }, ], }, @@ -2050,18 +1550,10 @@ export const data = [ files: {}, }, metadata: [ - { - jobId: 1, - }, - { - jobId: 2, - }, - { - jobId: 4, - }, - { - jobId: 5, - }, + { jobId: 1, userId: 'u1' }, + { jobId: 2, userId: 'u1' }, + { jobId: 4, userId: 'u1' }, + { jobId: 5, userId: 'u1' }, ], batched: true, statusCode: 200, @@ -2078,42 +1570,22 @@ export const data = [ rsEventName: 'Purchase', hubspotEventName: 'pedummy-hubId_rs_hub_test', eventProperties: [ - { - from: 'Revenue', - to: 'value', - }, - { - from: 'Price', - to: 'cost', - }, + { from: 'Revenue', to: 'value' }, + { from: 'Price', to: 'cost' }, ], }, { rsEventName: 'Order Complete', hubspotEventName: 'pedummy-hubId_rs_hub_chair', eventProperties: [ - { - from: 'firstName', - to: 'first_name', - }, - { - from: 'lastName', - to: 'last_name', - }, + { from: 'firstName', to: 'first_name' }, + { from: 'lastName', to: 'last_name' }, ], }, ], eventFilteringOption: 'disable', - blacklistedEvents: [ - { - eventName: '', - }, - ], - whitelistedEvents: [ - { - eventName: '', - }, - ], + blacklistedEvents: [{ eventName: '' }], + whitelistedEvents: [{ eventName: '' }], }, secretConfig: {}, ID: '1mMy5cqbtfuaKZv1IhVQKnBdVwe', @@ -2150,9 +1622,7 @@ export const data = [ JSON: { email: 'osvaldocostaferreira98@gmail.com', eventName: 'pedummy-hubId_rs_hub_test', - properties: { - value: 'name1', - }, + properties: { value: 'name1' }, }, JSON_ARRAY: {}, XML: {}, @@ -2160,11 +1630,7 @@ export const data = [ }, files: {}, }, - metadata: [ - { - jobId: 3, - }, - ], + metadata: [{ jobId: 3, userId: 'u1' }], batched: false, statusCode: 200, destination: { @@ -2180,42 +1646,22 @@ export const data = [ rsEventName: 'Purchase', hubspotEventName: 'pedummy-hubId_rs_hub_test', eventProperties: [ - { - from: 'Revenue', - to: 'value', - }, - { - from: 'Price', - to: 'cost', - }, + { from: 'Revenue', to: 'value' }, + { from: 'Price', to: 'cost' }, ], }, { rsEventName: 'Order Complete', hubspotEventName: 'pedummy-hubId_rs_hub_chair', eventProperties: [ - { - from: 'firstName', - to: 'first_name', - }, - { - from: 'lastName', - to: 'last_name', - }, + { from: 'firstName', to: 'first_name' }, + { from: 'lastName', to: 'last_name' }, ], }, ], eventFilteringOption: 'disable', - blacklistedEvents: [ - { - eventName: '', - }, - ], - whitelistedEvents: [ - { - eventName: '', - }, - ], + blacklistedEvents: [{ eventName: '' }], + whitelistedEvents: [{ eventName: '' }], }, secretConfig: {}, ID: '1mMy5cqbtfuaKZv1IhVQKnBdVwe', diff --git a/test/integrations/destinations/impact/router/data.ts b/test/integrations/destinations/impact/router/data.ts index 1e9cd9cc6e..e9120ae03d 100644 --- a/test/integrations/destinations/impact/router/data.ts +++ b/test/integrations/destinations/impact/router/data.ts @@ -18,18 +18,8 @@ export const data = [ impactAppId: '2323', eventTypeId: '56446', enableEmailHashing: true, - rudderToImpactProperty: [ - { - from: 'profit', - to: 'Money1', - }, - ], - productsMapping: [ - { - from: 'sku', - to: 'ItemSku', - }, - ], + rudderToImpactProperty: [{ from: 'profit', to: 'Money1' }], + productsMapping: [{ from: 'sku', to: 'ItemSku' }], enableIdentifyEvents: true, enablePageEvents: false, enableScreenEvents: false, @@ -37,40 +27,24 @@ export const data = [ installEventNames: [{ eventName: 'App Installed' }], }, }, - metadata: { - jobId: 1, - }, + metadata: { jobId: 1, userId: 'u1' }, message: { type: 'identify', sentAt: '2021-01-03T17:02:53.195Z', userId: 'user123', channel: 'web', context: { - os: { - name: 'android', - version: '1.12.3', - }, + os: { name: 'android', version: '1.12.3' }, app: { name: 'RudderLabs JavaScript SDK', build: '1.0.0', version: '1.1.11', namespace: 'com.rudderlabs.javascript', }, - traits: { - email: 'user123@email.com', - phone: '+917836362334', - userId: 'user123', - }, + traits: { email: 'user123@email.com', phone: '+917836362334', userId: 'user123' }, locale: 'en-US', - device: { - token: 'token', - id: 'id', - type: 'ios', - }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.1.11', - }, + device: { token: 'token', id: 'id', type: 'ios' }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.11' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', }, @@ -103,10 +77,7 @@ export const data = [ ], }, context: { - os: { - name: '', - version: '', - }, + os: { name: '', version: '' }, app: { name: 'RudderLabs JavaScript SDK', build: '1.0.0', @@ -114,13 +85,8 @@ export const data = [ namespace: 'com.rudderlabs.javascript', }, locale: 'en-US', - screen: { - density: 2, - }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.1.11', - }, + screen: { density: 2 }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.11' }, campaign: {}, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', @@ -130,9 +96,7 @@ export const data = [ anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', originalTimestamp: 'NOW', }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, destination: { Config: { accountSID: 'dfsgertrtff3erfc34rfwf', @@ -141,18 +105,8 @@ export const data = [ impactAppId: '2323', eventTypeId: '56446', enableEmailHashing: true, - rudderToImpactProperty: [ - { - from: 'properties.profit', - to: 'Money1', - }, - ], - productsMapping: [ - { - from: 'variant', - to: 'ItemCategory', - }, - ], + rudderToImpactProperty: [{ from: 'properties.profit', to: 'Money1' }], + productsMapping: [{ from: 'variant', to: 'ItemCategory' }], enableIdentifyEvents: false, enablePageEvents: false, enableScreenEvents: false, @@ -208,11 +162,7 @@ export const data = [ version: '1', endpoint: 'https://trkapi.impact.com/PageLoad', }, - metadata: [ - { - jobId: 1, - }, - ], + metadata: [{ jobId: 1, userId: 'u1' }], batched: false, statusCode: 200, destination: { @@ -223,18 +173,8 @@ export const data = [ impactAppId: '2323', eventTypeId: '56446', enableEmailHashing: true, - rudderToImpactProperty: [ - { - from: 'profit', - to: 'Money1', - }, - ], - productsMapping: [ - { - from: 'sku', - to: 'ItemSku', - }, - ], + rudderToImpactProperty: [{ from: 'profit', to: 'Money1' }], + productsMapping: [{ from: 'sku', to: 'ItemSku' }], enableIdentifyEvents: true, enablePageEvents: false, enableScreenEvents: false, @@ -287,11 +227,7 @@ export const data = [ endpoint: 'https://api.impact.com/Advertisers/dfsgertrtff3erfc34rfwf/Conversions', }, ], - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], batched: false, statusCode: 200, destination: { @@ -302,18 +238,8 @@ export const data = [ impactAppId: '2323', eventTypeId: '56446', enableEmailHashing: true, - rudderToImpactProperty: [ - { - from: 'properties.profit', - to: 'Money1', - }, - ], - productsMapping: [ - { - from: 'variant', - to: 'ItemCategory', - }, - ], + rudderToImpactProperty: [{ from: 'properties.profit', to: 'Money1' }], + productsMapping: [{ from: 'variant', to: 'ItemCategory' }], enableIdentifyEvents: false, enablePageEvents: false, enableScreenEvents: false, diff --git a/test/integrations/destinations/indicative/router/data.ts b/test/integrations/destinations/indicative/router/data.ts index 037d5d5c3d..88e0665e62 100644 --- a/test/integrations/destinations/indicative/router/data.ts +++ b/test/integrations/destinations/indicative/router/data.ts @@ -10,14 +10,8 @@ export const data = [ body: { input: [ { - destination: { - Config: { - apiKey: 'abcde', - }, - }, - metadata: { - jobId: 2, - }, + destination: { Config: { apiKey: 'abcde' } }, + metadata: { jobId: 2, userId: 'u1' }, message: { anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', context: { @@ -27,25 +21,15 @@ export const data = [ model: 'Redmi 6', name: 'xiaomi', }, - network: { - carrier: 'Banglalink', - }, - os: { - name: 'android', - version: '8.1.0', - }, + network: { carrier: 'Banglalink' }, + os: { name: 'android', version: '8.1.0' }, traits: { - address: { - city: 'Dhaka', - country: 'Bangladesh', - }, + address: { city: 'Dhaka', country: 'Bangladesh' }, anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', }, }, event: 'spin_result', - integrations: { - AM: true, - }, + integrations: { AM: true }, message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', properties: { additional_bet_index: 0, @@ -90,14 +74,8 @@ export const data = [ }, }, { - destination: { - Config: { - apiKey: 'abcde', - }, - }, - metadata: { - jobId: 2, - }, + destination: { Config: { apiKey: 'abcde' } }, + metadata: { jobId: 3, userId: 'u1' }, message: { channel: 'web', context: { @@ -107,21 +85,13 @@ export const data = [ namespace: 'com.rudderlabs.javascript', version: '1.0.0', }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', locale: 'en-US', ip: '0.0.0.0', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, }, messageId: '84e26acc-56a5-4835-8233-591137fca468', session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', @@ -140,9 +110,7 @@ export const data = [ street: '', }, }, - integrations: { - All: true, - }, + integrations: { All: true }, sentAt: '2019-10-14T09:03:22.563Z', }, }, @@ -220,18 +188,10 @@ export const data = [ userId: 'test_user_id', }, ], - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], batched: false, statusCode: 200, - destination: { - Config: { - apiKey: 'abcde', - }, - }, + destination: { Config: { apiKey: 'abcde' } }, }, { batchedRequest: [ @@ -280,11 +240,7 @@ export const data = [ }, params: {}, body: { - JSON: { - previousId: 'anon_id', - newId: '123456', - apiKey: 'abcde', - }, + JSON: { previousId: 'anon_id', newId: '123456', apiKey: 'abcde' }, XML: {}, JSON_ARRAY: {}, FORM: {}, @@ -293,18 +249,10 @@ export const data = [ userId: '123456', }, ], - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 3, userId: 'u1' }], batched: false, statusCode: 200, - destination: { - Config: { - apiKey: 'abcde', - }, - }, + destination: { Config: { apiKey: 'abcde' } }, }, ], }, diff --git a/test/integrations/destinations/intercom/dataDelivery/data.ts b/test/integrations/destinations/intercom/dataDelivery/data.ts index 23bcdc6af2..db7aafc963 100644 --- a/test/integrations/destinations/intercom/dataDelivery/data.ts +++ b/test/integrations/destinations/intercom/dataDelivery/data.ts @@ -1,90 +1,91 @@ export const data = [ { - "name": "intercom", - "description": "Test 0", - "feature": "dataDelivery", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.intercom.io/users/test1", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer intercomApiKey", - "Accept": "application/json", - "Intercom-Version": "1.4" + name: 'intercom', + description: 'Test 0', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.intercom.io/users/test1', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer intercomApiKey', + Accept: 'application/json', + 'Intercom-Version': '1.4', }, - "params": {}, - "body": { - "JSON": { - "email": "test_1@test.com", - "phone": "9876543210", - "name": "Test Name", - "signed_up_at": 1601493060, - "last_seen_user_agent": "unknown", - "update_last_request_at": true, - "user_id": "test_user_id_1", - "custom_attributes": { - "anonymousId": "58b21c2d-f8d5-4410-a2d0-b268a26b7e33", - "key1": "value1", - "address.city": "Kolkata", - "address.state": "West Bengal", - "originalArray[0].nested_field": "nested value", - "originalArray[0].tags[0]": "tag_1", - "originalArray[0].tags[1]": "tag_2", - "originalArray[0].tags[2]": "tag_3", - "originalArray[1].nested_field": "nested value", - "originalArray[1].tags[0]": "tag_1", - "originalArray[2].nested_field": "nested value" - } + params: {}, + body: { + JSON: { + email: 'test_1@test.com', + phone: '9876543210', + name: 'Test Name', + signed_up_at: 1601493060, + last_seen_user_agent: 'unknown', + update_last_request_at: true, + user_id: 'test_user_id_1', + custom_attributes: { + anonymousId: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', + key1: 'value1', + 'address.city': 'Kolkata', + 'address.state': 'West Bengal', + 'originalArray[0].nested_field': 'nested value', + 'originalArray[0].tags[0]': 'tag_1', + 'originalArray[0].tags[1]': 'tag_2', + 'originalArray[0].tags[2]': 'tag_3', + 'originalArray[1].nested_field': 'nested value', + 'originalArray[1].tags[0]': 'tag_1', + 'originalArray[2].nested_field': 'nested value', + }, }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} + XML: {}, + JSON_ARRAY: {}, + FORM: {}, }, - "files": {}, - "userId": "58b21c2d-f8d5-4410-a2d0-b268a26b7e33" + files: {}, + userId: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', }, - "method": "POST" - } + method: 'POST', + }, }, - "output": { - "response": { - "status": 500, - "body": { - "output": { - "status": 500, - "message": "[Intercom Response Handler] Request failed for destination intercom with status: 408", - "destinationResponse": { - "response": { - "type": "error.list", - "request_id": "000on04msi4jpk7d3u60", - "errors": [ + output: { + response: { + status: 500, + body: { + output: { + status: 500, + message: + '[Intercom Response Handler] Request failed for destination intercom with status: 408', + destinationResponse: { + response: { + type: 'error.list', + request_id: '000on04msi4jpk7d3u60', + errors: [ { - "code": "Request Timeout", - "message": "The server would not wait any longer for the client" - } - ] + code: 'Request Timeout', + message: 'The server would not wait any longer for the client', + }, + ], }, - "status": 408 + status: 408, + }, + statTags: { + destType: 'INTERCOM', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'retryable', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', }, - "statTags": { - "destType": "INTERCOM", - "errorCategory": "network", - "destinationId": "Non-determininable", - "workspaceId": "Non-determininable", - "errorType": "retryable", - "feature": "dataDelivery", - "implementation": "native", - "module": "destination" - } - } - } - } - } - } -] \ No newline at end of file + }, + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/intercom/deleteUsers/data.ts b/test/integrations/destinations/intercom/deleteUsers/data.ts index a45af0a98f..58285ee683 100644 --- a/test/integrations/destinations/intercom/deleteUsers/data.ts +++ b/test/integrations/destinations/intercom/deleteUsers/data.ts @@ -19,7 +19,7 @@ export const data = [ }, ], config: { - apiKey: 'API_KEY', + apiKey: 'testApiKey', }, }, ], @@ -57,7 +57,7 @@ export const data = [ }, ], config: { - apiKey: 'API_KEY', + apiKey: 'testApiKey', }, }, ], @@ -140,7 +140,7 @@ export const data = [ body: [ { statusCode: 400, - error: 'api key for deletion not present', + error: 'The access token is not available', }, ], }, diff --git a/test/integrations/destinations/intercom/network.ts b/test/integrations/destinations/intercom/network.ts index e3bba3f260..74c861259f 100644 --- a/test/integrations/destinations/intercom/network.ts +++ b/test/integrations/destinations/intercom/network.ts @@ -8,7 +8,7 @@ const deleteNwData = [ }, headers: { Accept: 'application/json', - Authorization: 'Bearer API_KEY', + Authorization: 'Bearer testApiKey', 'Content-Type': 'application/json', }, }, @@ -35,7 +35,7 @@ const deleteNwData = [ }, headers: { Accept: 'application/json', - Authorization: 'Bearer API_KEY', + Authorization: 'Bearer testApiKey', 'Content-Type': 'application/json', }, }, @@ -56,7 +56,7 @@ const deleteNwData = [ }, headers: { Accept: 'application/json', - Authorization: 'Bearer API_KEY', + Authorization: 'Bearer testApiKey', 'Content-Type': 'application/json', }, }, @@ -77,7 +77,7 @@ const deleteNwData = [ }, headers: { Accept: 'application/json', - Authorization: 'Bearer API_KEY', + Authorization: 'Bearer testApiKey', 'Content-Type': 'application/json', }, }, @@ -89,6 +89,291 @@ const deleteNwData = [ }, }, }, + { + httpReq: { + method: 'post', + url: 'https://api.intercom.io/contacts/search', + data: { + query: { + operator: 'AND', + value: [{ field: 'email', operator: '=', value: 'test@rudderlabs.com' }], + }, + }, + headers: { + Accept: 'application/json', + Authorization: 'Bearer testApiKey', + 'Content-Type': 'application/json', + }, + }, + httpRes: { + status: 200, + statusText: 'ok', + data: { + type: 'list', + total_count: 0, + pages: { + type: 'pages', + page: 1, + per_page: 50, + total_pages: 0, + }, + data: [], + }, + }, + }, + { + httpReq: { + method: 'post', + url: 'https://api.intercom.io/contacts/search', + data: { + query: { + operator: 'AND', + value: [{ field: 'email', operator: '=', value: 'test+2@rudderlabs.com' }], + }, + }, + headers: { + Accept: 'application/json', + Authorization: 'Bearer testApiKey', + 'Content-Type': 'application/json', + }, + }, + httpRes: { + status: 200, + statusText: 'ok', + data: { + type: 'list', + total_count: 1, + pages: { + type: 'pages', + page: 1, + per_page: 50, + total_pages: 1, + }, + data: [ + { + type: 'contact', + id: '7070129940741e45d040', + workspace_id: 'rudderWorkspace', + external_id: 'user@2', + role: 'user', + email: 'test+2@rudderlabs.com', + }, + ], + }, + }, + }, + { + httpReq: { + method: 'post', + url: 'https://api.eu.intercom.io/contacts/search', + data: { + query: { + operator: 'AND', + value: [{ field: 'email', operator: '=', value: 'test+5@rudderlabs.com' }], + }, + }, + headers: { + Accept: 'application/json', + Authorization: 'Bearer testApiKey', + 'Content-Type': 'application/json', + }, + }, + httpRes: { + status: 200, + statusText: 'ok', + data: { + type: 'list', + total_count: 1, + pages: { + type: 'pages', + page: 1, + per_page: 50, + total_pages: 1, + }, + data: [ + { + type: 'contact', + id: '70701240741e45d040', + workspace_id: 'rudderWorkspace', + external_id: 'user@5', + role: 'user', + email: 'test+5@rudderlabs.com', + }, + ], + }, + }, + }, + { + httpReq: { + method: 'post', + url: 'https://api.intercom.io/contacts/search', + data: { + query: { + operator: 'AND', + value: [{ field: 'phone', operator: '=', value: '+91 9299999999' }], + }, + }, + headers: { + Accept: 'application/json', + Authorization: 'Bearer testApiKey', + 'Content-Type': 'application/json', + }, + }, + httpRes: { + status: 200, + statusText: 'ok', + data: { + type: 'list', + total_count: 1, + pages: { + type: 'pages', + page: 1, + per_page: 50, + total_pages: 1, + }, + data: [ + { + type: 'contact', + id: '7070129940741e45d040', + workspace_id: 'rudderWorkspace', + external_id: 'user@2', + role: 'user', + email: 'test+2@rudderlabs.com', + }, + ], + }, + }, + }, + { + httpReq: { + method: 'post', + url: 'https://api.intercom.io/contacts/search', + data: { + query: { + operator: 'AND', + value: [{ field: 'email', operator: '=', value: 'test+4@rudderlabs.com' }], + }, + }, + headers: { + Accept: 'application/json', + Authorization: 'Bearer testApiKey', + 'Content-Type': 'application/json', + }, + }, + httpRes: { + status: 200, + statusText: 'ok', + data: { + type: 'list', + total_count: 0, + pages: { + type: 'pages', + page: 1, + per_page: 50, + total_pages: 0, + }, + data: [], + }, + }, + }, + { + httpReq: { + method: 'post', + url: 'https://api.intercom.io/contacts/search', + data: { + query: { + operator: 'AND', + value: [{ field: 'email', operator: '=', value: 'test+3@rudderlabs.com' }], + }, + }, + headers: { + Accept: 'application/json', + Authorization: 'Bearer invalidApiKey', + 'Content-Type': 'application/json', + }, + }, + httpRes: { + status: 401, + data: { + type: 'error.list', + request_id: 'request_1', + errors: [ + { + code: 'unauthorized', + message: 'Access Token Invalid', + }, + ], + }, + }, + }, + { + httpReq: { + method: 'post', + url: 'https://api.eu.intercom.io/companies', + data: { + company_id: 'rudderlabs', + name: 'RudderStack', + website: 'www.rudderstack.com', + plan: 'enterprise', + size: 500, + industry: 'CDP', + }, + headers: { + Accept: 'application/json', + Authorization: 'Bearer testApiKey', + 'Content-Type': 'application/json', + }, + }, + httpRes: { + status: 200, + data: { + type: 'company', + company_id: 'rudderlabs', + id: '657264e9018c0a647s45', + name: 'RudderStack', + website: 'www.rudderstack.com', + plan: 'enterprise', + size: 500, + industry: 'CDP', + remote_created_at: 1374138000, + created_at: 1701930212, + updated_at: 1701930212, + }, + }, + }, + { + httpReq: { + method: 'post', + url: 'https://api.eu.intercom.io/companies', + data: { + company_id: 'rudderlabs', + name: 'RudderStack', + website: 'www.rudderstack.com', + plan: 'enterprise', + size: 500, + industry: 'CDP', + custom_attributes: { isOpenSource: true }, + }, + headers: { + Accept: 'application/json', + Authorization: 'Bearer testApiKey', + 'Content-Type': 'application/json', + }, + }, + httpRes: { + status: 401, + data: { + type: 'error.list', + request_id: 'request_1', + errors: [ + { + code: 'parameter_invalid', + message: "Custom attribute 'isOpenSource' does not exist", + }, + ], + }, + }, + }, ]; const deliveryCallsData = [ { @@ -142,4 +427,3 @@ const deliveryCallsData = [ }, ]; export const networkCallsData = [...deleteNwData, ...deliveryCallsData]; - diff --git a/test/integrations/destinations/intercom/processor/data.ts b/test/integrations/destinations/intercom/processor/data.ts index 14d1884ba2..2c562ed4e9 100644 --- a/test/integrations/destinations/intercom/processor/data.ts +++ b/test/integrations/destinations/intercom/processor/data.ts @@ -1,7 +1,1213 @@ export const data = [ { name: 'intercom', - description: 'Test 0', + description: 'No message type', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + traits: { + age: 23, + email: 'adc@test.com', + firstname: 'Test', + birthday: '2022-05-13T12:51:01.470Z', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36', + }, + event: 'Product Searched', + originalTimestamp: '2020-09-22T14:42:44.724Z', + timestamp: '2022-09-22T20:12:44.757+05:30', + userId: 'user@1', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + apiKey: 'testApiKey', + apiVersion: 'v2', + apiServer: 'standard', + sendAnonymousId: false, + }, + }, + metadata: { + jobId: 1, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 1, + }, + statusCode: 400, + error: + 'message Type is not present. Aborting: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: message Type is not present. Aborting', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'INTERCOM', + module: 'destination', + implementation: 'cdkV2', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'intercom', + description: 'Unsupported message type', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + traits: { + age: 23, + email: 'adc@test.com', + firstname: 'Test', + birthday: '2022-05-13T12:51:01.470Z', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36', + }, + event: 'Product Searched', + type: 'page', + originalTimestamp: '2020-09-22T14:42:44.724Z', + timestamp: '2022-09-22T20:12:44.757+05:30', + userId: 'user@1', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + apiKey: 'testApiKey', + apiVersion: 'v2', + apiServer: 'standard', + sendAnonymousId: false, + }, + }, + metadata: { + jobId: 2, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 2, + }, + statusCode: 400, + error: + 'message type page is not supported: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: message type page is not supported', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'INTERCOM', + module: 'destination', + implementation: 'cdkV2', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'intercom', + description: 'Missing required config', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'user@1', + channel: 'web', + context: { + traits: { + age: 23, + email: 'adc@test.com', + firstName: 'Test', + }, + }, + type: 'identify', + originalTimestamp: '2023-11-10T14:42:44.724Z', + timestamp: '2023-11-22T10:12:44.757+05:30', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + apiVersion: 'v2', + apiServer: 'standard', + sendAnonymousId: false, + }, + }, + metadata: { + jobId: 3, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 3, + }, + statusCode: 400, + error: + 'Access Token is not present. Aborting: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: Access Token is not present. Aborting', + statTags: { + errorCategory: 'dataValidation', + errorType: 'configuration', + destType: 'INTERCOM', + module: 'destination', + implementation: 'cdkV2', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'intercom', + description: 'Create customer with email as lookup field', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'user@1', + channel: 'web', + context: { + traits: { + age: 23, + email: 'test@rudderlabs.com', + phone: '+91 9999999999', + firstName: 'Test', + lastName: 'Rudderlabs', + address: 'california usa', + ownerId: '13', + lastSeenAt: '2023-11-10T14:42:44.724Z', + }, + }, + type: 'identify', + originalTimestamp: '2023-11-10T14:42:44.724Z', + timestamp: '2023-11-22T10:12:44.757+05:30', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + apiKey: 'testApiKey', + apiVersion: 'v2', + apiServer: 'standard', + sendAnonymousId: false, + }, + }, + metadata: { + jobId: 4, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + JSON: { + email: 'test@rudderlabs.com', + external_id: 'user@1', + last_seen_at: 1699627364, + name: 'Test Rudderlabs', + owner_id: 13, + phone: '+91 9999999999', + custom_attributes: { + address: 'california usa', + age: 23, + }, + }, + XML: {}, + FORM: {}, + JSON_ARRAY: {}, + }, + endpoint: 'https://api.intercom.io/contacts', + headers: { + Authorization: 'Bearer testApiKey', + 'Content-Type': 'application/json', + Accept: 'application/json', + 'Intercom-Version': '2.10', + }, + userId: '', + version: '1', + type: 'REST', + method: 'POST', + files: {}, + params: {}, + }, + metadata: { jobId: 4 }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'intercom', + description: 'Update customer with email as lookup field', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'user@2', + channel: 'web', + context: { + traits: { + age: 32, + email: 'test+2@rudderlabs.com', + phone: '+91 9299999999', + firstName: 'Test', + lastName: 'RudderStack', + ownerId: '14', + }, + }, + type: 'identify', + originalTimestamp: '2023-11-10T14:42:44.724Z', + timestamp: '2023-11-22T10:12:44.757+05:30', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + apiKey: 'testApiKey', + apiVersion: 'v2', + apiServer: 'standard', + sendAnonymousId: false, + }, + }, + metadata: { + jobId: 5, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + JSON: { + email: 'test+2@rudderlabs.com', + external_id: 'user@2', + name: 'Test RudderStack', + owner_id: 14, + phone: '+91 9299999999', + custom_attributes: { + age: 32, + }, + }, + XML: {}, + FORM: {}, + JSON_ARRAY: {}, + }, + endpoint: 'https://api.intercom.io/contacts/7070129940741e45d040', + headers: { + Authorization: 'Bearer testApiKey', + 'Content-Type': 'application/json', + Accept: 'application/json', + 'Intercom-Version': '2.10', + }, + userId: '', + version: '1', + type: 'REST', + method: 'PUT', + files: {}, + params: {}, + }, + metadata: { jobId: 5 }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'intercom', + description: 'Missing required parameters for an identify call', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'anon@2', + channel: 'web', + context: { + traits: { + age: 32, + phone: '+91 9299999999', + firstName: 'Test', + lastName: 'RudderStack', + ownerId: '14', + role: 'user', + source: 'rudder-sdk', + }, + }, + integrations: { + INTERCOM: { + lookup: 'phone', + }, + }, + type: 'identify', + originalTimestamp: '2023-11-10T14:42:44.724Z', + timestamp: '2023-11-22T10:12:44.757+05:30', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + apiKey: 'testApiKey', + apiVersion: 'v2', + apiServer: 'standard', + sendAnonymousId: false, + }, + }, + metadata: { + jobId: 6, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 6, + }, + statusCode: 400, + error: + 'Either email or userId is required for Identify call: Workflow: procWorkflow, Step: identifyPayloadForLatestVersion, ChildStep: undefined, OriginalError: Either email or userId is required for Identify call', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'INTERCOM', + module: 'destination', + implementation: 'cdkV2', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'intercom', + description: 'Unauthorized error while searching contact for an identify call', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'user@3', + channel: 'web', + context: { + traits: { + phone: '+91 9399999999', + email: 'test+3@rudderlabs.com', + firstName: 'Test', + lastName: 'Rudder', + ownerId: '15', + role: 'admin', + source: 'rudder-android-sdk', + }, + }, + integrations: { + INTERCOM: { + lookup: 'email', + }, + }, + type: 'identify', + originalTimestamp: '2023-11-10T14:42:44.724Z', + timestamp: '2023-11-22T10:12:44.757+05:30', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + apiKey: 'invalidApiKey', + apiVersion: 'v2', + apiServer: 'standard', + sendAnonymousId: false, + }, + }, + metadata: { + jobId: 7, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 7, + }, + statusCode: 401, + error: + '{"message":"{\\"message\\":\\"Unable to search contact due to : [{\\\\\\"code\\\\\\":\\\\\\"unauthorized\\\\\\",\\\\\\"message\\\\\\":\\\\\\"Access Token Invalid\\\\\\"}]: Workflow: procWorkflow, Step: searchContact, ChildStep: undefined, OriginalError: Unable to search contact due to : [{\\\\\\"code\\\\\\":\\\\\\"unauthorized\\\\\\",\\\\\\"message\\\\\\":\\\\\\"Access Token Invalid\\\\\\"}]\\",\\"destinationResponse\\":{\\"response\\":{\\"type\\":\\"error.list\\",\\"request_id\\":\\"request_1\\",\\"errors\\":[{\\"code\\":\\"unauthorized\\",\\"message\\":\\"Access Token Invalid\\"}]},\\"status\\":401}}","destinationResponse":{"response":{"type":"error.list","request_id":"request_1","errors":[{"code":"unauthorized","message":"Access Token Invalid"}]},"status":401}}', + statTags: { + errorCategory: 'network', + errorType: 'aborted', + destType: 'INTERCOM', + module: 'destination', + implementation: 'cdkV2', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'intercom', + description: 'Track call without event name', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'user@3', + channel: 'web', + context: { + traits: { + age: 32, + email: 'test+3@rudderlabs.com', + phone: '+91 9399999999', + firstName: 'Test', + lastName: 'RudderStack', + ownerId: '15', + }, + }, + properties: { + revenue: { + amount: 1232, + currency: 'inr', + test: 123, + }, + price: { + amount: 3000, + currency: 'USD', + }, + }, + type: 'track', + originalTimestamp: '2023-11-10T14:42:44.724Z', + timestamp: '2023-11-22T10:12:44.757+05:30', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + apiKey: 'testApiKey', + apiVersion: 'v2', + apiServer: 'standard', + sendAnonymousId: false, + }, + }, + metadata: { + jobId: 8, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 8, + }, + statusCode: 400, + error: + 'Event name is required for track call: Workflow: procWorkflow, Step: trackPayload, ChildStep: undefined, OriginalError: Event name is required for track call', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'INTERCOM', + module: 'destination', + implementation: 'cdkV2', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'intercom', + description: 'Successful track call', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'user@2', + channel: 'web', + context: { + traits: { + age: 32, + email: 'test+2@rudderlabs.com', + phone: '+91 9299999999', + firstName: 'Test', + lastName: 'RudderStack', + ownerId: '14', + }, + }, + properties: { + revenue: { + amount: 1232, + currency: 'inr', + test: 123, + }, + price: { + amount: 3000, + currency: 'USD', + }, + }, + event: 'Product Viewed', + type: 'track', + originalTimestamp: '2023-11-10T14:42:44.724Z', + timestamp: '2023-11-22T10:12:44.757+05:30', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + apiKey: 'testApiKey', + apiVersion: 'v2', + apiServer: 'standard', + sendAnonymousId: false, + }, + }, + metadata: { + jobId: 9, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + FORM: {}, + JSON: { + created_at: 1700628164, + email: 'test+2@rudderlabs.com', + event_name: 'Product Viewed', + metadata: { + price: { + amount: 3000, + currency: 'USD', + }, + revenue: { + amount: 1232, + currency: 'inr', + test: 123, + }, + }, + user_id: 'user@2', + }, + JSON_ARRAY: {}, + XML: {}, + }, + endpoint: 'https://api.intercom.io/events', + headers: { + Accept: 'application/json', + Authorization: 'Bearer testApiKey', + 'Content-Type': 'application/json', + 'Intercom-Version': '2.10', + }, + method: 'POST', + type: 'REST', + userId: '', + version: '1', + params: {}, + files: {}, + }, + statusCode: 200, + metadata: { + jobId: 9, + }, + }, + ], + }, + }, + }, + { + name: 'intercom', + description: 'Group call without groupId', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'user@4', + channel: 'web', + context: { + traits: { + email: 'test+4@rudderlabs.com', + phone: '+91 9499999999', + firstName: 'John', + lastName: 'Doe', + ownerId: '16', + }, + }, + traits: { + name: 'RudderStack', + size: 500, + website: 'www.rudderstack.com', + industry: 'CDP', + plan: 'enterprise', + }, + type: 'group', + originalTimestamp: '2023-11-10T14:42:44.724Z', + timestamp: '2023-11-22T10:12:44.757+05:30', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + apiKey: 'testApiKey', + apiVersion: 'v2', + apiServer: 'standard', + sendAnonymousId: false, + }, + }, + metadata: { + jobId: 10, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 10, + }, + statusCode: 400, + error: + 'groupId is required for group call: Workflow: procWorkflow, Step: groupPayloadForLatestVersion, ChildStep: validateMessageAndPreparePayload, OriginalError: groupId is required for group call', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'INTERCOM', + module: 'destination', + implementation: 'cdkV2', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'intercom', + description: 'Successful group call to create or update company', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'user@4', + groupId: 'rudderlabs', + channel: 'web', + context: { + traits: { + email: 'test+4@rudderlabs.com', + phone: '+91 9499999999', + firstName: 'John', + lastName: 'Doe', + ownerId: '16', + }, + }, + traits: { + name: 'RudderStack', + size: 500, + website: 'www.rudderstack.com', + industry: 'CDP', + plan: 'enterprise', + }, + type: 'group', + originalTimestamp: '2023-11-10T14:42:44.724Z', + timestamp: '2023-11-22T10:12:44.757+05:30', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + apiKey: 'testApiKey', + apiVersion: 'v2', + apiServer: 'standard', + sendAnonymousId: false, + }, + }, + metadata: { + jobId: 11, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + JSON: { + company_id: 'rudderlabs', + industry: 'CDP', + name: 'RudderStack', + plan: 'enterprise', + size: 500, + website: 'www.rudderstack.com', + }, + XML: {}, + FORM: {}, + JSON_ARRAY: {}, + }, + endpoint: 'https://api.intercom.io/companies', + headers: { + Accept: 'application/json', + Authorization: 'Bearer testApiKey', + 'Content-Type': 'application/json', + 'Intercom-Version': '2.10', + }, + method: 'POST', + type: 'REST', + userId: '', + version: '1', + params: {}, + files: {}, + }, + statusCode: 200, + metadata: { + jobId: 11, + }, + }, + ], + }, + }, + }, + { + name: 'intercom', + description: 'Successful group call to add user to company', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'user@5', + groupId: 'rudderlabs', + channel: 'web', + context: { + traits: { + email: 'test+5@rudderlabs.com', + phone: '+91 9599999999', + firstName: 'John', + lastName: 'Snow', + ownerId: '17', + }, + }, + traits: { + name: 'RudderStack', + size: 500, + website: 'www.rudderstack.com', + industry: 'CDP', + plan: 'enterprise', + }, + type: 'group', + originalTimestamp: '2023-11-10T14:42:44.724Z', + timestamp: '2023-11-22T10:12:44.757+05:30', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + apiKey: 'testApiKey', + apiVersion: 'v2', + apiServer: 'eu', + sendAnonymousId: false, + }, + }, + metadata: { + jobId: 12, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + JSON: { + id: '657264e9018c0a647s45', + }, + XML: {}, + FORM: {}, + JSON_ARRAY: {}, + }, + endpoint: 'https://api.eu.intercom.io/contacts/70701240741e45d040/companies', + headers: { + Accept: 'application/json', + Authorization: 'Bearer testApiKey', + 'Content-Type': 'application/json', + 'Intercom-Version': '2.10', + }, + method: 'POST', + type: 'REST', + userId: '', + version: '1', + params: {}, + files: {}, + }, + statusCode: 200, + metadata: { + jobId: 12, + }, + }, + ], + }, + }, + }, + { + name: 'intercom', + description: 'Identify rEtl test', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + externalId: [ + { + id: 'user@1', + type: 'INTERCOM-customer', + identifierType: 'user_id', + }, + ], + mappedToDestination: 'true', + }, + traits: { + email: 'test@rudderlabs.com', + phone: '+91 9999999999', + name: 'Test Rudderlabs', + owner_id: 13, + }, + type: 'identify', + originalTimestamp: '2023-11-10T14:42:44.724Z', + timestamp: '2023-11-22T10:12:44.757+05:30', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + apiKey: 'testApiKey', + apiVersion: 'v2', + apiServer: 'standard', + sendAnonymousId: false, + }, + }, + metadata: { + jobId: 13, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + JSON: { + email: 'test@rudderlabs.com', + name: 'Test Rudderlabs', + phone: '+91 9999999999', + owner_id: 13, + user_id: 'user@1', + }, + XML: {}, + FORM: {}, + JSON_ARRAY: {}, + }, + endpoint: 'https://api.intercom.io/contacts', + headers: { + Authorization: 'Bearer testApiKey', + 'Content-Type': 'application/json', + Accept: 'application/json', + 'Intercom-Version': '2.10', + }, + userId: '', + version: '1', + type: 'REST', + method: 'POST', + files: {}, + params: {}, + }, + metadata: { jobId: 13 }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'intercom', + description: 'Track rEtl test', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'user@1', + channel: 'web', + context: { + mappedToDestination: 'true', + }, + traits: { + event_name: 'Product Viewed', + user_id: 'user@1', + revenue: { + amount: 1232, + currency: 'inr', + test: 123, + }, + price: { + amount: 3000, + currency: 'USD', + }, + }, + event: 'Product Viewed', + type: 'track', + originalTimestamp: '2023-11-10T14:42:44.724Z', + timestamp: '2023-11-22T10:12:44.757+05:30', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + apiKey: 'testApiKey', + apiVersion: 'v2', + apiServer: 'standard', + sendAnonymousId: false, + }, + }, + metadata: { + jobId: 14, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + JSON: { + event_name: 'Product Viewed', + price: { + amount: 3000, + currency: 'USD', + }, + revenue: { + amount: 1232, + currency: 'inr', + test: 123, + }, + user_id: 'user@1', + }, + XML: {}, + FORM: {}, + JSON_ARRAY: {}, + }, + endpoint: 'https://api.intercom.io/events', + headers: { + Authorization: 'Bearer testApiKey', + 'Content-Type': 'application/json', + Accept: 'application/json', + 'Intercom-Version': '2.10', + }, + userId: '', + version: '1', + type: 'REST', + method: 'POST', + files: {}, + params: {}, + }, + metadata: { jobId: 14 }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'intercom', + description: 'Old version - successful identify call', feature: 'processor', module: 'destination', version: 'v0', @@ -90,12 +1296,21 @@ export const data = [ type: 'identify', }, destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, Config: { apiKey: 'intercomApiKey', + apiVersion: 'v1', appId: '9e9cdea1-78fa-4829-a9b2-5d7f7e96d1a0', collectContext: false, }, }, + metadata: { + jobId: 15, + }, }, ], }, @@ -148,6 +1363,9 @@ export const data = [ userId: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', }, statusCode: 200, + metadata: { + jobId: 15, + }, }, ], }, @@ -155,7 +1373,7 @@ export const data = [ }, { name: 'intercom', - description: 'Test 1', + description: 'Old version - successful identify call', feature: 'processor', module: 'destination', version: 'v0', @@ -225,12 +1443,21 @@ export const data = [ type: 'identify', }, destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, Config: { apiKey: 'intercomApiKey', + apiVersion: 'v1', appId: '9e9cdea1-78fa-4829-a9b2-5d7f7e96d1a0', collectContext: false, }, }, + metadata: { + jobId: 16, + }, }, ], }, @@ -273,6 +1500,9 @@ export const data = [ userId: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', }, statusCode: 200, + metadata: { + jobId: 16, + }, }, ], }, @@ -280,7 +1510,7 @@ export const data = [ }, { name: 'intercom', - description: 'Test 2', + description: 'Old version - successful identify call', feature: 'processor', module: 'destination', version: 'v0', @@ -349,12 +1579,21 @@ export const data = [ type: 'identify', }, destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, Config: { apiKey: 'intercomApiKey', + apiVersion: 'v1', appId: '9e9cdea1-78fa-4829-a9b2-5d7f7e96d1a0', collectContext: false, }, }, + metadata: { + jobId: 17, + }, }, ], }, @@ -397,6 +1636,9 @@ export const data = [ userId: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', }, statusCode: 200, + metadata: { + jobId: 17, + }, }, ], }, @@ -404,7 +1646,7 @@ export const data = [ }, { name: 'intercom', - description: 'Test 3', + description: 'Old version - successful identify call', feature: 'processor', module: 'destination', version: 'v0', @@ -473,12 +1715,21 @@ export const data = [ type: 'identify', }, destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, Config: { apiKey: 'intercomApiKey', + apiVersion: 'v1', appId: '9e9cdea1-78fa-4829-a9b2-5d7f7e96d1a0', collectContext: false, }, }, + metadata: { + jobId: 18, + }, }, ], }, @@ -521,6 +1772,9 @@ export const data = [ userId: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', }, statusCode: 200, + metadata: { + jobId: 18, + }, }, ], }, @@ -528,7 +1782,7 @@ export const data = [ }, { name: 'intercom', - description: 'Test 4: ERROR - Either of `email` or `userId` is required for Identify call', + description: 'Old Version: Identify call without email and userId', feature: 'processor', module: 'destination', version: 'v0', @@ -596,12 +1850,21 @@ export const data = [ type: 'identify', }, destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, Config: { apiKey: 'intercomApiKey', + apiVersion: 'v1', appId: '9e9cdea1-78fa-4829-a9b2-5d7f7e96d1a0', collectContext: false, }, }, + metadata: { + jobId: 19, + }, }, ], }, @@ -612,15 +1875,19 @@ export const data = [ body: [ { statusCode: 400, - error: 'Either of `email` or `userId` is required for Identify call', + error: + 'Either of `email` or `userId` is required for Identify call: Workflow: procWorkflow, Step: identifyPayloadForOlderVersion, ChildStep: undefined, OriginalError: Either of `email` or `userId` is required for Identify call', statTags: { errorCategory: 'dataValidation', errorType: 'instrumentation', destType: 'INTERCOM', module: 'destination', - implementation: 'native', + implementation: 'cdkV2', feature: 'processor', }, + metadata: { + jobId: 19, + }, }, ], }, @@ -628,7 +1895,7 @@ export const data = [ }, { name: 'intercom', - description: 'Test 5', + description: 'Old version - successful identify call', feature: 'processor', module: 'destination', version: 'v0', @@ -707,12 +1974,21 @@ export const data = [ type: 'identify', }, destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, Config: { apiKey: 'intercomApiKey', + apiVersion: 'v1', appId: '9e9cdea1-78fa-4829-a9b2-5d7f7e96d1a0', collectContext: false, }, }, + metadata: { + jobId: 20, + }, }, ], }, @@ -767,6 +2043,9 @@ export const data = [ userId: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', }, statusCode: 200, + metadata: { + jobId: 20, + }, }, ], }, @@ -774,7 +2053,7 @@ export const data = [ }, { name: 'intercom', - description: 'Test 6', + description: 'Old version - successful identify call', feature: 'processor', module: 'destination', version: 'v0', @@ -853,13 +2132,22 @@ export const data = [ type: 'identify', }, destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, Config: { apiKey: 'intercomApiKey', + apiVersion: 'v1', appId: '9e9cdea1-78fa-4829-a9b2-5d7f7e96d1a0', collectContext: false, updateLastRequestAt: false, }, }, + metadata: { + jobId: 21, + }, }, ], }, @@ -914,6 +2202,9 @@ export const data = [ userId: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', }, statusCode: 200, + metadata: { + jobId: 21, + }, }, ], }, @@ -921,7 +2212,7 @@ export const data = [ }, { name: 'intercom', - description: 'Test 7', + description: 'Old version - successful identify call', feature: 'processor', module: 'destination', version: 'v0', @@ -995,12 +2286,21 @@ export const data = [ type: 'identify', }, destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, Config: { apiKey: 'intercomApiKey', + apiVersion: 'v1', appId: '9e9cdea1-78fa-4829-a9b2-5d7f7e96d1a0', collectContext: false, }, }, + metadata: { + jobId: 22, + }, }, ], }, @@ -1044,6 +2344,9 @@ export const data = [ userId: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', }, statusCode: 200, + metadata: { + jobId: 22, + }, }, ], }, @@ -1051,7 +2354,7 @@ export const data = [ }, { name: 'intercom', - description: 'Test 8', + description: 'Old version - successful track call', feature: 'processor', module: 'destination', version: 'v0', @@ -1154,12 +2457,21 @@ export const data = [ type: 'track', }, destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, Config: { apiKey: 'intercomApiKey', + apiVersion: 'v1', appId: '9e9cdea1-78fa-4829-a9b2-5d7f7e96d1a0', collectContext: false, }, }, + metadata: { + jobId: 23, + }, }, ], }, @@ -1222,6 +2534,9 @@ export const data = [ userId: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', }, statusCode: 200, + metadata: { + jobId: 23, + }, }, ], }, @@ -1229,7 +2544,7 @@ export const data = [ }, { name: 'intercom', - description: 'Test 9', + description: 'Old version - successful track call', feature: 'processor', module: 'destination', version: 'v0', @@ -1300,12 +2615,21 @@ export const data = [ type: 'track', }, destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, Config: { apiKey: 'intercomApiKey', + apiVersion: 'v1', appId: '9e9cdea1-78fa-4829-a9b2-5d7f7e96d1a0', collectContext: false, }, }, + metadata: { + jobId: 24, + }, }, ], }, @@ -1341,6 +2665,9 @@ export const data = [ userId: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', }, statusCode: 200, + metadata: { + jobId: 24, + }, }, ], }, @@ -1348,7 +2675,7 @@ export const data = [ }, { name: 'intercom', - description: 'Test 10: ERROR - Either of `email` or `userId` is required for Track call', + description: 'Old version : Track call without email or userId', feature: 'processor', module: 'destination', version: 'v0', @@ -1418,30 +2745,187 @@ export const data = [ type: 'track', }, destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + apiKey: 'intercomApiKey', + apiVersion: 'v1', + appId: '9e9cdea1-78fa-4829-a9b2-5d7f7e96d1a0', + collectContext: false, + }, + }, + metadata: { + jobId: 25, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: + 'Either email or userId is required for Track call: Workflow: procWorkflow, Step: trackPayload, ChildStep: undefined, OriginalError: Either email or userId is required for Track call', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'INTERCOM', + module: 'destination', + implementation: 'cdkV2', + feature: 'processor', + }, + metadata: { + jobId: 25, + }, + }, + ], + }, + }, + }, + { + name: 'intercom', + description: 'Old version : successful identify call', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', + channel: 'mobile', + context: { + app: { + build: '1.0', + name: 'Test_Example', + namespace: 'com.example.testapp', + version: '1.0', + }, + externalId: [ + { + id: '10156', + type: 'INTERCOM-customer', + identifierType: 'user_id', + }, + ], + mappedToDestination: 'true', + device: { + id: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', + manufacturer: 'Apple', + model: 'iPhone', + name: 'iPod touch (7th generation)', + type: 'iOS', + }, + library: { + name: 'test-ios-library', + version: '1.0.7', + }, + locale: 'en-US', + network: { + bluetooth: false, + carrier: 'unavailable', + cellular: false, + wifi: true, + }, + os: { + name: 'iOS', + version: '14.0', + }, + screen: { + density: 2, + height: 320, + width: 568, + }, + timezone: 'Asia/Kolkata', + traits: { + anonymousId: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', + name: 'Test Name', + firstName: 'Test', + lastName: 'Name', + createdAt: '2020-09-30T19:11:00.337Z', + phone: '9876543210', + key1: 'value1', + }, + userAgent: 'unknown', + }, + event: 'Test Event 2', + integrations: { + All: true, + }, + messageId: '1601493060-39010c49-e6e4-4626-a75c-0dbf1925c9e8', + originalTimestamp: '2020-09-30T19:11:00.337Z', + receivedAt: '2020-10-01T00:41:11.369+05:30', + request_ip: '2405:201:8005:9856:7911:25e7:5603:5e18', + sentAt: '2020-09-30T19:11:10.382Z', + timestamp: '2020-10-01T00:41:01.324+05:30', + type: 'identify', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, Config: { apiKey: 'intercomApiKey', + apiVersion: 'v1', appId: '9e9cdea1-78fa-4829-a9b2-5d7f7e96d1a0', collectContext: false, }, }, - }, - ], - }, - }, - output: { - response: { - status: 200, - body: [ - { - statusCode: 400, - error: 'Either of `email` or `userId` is required for Track call', - statTags: { - errorCategory: 'dataValidation', - errorType: 'instrumentation', - destType: 'INTERCOM', - module: 'destination', - implementation: 'native', - feature: 'processor', + metadata: { + jobId: 26, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.intercom.io/users', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer intercomApiKey', + Accept: 'application/json', + 'Intercom-Version': '1.4', + }, + params: {}, + body: { + JSON: { + anonymousId: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', + name: 'Test Name', + firstName: 'Test', + lastName: 'Name', + createdAt: '2020-09-30T19:11:00.337Z', + phone: '9876543210', + key1: 'value1', + update_last_request_at: true, + user_id: '10156', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', + }, + statusCode: 200, + metadata: { + jobId: 26, }, }, ], @@ -1450,7 +2934,7 @@ export const data = [ }, { name: 'intercom', - description: 'Test 11', + description: 'Old version : successful identify call', feature: 'processor', module: 'destination', version: 'v0', @@ -1468,13 +2952,6 @@ export const data = [ namespace: 'com.example.testapp', version: '1.0', }, - externalId: [ - { - identifierType: 'email', - id: 'test@gmail.com', - }, - ], - mappedToDestination: true, device: { id: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', manufacturer: 'Apple', @@ -1527,12 +3004,22 @@ export const data = [ type: 'identify', }, destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, Config: { apiKey: 'intercomApiKey', + apiVersion: 'v1', appId: '9e9cdea1-78fa-4829-a9b2-5d7f7e96d1a0', collectContext: false, + sendAnonymousId: true, }, }, + metadata: { + jobId: 27, + }, }, ], }, @@ -1556,14 +3043,15 @@ export const data = [ params: {}, body: { JSON: { - anonymousId: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', - name: 'Test Name', - firstName: 'Test', - lastName: 'Name', - createdAt: '2020-09-30T19:11:00.337Z', phone: '9876543210', - key1: 'value1', - email: 'test@gmail.com', + name: 'Test Name', + signed_up_at: 1601493060, + last_seen_user_agent: 'unknown', + custom_attributes: { + anonymousId: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', + key1: 'value1', + }, + user_id: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', update_last_request_at: true, }, JSON_ARRAY: {}, @@ -1574,6 +3062,9 @@ export const data = [ userId: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', }, statusCode: 200, + metadata: { + jobId: 27, + }, }, ], }, @@ -1581,7 +3072,7 @@ export const data = [ }, { name: 'intercom', - description: 'Test 12', + description: 'Old version : Identify call without email or userId', feature: 'processor', module: 'destination', version: 'v0', @@ -1651,13 +3142,97 @@ export const data = [ type: 'identify', }, destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, Config: { apiKey: 'intercomApiKey', + apiVersion: 'v1', appId: '9e9cdea1-78fa-4829-a9b2-5d7f7e96d1a0', collectContext: false, - sendAnonymousId: true, + sendAnonymousId: false, + }, + }, + metadata: { + jobId: 28, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: + 'Either of `email` or `userId` is required for Identify call: Workflow: procWorkflow, Step: identifyPayloadForOlderVersion, ChildStep: undefined, OriginalError: Either of `email` or `userId` is required for Identify call', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'INTERCOM', + module: 'destination', + implementation: 'cdkV2', + feature: 'processor', + }, + metadata: { + jobId: 28, + }, + }, + ], + }, + }, + }, + { + name: 'intercom', + description: 'Old version : successful group call', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + groupId: 'test_company_id_wdasda', + traits: { + employees: 450, + plan: 'basic', + userId: 'sdfrsdfsdfsf', + email: 'test@test.com', + name: 'rudderUpdate', + size: '50', + industry: 'IT', + monthlySpend: '2131231', + remoteCreatedAt: '1683017572', + key1: 'val1', + }, + anonymousId: 'sdfrsdfsdfsf', + integrations: { + All: true, + }, + type: 'group', + userId: 'sdfrsdfsdfsf', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + apiKey: 'abcd=', + appId: 'asdasdasd', + apiVersion: 'v1', + collectContext: false, }, }, + metadata: { + jobId: 29, + }, }, ], }, @@ -1671,35 +3246,75 @@ export const data = [ version: '1', type: 'REST', method: 'POST', - endpoint: 'https://api.intercom.io/users', + endpoint: 'https://api.intercom.io/companies', headers: { 'Content-Type': 'application/json', - Authorization: 'Bearer intercomApiKey', + Authorization: 'Bearer abcd=', Accept: 'application/json', 'Intercom-Version': '1.4', }, params: {}, body: { JSON: { - phone: '9876543210', - name: 'Test Name', - signed_up_at: 1601493060, - last_seen_user_agent: 'unknown', + company_id: 'test_company_id_wdasda', + name: 'rudderUpdate', + plan: 'basic', + size: 50, + industry: 'IT', + monthly_spend: 2131231, + remote_created_at: 1683017572, custom_attributes: { - anonymousId: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', - key1: 'value1', + employees: 450, + email: 'test@test.com', + key1: 'val1', }, - user_id: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', - update_last_request_at: true, }, JSON_ARRAY: {}, XML: {}, FORM: {}, }, files: {}, - userId: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', + userId: 'sdfrsdfsdfsf', + }, + statusCode: 200, + metadata: { + jobId: 29, + }, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.intercom.io/users', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer abcd=', + Accept: 'application/json', + 'Intercom-Version': '1.4', + }, + params: {}, + body: { + JSON: { + user_id: 'sdfrsdfsdfsf', + companies: [ + { + company_id: 'test_company_id_wdasda', + name: 'rudderUpdate', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'sdfrsdfsdfsf', }, statusCode: 200, + metadata: { + jobId: 29, + }, }, ], }, @@ -1707,7 +3322,7 @@ export const data = [ }, { name: 'intercom', - description: 'Test 13: ERROR - Either of `email` or `userId` is required for Identify call', + description: 'Old version : successful group call', feature: 'processor', module: 'destination', version: 'v0', @@ -1716,8 +3331,16 @@ export const data = [ body: [ { message: { - anonymousId: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', - channel: 'mobile', + groupId: 'test_company_id', + traits: { + plan: 'basic', + name: 'rudderUpdate', + size: 50, + industry: 'IT', + monthlySpend: '2131231', + email: 'comanyemail@abc.com', + }, + anonymousId: '12312312', context: { app: { build: '1.0', @@ -1753,37 +3376,30 @@ export const data = [ width: 568, }, timezone: 'Asia/Kolkata', - traits: { - anonymousId: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', - name: 'Test Name', - firstName: 'Test', - lastName: 'Name', - createdAt: '2020-09-30T19:11:00.337Z', - phone: '9876543210', - key1: 'value1', - }, userAgent: 'unknown', }, - event: 'Test Event 2', integrations: { All: true, }, messageId: '1601493060-39010c49-e6e4-4626-a75c-0dbf1925c9e8', - originalTimestamp: '2020-09-30T19:11:00.337Z', - receivedAt: '2020-10-01T00:41:11.369+05:30', - request_ip: '2405:201:8005:9856:7911:25e7:5603:5e18', - sentAt: '2020-09-30T19:11:10.382Z', - timestamp: '2020-10-01T00:41:01.324+05:30', - type: 'identify', + type: 'group', }, destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, Config: { - apiKey: 'intercomApiKey', - appId: '9e9cdea1-78fa-4829-a9b2-5d7f7e96d1a0', + apiKey: 'abcd=', + apiVersion: 'v1', + appId: 'asdasdasd', collectContext: false, - sendAnonymousId: false, }, }, + metadata: { + jobId: 30, + }, }, ], }, @@ -1793,15 +3409,40 @@ export const data = [ status: 200, body: [ { - statusCode: 400, - error: 'Either of `email` or `userId` is required for Identify call', - statTags: { - errorCategory: 'dataValidation', - errorType: 'instrumentation', - destType: 'INTERCOM', - module: 'destination', - implementation: 'native', - feature: 'processor', + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.intercom.io/companies', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer abcd=', + Accept: 'application/json', + 'Intercom-Version': '1.4', + }, + params: {}, + body: { + JSON: { + company_id: 'test_company_id', + name: 'rudderUpdate', + plan: 'basic', + size: 50, + industry: 'IT', + monthly_spend: 2131231, + custom_attributes: { + email: 'comanyemail@abc.com', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '12312312', + }, + statusCode: 200, + metadata: { + jobId: 30, }, }, ], @@ -1810,7 +3451,7 @@ export const data = [ }, { name: 'intercom', - description: 'Test 14', + description: 'Old version : successful group call', feature: 'processor', module: 'destination', version: 'v0', @@ -1820,14 +3461,19 @@ export const data = [ { message: { groupId: 'test_company_id_wdasda', + context: { + traits: { + email: 'testUser@test.com', + }, + }, traits: { employees: 450, plan: 'basic', - userId: 'sdfrsdfsdfsf', email: 'test@test.com', name: 'rudderUpdate', size: '50', industry: 'IT', + website: 'url', monthlySpend: '2131231', remoteCreatedAt: '1683017572', key1: 'val1', @@ -1840,12 +3486,21 @@ export const data = [ userId: 'sdfrsdfsdfsf', }, destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, Config: { apiKey: 'abcd=', + apiVersion: 'v1', appId: 'asdasdasd', collectContext: false, }, }, + metadata: { + jobId: 31, + }, }, ], }, @@ -1873,6 +3528,7 @@ export const data = [ name: 'rudderUpdate', plan: 'basic', size: 50, + website: 'url', industry: 'IT', monthly_spend: 2131231, remote_created_at: 1683017572, @@ -1890,6 +3546,9 @@ export const data = [ userId: 'sdfrsdfsdfsf', }, statusCode: 200, + metadata: { + jobId: 31, + }, }, { output: { @@ -1907,6 +3566,7 @@ export const data = [ body: { JSON: { user_id: 'sdfrsdfsdfsf', + email: 'testUser@test.com', companies: [ { company_id: 'test_company_id_wdasda', @@ -1922,6 +3582,9 @@ export const data = [ userId: 'sdfrsdfsdfsf', }, statusCode: 200, + metadata: { + jobId: 31, + }, }, ], }, @@ -1929,7 +3592,7 @@ export const data = [ }, { name: 'intercom', - description: 'Test 15', + description: 'Old version : successful group call', feature: 'processor', module: 'destination', version: 'v0', @@ -1938,66 +3601,53 @@ export const data = [ body: [ { message: { - groupId: 'test_company_id', + groupId: 'test_company_id_wdasda', + context: { + traits: { + email: 'testUser@test.com', + }, + }, traits: { + employees: 450, plan: 'basic', + email: 'test@test.com', name: 'rudderUpdate', - size: 50, + size: '50', industry: 'IT', + website: 'url', monthlySpend: '2131231', - email: 'comanyemail@abc.com', - }, - anonymousId: '12312312', - context: { - app: { - build: '1.0', - name: 'Test_Example', - namespace: 'com.example.testapp', - version: '1.0', - }, - device: { - id: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', - manufacturer: 'Apple', - model: 'iPhone', - name: 'iPod touch (7th generation)', - type: 'iOS', - }, - library: { - name: 'test-ios-library', - version: '1.0.7', - }, - locale: 'en-US', - network: { - bluetooth: false, - carrier: 'unavailable', - cellular: false, - wifi: true, - }, - os: { - name: 'iOS', - version: '14.0', - }, - screen: { - density: 2, - height: 320, - width: 568, + remoteCreatedAt: '1683017572', + key1: 'val1', + key2: { + a: 'a', + b: 'b', }, - timezone: 'Asia/Kolkata', - userAgent: 'unknown', + key3: [1, 2, 3], + key4: null, }, + anonymousId: 'anonId', integrations: { All: true, }, - messageId: '1601493060-39010c49-e6e4-4626-a75c-0dbf1925c9e8', type: 'group', }, destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, Config: { apiKey: 'abcd=', appId: 'asdasdasd', + apiVersion: 'v1', collectContext: false, + sendAnonymousId: true, }, }, + metadata: { + jobId: 32, + }, }, ], }, @@ -2021,14 +3671,24 @@ export const data = [ params: {}, body: { JSON: { - company_id: 'test_company_id', + company_id: 'test_company_id_wdasda', name: 'rudderUpdate', plan: 'basic', size: 50, + website: 'url', industry: 'IT', monthly_spend: 2131231, + remote_created_at: 1683017572, custom_attributes: { - email: 'comanyemail@abc.com', + employees: 450, + email: 'test@test.com', + key1: 'val1', + 'key2.a': 'a', + 'key2.b': 'b', + 'key3[0]': 1, + 'key3[1]': 2, + 'key3[2]': 3, + key4: null, }, }, JSON_ARRAY: {}, @@ -2036,9 +3696,48 @@ export const data = [ FORM: {}, }, files: {}, - userId: '12312312', + userId: 'anonId', + }, + statusCode: 200, + metadata: { + jobId: 32, + }, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.intercom.io/users', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer abcd=', + Accept: 'application/json', + 'Intercom-Version': '1.4', + }, + params: {}, + body: { + JSON: { + user_id: 'anonId', + email: 'testUser@test.com', + companies: [ + { + company_id: 'test_company_id_wdasda', + name: 'rudderUpdate', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'anonId', }, statusCode: 200, + metadata: { + jobId: 32, + }, }, ], }, @@ -2046,7 +3745,7 @@ export const data = [ }, { name: 'intercom', - description: 'Test 16', + description: 'Test 0', feature: 'processor', module: 'destination', version: 'v0', @@ -2055,35 +3754,89 @@ export const data = [ body: [ { message: { - groupId: 'test_company_id_wdasda', + anonymousId: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', + channel: 'mobile', context: { + app: { + build: '1.0', + name: 'Test_Example', + namespace: 'com.example.testapp', + version: '1.0', + }, + device: { + id: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', + manufacturer: 'Apple', + model: 'iPhone', + name: 'iPod touch (7th generation)', + type: 'iOS', + }, + library: { + name: 'test-ios-library', + version: '1.0.7', + }, + locale: 'en-US', + network: { + bluetooth: false, + carrier: 'unavailable', + cellular: false, + wifi: true, + }, + os: { + name: 'iOS', + version: '14.0', + }, + screen: { + density: 2, + height: 320, + width: 568, + }, + timezone: 'Asia/Kolkata', traits: { - email: 'testUser@test.com', + anonymousId: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', + name: 'Test Name', + firstName: 'Test', + lastName: 'Name', + createdAt: '2020-09-30T19:11:00.337Z', + userId: 'test_user_id_1', + email: 'test_1@test.com', + phone: '9876543210', + key1: 'value1', + address: { + city: 'Kolkata', + state: 'West Bengal', + }, + originalArray: [ + { + nested_field: 'nested value', + tags: ['tag_1', 'tag_2', 'tag_3'], + }, + { + nested_field: 'nested value', + tags: ['tag_1'], + }, + { + nested_field: 'nested value', + }, + ], }, + userAgent: 'unknown', }, - traits: { - employees: 450, - plan: 'basic', - email: 'test@test.com', - name: 'rudderUpdate', - size: '50', - industry: 'IT', - website: 'url', - monthlySpend: '2131231', - remoteCreatedAt: '1683017572', - key1: 'val1', - }, - anonymousId: 'sdfrsdfsdfsf', + event: 'Test Event 2', integrations: { All: true, }, - type: 'group', - userId: 'sdfrsdfsdfsf', + messageId: '1601493060-39010c49-e6e4-4626-a75c-0dbf1925c9e8', + originalTimestamp: '2020-09-30T19:11:00.337Z', + receivedAt: '2020-10-01T00:41:11.369+05:30', + request_ip: '2405:201:8005:9856:7911:25e7:5603:5e18', + sentAt: '2020-09-30T19:11:10.382Z', + timestamp: '2020-10-01T00:41:01.324+05:30', + type: 'identify', }, destination: { Config: { - apiKey: 'abcd=', - appId: 'asdasdasd', + apiKey: 'intercomApiKey', + appId: '9e9cdea1-78fa-4829-a9b2-5d7f7e96d1a0', collectContext: false, }, }, @@ -2093,46 +3846,8 @@ export const data = [ }, output: { response: { - status: 200, - body: [ - { - output: { - version: '1', - type: 'REST', - method: 'POST', - endpoint: 'https://api.intercom.io/companies', - headers: { - 'Content-Type': 'application/json', - Authorization: 'Bearer abcd=', - Accept: 'application/json', - 'Intercom-Version': '1.4', - }, - params: {}, - body: { - JSON: { - company_id: 'test_company_id_wdasda', - name: 'rudderUpdate', - plan: 'basic', - size: 50, - website: 'url', - industry: 'IT', - monthly_spend: 2131231, - remote_created_at: 1683017572, - custom_attributes: { - employees: 450, - email: 'test@test.com', - key1: 'val1', - }, - }, - JSON_ARRAY: {}, - XML: {}, - FORM: {}, - }, - files: {}, - userId: 'sdfrsdfsdfsf', - }, - statusCode: 200, - }, + status: 200, + body: [ { output: { version: '1', @@ -2141,28 +3856,40 @@ export const data = [ endpoint: 'https://api.intercom.io/users', headers: { 'Content-Type': 'application/json', - Authorization: 'Bearer abcd=', + Authorization: 'Bearer intercomApiKey', Accept: 'application/json', 'Intercom-Version': '1.4', }, params: {}, body: { JSON: { - user_id: 'sdfrsdfsdfsf', - email: 'testUser@test.com', - companies: [ - { - company_id: 'test_company_id_wdasda', - name: 'rudderUpdate', - }, - ], + user_id: 'test_user_id_1', + email: 'test_1@test.com', + phone: '9876543210', + name: 'Test Name', + signed_up_at: 1601493060, + last_seen_user_agent: 'unknown', + custom_attributes: { + anonymousId: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', + key1: 'value1', + 'address.city': 'Kolkata', + 'address.state': 'West Bengal', + 'originalArray[0].nested_field': 'nested value', + 'originalArray[0].tags[0]': 'tag_1', + 'originalArray[0].tags[1]': 'tag_2', + 'originalArray[0].tags[2]': 'tag_3', + 'originalArray[1].nested_field': 'nested value', + 'originalArray[1].tags[0]': 'tag_1', + 'originalArray[2].nested_field': 'nested value', + }, + update_last_request_at: true, }, JSON_ARRAY: {}, XML: {}, FORM: {}, }, files: {}, - userId: 'sdfrsdfsdfsf', + userId: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', }, statusCode: 200, }, @@ -2172,7 +3899,7 @@ export const data = [ }, { name: 'intercom', - description: 'Test 17', + description: 'Test 1', feature: 'processor', module: 'destination', version: 'v0', @@ -2181,42 +3908,71 @@ export const data = [ body: [ { message: { - groupId: 'test_company_id_wdasda', + anonymousId: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', + channel: 'mobile', context: { - traits: { - email: 'testUser@test.com', + app: { + build: '1.0', + name: 'Test_Example', + namespace: 'com.example.testapp', + version: '1.0', }, - }, - traits: { - employees: 450, - plan: 'basic', - email: 'test@test.com', - name: 'rudderUpdate', - size: '50', - industry: 'IT', - website: 'url', - monthlySpend: '2131231', - remoteCreatedAt: '1683017572', - key1: 'val1', - key2: { - a: 'a', - b: 'b', + device: { + id: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', + manufacturer: 'Apple', + model: 'iPhone', + name: 'iPod touch (7th generation)', + type: 'iOS', }, - key3: [1, 2, 3], - key4: null, + library: { + name: 'test-ios-library', + version: '1.0.7', + }, + locale: 'en-US', + network: { + bluetooth: false, + carrier: 'unavailable', + cellular: false, + wifi: true, + }, + os: { + name: 'iOS', + version: '14.0', + }, + screen: { + density: 2, + height: 320, + width: 568, + }, + timezone: 'Asia/Kolkata', + traits: { + anonymousId: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', + firstName: 'Test', + lastName: 'Name', + createdAt: '2020-09-30T19:11:00.337Z', + email: 'test_1@test.com', + phone: '9876543210', + key1: 'value1', + }, + userAgent: 'unknown', }, - anonymousId: 'anonId', + event: 'Test Event 2', integrations: { All: true, }, - type: 'group', + messageId: '1601493060-39010c49-e6e4-4626-a75c-0dbf1925c9e8', + originalTimestamp: '2020-09-30T19:11:00.337Z', + receivedAt: '2020-10-01T00:41:11.369+05:30', + request_ip: '2405:201:8005:9856:7911:25e7:5603:5e18', + sentAt: '2020-09-30T19:11:10.382Z', + timestamp: '2020-10-01T00:41:01.324+05:30', + type: 'identify', }, destination: { Config: { - apiKey: 'abcd=', - appId: 'asdasdasd', + apiKey: 'intercomApiKey', + appId: '9e9cdea1-78fa-4829-a9b2-5d7f7e96d1a0', collectContext: false, - sendAnonymousId: true, }, }, }, @@ -2232,45 +3988,125 @@ export const data = [ version: '1', type: 'REST', method: 'POST', - endpoint: 'https://api.intercom.io/companies', + endpoint: 'https://api.intercom.io/users', headers: { 'Content-Type': 'application/json', - Authorization: 'Bearer abcd=', + Authorization: 'Bearer intercomApiKey', Accept: 'application/json', 'Intercom-Version': '1.4', }, params: {}, body: { JSON: { - company_id: 'test_company_id_wdasda', - name: 'rudderUpdate', - plan: 'basic', - size: 50, - website: 'url', - industry: 'IT', - monthly_spend: 2131231, - remote_created_at: 1683017572, + email: 'test_1@test.com', + phone: '9876543210', + signed_up_at: 1601493060, + last_seen_user_agent: 'unknown', custom_attributes: { - employees: 450, - email: 'test@test.com', - key1: 'val1', - 'key2.a': 'a', - 'key2.b': 'b', - 'key3[0]': 1, - 'key3[1]': 2, - 'key3[2]': 3, - key4: null, + anonymousId: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', + key1: 'value1', }, + update_last_request_at: true, + name: 'Test Name', }, JSON_ARRAY: {}, XML: {}, FORM: {}, }, files: {}, - userId: 'anonId', + userId: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', }, statusCode: 200, }, + ], + }, + }, + }, + { + name: 'intercom', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', + channel: 'mobile', + context: { + app: { + build: '1.0', + name: 'Test_Example', + namespace: 'com.example.testapp', + version: '1.0', + }, + device: { + id: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', + manufacturer: 'Apple', + model: 'iPhone', + name: 'iPod touch (7th generation)', + type: 'iOS', + }, + library: { + name: 'test-ios-library', + version: '1.0.7', + }, + locale: 'en-US', + network: { + bluetooth: false, + carrier: 'unavailable', + cellular: false, + wifi: true, + }, + os: { + name: 'iOS', + version: '14.0', + }, + screen: { + density: 2, + height: 320, + width: 568, + }, + timezone: 'Asia/Kolkata', + traits: { + anonymousId: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', + lastName: 'Name', + createdAt: '2020-09-30T19:11:00.337Z', + email: 'test_1@test.com', + phone: '9876543210', + key1: 'value1', + }, + userAgent: 'unknown', + }, + event: 'Test Event 2', + integrations: { + All: true, + }, + messageId: '1601493060-39010c49-e6e4-4626-a75c-0dbf1925c9e8', + originalTimestamp: '2020-09-30T19:11:00.337Z', + receivedAt: '2020-10-01T00:41:11.369+05:30', + request_ip: '2405:201:8005:9856:7911:25e7:5603:5e18', + sentAt: '2020-09-30T19:11:10.382Z', + timestamp: '2020-10-01T00:41:01.324+05:30', + type: 'identify', + }, + destination: { + Config: { + apiKey: 'intercomApiKey', + appId: '9e9cdea1-78fa-4829-a9b2-5d7f7e96d1a0', + collectContext: false, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ { output: { version: '1', @@ -2279,28 +4115,30 @@ export const data = [ endpoint: 'https://api.intercom.io/users', headers: { 'Content-Type': 'application/json', - Authorization: 'Bearer abcd=', + Authorization: 'Bearer intercomApiKey', Accept: 'application/json', 'Intercom-Version': '1.4', }, params: {}, body: { JSON: { - user_id: 'anonId', - email: 'testUser@test.com', - companies: [ - { - company_id: 'test_company_id_wdasda', - name: 'rudderUpdate', - }, - ], + email: 'test_1@test.com', + phone: '9876543210', + signed_up_at: 1601493060, + last_seen_user_agent: 'unknown', + custom_attributes: { + anonymousId: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', + key1: 'value1', + }, + update_last_request_at: true, + name: 'Name', }, JSON_ARRAY: {}, XML: {}, FORM: {}, }, files: {}, - userId: 'anonId', + userId: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', }, statusCode: 200, }, diff --git a/test/integrations/destinations/intercom/router/data.ts b/test/integrations/destinations/intercom/router/data.ts index 74c514d082..2ce8621ca1 100644 --- a/test/integrations/destinations/intercom/router/data.ts +++ b/test/integrations/destinations/intercom/router/data.ts @@ -1,4 +1,799 @@ export const data = [ + { + name: 'intercom', + description: 'Intercom router tests', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + userId: 'user@1', + channel: 'web', + context: { + traits: { + age: 23, + email: 'test@rudderlabs.com', + phone: '+91 9999999999', + firstName: 'Test', + lastName: 'Rudderlabs', + address: 'california usa', + ownerId: '13', + }, + }, + type: 'identify', + integrations: { All: true }, + originalTimestamp: '2023-11-10T14:42:44.724Z', + timestamp: '2023-11-22T10:12:44.757+05:30', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + apiKey: 'testApiKey', + apiServer: 'standard', + apiVersion: 'v2', + sendAnonymousId: false, + updateLastRequestAt: true, + }, + }, + metadata: { jobId: 1 }, + }, + { + message: { + userId: 'user@3', + channel: 'web', + context: { + traits: { + age: 32, + email: 'test+3@rudderlabs.com', + phone: '+91 9399999999', + firstName: 'Test', + lastName: 'RudderStack', + ownerId: '15', + }, + }, + properties: { + revenue: { + amount: 1232, + currency: 'inr', + test: 123, + }, + price: { + amount: 3000, + currency: 'USD', + }, + }, + event: 'Product Viewed', + type: 'track', + originalTimestamp: '2023-11-10T14:42:44.724Z', + timestamp: '2023-11-22T10:12:44.757+05:30', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + apiKey: 'testApiKey', + apiServer: 'standard', + apiVersion: 'v2', + sendAnonymousId: false, + updateLastRequestAt: false, + }, + }, + metadata: { + jobId: 2, + }, + }, + { + message: { + userId: 'user@5', + groupId: 'rudderlabs', + channel: 'web', + context: { + traits: { + email: 'test+5@rudderlabs.com', + phone: '+91 9599999999', + firstName: 'John', + lastName: 'Snow', + ownerId: '17', + }, + }, + traits: { + name: 'RudderStack', + size: 500, + website: 'www.rudderstack.com', + industry: 'CDP', + plan: 'enterprise', + }, + type: 'group', + originalTimestamp: '2023-11-10T14:42:44.724Z', + timestamp: '2023-11-22T10:12:44.757+05:30', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + apiKey: 'testApiKey', + apiVersion: 'v2', + apiServer: 'eu', + sendAnonymousId: false, + }, + }, + metadata: { + jobId: 3, + }, + }, + { + message: { + userId: 'user@6', + groupId: 'rudderlabs', + channel: 'web', + context: { + traits: { + email: 'test+5@rudderlabs.com', + phone: '+91 9599999999', + firstName: 'John', + lastName: 'Snow', + ownerId: '17', + }, + }, + traits: { + name: 'RudderStack', + size: 500, + website: 'www.rudderstack.com', + industry: 'CDP', + plan: 'enterprise', + isOpenSource: true, + }, + type: 'group', + originalTimestamp: '2023-11-10T14:42:44.724Z', + timestamp: '2023-11-22T10:12:44.757+05:30', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + apiKey: 'testApiKey', + apiVersion: 'v2', + apiServer: 'eu', + sendAnonymousId: false, + }, + }, + metadata: { + jobId: 4, + }, + }, + ], + destType: 'intercom', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batched: false, + batchedRequest: { + body: { + JSON: { + email: 'test@rudderlabs.com', + external_id: 'user@1', + name: 'Test Rudderlabs', + owner_id: 13, + phone: '+91 9999999999', + custom_attributes: { + address: 'california usa', + age: 23, + }, + }, + XML: {}, + FORM: {}, + JSON_ARRAY: {}, + }, + endpoint: 'https://api.intercom.io/contacts', + files: {}, + headers: { + Authorization: 'Bearer testApiKey', + 'Content-Type': 'application/json', + Accept: 'application/json', + 'Intercom-Version': '2.10', + }, + method: 'POST', + params: {}, + type: 'REST', + version: '1', + }, + destination: { + Config: { + apiKey: 'testApiKey', + apiServer: 'standard', + apiVersion: 'v2', + sendAnonymousId: false, + updateLastRequestAt: true, + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + metadata: [{ jobId: 1 }], + statusCode: 200, + }, + { + batched: false, + batchedRequest: { + body: { + FORM: {}, + JSON: { + created_at: 1700628164, + email: 'test+3@rudderlabs.com', + event_name: 'Product Viewed', + metadata: { + price: { + amount: 3000, + currency: 'USD', + }, + revenue: { + amount: 1232, + currency: 'inr', + test: 123, + }, + }, + user_id: 'user@3', + }, + JSON_ARRAY: {}, + XML: {}, + }, + endpoint: 'https://api.intercom.io/events', + files: {}, + headers: { + Authorization: 'Bearer testApiKey', + 'Content-Type': 'application/json', + Accept: 'application/json', + 'Intercom-Version': '2.10', + }, + method: 'POST', + params: {}, + type: 'REST', + version: '1', + }, + destination: { + Config: { + apiKey: 'testApiKey', + apiServer: 'standard', + apiVersion: 'v2', + sendAnonymousId: false, + updateLastRequestAt: false, + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + metadata: [{ jobId: 2 }], + statusCode: 200, + }, + { + batched: false, + batchedRequest: { + body: { + JSON: { + id: '657264e9018c0a647s45', + }, + XML: {}, + FORM: {}, + JSON_ARRAY: {}, + }, + endpoint: 'https://api.eu.intercom.io/contacts/70701240741e45d040/companies', + files: {}, + headers: { + Authorization: 'Bearer testApiKey', + 'Content-Type': 'application/json', + Accept: 'application/json', + 'Intercom-Version': '2.10', + }, + method: 'POST', + params: {}, + type: 'REST', + version: '1', + }, + destination: { + Config: { + apiKey: 'testApiKey', + apiServer: 'eu', + apiVersion: 'v2', + sendAnonymousId: false, + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + metadata: [ + { + jobId: 3, + }, + ], + statusCode: 200, + }, + { + batched: false, + error: + '{"message":"Unable to Create or Update Company due to : [{\\"code\\":\\"parameter_invalid\\",\\"message\\":\\"Custom attribute \'isOpenSource\' does not exist\\"}]","destinationResponse":{"response":{"type":"error.list","request_id":"request_1","errors":[{"code":"parameter_invalid","message":"Custom attribute \'isOpenSource\' does not exist"}]},"status":401}}', + statTags: { + destType: 'INTERCOM', + errorCategory: 'network', + errorType: 'aborted', + feature: 'router', + implementation: 'cdkV2', + module: 'destination', + }, + destination: { + Config: { + apiKey: 'testApiKey', + apiServer: 'eu', + apiVersion: 'v2', + sendAnonymousId: false, + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + metadata: [ + { + jobId: 4, + }, + ], + statusCode: 401, + }, + ], + }, + }, + }, + }, + { + name: 'intercom', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + anonymousId: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', + channel: 'mobile', + context: { + app: { + build: '1.0', + name: 'Test_Example', + namespace: 'com.example.testapp', + version: '1.0', + }, + device: { + id: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', + manufacturer: 'Apple', + model: 'iPhone', + name: 'iPod touch (7th generation)', + type: 'iOS', + }, + library: { + name: 'test-ios-library', + version: '1.0.7', + }, + locale: 'en-US', + network: { + bluetooth: false, + carrier: 'unavailable', + cellular: false, + wifi: true, + }, + os: { + name: 'iOS', + version: '14.0', + }, + screen: { + density: 2, + height: 320, + width: 568, + }, + timezone: 'Asia/Kolkata', + traits: { + anonymousId: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', + name: 'Test Name', + firstName: 'Test', + lastName: 'Name', + createdAt: '2020-09-30T19:11:00.337Z', + userId: 'test_user_id_1', + email: 'test_1@test.com', + phone: '9876543210', + key1: 'value1', + }, + userAgent: 'unknown', + }, + event: 'Test Event 2', + integrations: { + All: true, + }, + messageId: '1601493060-39010c49-e6e4-4626-a75c-0dbf1925c9e8', + originalTimestamp: '2020-09-30T19:11:00.337Z', + receivedAt: '2020-10-01T00:41:11.369+05:30', + request_ip: '2405:201:8005:9856:7911:25e7:5603:5e18', + sentAt: '2020-09-30T19:11:10.382Z', + timestamp: '2020-10-01T00:41:01.324+05:30', + type: 'identify', + }, + metadata: { + jobId: 1, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + apiKey: 'testApiKey', + apiVersion: 'v1', + sendAnonymousId: false, + updateLastRequestAt: false, + collectContext: false, + }, + }, + }, + { + message: { + anonymousId: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', + channel: 'mobile', + context: { + app: { + build: '1.0', + name: 'Test_Example', + namespace: 'com.example.testapp', + version: '1.0', + }, + device: { + id: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', + manufacturer: 'Apple', + model: 'iPhone', + name: 'iPod touch (7th generation)', + type: 'iOS', + }, + library: { + name: 'test-ios-library', + version: '1.0.7', + }, + locale: 'en-US', + network: { + bluetooth: false, + carrier: 'unavailable', + cellular: false, + wifi: true, + }, + os: { + name: 'iOS', + version: '14.0', + }, + screen: { + density: 2, + height: 320, + width: 568, + }, + timezone: 'Asia/Kolkata', + traits: { + anonymousId: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', + firstName: 'Test', + lastName: 'Name', + createdAt: '2020-09-30T19:11:00.337Z', + email: 'test_1@test.com', + phone: '9876543210', + key1: 'value1', + }, + userAgent: 'unknown', + }, + event: 'Test Event 2', + integrations: { + All: true, + }, + messageId: '1601493060-39010c49-e6e4-4626-a75c-0dbf1925c9e8', + originalTimestamp: '2020-09-30T19:11:00.337Z', + receivedAt: '2020-10-01T00:41:11.369+05:30', + request_ip: '2405:201:8005:9856:7911:25e7:5603:5e18', + sentAt: '2020-09-30T19:11:10.382Z', + timestamp: '2020-10-01T00:41:01.324+05:30', + type: 'identify', + }, + metadata: { + jobId: 2, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + apiKey: 'testApiKey', + apiVersion: 'v1', + sendAnonymousId: false, + updateLastRequestAt: false, + collectContext: false, + }, + }, + }, + { + message: { + userId: 'user@5', + groupId: 'rudderlabs', + channel: 'web', + context: { + traits: { + email: 'test+5@rudderlabs.com', + phone: '+91 9599999999', + firstName: 'John', + lastName: 'Snow', + ownerId: '17', + }, + }, + traits: { + name: 'RudderStack', + size: 500, + website: 'www.rudderstack.com', + industry: 'CDP', + plan: 'enterprise', + }, + type: 'group', + originalTimestamp: '2023-11-10T14:42:44.724Z', + timestamp: '2023-11-22T10:12:44.757+05:30', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + apiKey: 'testApiKey', + apiVersion: 'v1', + sendAnonymousId: false, + collectContext: false, + }, + }, + metadata: { + jobId: 3, + }, + }, + ], + destType: 'intercom', + }, + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.intercom.io/users', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer testApiKey', + Accept: 'application/json', + 'Intercom-Version': '1.4', + }, + params: {}, + body: { + JSON: { + email: 'test_1@test.com', + phone: '9876543210', + name: 'Test Name', + signed_up_at: 1601493060, + last_seen_user_agent: 'unknown', + update_last_request_at: false, + user_id: 'test_user_id_1', + custom_attributes: { + anonymousId: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', + key1: 'value1', + }, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', + }, + metadata: [ + { + jobId: 1, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + apiKey: 'testApiKey', + apiVersion: 'v1', + collectContext: false, + sendAnonymousId: false, + updateLastRequestAt: false, + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.intercom.io/users', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer testApiKey', + Accept: 'application/json', + 'Intercom-Version': '1.4', + }, + params: {}, + body: { + JSON: { + email: 'test_1@test.com', + phone: '9876543210', + signed_up_at: 1601493060, + name: 'Test Name', + last_seen_user_agent: 'unknown', + update_last_request_at: false, + custom_attributes: { + anonymousId: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', + key1: 'value1', + }, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', + }, + metadata: [ + { + jobId: 2, + }, + ], + batched: false, + statusCode: 200, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + apiKey: 'testApiKey', + apiVersion: 'v1', + collectContext: false, + sendAnonymousId: false, + updateLastRequestAt: false, + }, + }, + }, + { + batched: false, + batchedRequest: [ + { + body: { + FORM: {}, + JSON: { + company_id: 'rudderlabs', + industry: 'CDP', + name: 'RudderStack', + plan: 'enterprise', + size: 500, + website: 'www.rudderstack.com', + }, + JSON_ARRAY: {}, + XML: {}, + }, + endpoint: 'https://api.intercom.io/companies', + files: {}, + headers: { + Accept: 'application/json', + Authorization: 'Bearer testApiKey', + 'Content-Type': 'application/json', + 'Intercom-Version': '1.4', + }, + method: 'POST', + params: {}, + type: 'REST', + version: '1', + }, + { + body: { + FORM: {}, + JSON: { + companies: [ + { + company_id: 'rudderlabs', + name: 'RudderStack', + }, + ], + email: 'test+5@rudderlabs.com', + user_id: 'user@5', + }, + JSON_ARRAY: {}, + XML: {}, + }, + endpoint: 'https://api.intercom.io/users', + files: {}, + headers: { + Accept: 'application/json', + Authorization: 'Bearer testApiKey', + 'Content-Type': 'application/json', + 'Intercom-Version': '1.4', + }, + method: 'POST', + params: {}, + type: 'REST', + version: '1', + }, + ], + destination: { + Config: { + apiKey: 'testApiKey', + apiVersion: 'v1', + collectContext: false, + sendAnonymousId: false, + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + metadata: [ + { + jobId: 3, + }, + ], + statusCode: 200, + }, + ], + }, + }, + }, + }, { name: 'intercom', description: 'Test 0', @@ -78,8 +873,10 @@ export const data = [ }, destination: { Config: { - apiKey: 'intercomApiKey', - appId: '9e9cdea1-78fa-4829-a9b2-5d7f7e96d1a0', + apiKey: 'testApiKey', + apiVersion: 'v1', + sendAnonymousId: false, + updateLastRequestAt: false, collectContext: false, }, }, @@ -151,11 +948,50 @@ export const data = [ }, destination: { Config: { - apiKey: 'intercomApiKey', - appId: '9e9cdea1-78fa-4829-a9b2-5d7f7e96d1a0', + apiKey: 'testApiKey', + apiVersion: 'v1', + sendAnonymousId: false, + updateLastRequestAt: false, + collectContext: false, + }, + }, + }, + { + message: { + userId: 'user@5', + groupId: 'rudderlabs', + channel: 'web', + context: { + traits: { + email: 'test+5@rudderlabs.com', + phone: '+91 9599999999', + firstName: 'John', + lastName: 'Snow', + ownerId: '17', + }, + }, + traits: { + name: 'RudderStack', + size: 500, + website: 'www.rudderstack.com', + industry: 'CDP', + plan: 'enterprise', + }, + type: 'group', + originalTimestamp: '2023-11-10T14:42:44.724Z', + timestamp: '2023-11-22T10:12:44.757+05:30', + }, + destination: { + Config: { + apiKey: 'testApiKey', + apiVersion: 'v1', + sendAnonymousId: false, collectContext: false, }, }, + metadata: { + jobId: 3, + }, }, ], destType: 'intercom', @@ -175,7 +1011,7 @@ export const data = [ endpoint: 'https://api.intercom.io/users', headers: { 'Content-Type': 'application/json', - Authorization: 'Bearer intercomApiKey', + Authorization: 'Bearer testApiKey', Accept: 'application/json', 'Intercom-Version': '1.4', }, @@ -187,7 +1023,7 @@ export const data = [ name: 'Test Name', signed_up_at: 1601493060, last_seen_user_agent: 'unknown', - update_last_request_at: true, + update_last_request_at: false, user_id: 'test_user_id_1', custom_attributes: { anonymousId: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', @@ -210,9 +1046,11 @@ export const data = [ statusCode: 200, destination: { Config: { - apiKey: 'intercomApiKey', - appId: '9e9cdea1-78fa-4829-a9b2-5d7f7e96d1a0', + apiKey: 'testApiKey', + apiVersion: 'v1', collectContext: false, + sendAnonymousId: false, + updateLastRequestAt: false, }, }, }, @@ -224,7 +1062,7 @@ export const data = [ endpoint: 'https://api.intercom.io/users', headers: { 'Content-Type': 'application/json', - Authorization: 'Bearer intercomApiKey', + Authorization: 'Bearer testApiKey', Accept: 'application/json', 'Intercom-Version': '1.4', }, @@ -236,7 +1074,7 @@ export const data = [ signed_up_at: 1601493060, name: 'Test Name', last_seen_user_agent: 'unknown', - update_last_request_at: true, + update_last_request_at: false, custom_attributes: { anonymousId: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', key1: 'value1', @@ -258,11 +1096,88 @@ export const data = [ statusCode: 200, destination: { Config: { - apiKey: 'intercomApiKey', - appId: '9e9cdea1-78fa-4829-a9b2-5d7f7e96d1a0', + apiKey: 'testApiKey', + apiVersion: 'v1', + collectContext: false, + sendAnonymousId: false, + updateLastRequestAt: false, + }, + }, + }, + { + batched: false, + batchedRequest: [ + { + body: { + FORM: {}, + JSON: { + company_id: 'rudderlabs', + industry: 'CDP', + name: 'RudderStack', + plan: 'enterprise', + size: 500, + website: 'www.rudderstack.com', + }, + JSON_ARRAY: {}, + XML: {}, + }, + endpoint: 'https://api.intercom.io/companies', + files: {}, + headers: { + Accept: 'application/json', + Authorization: 'Bearer testApiKey', + 'Content-Type': 'application/json', + 'Intercom-Version': '1.4', + }, + method: 'POST', + params: {}, + type: 'REST', + version: '1', + }, + { + body: { + FORM: {}, + JSON: { + companies: [ + { + company_id: 'rudderlabs', + name: 'RudderStack', + }, + ], + email: 'test+5@rudderlabs.com', + user_id: 'user@5', + }, + JSON_ARRAY: {}, + XML: {}, + }, + endpoint: 'https://api.intercom.io/users', + files: {}, + headers: { + Accept: 'application/json', + Authorization: 'Bearer testApiKey', + 'Content-Type': 'application/json', + 'Intercom-Version': '1.4', + }, + method: 'POST', + params: {}, + type: 'REST', + version: '1', + }, + ], + destination: { + Config: { + apiKey: 'testApiKey', + apiVersion: 'v1', collectContext: false, + sendAnonymousId: false, }, }, + metadata: [ + { + jobId: 3, + }, + ], + statusCode: 200, }, ], }, diff --git a/test/integrations/destinations/iterable/router/data.ts b/test/integrations/destinations/iterable/router/data.ts index 7cd19381d6..09eedc8eb8 100644 --- a/test/integrations/destinations/iterable/router/data.ts +++ b/test/integrations/destinations/iterable/router/data.ts @@ -15,10 +15,7 @@ export const data = [ sentAt: '2022-09-27T11:13:03.777Z', messageId: '9ad41366-8060-4c9f-b181-f6bea67d5469', originalTimestamp: '2022-09-27T11:13:03.777Z', - traits: { - ruchira: 'donaldbaker@ellis.com', - new_field2: 'GB', - }, + traits: { ruchira: 'donaldbaker@ellis.com', new_field2: 'GB' }, channel: 'sources', rudderId: '3d51640c-ab09-42c1-b7b2-db6ab433b35e', context: { @@ -32,11 +29,7 @@ export const data = [ }, mappedToDestination: 'true', externalId: [ - { - id: 'Tiffany', - type: 'ITERABLE-test-ruchira', - identifierType: 'itemId', - }, + { id: 'Tiffany', type: 'ITERABLE-test-ruchira', identifierType: 'itemId' }, ], }, timestamp: '2022-09-27T11:12:59.079Z', @@ -45,14 +38,9 @@ export const data = [ recordId: '10', request_ip: '10.1.86.248', }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, destination: { - Config: { - apiKey: '583af2f8-15ba-49c0-8511-76383e7de07e', - hubID: '22066036', - }, + Config: { apiKey: '583af2f8-15ba-49c0-8511-76383e7de07e', hubID: '22066036' }, Enabled: true, }, }, @@ -62,10 +50,7 @@ export const data = [ sentAt: '2022-09-27T11:13:03.777Z', messageId: '9ad41366-8060-4c9f-b181-f6bea67d5469', originalTimestamp: '2022-09-27T11:13:03.777Z', - traits: { - ruchira: 'abc@ellis.com', - new_field2: 'GB1', - }, + traits: { ruchira: 'abc@ellis.com', new_field2: 'GB1' }, channel: 'sources', rudderId: '3d51640c-ab09-42c1-b7b2-db6ab433b35e', context: { @@ -79,11 +64,7 @@ export const data = [ }, mappedToDestination: 'true', externalId: [ - { - id: 'ABC', - type: 'ITERABLE-test-ruchira', - identifierType: 'itemId', - }, + { id: 'ABC', type: 'ITERABLE-test-ruchira', identifierType: 'itemId' }, ], }, timestamp: '2022-09-27T11:12:59.079Z', @@ -92,14 +73,9 @@ export const data = [ recordId: '10', request_ip: '10.1.86.248', }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, destination: { - Config: { - apiKey: '583af2f8-15ba-49c0-8511-76383e7de07e', - hubID: '22066036', - }, + Config: { apiKey: '583af2f8-15ba-49c0-8511-76383e7de07e', hubID: '22066036' }, Enabled: true, }, }, @@ -127,14 +103,8 @@ export const data = [ body: { JSON: { documents: { - Tiffany: { - ruchira: 'donaldbaker@ellis.com', - new_field2: 'GB', - }, - ABC: { - ruchira: 'abc@ellis.com', - new_field2: 'GB1', - }, + Tiffany: { ruchira: 'donaldbaker@ellis.com', new_field2: 'GB' }, + ABC: { ruchira: 'abc@ellis.com', new_field2: 'GB1' }, }, replaceUploadedFieldsOnly: true, }, @@ -145,20 +115,13 @@ export const data = [ files: {}, }, metadata: [ - { - jobId: 2, - }, - { - jobId: 2, - }, + { jobId: 2, userId: 'u1' }, + { jobId: 2, userId: 'u1' }, ], batched: true, statusCode: 200, destination: { - Config: { - apiKey: '583af2f8-15ba-49c0-8511-76383e7de07e', - hubID: '22066036', - }, + Config: { apiKey: '583af2f8-15ba-49c0-8511-76383e7de07e', hubID: '22066036' }, Enabled: true, }, }, @@ -182,15 +145,8 @@ export const data = [ type: 'track', event: 'Email Opened', sentAt: '2020-08-28T16:26:16.473Z', - context: { - library: { - name: 'analytics-node', - version: '0.0.3', - }, - }, - _metadata: { - nodeVersion: '10.22.0', - }, + context: { library: { name: 'analytics-node', version: '0.0.3' } }, + _metadata: { nodeVersion: '10.22.0' }, messageId: 'node-570110489d3e99b234b18af9a9eca9d4-6009779e-82d7-469d-aaeb-5ccf162b0453', properties: { @@ -201,9 +157,7 @@ export const data = [ anonymousId: 'abcdeeeeeeeexxxx102', originalTimestamp: '2020-08-28T16:26:06.468Z', }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, destination: { Config: { apiKey: '62d12498c37c4fd8a1a546c2d35c2f60', @@ -233,22 +187,15 @@ export const data = [ email: 'manashi@website.com', country: 'India', }, - library: { - name: 'analytics-node', - version: '0.0.3', - }, - }, - _metadata: { - nodeVersion: '10.22.0', + library: { name: 'analytics-node', version: '0.0.3' }, }, + _metadata: { nodeVersion: '10.22.0' }, messageId: 'node-cc3ef811f686139ee527b806ee0129ef-163a3a88-266f-447e-8cce-34a8f42f8dcd', anonymousId: 'abcdeeeeeeeexxxx102', originalTimestamp: '2020-08-28T16:26:06.462Z', }, - metadata: { - jobId: 3, - }, + metadata: { jobId: 3, userId: 'u1' }, destination: { Config: { apiKey: '62d12498c37c4fd8a1a546c2d35c2f60', @@ -270,24 +217,14 @@ export const data = [ namespace: 'com.rudderlabs.javascript', version: '1.0.0', }, - traits: { - email: 'sayan@gmail.com', - }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + traits: { email: 'sayan@gmail.com' }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', locale: 'en-US', ip: '0.0.0.0', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, }, type: 'page', messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', @@ -302,15 +239,11 @@ export const data = [ url: '', category: 'test-category', }, - integrations: { - All: true, - }, + integrations: { All: true }, name: 'ApplicationLoaded', sentAt: '2019-10-14T11:15:53.296Z', }, - metadata: { - jobId: 4, - }, + metadata: { jobId: 4, userId: 'u1' }, destination: { Config: { apiKey: '12345', @@ -342,9 +275,7 @@ export const data = [ task_run_id: 'c5tar6cqgmgmcjvupdi0', version: 'release.v1.6.8', }, - device: { - token: 54321, - }, + device: { token: 54321 }, }, messageId: '2f052f7c-f694-4849-a7ed-a432f7ffa0a4', originalTimestamp: '2021-10-28T14:03:50.503Z', @@ -365,9 +296,7 @@ export const data = [ type: 'identify', userId: 'lynnanderson@smith.net', }, - metadata: { - jobId: 5, - }, + metadata: { jobId: 5, userId: 'u1' }, destination: { ID: '1zia9wKshXt80YksLmUdJnr7IHI', Name: 'test_iterable', @@ -420,9 +349,7 @@ export const data = [ IsProcessorEnabled: true, }, libraries: [], - request: { - query: {}, - }, + request: { query: {} }, }, { message: { @@ -434,24 +361,14 @@ export const data = [ namespace: 'com.rudderlabs.javascript', version: '1.0.0', }, - traits: { - email: 'sayan@gmail.com', - }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + traits: { email: 'sayan@gmail.com' }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', locale: 'en-US', ip: '0.0.0.0', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, }, event: 'product added', type: 'track', @@ -489,15 +406,11 @@ export const data = [ }, ], }, - integrations: { - All: true, - }, + integrations: { All: true }, name: 'ApplicationLoaded', sentAt: '2019-10-14T11:15:53.296Z', }, - metadata: { - jobId: 6, - }, + metadata: { jobId: 6, userId: 'u1' }, destination: { Config: { apiKey: '62d12498c37c4fd8a1a546c2d35c2f60', @@ -513,15 +426,8 @@ export const data = [ message: { type: 'page', sentAt: '2020-08-28T16:26:16.473Z', - context: { - library: { - name: 'analytics-node', - version: '0.0.3', - }, - }, - _metadata: { - nodeVersion: '10.22.0', - }, + context: { library: { name: 'analytics-node', version: '0.0.3' } }, + _metadata: { nodeVersion: '10.22.0' }, messageId: 'node-6f62b91e789a636929ca38aed01c5f6e-103c720d-81bd-4742-98d6-d45a65aed23e', properties: { @@ -532,9 +438,7 @@ export const data = [ anonymousId: 'abcdeeeeeeeexxxx102', originalTimestamp: '2020-08-28T16:26:06.468Z', }, - metadata: { - jobId: 7, - }, + metadata: { jobId: 7, userId: 'u1' }, destination: { Config: { apiKey: '62d12498c37c4fd8a1a546c2d35c2f60', @@ -550,15 +454,8 @@ export const data = [ message: { type: 'alias', sentAt: '2020-08-28T16:26:16.473Z', - context: { - library: { - name: 'analytics-node', - version: '0.0.3', - }, - }, - _metadata: { - nodeVersion: '10.22.0', - }, + context: { library: { name: 'analytics-node', version: '0.0.3' } }, + _metadata: { nodeVersion: '10.22.0' }, messageId: 'node-6f62b91e789a636929ca38aed01c5f6e-103c720d-81bd-4742-98d6-d45a65aed23e', properties: { @@ -571,9 +468,7 @@ export const data = [ anonymousId: 'abcdeeeeeeeexxxx102', originalTimestamp: '2020-08-28T16:26:06.468Z', }, - metadata: { - jobId: 8, - }, + metadata: { jobId: 8, userId: 'u1' }, destination: { Config: { apiKey: '62d12498c37c4fd8a1a546c2d35c2f60', @@ -627,11 +522,7 @@ export const data = [ }, files: {}, }, - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], batched: true, statusCode: 200, destination: { @@ -679,11 +570,7 @@ export const data = [ }, files: {}, }, - metadata: [ - { - jobId: 3, - }, - ], + metadata: [{ jobId: 3, userId: 'u1' }], batched: true, statusCode: 200, destination: { @@ -703,10 +590,7 @@ export const data = [ type: 'REST', method: 'POST', endpoint: 'https://api.iterable.com/api/events/trackBulk', - headers: { - 'Content-Type': 'application/json', - api_key: '12345', - }, + headers: { 'Content-Type': 'application/json', api_key: '12345' }, params: {}, body: { JSON: { @@ -733,11 +617,7 @@ export const data = [ }, files: {}, }, - metadata: [ - { - jobId: 4, - }, - ], + metadata: [{ jobId: 4, userId: 'u1' }], batched: true, statusCode: 200, destination: { @@ -766,9 +646,7 @@ export const data = [ JSON: { user: { email: 'sayan@gmail.com', - dataFields: { - email: 'sayan@gmail.com', - }, + dataFields: { email: 'sayan@gmail.com' }, userId: '12345', preferUserId: true, mergeNestedObjects: true, @@ -802,11 +680,7 @@ export const data = [ }, files: {}, }, - metadata: [ - { - jobId: 6, - }, - ], + metadata: [{ jobId: 6, userId: 'u1' }], batched: false, statusCode: 200, destination: { @@ -852,11 +726,7 @@ export const data = [ }, files: {}, }, - metadata: [ - { - jobId: 7, - }, - ], + metadata: [{ jobId: 7, userId: 'u1' }], batched: true, statusCode: 200, destination: { @@ -882,21 +752,14 @@ export const data = [ }, params: {}, body: { - JSON: { - currentEmail: 'old@email.com', - newEmail: 'new@email.com', - }, + JSON: { currentEmail: 'old@email.com', newEmail: 'new@email.com' }, JSON_ARRAY: {}, XML: {}, FORM: {}, }, files: {}, }, - metadata: [ - { - jobId: 8, - }, - ], + metadata: [{ jobId: 8, userId: 'u1' }], batched: false, statusCode: 200, destination: { @@ -916,10 +779,7 @@ export const data = [ type: 'REST', method: 'POST', endpoint: 'https://api.iterable.com/api/users/bulkUpdate', - headers: { - 'Content-Type': 'application/json', - api_key: '12345', - }, + headers: { 'Content-Type': 'application/json', api_key: '12345' }, params: {}, body: { JSON: { @@ -947,11 +807,7 @@ export const data = [ }, files: {}, }, - metadata: [ - { - jobId: 5, - }, - ], + metadata: [{ jobId: 5, userId: 'u1' }], batched: true, statusCode: 200, destination: { diff --git a/test/integrations/destinations/june/router/data.ts b/test/integrations/destinations/june/router/data.ts index cf8c4f0011..81e5c6eb5a 100644 --- a/test/integrations/destinations/june/router/data.ts +++ b/test/integrations/destinations/june/router/data.ts @@ -10,49 +10,29 @@ export const data = [ body: { input: [ { - destination: { - Config: { - apiKey: '93EMyDLvfpbRxxYn', - }, - ID: 'june123', - }, - metadata: { - jobId: 1, - }, + destination: { Config: { apiKey: '93EMyDLvfpbRxxYn' }, ID: 'june123' }, + metadata: { jobId: 1, userId: 'u1' }, message: { type: 'identify', sentAt: '2022-01-20T13:39:21.033Z', channel: 'web', userId: '5136633649', - context: { - traits: { - name: 'John Doe', - email: 'johndoe@gmail.com', - age: 25, - }, - }, + context: { traits: { name: 'John Doe', email: 'johndoe@gmail.com', age: 25 } }, rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', anonymousId: 'bf412108-0357-4330-b119-7305e767823c', originalTimestamp: '2022-01-20T13:39:21.032Z', }, }, { - destination: { - Config: { - apiKey: '93EMyDLvfpbRxxYn', - }, - ID: 'june123', - }, - metadata: { - jobId: 2, - }, + destination: { Config: { apiKey: '93EMyDLvfpbRxxYn' }, ID: 'june123' }, + metadata: { jobId: 2, userId: 'u1' }, message: { type: 'track', event: 'Product Reviewed', properties: { review_id: '12345', product_id: '123', - rating: 3.0, + rating: 3, review_body: 'Average product, expected much more.', groupId: '91Yb32830', }, @@ -80,11 +60,7 @@ export const data = [ JSON: { anonymousId: 'bf412108-0357-4330-b119-7305e767823c', timestamp: '2022-01-20T13:39:21.032Z', - traits: { - age: 25, - email: 'johndoe@gmail.com', - name: 'John Doe', - }, + traits: { age: 25, email: 'johndoe@gmail.com', name: 'John Doe' }, userId: '5136633649', }, JSON_ARRAY: {}, @@ -101,33 +77,15 @@ export const data = [ type: 'REST', version: '1', }, - destination: { - Config: { - apiKey: '93EMyDLvfpbRxxYn', - }, - ID: 'june123', - }, - metadata: [ - { - jobId: 1, - }, - ], + destination: { Config: { apiKey: '93EMyDLvfpbRxxYn' }, ID: 'june123' }, + metadata: [{ jobId: 1, userId: 'u1' }], statusCode: 200, }, { - destination: { - Config: { - apiKey: '93EMyDLvfpbRxxYn', - }, - ID: 'june123', - }, + destination: { Config: { apiKey: '93EMyDLvfpbRxxYn' }, ID: 'june123' }, batched: false, error: 'Missing required value from "userIdOnly"', - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], statTags: { destType: 'JUNE', errorCategory: 'dataValidation', diff --git a/test/integrations/destinations/kafka/batch/data.ts b/test/integrations/destinations/kafka/batch/data.ts index 0cc1d75c24..131833b23c 100644 --- a/test/integrations/destinations/kafka/batch/data.ts +++ b/test/integrations/destinations/kafka/batch/data.ts @@ -19,12 +19,8 @@ export const data = [ userId: 'user1', context: { ip: '14.5.67.21', - traits: { - trait1: 'new-val', - }, - library: { - name: 'http', - }, + traits: { trait1: 'new-val' }, + library: { name: 'http' }, }, messageId: '6f27a4da-cefb-4800-acf1-f467e8aab91c', timestamp: '2020-02-02T00:23:09.544Z', @@ -35,10 +31,7 @@ export const data = [ }, topic: 'new-topic', }, - metadata: { - rudderId: 'user1<<>>new-topic', - jobId: 1, - }, + metadata: { rudderId: 'user1<<>>new-topic', jobId: 1, userId: 'u1' }, destination: { ID: '1uzGR4rn915R6Xts9KRfWAzmgGL', Name: 'local-kafka-test', @@ -105,12 +98,8 @@ export const data = [ userId: 'user2', context: { ip: '14.5.67.21', - traits: { - trait1: 'new-val', - }, - library: { - name: 'http', - }, + traits: { trait1: 'new-val' }, + library: { name: 'http' }, }, messageId: 'fe182d9e-e86e-4db5-ae12-f4b399555fcc', timestamp: '2020-02-02T00:23:09.544Z', @@ -121,10 +110,7 @@ export const data = [ }, topic: 'new-topic', }, - metadata: { - rudderId: 'user2<<>>new-topic', - jobId: 2, - }, + metadata: { rudderId: 'user2<<>>new-topic', jobId: 2, userId: 'u1' }, destination: { ID: '1uzGR4rn915R6Xts9KRfWAzmgGL', Name: 'local-kafka-test', @@ -191,12 +177,8 @@ export const data = [ userId: 'user3', context: { ip: '14.5.67.21', - traits: { - trait1: 'new-val', - }, - library: { - name: 'http', - }, + traits: { trait1: 'new-val' }, + library: { name: 'http' }, }, messageId: '2803e656-77ff-47ca-9606-90663f9aed38', timestamp: '2020-02-02T00:23:09.544Z', @@ -207,10 +189,7 @@ export const data = [ }, topic: 'new-topic', }, - metadata: { - rudderId: 'user3<<>>new-topic', - jobId: 3, - }, + metadata: { rudderId: 'user3<<>>new-topic', jobId: 3, userId: 'u1' }, destination: { ID: '1uzGR4rn915R6Xts9KRfWAzmgGL', Name: 'local-kafka-test', @@ -277,12 +256,8 @@ export const data = [ userId: 'user4', context: { ip: '14.5.67.21', - traits: { - trait1: 'new-val', - }, - library: { - name: 'http', - }, + traits: { trait1: 'new-val' }, + library: { name: 'http' }, }, messageId: '87c98fc2-561b-4631-8cd6-1d02cdd1429f', timestamp: '2020-02-02T00:23:09.544Z', @@ -293,10 +268,7 @@ export const data = [ }, topic: 'new-topic', }, - metadata: { - rudderId: 'user4<<>>new-topic', - jobId: 4, - }, + metadata: { rudderId: 'user4<<>>new-topic', jobId: 4, userId: 'u1' }, destination: { ID: '1uzGR4rn915R6Xts9KRfWAzmgGL', Name: 'local-kafka-test', @@ -363,19 +335,10 @@ export const data = [ userId: 'user5', context: { ip: '14.5.67.21', - traits: { - trait1: 'new-val', - }, - library: { - name: 'http', - }, - }, - integrations: { - All: true, - KAFKA: { - schemaId: 'schema001', - }, + traits: { trait1: 'new-val' }, + library: { name: 'http' }, }, + integrations: { All: true, KAFKA: { schemaId: 'schema001' } }, messageId: '87c98fc2-561b-4631-8cd6-1d02cdd1429f', timestamp: '2020-02-02T00:23:09.544Z', receivedAt: '2021-07-08T02:45:06.851+05:30', @@ -386,10 +349,7 @@ export const data = [ schemaId: 'schema001', topic: 'new-topic', }, - metadata: { - rudderId: 'user5<<>>new-topic', - jobId: 5, - }, + metadata: { rudderId: 'user5<<>>new-topic', jobId: 5, userId: 'u1' }, destination: { ID: '1uzGR4rn915R6Xts9KRfWAzmgGL', Name: 'local-kafka-test', @@ -456,19 +416,10 @@ export const data = [ userId: 'user6', context: { ip: '14.5.67.21', - traits: { - trait1: 'new-val', - }, - library: { - name: 'http', - }, - }, - integrations: { - All: true, - KAFKA: { - topic: 'topic-1', - }, + traits: { trait1: 'new-val' }, + library: { name: 'http' }, }, + integrations: { All: true, KAFKA: { topic: 'topic-1' } }, messageId: '87c98fc2-561b-4631-8cd6-1d02cdd1429f', timestamp: '2020-02-02T00:23:09.544Z', receivedAt: '2021-07-08T02:45:06.851+05:30', @@ -478,10 +429,7 @@ export const data = [ }, topic: 'topic-1', }, - metadata: { - rudderId: 'user6<<>>topic-1', - jobId: 6, - }, + metadata: { rudderId: 'user6<<>>topic-1', jobId: 6, userId: 'u1' }, destination: { ID: '1uzGR4rn915R6Xts9KRfWAzmgGL', Name: 'local-kafka-test', @@ -548,19 +496,10 @@ export const data = [ userId: 'user7', context: { ip: '14.5.67.21', - traits: { - trait1: 'new-val', - }, - library: { - name: 'http', - }, - }, - integrations: { - All: true, - KAFKA: { - topic: 'topic-1', - }, + traits: { trait1: 'new-val' }, + library: { name: 'http' }, }, + integrations: { All: true, KAFKA: { topic: 'topic-1' } }, messageId: '87c98fc2-561b-4631-8cd6-1d02cdd1429f', timestamp: '2020-02-02T00:23:09.544Z', receivedAt: '2021-07-08T02:45:06.851+05:30', @@ -570,10 +509,7 @@ export const data = [ }, topic: 'topic-1', }, - metadata: { - rudderId: 'user7<<>>topic-1', - jobId: 7, - }, + metadata: { rudderId: 'user7<<>>topic-1', jobId: 7, userId: 'u1' }, destination: { ID: '1uzGR4rn915R6Xts9KRfWAzmgGL', Name: 'local-kafka-test', @@ -640,19 +576,10 @@ export const data = [ userId: 'user8', context: { ip: '14.5.67.21', - traits: { - trait1: 'new-val', - }, - library: { - name: 'http', - }, - }, - integrations: { - All: true, - KAFKA: { - topic: 'topic-2', - }, + traits: { trait1: 'new-val' }, + library: { name: 'http' }, }, + integrations: { All: true, KAFKA: { topic: 'topic-2' } }, messageId: '87c98fc2-561b-4631-8cd6-1d02cdd1429f', timestamp: '2020-02-02T00:23:09.544Z', receivedAt: '2021-07-08T02:45:06.851+05:30', @@ -662,10 +589,7 @@ export const data = [ }, topic: 'topic-2', }, - metadata: { - rudderId: 'user8<<>>topic-2', - jobId: 8, - }, + metadata: { rudderId: 'user8<<>>topic-2', jobId: 8, userId: 'u1' }, destination: { ID: '1uzGR4rn915R6Xts9KRfWAzmgGL', Name: 'local-kafka-test', @@ -732,19 +656,10 @@ export const data = [ userId: 'user8', context: { ip: '14.5.67.21', - traits: { - trait1: 'new-val', - }, - library: { - name: 'http', - }, - }, - integrations: { - All: true, - KAFKA: { - topic: 'topic-2', - }, + traits: { trait1: 'new-val' }, + library: { name: 'http' }, }, + integrations: { All: true, KAFKA: { topic: 'topic-2' } }, messageId: '87c98fc2-561b-4631-8cd6-1d02cdd1429f', timestamp: '2020-02-02T00:23:09.544Z', receivedAt: '2021-07-08T02:45:06.851+05:30', @@ -754,10 +669,7 @@ export const data = [ }, topic: 'topic-2', }, - metadata: { - rudderId: 'user8<<>>topic-2', - jobId: 9, - }, + metadata: { rudderId: 'user8<<>>topic-2', jobId: 9, userId: 'u1' }, destination: { ID: '1uzGR4rn915R6Xts9KRfWAzmgGL', Name: 'local-kafka-test', @@ -824,19 +736,10 @@ export const data = [ userId: 'user8', context: { ip: '14.5.67.21', - traits: { - trait1: 'new-val', - }, - library: { - name: 'http', - }, - }, - integrations: { - All: true, - KAFKA: { - topic: 'topic-3', - }, + traits: { trait1: 'new-val' }, + library: { name: 'http' }, }, + integrations: { All: true, KAFKA: { topic: 'topic-3' } }, messageId: '87c98fc2-561b-4631-8cd6-1d02cdd1429f', timestamp: '2020-02-02T00:23:09.544Z', receivedAt: '2021-07-08T02:45:06.851+05:30', @@ -846,10 +749,7 @@ export const data = [ }, topic: 'topic-3', }, - metadata: { - rudderId: 'user8<<>>topic-3', - jobId: 10, - }, + metadata: { rudderId: 'user8<<>>topic-3', jobId: 10, userId: 'u1' }, destination: { ID: '1uzGR4rn915R6Xts9KRfWAzmgGL', Name: 'local-kafka-test', @@ -927,12 +827,8 @@ export const data = [ userId: 'user1', context: { ip: '14.5.67.21', - traits: { - trait1: 'new-val', - }, - library: { - name: 'http', - }, + traits: { trait1: 'new-val' }, + library: { name: 'http' }, }, messageId: '6f27a4da-cefb-4800-acf1-f467e8aab91c', timestamp: '2020-02-02T00:23:09.544Z', @@ -951,12 +847,8 @@ export const data = [ userId: 'user2', context: { ip: '14.5.67.21', - traits: { - trait1: 'new-val', - }, - library: { - name: 'http', - }, + traits: { trait1: 'new-val' }, + library: { name: 'http' }, }, messageId: 'fe182d9e-e86e-4db5-ae12-f4b399555fcc', timestamp: '2020-02-02T00:23:09.544Z', @@ -975,12 +867,8 @@ export const data = [ userId: 'user3', context: { ip: '14.5.67.21', - traits: { - trait1: 'new-val', - }, - library: { - name: 'http', - }, + traits: { trait1: 'new-val' }, + library: { name: 'http' }, }, messageId: '2803e656-77ff-47ca-9606-90663f9aed38', timestamp: '2020-02-02T00:23:09.544Z', @@ -999,12 +887,8 @@ export const data = [ userId: 'user4', context: { ip: '14.5.67.21', - traits: { - trait1: 'new-val', - }, - library: { - name: 'http', - }, + traits: { trait1: 'new-val' }, + library: { name: 'http' }, }, messageId: '87c98fc2-561b-4631-8cd6-1d02cdd1429f', timestamp: '2020-02-02T00:23:09.544Z', @@ -1023,19 +907,10 @@ export const data = [ userId: 'user5', context: { ip: '14.5.67.21', - traits: { - trait1: 'new-val', - }, - library: { - name: 'http', - }, - }, - integrations: { - All: true, - KAFKA: { - schemaId: 'schema001', - }, + traits: { trait1: 'new-val' }, + library: { name: 'http' }, }, + integrations: { All: true, KAFKA: { schemaId: 'schema001' } }, messageId: '87c98fc2-561b-4631-8cd6-1d02cdd1429f', timestamp: '2020-02-02T00:23:09.544Z', receivedAt: '2021-07-08T02:45:06.851+05:30', @@ -1048,23 +923,11 @@ export const data = [ }, ], metadata: [ - { rudderId: 'user1<<>>new-topic', jobId: 1 }, - { - rudderId: 'user2<<>>new-topic', - jobId: 2, - }, - { - rudderId: 'user3<<>>new-topic', - jobId: 3, - }, - { - rudderId: 'user4<<>>new-topic', - jobId: 4, - }, - { - rudderId: 'user5<<>>new-topic', - jobId: 5, - }, + { rudderId: 'user1<<>>new-topic', jobId: 1, userId: 'u1' }, + { rudderId: 'user2<<>>new-topic', jobId: 2, userId: 'u1' }, + { rudderId: 'user3<<>>new-topic', jobId: 3, userId: 'u1' }, + { rudderId: 'user4<<>>new-topic', jobId: 4, userId: 'u1' }, + { rudderId: 'user5<<>>new-topic', jobId: 5, userId: 'u1' }, ], destination: { ID: '1uzGR4rn915R6Xts9KRfWAzmgGL', @@ -1135,19 +998,10 @@ export const data = [ userId: 'user6', context: { ip: '14.5.67.21', - traits: { - trait1: 'new-val', - }, - library: { - name: 'http', - }, - }, - integrations: { - All: true, - KAFKA: { - topic: 'topic-1', - }, + traits: { trait1: 'new-val' }, + library: { name: 'http' }, }, + integrations: { All: true, KAFKA: { topic: 'topic-1' } }, messageId: '87c98fc2-561b-4631-8cd6-1d02cdd1429f', timestamp: '2020-02-02T00:23:09.544Z', receivedAt: '2021-07-08T02:45:06.851+05:30', @@ -1165,19 +1019,10 @@ export const data = [ userId: 'user7', context: { ip: '14.5.67.21', - traits: { - trait1: 'new-val', - }, - library: { - name: 'http', - }, - }, - integrations: { - All: true, - KAFKA: { - topic: 'topic-1', - }, + traits: { trait1: 'new-val' }, + library: { name: 'http' }, }, + integrations: { All: true, KAFKA: { topic: 'topic-1' } }, messageId: '87c98fc2-561b-4631-8cd6-1d02cdd1429f', timestamp: '2020-02-02T00:23:09.544Z', receivedAt: '2021-07-08T02:45:06.851+05:30', @@ -1189,14 +1034,8 @@ export const data = [ }, ], metadata: [ - { - rudderId: 'user6<<>>topic-1', - jobId: 6, - }, - { - rudderId: 'user7<<>>topic-1', - jobId: 7, - }, + { rudderId: 'user6<<>>topic-1', jobId: 6, userId: 'u1' }, + { rudderId: 'user7<<>>topic-1', jobId: 7, userId: 'u1' }, ], destination: { ID: '1uzGR4rn915R6Xts9KRfWAzmgGL', @@ -1267,19 +1106,10 @@ export const data = [ userId: 'user8', context: { ip: '14.5.67.21', - traits: { - trait1: 'new-val', - }, - library: { - name: 'http', - }, - }, - integrations: { - All: true, - KAFKA: { - topic: 'topic-2', - }, + traits: { trait1: 'new-val' }, + library: { name: 'http' }, }, + integrations: { All: true, KAFKA: { topic: 'topic-2' } }, messageId: '87c98fc2-561b-4631-8cd6-1d02cdd1429f', timestamp: '2020-02-02T00:23:09.544Z', receivedAt: '2021-07-08T02:45:06.851+05:30', @@ -1297,19 +1127,10 @@ export const data = [ userId: 'user8', context: { ip: '14.5.67.21', - traits: { - trait1: 'new-val', - }, - library: { - name: 'http', - }, - }, - integrations: { - All: true, - KAFKA: { - topic: 'topic-2', - }, + traits: { trait1: 'new-val' }, + library: { name: 'http' }, }, + integrations: { All: true, KAFKA: { topic: 'topic-2' } }, messageId: '87c98fc2-561b-4631-8cd6-1d02cdd1429f', timestamp: '2020-02-02T00:23:09.544Z', receivedAt: '2021-07-08T02:45:06.851+05:30', @@ -1321,14 +1142,8 @@ export const data = [ }, ], metadata: [ - { - rudderId: 'user8<<>>topic-2', - jobId: 8, - }, - { - rudderId: 'user8<<>>topic-2', - jobId: 9, - }, + { rudderId: 'user8<<>>topic-2', jobId: 8, userId: 'u1' }, + { rudderId: 'user8<<>>topic-2', jobId: 9, userId: 'u1' }, ], destination: { ID: '1uzGR4rn915R6Xts9KRfWAzmgGL', @@ -1399,19 +1214,10 @@ export const data = [ userId: 'user8', context: { ip: '14.5.67.21', - traits: { - trait1: 'new-val', - }, - library: { - name: 'http', - }, - }, - integrations: { - All: true, - KAFKA: { - topic: 'topic-3', - }, + traits: { trait1: 'new-val' }, + library: { name: 'http' }, }, + integrations: { All: true, KAFKA: { topic: 'topic-3' } }, messageId: '87c98fc2-561b-4631-8cd6-1d02cdd1429f', timestamp: '2020-02-02T00:23:09.544Z', receivedAt: '2021-07-08T02:45:06.851+05:30', @@ -1422,12 +1228,7 @@ export const data = [ topic: 'topic-3', }, ], - metadata: [ - { - rudderId: 'user8<<>>topic-3', - jobId: 10, - }, - ], + metadata: [{ rudderId: 'user8<<>>topic-3', jobId: 10, userId: 'u1' }], destination: { ID: '1uzGR4rn915R6Xts9KRfWAzmgGL', Name: 'local-kafka-test', diff --git a/test/integrations/destinations/keen/router/data.ts b/test/integrations/destinations/keen/router/data.ts index d46d2363e2..a88fc5dcce 100644 --- a/test/integrations/destinations/keen/router/data.ts +++ b/test/integrations/destinations/keen/router/data.ts @@ -19,24 +19,13 @@ export const data = [ namespace: 'com.rudderlabs.javascript', version: '1.0.0', }, - traits: { - email: 'sayan@gmail.com', - anonymousId: '12345', - }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + traits: { email: 'sayan@gmail.com', anonymousId: '12345' }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', locale: 'en-US', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, }, type: 'track', messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', @@ -51,18 +40,11 @@ export const data = [ user_actual_id: 12345, user_time_spent: 50000, }, - integrations: { - All: true, - }, - traits: { - email: 'test@gmail.com', - anonymousId: 'anon-id', - }, + integrations: { All: true }, + traits: { email: 'test@gmail.com', anonymousId: 'anon-id' }, sentAt: '2019-10-14T11:15:53.296Z', }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, destination: { Config: { projectID: 'abcde', @@ -84,25 +66,14 @@ export const data = [ namespace: 'com.rudderlabs.javascript', version: '1.0.0', }, - traits: { - email: 'sayan@gmail.com', - anonymousId: '12345', - }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + traits: { email: 'sayan@gmail.com', anonymousId: '12345' }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', locale: 'en-US', ip: '0.0.0.0', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, }, type: 'page', messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', @@ -117,19 +88,12 @@ export const data = [ title: 'Test Page', url: 'www.rudderlabs.com', }, - traits: { - email: 'test@gmail.com', - anonymousId: 'anon-id', - }, - integrations: { - All: true, - }, + traits: { email: 'test@gmail.com', anonymousId: 'anon-id' }, + integrations: { All: true }, name: 'ApplicationLoaded', sentAt: '2019-10-14T11:15:53.296Z', }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 3, userId: 'u1' }, destination: { Config: { projectID: 'abcde', @@ -165,16 +129,12 @@ export const data = [ keen: { addons: [ { - input: { - ip: 'request_ip', - }, + input: { ip: 'request_ip' }, name: 'keen:ip_to_geo', output: 'ip_geo_info', }, { - input: { - ua_string: 'user_agent', - }, + input: { ua_string: 'user_agent' }, name: 'keen:ua_parser', output: 'parsed_user_agent', }, @@ -182,10 +142,7 @@ export const data = [ }, anonymousId: '00000000000000000000000000', user: { - traits: { - anonymousId: 'anon-id', - email: 'test@gmail.com', - }, + traits: { anonymousId: 'anon-id', email: 'test@gmail.com' }, userId: '12345', }, user_agent: @@ -196,21 +153,14 @@ export const data = [ files: {}, endpoint: 'https://api.keen.io/3.0/projects/abcde/events/test track event', userId: '12345', - headers: { - 'Content-Type': 'application/json', - Authorization: 'xyz', - }, + headers: { 'Content-Type': 'application/json', Authorization: 'xyz' }, version: '1', params: {}, type: 'REST', method: 'POST', statusCode: 200, }, - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], batched: false, statusCode: 200, destination: { @@ -239,16 +189,12 @@ export const data = [ keen: { addons: [ { - input: { - ip: 'request_ip', - }, + input: { ip: 'request_ip' }, name: 'keen:ip_to_geo', output: 'ip_geo_info', }, { - input: { - ua_string: 'user_agent', - }, + input: { ua_string: 'user_agent' }, name: 'keen:ua_parser', output: 'parsed_user_agent', }, @@ -256,10 +202,7 @@ export const data = [ }, anonymousId: '00000000000000000000000000', user: { - traits: { - anonymousId: 'anon-id', - email: 'test@gmail.com', - }, + traits: { anonymousId: 'anon-id', email: 'test@gmail.com' }, userId: '12345', }, path: '/test', @@ -272,21 +215,14 @@ export const data = [ endpoint: 'https://api.keen.io/3.0/projects/abcde/events/Viewed ApplicationLoaded page', userId: '12345', - headers: { - 'Content-Type': 'application/json', - Authorization: 'xyz', - }, + headers: { 'Content-Type': 'application/json', Authorization: 'xyz' }, version: '1', params: {}, type: 'REST', method: 'POST', statusCode: 200, }, - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 3, userId: 'u1' }], batched: false, statusCode: 200, destination: { diff --git a/test/integrations/destinations/kissmetrics/router/data.ts b/test/integrations/destinations/kissmetrics/router/data.ts index bba00edf96..827a493ae5 100644 --- a/test/integrations/destinations/kissmetrics/router/data.ts +++ b/test/integrations/destinations/kissmetrics/router/data.ts @@ -37,25 +37,15 @@ export const data = [ version: '1.0.5', }, ip: '0.0.0.0', - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.5', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, locale: 'en-GB', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, traits: {}, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', }, - integrations: { - All: true, - }, + integrations: { All: true }, messageId: 'dd266c67-9199-4a52-ba32-f46ddde67312', originalTimestamp: '2020-01-24T06:29:02.358Z', properties: { @@ -79,6 +69,7 @@ export const data = [ jobId: 1, messageId: 'dd266c67-9199-4a52-ba32-f46ddde67312', sourceId: '1WjrlZIy1d41MCceOrFbDVPnOPY', + userId: 'u1', }, }, { @@ -109,18 +100,10 @@ export const data = [ version: '1.0.5', }, ip: '0.0.0.0', - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.5', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, locale: 'en-GB', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, traits: { city: 'Disney', country: 'USA', @@ -130,9 +113,7 @@ export const data = [ userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', }, - integrations: { - All: true, - }, + integrations: { All: true }, traits: { city: 'Disney-1', country: 'India', @@ -155,6 +136,7 @@ export const data = [ jobId: 2, messageId: '2536eda4-d638-4c93-8014-8ffe3f083214', sourceId: '1WjrlZIy1d41MCceOrFbDVPnOPY', + userId: 'u1', }, }, ], @@ -187,12 +169,7 @@ export const data = [ _t: '1579847342', _d: 1, }, - body: { - JSON: {}, - XML: {}, - JSON_ARRAY: {}, - FORM: {}, - }, + body: { JSON: {}, XML: {}, JSON_ARRAY: {}, FORM: {} }, files: {}, userId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', statusCode: 200, @@ -206,6 +183,7 @@ export const data = [ jobId: 1, messageId: 'dd266c67-9199-4a52-ba32-f46ddde67312', sourceId: '1WjrlZIy1d41MCceOrFbDVPnOPY', + userId: 'u1', }, ], batched: false, @@ -245,12 +223,7 @@ export const data = [ _t: '1579847342', _d: 1, }, - body: { - JSON: {}, - XML: {}, - JSON_ARRAY: {}, - FORM: {}, - }, + body: { JSON: {}, XML: {}, JSON_ARRAY: {}, FORM: {} }, files: {}, userId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', statusCode: 200, @@ -264,6 +237,7 @@ export const data = [ jobId: 2, messageId: '2536eda4-d638-4c93-8014-8ffe3f083214', sourceId: '1WjrlZIy1d41MCceOrFbDVPnOPY', + userId: 'u1', }, ], batched: false, diff --git a/test/integrations/destinations/klaviyo/router/data.ts b/test/integrations/destinations/klaviyo/router/data.ts index 83b494199c..818089a722 100644 --- a/test/integrations/destinations/klaviyo/router/data.ts +++ b/test/integrations/destinations/klaviyo/router/data.ts @@ -14,24 +14,16 @@ export const data = [ input: [ { destination: { - Config: { - publicApiKey: 'dummyPublicApiKey', - privateApiKey: 'dummyPrivateApiKey', - }, - }, - metadata: { - jobId: 1, + Config: { publicApiKey: 'dummyPublicApiKey', privateApiKey: 'dummyPrivateApiKey' }, }, + metadata: { jobId: 1, userId: 'u1' }, message: { type: 'identify', sentAt: '2021-01-03T17:02:53.195Z', userId: 'test', channel: 'web', context: { - os: { - name: '', - version: '', - }, + os: { name: '', version: '' }, app: { name: 'RudderLabs JavaScript SDK', build: '1.0.0', @@ -52,18 +44,11 @@ export const data = [ zip: '100-0001', Flagged: false, Residence: 'Shibuya', - properties: { - consent: ['email', 'sms'], - }, + properties: { consent: ['email', 'sms'] }, }, locale: 'en-US', - screen: { - density: 2, - }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.1.11', - }, + screen: { density: 2 }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.11' }, campaign: {}, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', @@ -71,32 +56,22 @@ export const data = [ rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', - integrations: { - All: true, - }, + integrations: { All: true }, originalTimestamp: '2021-01-03T17:02:53.193Z', }, }, { destination: { - Config: { - publicApiKey: 'dummyPublicApiKey', - privateApiKey: 'dummyPrivateApiKey', - }, - }, - metadata: { - jobId: 2, + Config: { publicApiKey: 'dummyPublicApiKey', privateApiKey: 'dummyPrivateApiKey' }, }, + metadata: { jobId: 2, userId: 'u1' }, message: { type: 'identify', sentAt: '2021-01-03T17:02:53.195Z', userId: 'test', channel: 'web', context: { - os: { - name: '', - version: '', - }, + os: { name: '', version: '' }, app: { name: 'RudderLabs JavaScript SDK', build: '1.0.0', @@ -117,20 +92,11 @@ export const data = [ zip: '100-0001', Flagged: false, Residence: 'Shibuya', - properties: { - listId: 'XUepkK', - subscribe: true, - consent: ['email', 'sms'], - }, + properties: { listId: 'XUepkK', subscribe: true, consent: ['email', 'sms'] }, }, locale: 'en-US', - screen: { - density: 2, - }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.1.11', - }, + screen: { density: 2 }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.11' }, campaign: {}, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', @@ -138,29 +104,20 @@ export const data = [ rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', - integrations: { - All: true, - }, + integrations: { All: true }, originalTimestamp: '2021-01-03T17:02:53.193Z', }, }, { destination: { - Config: { - publicApiKey: 'dummyPublicApiKey', - privateApiKey: 'dummyPrivateApiKey', - }, - }, - metadata: { - jobId: 3, + Config: { publicApiKey: 'dummyPublicApiKey', privateApiKey: 'dummyPrivateApiKey' }, }, + metadata: { jobId: 3, userId: 'u1' }, message: { userId: 'user123', type: 'group', groupId: 'XUepkK', - traits: { - subscribe: true, - }, + traits: { subscribe: true }, context: { traits: { email: 'test@rudderstack.com', @@ -168,30 +125,21 @@ export const data = [ consent: ['email'], }, ip: '14.5.67.21', - library: { - name: 'http', - }, + library: { name: 'http' }, }, timestamp: '2020-01-21T00:21:34.208Z', }, }, { destination: { - Config: { - publicApiKey: 'dummyPublicApiKey', - privateApiKey: 'dummyPrivateApiKey', - }, - }, - metadata: { - jobId: 4, + Config: { publicApiKey: 'dummyPublicApiKey', privateApiKey: 'dummyPrivateApiKey' }, }, + metadata: { jobId: 4, userId: 'u1' }, message: { userId: 'user123', type: 'random', groupId: 'XUepkK', - traits: { - subscribe: true, - }, + traits: { subscribe: true }, context: { traits: { email: 'test@rudderstack.com', @@ -199,30 +147,21 @@ export const data = [ consent: 'email', }, ip: '14.5.67.21', - library: { - name: 'http', - }, + library: { name: 'http' }, }, timestamp: '2020-01-21T00:21:34.208Z', }, }, { destination: { - Config: { - publicApiKey: 'dummyPublicApiKey', - privateApiKey: 'dummyPrivateApiKey', - }, - }, - metadata: { - jobId: 5, + Config: { publicApiKey: 'dummyPublicApiKey', privateApiKey: 'dummyPrivateApiKey' }, }, + metadata: { jobId: 5, userId: 'u1' }, message: { userId: 'user123', type: 'group', groupId: '', - traits: { - subscribe: true, - }, + traits: { subscribe: true }, context: { traits: { email: 'test@rudderstack.com', @@ -230,9 +169,7 @@ export const data = [ consent: 'email', }, ip: '14.5.67.21', - library: { - name: 'http', - }, + library: { name: 'http' }, }, timestamp: '2020-01-21T00:21:34.208Z', }, @@ -268,17 +205,11 @@ export const data = [ attributes: { list_id: 'XUepkK', subscriptions: [ - { - email: 'test@rudderstack.com', - phone_number: '+12 345 678 900', - }, + { email: 'test@rudderstack.com', phone_number: '+12 345 678 900' }, { email: 'test@rudderstack.com', phone_number: '+12 345 578 900', - channels: { - email: ['MARKETING'], - sms: ['MARKETING'], - }, + channels: { email: ['MARKETING'], sms: ['MARKETING'] }, }, ], }, @@ -320,10 +251,7 @@ export const data = [ country: 'JP', zip: '100-0001', }, - properties: { - Flagged: false, - Residence: 'Shibuya', - }, + properties: { Flagged: false, Residence: 'Shibuya' }, }, id: '01GW3PHVY0MTCDGS0A1612HARX', }, @@ -336,20 +264,13 @@ export const data = [ }, ], metadata: [ - { - jobId: 3, - }, - { - jobId: 2, - }, + { jobId: 3, userId: 'u1' }, + { jobId: 2, userId: 'u1' }, ], batched: true, statusCode: 200, destination: { - Config: { - publicApiKey: 'dummyPublicApiKey', - privateApiKey: 'dummyPrivateApiKey', - }, + Config: { publicApiKey: 'dummyPublicApiKey', privateApiKey: 'dummyPrivateApiKey' }, }, }, { @@ -383,10 +304,7 @@ export const data = [ country: 'JP', zip: '100-0001', }, - properties: { - Flagged: false, - Residence: 'Shibuya', - }, + properties: { Flagged: false, Residence: 'Shibuya' }, }, id: '01GW3PHVY0MTCDGS0A1612HARX', }, @@ -397,26 +315,15 @@ export const data = [ }, files: {}, }, - metadata: [ - { - jobId: 1, - }, - ], + metadata: [{ jobId: 1, userId: 'u1' }], batched: false, statusCode: 200, destination: { - Config: { - publicApiKey: 'dummyPublicApiKey', - privateApiKey: 'dummyPrivateApiKey', - }, + Config: { publicApiKey: 'dummyPublicApiKey', privateApiKey: 'dummyPrivateApiKey' }, }, }, { - metadata: [ - { - jobId: 4, - }, - ], + metadata: [{ jobId: 4, userId: 'u1' }], batched: false, statusCode: 400, error: 'Event type random is not supported', @@ -429,18 +336,11 @@ export const data = [ module: 'destination', }, destination: { - Config: { - publicApiKey: 'dummyPublicApiKey', - privateApiKey: 'dummyPrivateApiKey', - }, + Config: { publicApiKey: 'dummyPublicApiKey', privateApiKey: 'dummyPrivateApiKey' }, }, }, { - metadata: [ - { - jobId: 5, - }, - ], + metadata: [{ jobId: 5, userId: 'u1' }], batched: false, statusCode: 400, error: 'groupId is a required field for group events', @@ -453,10 +353,7 @@ export const data = [ module: 'destination', }, destination: { - Config: { - publicApiKey: 'dummyPublicApiKey', - privateApiKey: 'dummyPrivateApiKey', - }, + Config: { publicApiKey: 'dummyPublicApiKey', privateApiKey: 'dummyPrivateApiKey' }, }, }, ], diff --git a/test/integrations/destinations/kustomer/router/data.ts b/test/integrations/destinations/kustomer/router/data.ts index 6dae5d5e76..06f6243cf2 100644 --- a/test/integrations/destinations/kustomer/router/data.ts +++ b/test/integrations/destinations/kustomer/router/data.ts @@ -75,15 +75,9 @@ export const data = [ integrations: { All: true }, originalTimestamp: '2021-01-03T17:02:53.193Z', }, - metadata: { - jobId: 1, - }, + metadata: { jobId: 1, userId: 'u1' }, destination: { - Config: { - apiKey: 'dummyApiKey', - genericPage: false, - genericScreen: false, - }, + Config: { apiKey: 'dummyApiKey', genericPage: false, genericScreen: false }, }, }, { @@ -128,15 +122,9 @@ export const data = [ integrations: { All: true }, originalTimestamp: '2021-01-03T17:02:53.195Z', }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, destination: { - Config: { - apiKey: 'dummyApiKey', - genericPage: false, - genericScreen: false, - }, + Config: { apiKey: 'dummyApiKey', genericPage: false, genericScreen: false }, }, }, { @@ -181,9 +169,7 @@ export const data = [ integrations: { All: true }, originalTimestamp: '2021-01-03T17:02:53.195Z', }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 3, userId: 'u1' }, destination: { Config: { baseEndpoint: 'https://api.prod2.kustomerapp.com', @@ -245,29 +231,10 @@ export const data = [ }, ], birthdayAt: '2005-01-01T23:28:56.782Z', - emails: [ - { - type: 'home', - email: 'test@rudderstack.com', - }, - ], - phones: [ - { - type: 'home', - phone: '+12345578900', - }, - ], - urls: [ - { - url: 'www.mattertoast873.com', - }, - ], - locations: [ - { - type: 'home', - address: '24 Dovers Lane Miami Florida 1890001', - }, - ], + emails: [{ type: 'home', email: 'test@rudderstack.com' }], + phones: [{ type: 'home', phone: '+12345578900' }], + urls: [{ url: 'www.mattertoast873.com' }], + locations: [{ type: 'home', address: '24 Dovers Lane Miami Florida 1890001' }], }, XML: {}, JSON_ARRAY: {}, @@ -275,19 +242,11 @@ export const data = [ }, files: {}, }, - metadata: [ - { - jobId: 1, - }, - ], + metadata: [{ jobId: 1, userId: 'u1' }], batched: false, statusCode: 200, destination: { - Config: { - apiKey: 'dummyApiKey', - genericPage: false, - genericScreen: false, - }, + Config: { apiKey: 'dummyApiKey', genericPage: false, genericScreen: false }, }, }, { @@ -303,17 +262,12 @@ export const data = [ params: {}, body: { JSON: { - identity: { - externalId: 'user@doe', - }, + identity: { externalId: 'user@doe' }, event: { name: 'Tracking-Weekender', sessionId: '63nsa22', trackingId: 'sahetwiac', - meta: { - YearServicedNum: 211, - region: 'strapis', - }, + meta: { YearServicedNum: 211, region: 'strapis' }, }, }, XML: {}, @@ -322,19 +276,11 @@ export const data = [ }, files: {}, }, - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], batched: false, statusCode: 200, destination: { - Config: { - apiKey: 'dummyApiKey', - genericPage: false, - genericScreen: false, - }, + Config: { apiKey: 'dummyApiKey', genericPage: false, genericScreen: false }, }, }, { @@ -350,17 +296,12 @@ export const data = [ params: {}, body: { JSON: { - identity: { - externalId: 'user@doe', - }, + identity: { externalId: 'user@doe' }, event: { name: 'Tracking-Weekender', sessionId: '63nsa22', trackingId: 'sahetwiac', - meta: { - YearServicedNum: 211, - region: 'strapis', - }, + meta: { YearServicedNum: 211, region: 'strapis' }, }, }, XML: {}, @@ -369,11 +310,7 @@ export const data = [ }, files: {}, }, - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 3, userId: 'u1' }], batched: false, statusCode: 200, destination: { diff --git a/test/integrations/destinations/lambda/router/data.ts b/test/integrations/destinations/lambda/router/data.ts index 37b13e4d2a..cba30e0974 100644 --- a/test/integrations/destinations/lambda/router/data.ts +++ b/test/integrations/destinations/lambda/router/data.ts @@ -8115,9 +8115,7 @@ export const data = [ ], trait1: 'new-val', }, - library: { - name: 'http', - }, + library: { name: 'http' }, }, rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', messageId: 'c864b4cd-8f07-4922-b3d0-82ef04c987d3', @@ -16532,9 +16530,7 @@ export const data = [ ], trait1: 'new-val', }, - library: { - name: 'http', - }, + library: { name: 'http' }, }, rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', messageId: 'c864b4cd-8f07-4922-b3d0-82ef04c987d3', @@ -16655,12 +16651,7 @@ export const data = [ event: 'Product Purchased new', sentAt: '2022-08-18T08:43:15.539+05:30', userId: 'identified user id', - context: { - ip: '14.5.67.21', - library: { - name: 'http', - }, - }, + context: { ip: '14.5.67.21', library: { name: 'http' } }, rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', messageId: '9f8fb785-c720-4381-a009-bf22a13f4ced', timestamp: '2020-02-02T00:23:09.544Z', @@ -20622,12 +20613,7 @@ export const data = [ event: 'Product Purchased new', sentAt: '2022-08-18T08:43:15.539+05:30', userId: 'identified user id', - context: { - ip: '14.5.67.21', - library: { - name: 'http', - }, - }, + context: { ip: '14.5.67.21', library: { name: 'http' } }, rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', messageId: '9f8fb785-c720-4381-a009-bf22a13f4ced', timestamp: '2020-02-02T00:23:09.544Z', @@ -24863,19 +24849,11 @@ export const data = [ type: 'page', sentAt: '2022-08-18T08:43:15.539+05:30', userId: 'identified user id', - context: { - ip: '14.5.67.21', - library: { - name: 'http', - }, - }, + context: { ip: '14.5.67.21', library: { name: 'http' } }, rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', messageId: '5f58d1f7-cbd6-4bff-8571-9933be7210b1', timestamp: '2020-02-02T00:23:09.544Z', - properties: { - path: '/', - title: 'Home', - }, + properties: { path: '/', title: 'Home' }, receivedAt: '2022-08-18T08:43:13.521+05:30', request_ip: '[::1]', anonymousId: 'anon-id-new', @@ -24906,19 +24884,11 @@ export const data = [ type: 'page', sentAt: '2022-08-18T08:43:15.539+05:30', userId: 'identified user id', - context: { - ip: '14.5.67.21', - library: { - name: 'http', - }, - }, + context: { ip: '14.5.67.21', library: { name: 'http' } }, rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', messageId: '5f58d1f7-cbd6-4bff-8571-9933be7210b1', timestamp: '2020-02-02T00:23:09.544Z', - properties: { - path: '/', - title: 'Home', - }, + properties: { path: '/', title: 'Home' }, receivedAt: '2022-08-18T08:43:13.521+05:30', request_ip: '[::1]', anonymousId: 'anon-id-new', @@ -25035,18 +25005,11 @@ export const data = [ type: 'screen', sentAt: '2022-08-18T08:43:15.539+05:30', userId: 'identified user id', - context: { - ip: '14.5.67.21', - library: { - name: 'http', - }, - }, + context: { ip: '14.5.67.21', library: { name: 'http' } }, rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', messageId: '1b8ee4c3-ffad-4457-b453-31b32da1dfea', timestamp: '2020-02-02T00:23:09.544Z', - properties: { - prop1: '5', - }, + properties: { prop1: '5' }, receivedAt: '2022-08-18T08:43:13.521+05:30', request_ip: '[::1]', anonymousId: 'anon-id-new', @@ -25077,18 +25040,11 @@ export const data = [ type: 'screen', sentAt: '2022-08-18T08:43:15.539+05:30', userId: 'identified user id', - context: { - ip: '14.5.67.21', - library: { - name: 'http', - }, - }, + context: { ip: '14.5.67.21', library: { name: 'http' } }, rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', messageId: '1b8ee4c3-ffad-4457-b453-31b32da1dfea', timestamp: '2020-02-02T00:23:09.544Z', - properties: { - prop1: '5', - }, + properties: { prop1: '5' }, receivedAt: '2022-08-18T08:43:13.521+05:30', request_ip: '[::1]', anonymousId: 'anon-id-new', @@ -25203,20 +25159,12 @@ export const data = [ message: { type: 'group', sentAt: '2022-08-18T08:43:15.539+05:30', - traits: { - name: 'Company', - industry: 'Industry', - employees: 123, - }, + traits: { name: 'Company', industry: 'Industry', employees: 123 }, userId: 'user123', context: { ip: '14.5.67.21', - traits: { - trait1: 'new-val', - }, - library: { - name: 'http', - }, + traits: { trait1: 'new-val' }, + library: { name: 'http' }, }, groupId: 'group1', rudderId: 'bda76e3e-87eb-4153-9d1e-e9c2ed48b7a5', @@ -25249,20 +25197,12 @@ export const data = [ EventPayload: { type: 'group', sentAt: '2022-08-18T08:43:15.539+05:30', - traits: { - name: 'Company', - industry: 'Industry', - employees: 123, - }, + traits: { name: 'Company', industry: 'Industry', employees: 123 }, userId: 'user123', context: { ip: '14.5.67.21', - traits: { - trait1: 'new-val', - }, - library: { - name: 'http', - }, + traits: { trait1: 'new-val' }, + library: { name: 'http' }, }, groupId: 'group1', rudderId: 'bda76e3e-87eb-4153-9d1e-e9c2ed48b7a5', @@ -25384,12 +25324,8 @@ export const data = [ userId: 'user123', context: { ip: '14.5.67.21', - traits: { - trait1: 'new-val', - }, - library: { - name: 'http', - }, + traits: { trait1: 'new-val' }, + library: { name: 'http' }, }, rudderId: 'bda76e3e-87eb-4153-9d1e-e9c2ed48b7a5', messageId: '3ff8d400-b6d4-43a4-a0ff-1bc7ae8b5f7d', @@ -25425,12 +25361,8 @@ export const data = [ userId: 'user123', context: { ip: '14.5.67.21', - traits: { - trait1: 'new-val', - }, - library: { - name: 'http', - }, + traits: { trait1: 'new-val' }, + library: { name: 'http' }, }, rudderId: 'bda76e3e-87eb-4153-9d1e-e9c2ed48b7a5', messageId: '3ff8d400-b6d4-43a4-a0ff-1bc7ae8b5f7d', @@ -25560,11 +25492,7 @@ export const data = [ batchedRequest: { payload: '[{"type":"track","event":"Product Purchased new","sentAt":"2022-08-18T08:43:15.539+05:30","userId":"identified user id","context":{"ip":"14.5.67.21","library":{"name":"http"}},"rudderId":"daf823fb-e8d3-413a-8313-d34cd756f968","messageId":"9f8fb785-c720-4381-a009-bf22a13f4ced","timestamp":"2020-02-02T00:23:09.544Z","properties":{"data":[{"id":6104546,"url":"https://api.github.com/repos/mralexgray/-REPONAME","fork":false,"name":"-REPONAME","size":48,"forks":0,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/-REPONAME.git","license":null,"node_id":"MDEwOlJlcG9zaXRvcnk2MTA0NTQ2","private":false,"ssh_url":"git@github.com:mralexgray/-REPONAME.git","svn_url":"https://github.com/mralexgray/-REPONAME","archived":false,"disabled":false,"has_wiki":true,"homepage":null,"html_url":"https://github.com/mralexgray/-REPONAME","keys_url":"https://api.github.com/repos/mralexgray/-REPONAME/keys{/key_id}","language":null,"tags_url":"https://api.github.com/repos/mralexgray/-REPONAME/tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/-REPONAME/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/-REPONAME.git","forks_url":"https://api.github.com/repos/mralexgray/-REPONAME/forks","full_name":"mralexgray/-REPONAME","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/-REPONAME/hooks","pulls_url":"https://api.github.com/repos/mralexgray/-REPONAME/pulls{/number}","pushed_at":"2012-10-06T16:37:39Z","teams_url":"https://api.github.com/repos/mralexgray/-REPONAME/teams","trees_url":"https://api.github.com/repos/mralexgray/-REPONAME/git/trees{/sha}","created_at":"2012-10-06T16:37:39Z","events_url":"https://api.github.com/repos/mralexgray/-REPONAME/events","has_issues":true,"issues_url":"https://api.github.com/repos/mralexgray/-REPONAME/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/-REPONAME/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/-REPONAME/merges","mirror_url":null,"updated_at":"2013-01-12T13:39:30Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/-REPONAME/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/-REPONAME/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/-REPONAME/compare/{base}...{head}","description":null,"forks_count":0,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/-REPONAME/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/-REPONAME/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/-REPONAME/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/-REPONAME/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/-REPONAME/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/-REPONAME/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/-REPONAME/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/-REPONAME/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/-REPONAME/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/-REPONAME/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/-REPONAME/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/-REPONAME/stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/-REPONAME/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/-REPONAME/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/-REPONAME/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/-REPONAME/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/-REPONAME/issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/-REPONAME/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/-REPONAME/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/-REPONAME/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/-REPONAME/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":104510411,"url":"https://api.github.com/repos/mralexgray/...","fork":true,"name":"...","size":113,"forks":0,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/....git","license":{"key":"mit","url":"https://api.github.com/licenses/mit","name":"MIT License","node_id":"MDc6TGljZW5zZTEz","spdx_id":"MIT"},"node_id":"MDEwOlJlcG9zaXRvcnkxMDQ1MTA0MTE=","private":false,"ssh_url":"git@github.com:mralexgray/....git","svn_url":"https://github.com/mralexgray/...","archived":false,"disabled":false,"has_wiki":false,"homepage":"https://driesvints.com/blog/getting-started-with-dotfiles","html_url":"https://github.com/mralexgray/...","keys_url":"https://api.github.com/repos/mralexgray/.../keys{/key_id}","language":"Shell","tags_url":"https://api.github.com/repos/mralexgray/.../tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/.../git/blobs{/sha}","clone_url":"https://github.com/mralexgray/....git","forks_url":"https://api.github.com/repos/mralexgray/.../forks","full_name":"mralexgray/...","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/.../hooks","pulls_url":"https://api.github.com/repos/mralexgray/.../pulls{/number}","pushed_at":"2017-09-15T08:27:32Z","teams_url":"https://api.github.com/repos/mralexgray/.../teams","trees_url":"https://api.github.com/repos/mralexgray/.../git/trees{/sha}","created_at":"2017-09-22T19:19:42Z","events_url":"https://api.github.com/repos/mralexgray/.../events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/.../issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/.../labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/.../merges","mirror_url":null,"updated_at":"2017-09-22T19:20:22Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/.../{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/.../commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/.../compare/{base}...{head}","description":":computer: Public repo for my personal dotfiles.","forks_count":0,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/.../branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/.../comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/.../contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/.../git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/.../git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/.../releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/.../statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/.../assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/.../downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/.../languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/.../milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/.../stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/.../deployments","git_commits_url":"https://api.github.com/repos/mralexgray/.../git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/.../subscribers","contributors_url":"https://api.github.com/repos/mralexgray/.../contributors","issue_events_url":"https://api.github.com/repos/mralexgray/.../issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/.../subscription","collaborators_url":"https://api.github.com/repos/mralexgray/.../collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/.../issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/.../notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":58656723,"url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol","fork":true,"name":"2200087-Serial-Protocol","size":41,"forks":1,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/2200087-Serial-Protocol.git","license":{"key":"gpl-2.0","url":"https://api.github.com/licenses/gpl-2.0","name":"GNU General Public License v2.0","node_id":"MDc6TGljZW5zZTg=","spdx_id":"GPL-2.0"},"node_id":"MDEwOlJlcG9zaXRvcnk1ODY1NjcyMw==","private":false,"ssh_url":"git@github.com:mralexgray/2200087-Serial-Protocol.git","svn_url":"https://github.com/mralexgray/2200087-Serial-Protocol","archived":false,"disabled":false,"has_wiki":true,"homepage":"http://daviddworken.com","html_url":"https://github.com/mralexgray/2200087-Serial-Protocol","keys_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/keys{/key_id}","language":"Python","tags_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/2200087-Serial-Protocol.git","forks_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/forks","full_name":"mralexgray/2200087-Serial-Protocol","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/hooks","pulls_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/pulls{/number}","pushed_at":"2016-05-12T16:07:24Z","teams_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/teams","trees_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/trees{/sha}","created_at":"2016-05-12T16:05:28Z","events_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/merges","mirror_url":null,"updated_at":"2016-05-12T16:05:30Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/compare/{base}...{head}","description":"A reverse engineered protocol description and accompanying code for Radioshack\'s 2200087 multimeter","forks_count":1,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":13121042,"url":"https://api.github.com/repos/mralexgray/ace","fork":true,"name":"ace","size":21080,"forks":1,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/ace.git","license":{"key":"other","url":null,"name":"Other","node_id":"MDc6TGljZW5zZTA=","spdx_id":"NOASSERTION"},"node_id":"MDEwOlJlcG9zaXRvcnkxMzEyMTA0Mg==","private":false,"ssh_url":"git@github.com:mralexgray/ace.git","svn_url":"https://github.com/mralexgray/ace","archived":false,"disabled":false,"has_wiki":true,"homepage":"http://ace.c9.io","html_url":"https://github.com/mralexgray/ace","keys_url":"https://api.github.com/repos/mralexgray/ace/keys{/key_id}","language":"JavaScript","tags_url":"https://api.github.com/repos/mralexgray/ace/tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/ace/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/ace.git","forks_url":"https://api.github.com/repos/mralexgray/ace/forks","full_name":"mralexgray/ace","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/ace/hooks","pulls_url":"https://api.github.com/repos/mralexgray/ace/pulls{/number}","pushed_at":"2013-10-26T12:34:48Z","teams_url":"https://api.github.com/repos/mralexgray/ace/teams","trees_url":"https://api.github.com/repos/mralexgray/ace/git/trees{/sha}","created_at":"2013-09-26T11:58:10Z","events_url":"https://api.github.com/repos/mralexgray/ace/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/ace/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/ace/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/ace/merges","mirror_url":null,"updated_at":"2013-10-26T12:34:49Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/ace/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/ace/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/ace/compare/{base}...{head}","description":"Ace (Ajax.org Cloud9 Editor)","forks_count":1,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/ace/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/ace/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/ace/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/ace/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/ace/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/ace/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/ace/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/ace/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/ace/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/ace/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/ace/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/ace/stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/ace/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/ace/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/ace/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/ace/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/ace/issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/ace/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/ace/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/ace/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/ace/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":10791045,"url":"https://api.github.com/repos/mralexgray/ACEView","fork":true,"name":"ACEView","size":1733,"forks":1,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/ACEView.git","license":{"key":"other","url":null,"name":"Other","node_id":"MDc6TGljZW5zZTA=","spdx_id":"NOASSERTION"},"node_id":"MDEwOlJlcG9zaXRvcnkxMDc5MTA0NQ==","private":false,"ssh_url":"git@github.com:mralexgray/ACEView.git","svn_url":"https://github.com/mralexgray/ACEView","archived":false,"disabled":false,"has_wiki":true,"homepage":null,"html_url":"https://github.com/mralexgray/ACEView","keys_url":"https://api.github.com/repos/mralexgray/ACEView/keys{/key_id}","language":"Objective-C","tags_url":"https://api.github.com/repos/mralexgray/ACEView/tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/ACEView/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/ACEView.git","forks_url":"https://api.github.com/repos/mralexgray/ACEView/forks","full_name":"mralexgray/ACEView","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/ACEView/hooks","pulls_url":"https://api.github.com/repos/mralexgray/ACEView/pulls{/number}","pushed_at":"2014-05-09T01:36:23Z","teams_url":"https://api.github.com/repos/mralexgray/ACEView/teams","trees_url":"https://api.github.com/repos/mralexgray/ACEView/git/trees{/sha}","created_at":"2013-06-19T12:15:04Z","events_url":"https://api.github.com/repos/mralexgray/ACEView/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/ACEView/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/ACEView/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/ACEView/merges","mirror_url":null,"updated_at":"2015-11-24T01:14:10Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/ACEView/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/ACEView/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/ACEView/compare/{base}...{head}","description":"Use the wonderful ACE editor in your Cocoa applications","forks_count":1,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/ACEView/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/ACEView/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/ACEView/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/ACEView/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/ACEView/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/ACEView/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/ACEView/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/ACEView/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/ACEView/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/ACEView/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/ACEView/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/ACEView/stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/ACEView/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/ACEView/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/ACEView/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/ACEView/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/ACEView/issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/ACEView/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/ACEView/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/ACEView/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/ACEView/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":13623648,"url":"https://api.github.com/repos/mralexgray/ActiveLog","fork":true,"name":"ActiveLog","size":60,"forks":0,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/ActiveLog.git","license":null,"node_id":"MDEwOlJlcG9zaXRvcnkxMzYyMzY0OA==","private":false,"ssh_url":"git@github.com:mralexgray/ActiveLog.git","svn_url":"https://github.com/mralexgray/ActiveLog","archived":false,"disabled":false,"has_wiki":true,"homepage":"http://deepitpro.com/en/articles/ActiveLog/info/","html_url":"https://github.com/mralexgray/ActiveLog","keys_url":"https://api.github.com/repos/mralexgray/ActiveLog/keys{/key_id}","language":"Objective-C","tags_url":"https://api.github.com/repos/mralexgray/ActiveLog/tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/ActiveLog/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/ActiveLog.git","forks_url":"https://api.github.com/repos/mralexgray/ActiveLog/forks","full_name":"mralexgray/ActiveLog","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/ActiveLog/hooks","pulls_url":"https://api.github.com/repos/mralexgray/ActiveLog/pulls{/number}","pushed_at":"2011-07-03T06:28:59Z","teams_url":"https://api.github.com/repos/mralexgray/ActiveLog/teams","trees_url":"https://api.github.com/repos/mralexgray/ActiveLog/git/trees{/sha}","created_at":"2013-10-16T15:52:37Z","events_url":"https://api.github.com/repos/mralexgray/ActiveLog/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/ActiveLog/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/ActiveLog/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/ActiveLog/merges","mirror_url":null,"updated_at":"2013-10-16T15:52:37Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/ActiveLog/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/ActiveLog/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/ActiveLog/compare/{base}...{head}","description":"Shut up all logs with active filter.","forks_count":0,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/ActiveLog/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/ActiveLog/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/ActiveLog/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/ActiveLog/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/ActiveLog/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/ActiveLog/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/ActiveLog/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/ActiveLog/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/ActiveLog/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/ActiveLog/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/ActiveLog/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/ActiveLog/stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/ActiveLog/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/ActiveLog/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/ActiveLog/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/ActiveLog/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/ActiveLog/issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/ActiveLog/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/ActiveLog/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/ActiveLog/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/ActiveLog/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":9716210,"url":"https://api.github.com/repos/mralexgray/adium","fork":false,"name":"adium","size":277719,"forks":37,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/adium.git","license":{"key":"other","url":null,"name":"Other","node_id":"MDc6TGljZW5zZTA=","spdx_id":"NOASSERTION"},"node_id":"MDEwOlJlcG9zaXRvcnk5NzE2MjEw","private":false,"ssh_url":"git@github.com:mralexgray/adium.git","svn_url":"https://github.com/mralexgray/adium","archived":false,"disabled":false,"has_wiki":false,"homepage":null,"html_url":"https://github.com/mralexgray/adium","keys_url":"https://api.github.com/repos/mralexgray/adium/keys{/key_id}","language":"Objective-C","tags_url":"https://api.github.com/repos/mralexgray/adium/tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/adium/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/adium.git","forks_url":"https://api.github.com/repos/mralexgray/adium/forks","full_name":"mralexgray/adium","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/adium/hooks","pulls_url":"https://api.github.com/repos/mralexgray/adium/pulls{/number}","pushed_at":"2013-04-26T16:43:53Z","teams_url":"https://api.github.com/repos/mralexgray/adium/teams","trees_url":"https://api.github.com/repos/mralexgray/adium/git/trees{/sha}","created_at":"2013-04-27T14:59:33Z","events_url":"https://api.github.com/repos/mralexgray/adium/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/adium/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/adium/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/adium/merges","mirror_url":null,"updated_at":"2019-12-11T06:51:45Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/adium/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/adium/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/adium/compare/{base}...{head}","description":"Official mirror of hg.adium.im","forks_count":37,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/adium/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/adium/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/adium/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/adium/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/adium/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/adium/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/adium/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/adium/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/adium/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/adium/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/adium/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/adium/stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/adium/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/adium/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/adium/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/adium/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/adium/issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/adium/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/adium/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/adium/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/adium/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":12752329,"url":"https://api.github.com/repos/mralexgray/ADLivelyTableView","fork":true,"name":"ADLivelyTableView","size":73,"forks":0,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/ADLivelyTableView.git","license":{"key":"other","url":null,"name":"Other","node_id":"MDc6TGljZW5zZTA=","spdx_id":"NOASSERTION"},"node_id":"MDEwOlJlcG9zaXRvcnkxMjc1MjMyOQ==","private":false,"ssh_url":"git@github.com:mralexgray/ADLivelyTableView.git","svn_url":"https://github.com/mralexgray/ADLivelyTableView","archived":false,"disabled":false,"has_wiki":true,"homepage":"http://applidium.com/en/news/lively_uitableview/","html_url":"https://github.com/mralexgray/ADLivelyTableView","keys_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/keys{/key_id}","language":"Objective-C","tags_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/ADLivelyTableView.git","forks_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/forks","full_name":"mralexgray/ADLivelyTableView","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/hooks","pulls_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/pulls{/number}","pushed_at":"2012-05-10T10:40:15Z","teams_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/teams","trees_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/git/trees{/sha}","created_at":"2013-09-11T09:18:01Z","events_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/merges","mirror_url":null,"updated_at":"2013-09-11T09:18:03Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/compare/{base}...{head}","description":"Lively UITableView","forks_count":0,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":5697379,"url":"https://api.github.com/repos/mralexgray/AFIncrementalStore","fork":true,"name":"AFIncrementalStore","size":139,"forks":0,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/AFIncrementalStore.git","license":{"key":"mit","url":"https://api.github.com/licenses/mit","name":"MIT License","node_id":"MDc6TGljZW5zZTEz","spdx_id":"MIT"},"node_id":"MDEwOlJlcG9zaXRvcnk1Njk3Mzc5","private":false,"ssh_url":"git@github.com:mralexgray/AFIncrementalStore.git","svn_url":"https://github.com/mralexgray/AFIncrementalStore","archived":false,"disabled":false,"has_wiki":true,"homepage":null,"html_url":"https://github.com/mralexgray/AFIncrementalStore","keys_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/keys{/key_id}","language":"Objective-C","tags_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/AFIncrementalStore.git","forks_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/forks","full_name":"mralexgray/AFIncrementalStore","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/hooks","pulls_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/pulls{/number}","pushed_at":"2012-09-01T22:46:25Z","teams_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/teams","trees_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/git/trees{/sha}","created_at":"2012-09-06T04:20:33Z","events_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/merges","mirror_url":null,"updated_at":"2013-01-12T03:15:29Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/compare/{base}...{head}","description":"Core Data Persistence with AFNetworking, Done Right","forks_count":0,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":6969621,"url":"https://api.github.com/repos/mralexgray/AFNetworking","fork":true,"name":"AFNetworking","size":4341,"forks":0,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/AFNetworking.git","license":{"key":"mit","url":"https://api.github.com/licenses/mit","name":"MIT License","node_id":"MDc6TGljZW5zZTEz","spdx_id":"MIT"},"node_id":"MDEwOlJlcG9zaXRvcnk2OTY5NjIx","private":false,"ssh_url":"git@github.com:mralexgray/AFNetworking.git","svn_url":"https://github.com/mralexgray/AFNetworking","archived":false,"disabled":false,"has_wiki":true,"homepage":"http://afnetworking.com","html_url":"https://github.com/mralexgray/AFNetworking","keys_url":"https://api.github.com/repos/mralexgray/AFNetworking/keys{/key_id}","language":"Objective-C","tags_url":"https://api.github.com/repos/mralexgray/AFNetworking/tags","watchers":2,"blobs_url":"https://api.github.com/repos/mralexgray/AFNetworking/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/AFNetworking.git","forks_url":"https://api.github.com/repos/mralexgray/AFNetworking/forks","full_name":"mralexgray/AFNetworking","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/AFNetworking/hooks","pulls_url":"https://api.github.com/repos/mralexgray/AFNetworking/pulls{/number}","pushed_at":"2014-01-24T07:14:32Z","teams_url":"https://api.github.com/repos/mralexgray/AFNetworking/teams","trees_url":"https://api.github.com/repos/mralexgray/AFNetworking/git/trees{/sha}","created_at":"2012-12-02T17:00:04Z","events_url":"https://api.github.com/repos/mralexgray/AFNetworking/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/AFNetworking/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/AFNetworking/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/AFNetworking/merges","mirror_url":null,"updated_at":"2014-01-24T07:14:33Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/AFNetworking/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/AFNetworking/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/AFNetworking/compare/{base}...{head}","description":"A delightful iOS and OS X networking framework","forks_count":0,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/AFNetworking/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/AFNetworking/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/AFNetworking/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/AFNetworking/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/AFNetworking/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/AFNetworking/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/AFNetworking/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/AFNetworking/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/AFNetworking/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/AFNetworking/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/AFNetworking/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/AFNetworking/stargazers","watchers_count":2,"deployments_url":"https://api.github.com/repos/mralexgray/AFNetworking/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/AFNetworking/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/AFNetworking/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/AFNetworking/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/AFNetworking/issues/events{/number}","stargazers_count":2,"subscription_url":"https://api.github.com/repos/mralexgray/AFNetworking/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/AFNetworking/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/AFNetworking/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/AFNetworking/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":9485541,"url":"https://api.github.com/repos/mralexgray/AGNSSplitView","fork":true,"name":"AGNSSplitView","size":68,"forks":0,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/AGNSSplitView.git","license":null,"node_id":"MDEwOlJlcG9zaXRvcnk5NDg1NTQx","private":false,"ssh_url":"git@github.com:mralexgray/AGNSSplitView.git","svn_url":"https://github.com/mralexgray/AGNSSplitView","archived":false,"disabled":false,"has_wiki":true,"homepage":null,"html_url":"https://github.com/mralexgray/AGNSSplitView","keys_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/keys{/key_id}","language":"Objective-C","tags_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/AGNSSplitView.git","forks_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/forks","full_name":"mralexgray/AGNSSplitView","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/hooks","pulls_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/pulls{/number}","pushed_at":"2013-02-26T00:32:32Z","teams_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/teams","trees_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/git/trees{/sha}","created_at":"2013-04-17T00:10:13Z","events_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/merges","mirror_url":null,"updated_at":"2013-04-17T00:10:13Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/compare/{base}...{head}","description":"Simple NSSplitView additions.","forks_count":0,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":12767784,"url":"https://api.github.com/repos/mralexgray/AGScopeBar","fork":true,"name":"AGScopeBar","size":64,"forks":0,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/AGScopeBar.git","license":null,"node_id":"MDEwOlJlcG9zaXRvcnkxMjc2Nzc4NA==","private":false,"ssh_url":"git@github.com:mralexgray/AGScopeBar.git","svn_url":"https://github.com/mralexgray/AGScopeBar","archived":false,"disabled":false,"has_wiki":true,"homepage":null,"html_url":"https://github.com/mralexgray/AGScopeBar","keys_url":"https://api.github.com/repos/mralexgray/AGScopeBar/keys{/key_id}","language":"Objective-C","tags_url":"https://api.github.com/repos/mralexgray/AGScopeBar/tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/AGScopeBar/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/AGScopeBar.git","forks_url":"https://api.github.com/repos/mralexgray/AGScopeBar/forks","full_name":"mralexgray/AGScopeBar","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/AGScopeBar/hooks","pulls_url":"https://api.github.com/repos/mralexgray/AGScopeBar/pulls{/number}","pushed_at":"2013-05-07T03:35:29Z","teams_url":"https://api.github.com/repos/mralexgray/AGScopeBar/teams","trees_url":"https://api.github.com/repos/mralexgray/AGScopeBar/git/trees{/sha}","created_at":"2013-09-11T21:06:54Z","events_url":"https://api.github.com/repos/mralexgray/AGScopeBar/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/AGScopeBar/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/AGScopeBar/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/AGScopeBar/merges","mirror_url":null,"updated_at":"2013-09-11T21:06:54Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/AGScopeBar/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/AGScopeBar/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/AGScopeBar/compare/{base}...{head}","description":"Custom scope bar implementation for Cocoa","forks_count":0,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/AGScopeBar/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/AGScopeBar/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/AGScopeBar/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/AGScopeBar/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/AGScopeBar/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/AGScopeBar/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/AGScopeBar/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/AGScopeBar/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/AGScopeBar/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/AGScopeBar/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/AGScopeBar/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/AGScopeBar/stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/AGScopeBar/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/AGScopeBar/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/AGScopeBar/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/AGScopeBar/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/AGScopeBar/issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/AGScopeBar/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/AGScopeBar/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/AGScopeBar/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/AGScopeBar/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":31829499,"url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin","fork":true,"name":"agvtool-xcode-plugin","size":102,"forks":0,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/agvtool-xcode-plugin.git","license":null,"node_id":"MDEwOlJlcG9zaXRvcnkzMTgyOTQ5OQ==","private":false,"ssh_url":"git@github.com:mralexgray/agvtool-xcode-plugin.git","svn_url":"https://github.com/mralexgray/agvtool-xcode-plugin","archived":false,"disabled":false,"has_wiki":true,"homepage":null,"html_url":"https://github.com/mralexgray/agvtool-xcode-plugin","keys_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/keys{/key_id}","language":"Objective-C","tags_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/agvtool-xcode-plugin.git","forks_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/forks","full_name":"mralexgray/agvtool-xcode-plugin","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/hooks","pulls_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/pulls{/number}","pushed_at":"2015-03-08T00:04:31Z","teams_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/teams","trees_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/trees{/sha}","created_at":"2015-03-07T22:15:38Z","events_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/merges","mirror_url":null,"updated_at":"2015-03-07T22:15:41Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/compare/{base}...{head}","description":"this is a plugin wrapper for agvtool for xcode.","forks_count":0,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":9227846,"url":"https://api.github.com/repos/mralexgray/AHContentBrowser","fork":true,"name":"AHContentBrowser","size":223,"forks":0,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/AHContentBrowser.git","license":null,"node_id":"MDEwOlJlcG9zaXRvcnk5MjI3ODQ2","private":false,"ssh_url":"git@github.com:mralexgray/AHContentBrowser.git","svn_url":"https://github.com/mralexgray/AHContentBrowser","archived":false,"disabled":false,"has_wiki":true,"homepage":"","html_url":"https://github.com/mralexgray/AHContentBrowser","keys_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/keys{/key_id}","language":"Objective-C","tags_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/AHContentBrowser.git","forks_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/forks","full_name":"mralexgray/AHContentBrowser","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/hooks","pulls_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/pulls{/number}","pushed_at":"2013-03-13T17:38:23Z","teams_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/teams","trees_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/git/trees{/sha}","created_at":"2013-04-04T20:56:16Z","events_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/merges","mirror_url":null,"updated_at":"2015-10-22T05:00:24Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/compare/{base}...{head}","description":"A Mac only webview that loads a fast readable version of the website if available.","forks_count":0,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":37430328,"url":"https://api.github.com/repos/mralexgray/AHLaunchCtl","fork":true,"name":"AHLaunchCtl","size":592,"forks":0,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/AHLaunchCtl.git","license":{"key":"mit","url":"https://api.github.com/licenses/mit","name":"MIT License","node_id":"MDc6TGljZW5zZTEz","spdx_id":"MIT"},"node_id":"MDEwOlJlcG9zaXRvcnkzNzQzMDMyOA==","private":false,"ssh_url":"git@github.com:mralexgray/AHLaunchCtl.git","svn_url":"https://github.com/mralexgray/AHLaunchCtl","archived":false,"disabled":false,"has_wiki":true,"homepage":"","html_url":"https://github.com/mralexgray/AHLaunchCtl","keys_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/keys{/key_id}","language":"Objective-C","tags_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/AHLaunchCtl.git","forks_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/forks","full_name":"mralexgray/AHLaunchCtl","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/hooks","pulls_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/pulls{/number}","pushed_at":"2015-05-26T18:50:48Z","teams_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/teams","trees_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/git/trees{/sha}","created_at":"2015-06-14T21:31:03Z","events_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/merges","mirror_url":null,"updated_at":"2015-06-14T21:31:04Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/compare/{base}...{head}","description":"LaunchD Framework for Cocoa Apps","forks_count":0,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":9167473,"url":"https://api.github.com/repos/mralexgray/AHLayout","fork":true,"name":"AHLayout","size":359,"forks":0,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/AHLayout.git","license":null,"node_id":"MDEwOlJlcG9zaXRvcnk5MTY3NDcz","private":false,"ssh_url":"git@github.com:mralexgray/AHLayout.git","svn_url":"https://github.com/mralexgray/AHLayout","archived":false,"disabled":false,"has_wiki":true,"homepage":null,"html_url":"https://github.com/mralexgray/AHLayout","keys_url":"https://api.github.com/repos/mralexgray/AHLayout/keys{/key_id}","language":"Objective-C","tags_url":"https://api.github.com/repos/mralexgray/AHLayout/tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/AHLayout/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/AHLayout.git","forks_url":"https://api.github.com/repos/mralexgray/AHLayout/forks","full_name":"mralexgray/AHLayout","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/AHLayout/hooks","pulls_url":"https://api.github.com/repos/mralexgray/AHLayout/pulls{/number}","pushed_at":"2013-07-08T02:31:14Z","teams_url":"https://api.github.com/repos/mralexgray/AHLayout/teams","trees_url":"https://api.github.com/repos/mralexgray/AHLayout/git/trees{/sha}","created_at":"2013-04-02T10:10:30Z","events_url":"https://api.github.com/repos/mralexgray/AHLayout/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/AHLayout/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/AHLayout/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/AHLayout/merges","mirror_url":null,"updated_at":"2013-07-08T02:31:17Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/AHLayout/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/AHLayout/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/AHLayout/compare/{base}...{head}","description":"AHLayout","forks_count":0,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/AHLayout/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/AHLayout/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/AHLayout/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/AHLayout/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/AHLayout/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/AHLayout/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/AHLayout/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/AHLayout/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/AHLayout/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/AHLayout/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/AHLayout/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/AHLayout/stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/AHLayout/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/AHLayout/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/AHLayout/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/AHLayout/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/AHLayout/issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/AHLayout/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/AHLayout/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/AHLayout/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/AHLayout/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":18450201,"url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework","fork":true,"name":"Airmail-Plug-In-Framework","size":888,"forks":0,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/Airmail-Plug-In-Framework.git","license":{"key":"gpl-2.0","url":"https://api.github.com/licenses/gpl-2.0","name":"GNU General Public License v2.0","node_id":"MDc6TGljZW5zZTg=","spdx_id":"GPL-2.0"},"node_id":"MDEwOlJlcG9zaXRvcnkxODQ1MDIwMQ==","private":false,"ssh_url":"git@github.com:mralexgray/Airmail-Plug-In-Framework.git","svn_url":"https://github.com/mralexgray/Airmail-Plug-In-Framework","archived":false,"disabled":false,"has_wiki":true,"homepage":null,"html_url":"https://github.com/mralexgray/Airmail-Plug-In-Framework","keys_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/keys{/key_id}","language":null,"tags_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/Airmail-Plug-In-Framework.git","forks_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/forks","full_name":"mralexgray/Airmail-Plug-In-Framework","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/hooks","pulls_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/pulls{/number}","pushed_at":"2014-03-27T15:42:19Z","teams_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/teams","trees_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/trees{/sha}","created_at":"2014-04-04T19:33:54Z","events_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/merges","mirror_url":null,"updated_at":"2014-11-23T19:31:04Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/compare/{base}...{head}","description":null,"forks_count":0,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":5203219,"url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API","fork":true,"name":"AJS-iTunes-API","size":103,"forks":0,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/AJS-iTunes-API.git","license":null,"node_id":"MDEwOlJlcG9zaXRvcnk1MjAzMjE5","private":false,"ssh_url":"git@github.com:mralexgray/AJS-iTunes-API.git","svn_url":"https://github.com/mralexgray/AJS-iTunes-API","archived":false,"disabled":false,"has_wiki":true,"homepage":"","html_url":"https://github.com/mralexgray/AJS-iTunes-API","keys_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/keys{/key_id}","language":"Objective-C","tags_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/tags","watchers":2,"blobs_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/AJS-iTunes-API.git","forks_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/forks","full_name":"mralexgray/AJS-iTunes-API","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/hooks","pulls_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/pulls{/number}","pushed_at":"2011-10-30T22:26:48Z","teams_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/teams","trees_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/trees{/sha}","created_at":"2012-07-27T10:20:58Z","events_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/merges","mirror_url":null,"updated_at":"2013-01-11T11:00:05Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/compare/{base}...{head}","description":"Cocoa wrapper for the iTunes search API - for iOS and Mac OSX projects","forks_count":0,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/stargazers","watchers_count":2,"deployments_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/issues/events{/number}","stargazers_count":2,"subscription_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":10093801,"url":"https://api.github.com/repos/mralexgray/Alcatraz","fork":true,"name":"Alcatraz","size":3668,"forks":0,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/Alcatraz.git","license":{"key":"mit","url":"https://api.github.com/licenses/mit","name":"MIT License","node_id":"MDc6TGljZW5zZTEz","spdx_id":"MIT"},"node_id":"MDEwOlJlcG9zaXRvcnkxMDA5MzgwMQ==","private":false,"ssh_url":"git@github.com:mralexgray/Alcatraz.git","svn_url":"https://github.com/mralexgray/Alcatraz","archived":false,"disabled":false,"has_wiki":false,"homepage":"mneorr.github.com/Alcatraz","html_url":"https://github.com/mralexgray/Alcatraz","keys_url":"https://api.github.com/repos/mralexgray/Alcatraz/keys{/key_id}","language":"Objective-C","tags_url":"https://api.github.com/repos/mralexgray/Alcatraz/tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/Alcatraz/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/Alcatraz.git","forks_url":"https://api.github.com/repos/mralexgray/Alcatraz/forks","full_name":"mralexgray/Alcatraz","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/Alcatraz/hooks","pulls_url":"https://api.github.com/repos/mralexgray/Alcatraz/pulls{/number}","pushed_at":"2014-03-19T12:50:37Z","teams_url":"https://api.github.com/repos/mralexgray/Alcatraz/teams","trees_url":"https://api.github.com/repos/mralexgray/Alcatraz/git/trees{/sha}","created_at":"2013-05-16T04:41:13Z","events_url":"https://api.github.com/repos/mralexgray/Alcatraz/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/Alcatraz/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/Alcatraz/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/Alcatraz/merges","mirror_url":null,"updated_at":"2014-03-19T20:38:35Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/Alcatraz/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/Alcatraz/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/Alcatraz/compare/{base}...{head}","description":"The most awesome (and only) Xcode package manager!","forks_count":0,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/Alcatraz/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/Alcatraz/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/Alcatraz/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/Alcatraz/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/Alcatraz/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/Alcatraz/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/Alcatraz/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/Alcatraz/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/Alcatraz/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/Alcatraz/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/Alcatraz/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/Alcatraz/stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/Alcatraz/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/Alcatraz/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/Alcatraz/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/Alcatraz/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/Alcatraz/issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/Alcatraz/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/Alcatraz/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/Alcatraz/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/Alcatraz/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":12916552,"url":"https://api.github.com/repos/mralexgray/alcatraz-packages","fork":true,"name":"alcatraz-packages","size":826,"forks":0,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/alcatraz-packages.git","license":null,"node_id":"MDEwOlJlcG9zaXRvcnkxMjkxNjU1Mg==","private":false,"ssh_url":"git@github.com:mralexgray/alcatraz-packages.git","svn_url":"https://github.com/mralexgray/alcatraz-packages","archived":false,"disabled":false,"has_wiki":true,"homepage":"mneorr.github.com/Alcatraz","html_url":"https://github.com/mralexgray/alcatraz-packages","keys_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/keys{/key_id}","language":"Ruby","tags_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/alcatraz-packages.git","forks_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/forks","full_name":"mralexgray/alcatraz-packages","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/hooks","pulls_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/pulls{/number}","pushed_at":"2015-12-14T16:21:31Z","teams_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/teams","trees_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/git/trees{/sha}","created_at":"2013-09-18T07:15:24Z","events_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/merges","mirror_url":null,"updated_at":"2015-11-10T20:52:30Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/compare/{base}...{head}","description":"Package list repository for Alcatraz","forks_count":0,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":44278362,"url":"https://api.github.com/repos/mralexgray/alexicons","fork":true,"name":"alexicons","size":257,"forks":0,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/alexicons.git","license":null,"node_id":"MDEwOlJlcG9zaXRvcnk0NDI3ODM2Mg==","private":false,"ssh_url":"git@github.com:mralexgray/alexicons.git","svn_url":"https://github.com/mralexgray/alexicons","archived":false,"disabled":false,"has_wiki":false,"homepage":null,"html_url":"https://github.com/mralexgray/alexicons","keys_url":"https://api.github.com/repos/mralexgray/alexicons/keys{/key_id}","language":"CoffeeScript","tags_url":"https://api.github.com/repos/mralexgray/alexicons/tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/alexicons/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/alexicons.git","forks_url":"https://api.github.com/repos/mralexgray/alexicons/forks","full_name":"mralexgray/alexicons","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/alexicons/hooks","pulls_url":"https://api.github.com/repos/mralexgray/alexicons/pulls{/number}","pushed_at":"2015-10-16T03:57:51Z","teams_url":"https://api.github.com/repos/mralexgray/alexicons/teams","trees_url":"https://api.github.com/repos/mralexgray/alexicons/git/trees{/sha}","created_at":"2015-10-14T21:49:39Z","events_url":"https://api.github.com/repos/mralexgray/alexicons/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/alexicons/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/alexicons/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/alexicons/merges","mirror_url":null,"updated_at":"2015-10-15T06:20:08Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/alexicons/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/alexicons/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/alexicons/compare/{base}...{head}","description":"Get popular cat names","forks_count":0,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/alexicons/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/alexicons/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/alexicons/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/alexicons/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/alexicons/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/alexicons/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/alexicons/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/alexicons/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/alexicons/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/alexicons/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/alexicons/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/alexicons/stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/alexicons/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/alexicons/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/alexicons/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/alexicons/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/alexicons/issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/alexicons/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/alexicons/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/alexicons/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/alexicons/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":10476467,"url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate","fork":true,"name":"Alfred-Google-Translate","size":103,"forks":0,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/Alfred-Google-Translate.git","license":null,"node_id":"MDEwOlJlcG9zaXRvcnkxMDQ3NjQ2Nw==","private":false,"ssh_url":"git@github.com:mralexgray/Alfred-Google-Translate.git","svn_url":"https://github.com/mralexgray/Alfred-Google-Translate","archived":false,"disabled":false,"has_wiki":true,"homepage":null,"html_url":"https://github.com/mralexgray/Alfred-Google-Translate","keys_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/keys{/key_id}","language":"Shell","tags_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/Alfred-Google-Translate.git","forks_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/forks","full_name":"mralexgray/Alfred-Google-Translate","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/hooks","pulls_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/pulls{/number}","pushed_at":"2013-01-12T19:39:03Z","teams_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/teams","trees_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/trees{/sha}","created_at":"2013-06-04T10:45:10Z","events_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/merges","mirror_url":null,"updated_at":"2013-06-04T10:45:10Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/compare/{base}...{head}","description":"Extension for Alfred that will do a Google translate for you","forks_count":0,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":5524019,"url":"https://api.github.com/repos/mralexgray/Amber","fork":false,"name":"Amber","size":48,"forks":0,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/Amber.git","license":null,"node_id":"MDEwOlJlcG9zaXRvcnk1NTI0MDE5","private":false,"ssh_url":"git@github.com:mralexgray/Amber.git","svn_url":"https://github.com/mralexgray/Amber","archived":false,"disabled":false,"has_wiki":true,"homepage":null,"html_url":"https://github.com/mralexgray/Amber","keys_url":"https://api.github.com/repos/mralexgray/Amber/keys{/key_id}","language":null,"tags_url":"https://api.github.com/repos/mralexgray/Amber/tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/Amber/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/Amber.git","forks_url":"https://api.github.com/repos/mralexgray/Amber/forks","full_name":"mralexgray/Amber","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/Amber/hooks","pulls_url":"https://api.github.com/repos/mralexgray/Amber/pulls{/number}","pushed_at":"2012-08-23T10:38:25Z","teams_url":"https://api.github.com/repos/mralexgray/Amber/teams","trees_url":"https://api.github.com/repos/mralexgray/Amber/git/trees{/sha}","created_at":"2012-08-23T10:38:24Z","events_url":"https://api.github.com/repos/mralexgray/Amber/events","has_issues":true,"issues_url":"https://api.github.com/repos/mralexgray/Amber/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/Amber/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/Amber/merges","mirror_url":null,"updated_at":"2013-01-11T22:25:35Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/Amber/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/Amber/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/Amber/compare/{base}...{head}","description":"Fork of the difficult-to-deal-with Amber.framework","forks_count":0,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/Amber/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/Amber/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/Amber/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/Amber/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/Amber/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/Amber/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/Amber/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/Amber/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/Amber/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/Amber/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/Amber/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/Amber/stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/Amber/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/Amber/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/Amber/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/Amber/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/Amber/issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/Amber/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/Amber/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/Amber/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/Amber/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":10809060,"url":"https://api.github.com/repos/mralexgray/Amethyst","fork":true,"name":"Amethyst","size":12623,"forks":0,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/Amethyst.git","license":{"key":"mit","url":"https://api.github.com/licenses/mit","name":"MIT License","node_id":"MDc6TGljZW5zZTEz","spdx_id":"MIT"},"node_id":"MDEwOlJlcG9zaXRvcnkxMDgwOTA2MA==","private":false,"ssh_url":"git@github.com:mralexgray/Amethyst.git","svn_url":"https://github.com/mralexgray/Amethyst","archived":false,"disabled":false,"has_wiki":true,"homepage":"http://ianyh.github.io/Amethyst/","html_url":"https://github.com/mralexgray/Amethyst","keys_url":"https://api.github.com/repos/mralexgray/Amethyst/keys{/key_id}","language":"Objective-C","tags_url":"https://api.github.com/repos/mralexgray/Amethyst/tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/Amethyst/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/Amethyst.git","forks_url":"https://api.github.com/repos/mralexgray/Amethyst/forks","full_name":"mralexgray/Amethyst","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/Amethyst/hooks","pulls_url":"https://api.github.com/repos/mralexgray/Amethyst/pulls{/number}","pushed_at":"2013-06-18T02:54:11Z","teams_url":"https://api.github.com/repos/mralexgray/Amethyst/teams","trees_url":"https://api.github.com/repos/mralexgray/Amethyst/git/trees{/sha}","created_at":"2013-06-20T00:34:22Z","events_url":"https://api.github.com/repos/mralexgray/Amethyst/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/Amethyst/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/Amethyst/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/Amethyst/merges","mirror_url":null,"updated_at":"2013-06-20T00:34:22Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/Amethyst/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/Amethyst/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/Amethyst/compare/{base}...{head}","description":"Tiling window manager for OS X.","forks_count":0,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/Amethyst/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/Amethyst/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/Amethyst/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/Amethyst/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/Amethyst/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/Amethyst/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/Amethyst/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/Amethyst/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/Amethyst/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/Amethyst/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/Amethyst/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/Amethyst/stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/Amethyst/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/Amethyst/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/Amethyst/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/Amethyst/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/Amethyst/issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/Amethyst/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/Amethyst/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/Amethyst/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/Amethyst/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":3684286,"url":"https://api.github.com/repos/mralexgray/Animated-Paths","fork":true,"name":"Animated-Paths","size":411,"forks":0,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/Animated-Paths.git","license":{"key":"other","url":null,"name":"Other","node_id":"MDc6TGljZW5zZTA=","spdx_id":"NOASSERTION"},"node_id":"MDEwOlJlcG9zaXRvcnkzNjg0Mjg2","private":false,"ssh_url":"git@github.com:mralexgray/Animated-Paths.git","svn_url":"https://github.com/mralexgray/Animated-Paths","archived":false,"disabled":false,"has_wiki":true,"homepage":"http://oleb.net/blog/2010/12/animating-drawing-of-cgpath-with-cashapelayer/","html_url":"https://github.com/mralexgray/Animated-Paths","keys_url":"https://api.github.com/repos/mralexgray/Animated-Paths/keys{/key_id}","language":"Objective-C","tags_url":"https://api.github.com/repos/mralexgray/Animated-Paths/tags","watchers":2,"blobs_url":"https://api.github.com/repos/mralexgray/Animated-Paths/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/Animated-Paths.git","forks_url":"https://api.github.com/repos/mralexgray/Animated-Paths/forks","full_name":"mralexgray/Animated-Paths","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/Animated-Paths/hooks","pulls_url":"https://api.github.com/repos/mralexgray/Animated-Paths/pulls{/number}","pushed_at":"2010-12-30T20:56:51Z","teams_url":"https://api.github.com/repos/mralexgray/Animated-Paths/teams","trees_url":"https://api.github.com/repos/mralexgray/Animated-Paths/git/trees{/sha}","created_at":"2012-03-11T02:56:38Z","events_url":"https://api.github.com/repos/mralexgray/Animated-Paths/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/Animated-Paths/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/Animated-Paths/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/Animated-Paths/merges","mirror_url":null,"updated_at":"2013-01-08T04:12:21Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/Animated-Paths/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/Animated-Paths/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/Animated-Paths/compare/{base}...{head}","description":"Demo project: Animating the drawing of a CGPath with CAShapeLayer.strokeEnd","forks_count":0,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/Animated-Paths/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/Animated-Paths/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/Animated-Paths/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/Animated-Paths/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/Animated-Paths/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/Animated-Paths/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/Animated-Paths/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/Animated-Paths/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/Animated-Paths/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/Animated-Paths/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/Animated-Paths/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/Animated-Paths/stargazers","watchers_count":2,"deployments_url":"https://api.github.com/repos/mralexgray/Animated-Paths/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/Animated-Paths/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/Animated-Paths/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/Animated-Paths/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/Animated-Paths/issues/events{/number}","stargazers_count":2,"subscription_url":"https://api.github.com/repos/mralexgray/Animated-Paths/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/Animated-Paths/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/Animated-Paths/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/Animated-Paths/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":16662874,"url":"https://api.github.com/repos/mralexgray/AnsiLove.framework","fork":true,"name":"AnsiLove.framework","size":3780,"forks":0,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/AnsiLove.framework.git","license":{"key":"other","url":null,"name":"Other","node_id":"MDc6TGljZW5zZTA=","spdx_id":"NOASSERTION"},"node_id":"MDEwOlJlcG9zaXRvcnkxNjY2Mjg3NA==","private":false,"ssh_url":"git@github.com:mralexgray/AnsiLove.framework.git","svn_url":"https://github.com/mralexgray/AnsiLove.framework","archived":false,"disabled":false,"has_wiki":false,"homepage":"http://byteproject.net","html_url":"https://github.com/mralexgray/AnsiLove.framework","keys_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/keys{/key_id}","language":"M","tags_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/AnsiLove.framework.git","forks_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/forks","full_name":"mralexgray/AnsiLove.framework","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/hooks","pulls_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/pulls{/number}","pushed_at":"2013-10-04T14:08:38Z","teams_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/teams","trees_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/git/trees{/sha}","created_at":"2014-02-09T08:30:27Z","events_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/merges","mirror_url":null,"updated_at":"2015-01-13T20:41:46Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/compare/{base}...{head}","description":"Cocoa Framework for rendering ANSi / ASCII art","forks_count":0,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":5189563,"url":"https://api.github.com/repos/mralexgray/ANTrackBar","fork":true,"name":"ANTrackBar","size":94,"forks":0,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/ANTrackBar.git","license":null,"node_id":"MDEwOlJlcG9zaXRvcnk1MTg5NTYz","private":false,"ssh_url":"git@github.com:mralexgray/ANTrackBar.git","svn_url":"https://github.com/mralexgray/ANTrackBar","archived":false,"disabled":false,"has_wiki":true,"homepage":"","html_url":"https://github.com/mralexgray/ANTrackBar","keys_url":"https://api.github.com/repos/mralexgray/ANTrackBar/keys{/key_id}","language":"Objective-C","tags_url":"https://api.github.com/repos/mralexgray/ANTrackBar/tags","watchers":2,"blobs_url":"https://api.github.com/repos/mralexgray/ANTrackBar/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/ANTrackBar.git","forks_url":"https://api.github.com/repos/mralexgray/ANTrackBar/forks","full_name":"mralexgray/ANTrackBar","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/ANTrackBar/hooks","pulls_url":"https://api.github.com/repos/mralexgray/ANTrackBar/pulls{/number}","pushed_at":"2012-03-09T01:40:02Z","teams_url":"https://api.github.com/repos/mralexgray/ANTrackBar/teams","trees_url":"https://api.github.com/repos/mralexgray/ANTrackBar/git/trees{/sha}","created_at":"2012-07-26T08:17:22Z","events_url":"https://api.github.com/repos/mralexgray/ANTrackBar/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/ANTrackBar/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/ANTrackBar/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/ANTrackBar/merges","mirror_url":null,"updated_at":"2013-01-11T10:29:56Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/ANTrackBar/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/ANTrackBar/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/ANTrackBar/compare/{base}...{head}","description":"An easy-to-use Cocoa seek bar with a pleasing appearance","forks_count":0,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/ANTrackBar/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/ANTrackBar/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/ANTrackBar/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/ANTrackBar/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/ANTrackBar/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/ANTrackBar/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/ANTrackBar/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/ANTrackBar/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/ANTrackBar/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/ANTrackBar/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/ANTrackBar/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/ANTrackBar/stargazers","watchers_count":2,"deployments_url":"https://api.github.com/repos/mralexgray/ANTrackBar/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/ANTrackBar/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/ANTrackBar/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/ANTrackBar/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/ANTrackBar/issues/events{/number}","stargazers_count":2,"subscription_url":"https://api.github.com/repos/mralexgray/ANTrackBar/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/ANTrackBar/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/ANTrackBar/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/ANTrackBar/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":16240152,"url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C","fork":true,"name":"AOP-in-Objective-C","size":340,"forks":1,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/AOP-in-Objective-C.git","license":null,"node_id":"MDEwOlJlcG9zaXRvcnkxNjI0MDE1Mg==","private":false,"ssh_url":"git@github.com:mralexgray/AOP-in-Objective-C.git","svn_url":"https://github.com/mralexgray/AOP-in-Objective-C","archived":false,"disabled":false,"has_wiki":true,"homepage":"http://innoli.hu/en/opensource/","html_url":"https://github.com/mralexgray/AOP-in-Objective-C","keys_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/keys{/key_id}","language":"Objective-C","tags_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/AOP-in-Objective-C.git","forks_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/forks","full_name":"mralexgray/AOP-in-Objective-C","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/hooks","pulls_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/pulls{/number}","pushed_at":"2014-02-12T16:23:20Z","teams_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/teams","trees_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/trees{/sha}","created_at":"2014-01-25T21:18:04Z","events_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/merges","mirror_url":null,"updated_at":"2014-06-19T19:38:12Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/compare/{base}...{head}","description":"An NSProxy based library for easily enabling AOP like functionality in Objective-C.","forks_count":1,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/languages","default_branch":"travis-coveralls","milestones_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":13141936,"url":"https://api.github.com/repos/mralexgray/Apaxy","fork":true,"name":"Apaxy","size":113,"forks":0,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/Apaxy.git","license":{"key":"unlicense","url":"https://api.github.com/licenses/unlicense","name":"The Unlicense","node_id":"MDc6TGljZW5zZTE1","spdx_id":"Unlicense"},"node_id":"MDEwOlJlcG9zaXRvcnkxMzE0MTkzNg==","private":false,"ssh_url":"git@github.com:mralexgray/Apaxy.git","svn_url":"https://github.com/mralexgray/Apaxy","archived":false,"disabled":false,"has_wiki":true,"homepage":null,"html_url":"https://github.com/mralexgray/Apaxy","keys_url":"https://api.github.com/repos/mralexgray/Apaxy/keys{/key_id}","language":"CSS","tags_url":"https://api.github.com/repos/mralexgray/Apaxy/tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/Apaxy/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/Apaxy.git","forks_url":"https://api.github.com/repos/mralexgray/Apaxy/forks","full_name":"mralexgray/Apaxy","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/Apaxy/hooks","pulls_url":"https://api.github.com/repos/mralexgray/Apaxy/pulls{/number}","pushed_at":"2013-08-02T16:01:32Z","teams_url":"https://api.github.com/repos/mralexgray/Apaxy/teams","trees_url":"https://api.github.com/repos/mralexgray/Apaxy/git/trees{/sha}","created_at":"2013-09-27T05:05:35Z","events_url":"https://api.github.com/repos/mralexgray/Apaxy/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/Apaxy/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/Apaxy/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/Apaxy/merges","mirror_url":null,"updated_at":"2018-02-16T21:40:24Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/Apaxy/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/Apaxy/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/Apaxy/compare/{base}...{head}","description":"A simple, customisable theme for your Apache directory listing.","forks_count":0,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/Apaxy/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/Apaxy/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/Apaxy/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/Apaxy/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/Apaxy/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/Apaxy/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/Apaxy/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/Apaxy/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/Apaxy/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/Apaxy/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/Apaxy/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/Apaxy/stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/Apaxy/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/Apaxy/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/Apaxy/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/Apaxy/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/Apaxy/issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/Apaxy/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/Apaxy/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/Apaxy/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/Apaxy/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":20027360,"url":"https://api.github.com/repos/mralexgray/app","fork":true,"name":"app","size":1890,"forks":0,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/app.git","license":{"key":"other","url":null,"name":"Other","node_id":"MDc6TGljZW5zZTA=","spdx_id":"NOASSERTION"},"node_id":"MDEwOlJlcG9zaXRvcnkyMDAyNzM2MA==","private":false,"ssh_url":"git@github.com:mralexgray/app.git","svn_url":"https://github.com/mralexgray/app","archived":false,"disabled":false,"has_wiki":true,"homepage":null,"html_url":"https://github.com/mralexgray/app","keys_url":"https://api.github.com/repos/mralexgray/app/keys{/key_id}","language":"JavaScript","tags_url":"https://api.github.com/repos/mralexgray/app/tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/app/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/app.git","forks_url":"https://api.github.com/repos/mralexgray/app/forks","full_name":"mralexgray/app","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/app/hooks","pulls_url":"https://api.github.com/repos/mralexgray/app/pulls{/number}","pushed_at":"2014-05-20T19:51:38Z","teams_url":"https://api.github.com/repos/mralexgray/app/teams","trees_url":"https://api.github.com/repos/mralexgray/app/git/trees{/sha}","created_at":"2014-05-21T15:54:20Z","events_url":"https://api.github.com/repos/mralexgray/app/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/app/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/app/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/app/merges","mirror_url":null,"updated_at":"2014-05-21T15:54:22Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/app/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/app/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/app/compare/{base}...{head}","description":"Instant mobile web app creation","forks_count":0,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/app/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/app/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/app/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/app/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/app/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/app/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/app/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/app/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/app/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/app/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/app/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/app/stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/app/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/app/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/app/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/app/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/app/issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/app/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/app/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/app/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/app/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false}],"name":"Shirt","revenue":4.99},"receivedAt":"2022-08-18T08:43:13.521+05:30","request_ip":"[::1]","anonymousId":"anon-id-new","originalTimestamp":"2022-08-18T08:43:15.539+05:30"},{"name":"Page View","type":"page","sentAt":"2022-08-18T08:43:15.539+05:30","userId":"identified user id","context":{"ip":"14.5.67.21","library":{"name":"http"}},"rudderId":"daf823fb-e8d3-413a-8313-d34cd756f968","messageId":"5f58d1f7-cbd6-4bff-8571-9933be7210b1","timestamp":"2020-02-02T00:23:09.544Z","properties":{"path":"/","title":"Home"},"receivedAt":"2022-08-18T08:43:13.521+05:30","request_ip":"[::1]","anonymousId":"anon-id-new","originalTimestamp":"2022-08-18T08:43:15.539+05:30"}]', - destConfig: { - clientContext: '', - lambda: 'testFunction', - invocationType: 'Event', - }, + destConfig: { clientContext: '', lambda: 'testFunction', invocationType: 'Event' }, }, metadata: [ { @@ -25592,12 +25520,7 @@ export const data = [ event: 'Product Purchased new', sentAt: '2022-08-18T08:43:15.539+05:30', userId: 'identified user id', - context: { - ip: '14.5.67.21', - library: { - name: 'http', - }, - }, + context: { ip: '14.5.67.21', library: { name: 'http' } }, rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', messageId: '9f8fb785-c720-4381-a009-bf22a13f4ced', timestamp: '2020-02-02T00:23:09.544Z', @@ -29859,19 +29782,11 @@ export const data = [ type: 'page', sentAt: '2022-08-18T08:43:15.539+05:30', userId: 'identified user id', - context: { - ip: '14.5.67.21', - library: { - name: 'http', - }, - }, + context: { ip: '14.5.67.21', library: { name: 'http' } }, rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', messageId: '5f58d1f7-cbd6-4bff-8571-9933be7210b1', timestamp: '2020-02-02T00:23:09.544Z', - properties: { - path: '/', - title: 'Home', - }, + properties: { path: '/', title: 'Home' }, receivedAt: '2022-08-18T08:43:13.521+05:30', request_ip: '[::1]', anonymousId: 'anon-id-new', @@ -29921,11 +29836,7 @@ export const data = [ batchedRequest: { payload: '[{"name":"Screen View","type":"screen","sentAt":"2022-08-18T08:43:15.539+05:30","userId":"identified user id","context":{"ip":"14.5.67.21","library":{"name":"http"}},"rudderId":"daf823fb-e8d3-413a-8313-d34cd756f968","messageId":"1b8ee4c3-ffad-4457-b453-31b32da1dfea","timestamp":"2020-02-02T00:23:09.544Z","properties":{"prop1":"5"},"receivedAt":"2022-08-18T08:43:13.521+05:30","request_ip":"[::1]","anonymousId":"anon-id-new","originalTimestamp":"2022-08-18T08:43:15.539+05:30"},{"type":"group","sentAt":"2022-08-18T08:43:15.539+05:30","traits":{"name":"Company","industry":"Industry","employees":123},"userId":"user123","context":{"ip":"14.5.67.21","traits":{"trait1":"new-val"},"library":{"name":"http"}},"groupId":"group1","rudderId":"bda76e3e-87eb-4153-9d1e-e9c2ed48b7a5","messageId":"2c59b527-3235-4fc2-9680-f41ec52ebb51","timestamp":"2020-01-21T00:21:34.208Z","receivedAt":"2022-08-18T08:43:13.521+05:30","request_ip":"[::1]","originalTimestamp":"2022-08-18T08:43:15.539+05:30"}]', - destConfig: { - clientContext: '', - lambda: 'testFunction', - invocationType: 'Event', - }, + destConfig: { clientContext: '', lambda: 'testFunction', invocationType: 'Event' }, }, metadata: [ { @@ -29953,18 +29864,11 @@ export const data = [ type: 'screen', sentAt: '2022-08-18T08:43:15.539+05:30', userId: 'identified user id', - context: { - ip: '14.5.67.21', - library: { - name: 'http', - }, - }, + context: { ip: '14.5.67.21', library: { name: 'http' } }, rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', messageId: '1b8ee4c3-ffad-4457-b453-31b32da1dfea', timestamp: '2020-02-02T00:23:09.544Z', - properties: { - prop1: '5', - }, + properties: { prop1: '5' }, receivedAt: '2022-08-18T08:43:13.521+05:30', request_ip: '[::1]', anonymousId: 'anon-id-new', @@ -30029,20 +29933,12 @@ export const data = [ EventPayload: { type: 'group', sentAt: '2022-08-18T08:43:15.539+05:30', - traits: { - name: 'Company', - industry: 'Industry', - employees: 123, - }, + traits: { name: 'Company', industry: 'Industry', employees: 123 }, userId: 'user123', context: { ip: '14.5.67.21', - traits: { - trait1: 'new-val', - }, - library: { - name: 'http', - }, + traits: { trait1: 'new-val' }, + library: { name: 'http' }, }, groupId: 'group1', rudderId: 'bda76e3e-87eb-4153-9d1e-e9c2ed48b7a5', @@ -30096,11 +29992,7 @@ export const data = [ batchedRequest: { payload: '[{"type":"alias","sentAt":"2022-08-18T08:43:15.539+05:30","userId":"user123","context":{"ip":"14.5.67.21","traits":{"trait1":"new-val"},"library":{"name":"http"}},"rudderId":"bda76e3e-87eb-4153-9d1e-e9c2ed48b7a5","messageId":"3ff8d400-b6d4-43a4-a0ff-1bc7ae8b5f7d","timestamp":"2020-01-21T00:21:34.208Z","previousId":"previd1","receivedAt":"2022-08-18T08:43:13.521+05:30","request_ip":"[::1]","originalTimestamp":"2022-08-18T08:43:15.539+05:30"}]', - destConfig: { - clientContext: '', - lambda: 'testFunction', - invocationType: 'Event', - }, + destConfig: { clientContext: '', lambda: 'testFunction', invocationType: 'Event' }, }, metadata: [ { @@ -30129,12 +30021,8 @@ export const data = [ userId: 'user123', context: { ip: '14.5.67.21', - traits: { - trait1: 'new-val', - }, - library: { - name: 'http', - }, + traits: { trait1: 'new-val' }, + library: { name: 'http' }, }, rudderId: 'bda76e3e-87eb-4153-9d1e-e9c2ed48b7a5', messageId: '3ff8d400-b6d4-43a4-a0ff-1bc7ae8b5f7d', @@ -38727,9 +38615,7 @@ export const data = [ ], trait1: 'new-val', }, - library: { - name: 'http', - }, + library: { name: 'http' }, }, rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', messageId: 'c864b4cd-8f07-4922-b3d0-82ef04c987d3', diff --git a/test/integrations/destinations/leanplum/router/data.ts b/test/integrations/destinations/leanplum/router/data.ts index db75a7fdc4..29282c8b29 100644 --- a/test/integrations/destinations/leanplum/router/data.ts +++ b/test/integrations/destinations/leanplum/router/data.ts @@ -27,49 +27,25 @@ export const data = [ name: 'generic_x86', type: 'android', }, - library: { - name: 'com.rudderstack.android.sdk.core', - version: '1.0.1-beta.1', - }, + library: { name: 'com.rudderstack.android.sdk.core', version: '1.0.1-beta.1' }, locale: 'en-US', - network: { - carrier: 'Android', - bluetooth: false, - cellular: true, - wifi: true, - }, - os: { - name: 'Android', - version: '8.1.0', - }, - screen: { - density: 420, - height: 1794, - width: 1080, - }, + network: { carrier: 'Android', bluetooth: false, cellular: true, wifi: true }, + os: { name: 'Android', version: '8.1.0' }, + screen: { density: 420, height: 1794, width: 1080 }, timezone: 'Asia/Kolkata', - traits: { - anonymousId: '5094f5704b9cf2b3', - }, + traits: { anonymousId: '5094f5704b9cf2b3' }, userAgent: 'Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)', }, event: 'MainActivity', - integrations: { - All: true, - }, + integrations: { All: true }, messageId: 'id1', - properties: { - name: 'MainActivity', - automatic: true, - }, + properties: { name: 'MainActivity', automatic: true }, originalTimestamp: '2020-03-12T09:05:03.421Z', type: 'screen', sentAt: '2020-03-12T09:05:13.042Z', }, - metadata: { - jobId: 1, - }, + metadata: { jobId: 1, userId: 'u1' }, destination: { Config: { applicationId: 'leanplum_application_id', @@ -98,12 +74,8 @@ export const data = [ type: 'REST', method: 'POST', endpoint: 'https://api.leanplum.com/api', - headers: { - 'Content-Type': 'application/json', - }, - params: { - action: 'start', - }, + headers: { 'Content-Type': 'application/json' }, + params: { action: 'start' }, body: { JSON: { appId: 'leanplum_application_id', @@ -116,9 +88,7 @@ export const data = [ systemVersion: '8.1.0', deviceName: 'generic_x86', deviceModel: 'Android SDK built for x86', - userAttributes: { - anonymousId: '5094f5704b9cf2b3', - }, + userAttributes: { anonymousId: '5094f5704b9cf2b3' }, locale: 'en-US', timezone: 'Asia/Kolkata', time: 1584003903, @@ -136,12 +106,8 @@ export const data = [ type: 'REST', method: 'POST', endpoint: 'https://api.leanplum.com/api', - headers: { - 'Content-Type': 'application/json', - }, - params: { - action: 'advance', - }, + headers: { 'Content-Type': 'application/json' }, + params: { action: 'advance' }, body: { JSON: { appId: 'leanplum_application_id', @@ -161,11 +127,7 @@ export const data = [ userId: '5094f5704b9cf2b3', }, ], - metadata: [ - { - jobId: 1, - }, - ], + metadata: [{ jobId: 1, userId: 'u1' }], batched: false, statusCode: 200, destination: { @@ -211,49 +173,25 @@ export const data = [ name: 'generic_x86', type: 'android', }, - library: { - name: 'com.rudderstack.android.sdk.core', - version: '1.0.1-beta.1', - }, + library: { name: 'com.rudderstack.android.sdk.core', version: '1.0.1-beta.1' }, locale: 'en-US', - network: { - carrier: 'Android', - bluetooth: false, - cellular: true, - wifi: true, - }, - os: { - name: 'Android', - version: '8.1.0', - }, - screen: { - density: 420, - height: 1794, - width: 1080, - }, + network: { carrier: 'Android', bluetooth: false, cellular: true, wifi: true }, + os: { name: 'Android', version: '8.1.0' }, + screen: { density: 420, height: 1794, width: 1080 }, timezone: 'Asia/Kolkata', - traits: { - anonymousId: '5094f5704b9cf2b3', - }, + traits: { anonymousId: '5094f5704b9cf2b3' }, userAgent: 'Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)', }, event: 'MainActivity', - integrations: { - All: true, - }, + integrations: { All: true }, messageId: 'id2', - properties: { - name: 'MainActivity', - automatic: true, - }, + properties: { name: 'MainActivity', automatic: true }, originalTimestamp: '2020-03-12T09:05:03.421Z', type: 'screen', sentAt: '2020-03-12T09:05:13.042Z', }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, destination: { Config: { applicationId: 'leanplum_application_id', @@ -282,12 +220,8 @@ export const data = [ type: 'REST', method: 'POST', endpoint: 'https://api.leanplum.com/api', - headers: { - 'Content-Type': 'application/json', - }, - params: { - action: 'start', - }, + headers: { 'Content-Type': 'application/json' }, + params: { action: 'start' }, body: { JSON: { appId: 'leanplum_application_id', @@ -300,9 +234,7 @@ export const data = [ systemVersion: '8.1.0', deviceName: 'generic_x86', deviceModel: 'Android SDK built for x86', - userAttributes: { - anonymousId: '5094f5704b9cf2b3', - }, + userAttributes: { anonymousId: '5094f5704b9cf2b3' }, locale: 'en-US', timezone: 'Asia/Kolkata', time: 1584003903, @@ -320,12 +252,8 @@ export const data = [ type: 'REST', method: 'POST', endpoint: 'https://api.leanplum.com/api', - headers: { - 'Content-Type': 'application/json', - }, - params: { - action: 'advance', - }, + headers: { 'Content-Type': 'application/json' }, + params: { action: 'advance' }, body: { JSON: { appId: 'leanplum_application_id', @@ -345,11 +273,7 @@ export const data = [ userId: '5094f5704b9cf2b3', }, ], - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], batched: false, statusCode: 200, destination: { diff --git a/test/integrations/destinations/lemnisk/router/data.ts b/test/integrations/destinations/lemnisk/router/data.ts index 1a1b84f180..2f6364a0b0 100644 --- a/test/integrations/destinations/lemnisk/router/data.ts +++ b/test/integrations/destinations/lemnisk/router/data.ts @@ -12,12 +12,7 @@ export const data = [ { message: { anonymousId: 'anon-id-new', - context: { - ip: '14.5.67.21', - library: { - name: 'http', - }, - }, + context: { ip: '14.5.67.21', library: { name: 'http' } }, type: 'identify', }, destination: { @@ -87,9 +82,7 @@ export const data = [ rootStore: null, isProcessorEnabled: true, }, - metadata: { - jobId: 1, - }, + metadata: { jobId: 1, userId: 'u1' }, }, { message: { @@ -102,10 +95,7 @@ export const data = [ event: 'Visited Home', messageId: '1601322811899-d9c7dd00-50dc-4364-95c8-e89423eb3cfb', originalTimestamp: '2020-09-29T14:50:29.907+05:30', - traits: { - name: 'Home | RudderStack', - url: 'http://www.rudderstack.com', - }, + traits: { name: 'Home | RudderStack', url: 'http://www.rudderstack.com' }, receivedAt: '2020-09-29T14:50:43.005+05:30', sentAt: '2020-09-28T19:53:44.998Z', timestamp: '2020-09-29T14:50:29.907+05:30', @@ -185,6 +175,7 @@ export const data = [ jobId: 123, messageId: '4aaecff2-a513-4bbf-9824-c471f4ac9777', sourceId: '1YhwKyDcKstudlGxkeN5p2wgsrp', + userId: 'u1', }, }, { @@ -192,39 +183,20 @@ export const data = [ anonymousId: 'anon-id-new', channel: 'mobile', context: { - app: { - build: '4', - name: 'RuddCDN', - }, - page: { - referrer: 'google.com', - }, - device: { - id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', - name: 'generic_x86_arm', - }, - library: { - name: 'com.rudderstack.android.sdk.core', - version: '1.0.6', - }, - os: { - name: 'Android', - version: '9', - }, + app: { build: '4', name: 'RuddCDN' }, + page: { referrer: 'google.com' }, + device: { id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', name: 'generic_x86_arm' }, + library: { name: 'com.rudderstack.android.sdk.core', version: '1.0.6' }, + os: { name: 'Android', version: '9' }, timezone: 'Asia/Kolkata', - traits: { - customProp: 'customValue', - }, + traits: { customProp: 'customValue' }, userAgent: 'Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)', }, event: 'Visited Home', messageId: '1601322811899-d9c7dd00-50dc-4364-95c8-e89423eb3cfb', originalTimestamp: '2020-09-28T19:53:31.900Z', - properties: { - title: 'Home | RudderStack', - url: 'http://www.rudderstack.com', - }, + properties: { title: 'Home | RudderStack', url: 'http://www.rudderstack.com' }, receivedAt: '2020-09-29T14:50:43.005+05:30', sentAt: '2020-09-28T19:53:44.998Z', timestamp: '2020-09-29T14:50:29.907+05:30', @@ -304,6 +276,7 @@ export const data = [ jobId: 129, messageId: '8b8d5937-09bc-49dc-a35e-8cd6370575f8', sourceId: '1YhwKyDcKstudlGxkeN5p2wgsrp', + userId: 'u1', }, }, ], @@ -385,11 +358,7 @@ export const data = [ rootStore: null, isProcessorEnabled: true, }, - metadata: [ - { - jobId: 1, - }, - ], + metadata: [{ jobId: 1, userId: 'u1' }], statTags: { destType: 'LEMNISK', feature: 'router', @@ -408,9 +377,7 @@ export const data = [ type: 'REST', method: 'POST', endpoint: 'http://10.11.36.17:8080/analyze/analyze.php', - headers: { - 'Content-Type': 'application/json', - }, + headers: { 'Content-Type': 'application/json' }, params: {}, body: { JSON: { @@ -512,6 +479,7 @@ export const data = [ jobId: 123, messageId: '4aaecff2-a513-4bbf-9824-c471f4ac9777', sourceId: '1YhwKyDcKstudlGxkeN5p2wgsrp', + userId: 'u1', }, ], batched: false, @@ -523,45 +491,27 @@ export const data = [ type: 'REST', method: 'POST', endpoint: 'http://10.11.36.17:8080/analyze/analyze.php', - headers: { - 'Content-Type': 'application/json', - }, + headers: { 'Content-Type': 'application/json' }, params: {}, body: { JSON: { type: 'track', context: { - app: { - build: '4', - name: 'RuddCDN', - }, - page: { - referrer: 'google.com', - }, + app: { build: '4', name: 'RuddCDN' }, + page: { referrer: 'google.com' }, device: { id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', name: 'generic_x86_arm', }, - library: { - name: 'com.rudderstack.android.sdk.core', - version: '1.0.6', - }, - os: { - name: 'Android', - version: '9', - }, + library: { name: 'com.rudderstack.android.sdk.core', version: '1.0.6' }, + os: { name: 'Android', version: '9' }, timezone: 'Asia/Kolkata', - traits: { - customProp: 'customValue', - }, + traits: { customProp: 'customValue' }, userAgent: { ua: 'Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)', }, }, - properties: { - title: 'Home | RudderStack', - url: 'http://www.rudderstack.com', - }, + properties: { title: 'Home | RudderStack', url: 'http://www.rudderstack.com' }, event: 'Visited Home', id: 'anon-id-new', userId: 'anon-id-new', @@ -651,6 +601,7 @@ export const data = [ jobId: 129, messageId: '8b8d5937-09bc-49dc-a35e-8cd6370575f8', sourceId: '1YhwKyDcKstudlGxkeN5p2wgsrp', + userId: 'u1', }, ], batched: false, diff --git a/test/integrations/destinations/lytics/router/data.ts b/test/integrations/destinations/lytics/router/data.ts index 98aded20bf..e5d9adae5c 100644 --- a/test/integrations/destinations/lytics/router/data.ts +++ b/test/integrations/destinations/lytics/router/data.ts @@ -20,15 +20,9 @@ export const data = [ namespace: 'com.rudderlabs.javascript', version: '1.1.6', }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.1.6', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.6' }, locale: 'en-GB', - os: { - name: '', - version: '', - }, + os: { name: '', version: '' }, page: { path: '/testing/script-test.html', referrer: '', @@ -36,13 +30,9 @@ export const data = [ title: '', url: 'http://localhost:3243/testing/script-test.html', }, - screen: { - density: 2, - }, + screen: { density: 2 }, traits: { - company: { - id: 'abc123', - }, + company: { id: 'abc123' }, createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', email: 'rudderTest@gmail.com', name: 'Rudder Test', @@ -52,9 +42,7 @@ export const data = [ 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36', }, event: 'Order Completed', - integrations: { - All: true, - }, + integrations: { All: true }, messageId: 'a0adfab9-baf7-4e09-a2ce-bbe2844c324a', timestamp: '2020-10-16T08:10:12.782Z', properties: { @@ -123,14 +111,9 @@ export const data = [ type: 'track', userId: 'rudder123', }, - metadata: { - jobId: 1, - }, + metadata: { jobId: 1, userId: 'u1' }, destination: { - Config: { - apiKey: 'dummyApiKey', - stream: 'default', - }, + Config: { apiKey: 'dummyApiKey', stream: 'default' }, Enabled: true, Transformations: [], IsProcessorEnabled: true, @@ -147,15 +130,9 @@ export const data = [ namespace: 'com.rudderlabs.javascript', version: '1.1.6', }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.1.6', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.6' }, locale: 'en-GB', - os: { - name: '', - version: '', - }, + os: { name: '', version: '' }, page: { path: '/testing/script-test.html', referrer: '', @@ -163,13 +140,9 @@ export const data = [ title: '', url: 'http://localhost:3243/testing/script-test.html', }, - screen: { - density: 2, - }, + screen: { density: 2 }, traits: { - company: { - id: 'abc123', - }, + company: { id: 'abc123' }, createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', email: 'rudderTest@gmail.com', name: 'Rudder Test', @@ -178,9 +151,7 @@ export const data = [ userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36', }, - integrations: { - All: true, - }, + integrations: { All: true }, messageId: 'e108eb05-f6cd-4624-ba8c-568f2e2b3f92', originalTimestamp: '2020-10-16T08:26:14.938Z', receivedAt: '2020-10-16T13:56:14.945+05:30', @@ -190,14 +161,9 @@ export const data = [ type: 'identify', userId: 'rudder123', }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, destination: { - Config: { - apiKey: 'dummyApiKey', - stream: 'default', - }, + Config: { apiKey: 'dummyApiKey', stream: 'default' }, Enabled: true, Transformations: [], IsProcessorEnabled: true, @@ -220,9 +186,7 @@ export const data = [ type: 'REST', method: 'POST', endpoint: 'https://api.lytics.io/collect/json/default?access_token=dummyApiKey', - headers: { - 'Content-Type': 'application/json', - }, + headers: { 'Content-Type': 'application/json' }, params: {}, body: { JSON: { @@ -284,18 +248,11 @@ export const data = [ }, files: {}, }, - metadata: [ - { - jobId: 1, - }, - ], + metadata: [{ jobId: 1, userId: 'u1' }], batched: false, statusCode: 200, destination: { - Config: { - apiKey: 'dummyApiKey', - stream: 'default', - }, + Config: { apiKey: 'dummyApiKey', stream: 'default' }, Enabled: true, Transformations: [], IsProcessorEnabled: true, @@ -307,9 +264,7 @@ export const data = [ type: 'REST', method: 'POST', endpoint: 'https://api.lytics.io/collect/json/default?access_token=dummyApiKey', - headers: { - 'Content-Type': 'application/json', - }, + headers: { 'Content-Type': 'application/json' }, params: {}, body: { JSON: { @@ -326,18 +281,11 @@ export const data = [ }, files: {}, }, - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], batched: false, statusCode: 200, destination: { - Config: { - apiKey: 'dummyApiKey', - stream: 'default', - }, + Config: { apiKey: 'dummyApiKey', stream: 'default' }, Enabled: true, Transformations: [], IsProcessorEnabled: true, diff --git a/test/integrations/destinations/mailchimp/router/data.ts b/test/integrations/destinations/mailchimp/router/data.ts index f6a9627719..93635e5369 100644 --- a/test/integrations/destinations/mailchimp/router/data.ts +++ b/test/integrations/destinations/mailchimp/router/data.ts @@ -27,9 +27,7 @@ export const data = [ Enabled: true, Transformations: [], }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, message: { anonymousId: 'userId12345', channel: 'web', @@ -41,18 +39,10 @@ export const data = [ version: '1.0.0', }, ip: '0.0.0.0', - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, locale: 'en-US', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, traits: { anonymousId: 'userId12345', email: 'bob.dole@initech.com', @@ -62,9 +52,7 @@ export const data = [ userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36', }, - integrations: { - All: true, - }, + integrations: { All: true }, messageId: '21e475b2-3694-477b-afb6-5b94a81aac21', originalTimestamp: '2019-11-15T10:22:32Z', receivedAt: '2019-11-15T15:52:37+05:30', @@ -94,9 +82,7 @@ export const data = [ Enabled: true, Transformations: [], }, - metadata: { - jobId: 3, - }, + metadata: { jobId: 3, userId: 'u1' }, message: { anonymousId: 'userId12345', channel: 'web', @@ -108,30 +94,15 @@ export const data = [ version: '1.0.0', }, ip: '0.0.0.0', - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, locale: 'en-US', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, - traits: { - anonymousId: 'userId12345', - email: 'bob.dole@initech.com', - }, + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: { anonymousId: 'userId12345', email: 'bob.dole@initech.com' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36', }, - integrations: { - MailChimp: { - subscriptionStatus: 'subscribed', - }, - }, + integrations: { MailChimp: { subscriptionStatus: 'subscribed' } }, messageId: '6d1f3ca8-e2d0-4d34-9926-44596171af0c', originalTimestamp: '2019-11-15T10:26:53Z', receivedAt: '2019-11-15T15:56:58+05:30', @@ -161,9 +132,7 @@ export const data = [ Enabled: true, Transformations: [], }, - metadata: { - jobId: 4, - }, + metadata: { jobId: 4, userId: 'u1' }, message: { anonymousId: 'userId12345', channel: 'web', @@ -175,30 +144,15 @@ export const data = [ version: '1.0.0', }, ip: '0.0.0.0', - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, locale: 'en-US', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, - traits: { - anonymousId: 'userId12345', - email: 'bob.dole@initech.com', - }, + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: { anonymousId: 'userId12345', email: 'bob.dole@initech.com' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36', }, - integrations: { - MailChimp: { - subscriptionStatus: 'subscrib', - }, - }, + integrations: { MailChimp: { subscriptionStatus: 'subscrib' } }, messageId: '6d1f3ca8-e2d0-4d34-9926-44596171af0c', originalTimestamp: '2019-11-15T10:26:53Z', receivedAt: '2019-11-15T15:56:58+05:30', @@ -228,22 +182,12 @@ export const data = [ Enabled: true, Transformations: [], }, - metadata: { - jobId: 5, - }, + metadata: { jobId: 5, userId: 'u1' }, message: { anonymousId: 'userId12345', channel: 'web', - context: { - traits: { - anonymousId: 'userId12345', - email: 'bob.dole@initech.com', - }, - }, - properties: { - brand: 'Aster', - product: 'Garments', - }, + context: { traits: { anonymousId: 'userId12345', email: 'bob.dole@initech.com' } }, + properties: { brand: 'Aster', product: 'Garments' }, messageId: '6d1f3ca8-e2d0-4d34-9926-44596171af0c', originalTimestamp: '2019-11-15T10:26:53Z', receivedAt: '2019-11-15T15:56:58+05:30', @@ -273,23 +217,12 @@ export const data = [ Enabled: true, Transformations: [], }, - metadata: { - jobId: 6, - }, + metadata: { jobId: 6, userId: 'u1' }, message: { anonymousId: 'userId12345', channel: 'web', - context: { - traits: { - anonymousId: 'userId12345', - email: 'bob.dole@initech.com', - }, - }, - properties: { - brand: 'Aster', - product: 'Garments', - is_syncing: false, - }, + context: { traits: { anonymousId: 'userId12345', email: 'bob.dole@initech.com' } }, + properties: { brand: 'Aster', product: 'Garments', is_syncing: false }, messageId: '6d1f3ca8-e2d0-4d34-9926-44596171af0c', originalTimestamp: '2019-11-15T10:26:53Z', receivedAt: '2019-11-15T15:56:58+05:30', @@ -318,31 +251,18 @@ export const data = [ Enabled: true, Transformations: [], }, - metadata: { - jobId: 7, - }, + metadata: { jobId: 7, userId: 'u1' }, message: { anonymousId: 'userId12345', channel: 'web', - context: { - traits: { - anonymousId: 'userId12345', - email: 'bob.dole@initech.com', - }, - }, + context: { traits: { anonymousId: 'userId12345', email: 'bob.dole@initech.com' } }, properties: { brand: 'Aster', product: 'Garments', isSyncing: false, products: [ - { - product_id: '123', - price: '14', - }, - { - product_id: '123', - price: 14, - }, + { product_id: '123', price: '14' }, + { product_id: '123', price: 14 }, ], purchased: false, }, @@ -384,18 +304,12 @@ export const data = [ members: [ { email_address: 'bob.dole@initech.com', - merge_fields: { - FNAME: 'Bob', - LNAME: 'Dole', - ANONYMOUSI: 'userId12345', - }, + merge_fields: { FNAME: 'Bob', LNAME: 'Dole', ANONYMOUSI: 'userId12345' }, status: 'subscribed', }, { email_address: 'bob.dole@initech.com', - merge_fields: { - ANONYMOUSI: 'userId12345', - }, + merge_fields: { ANONYMOUSI: 'userId12345' }, status: 'subscribed', }, ], @@ -408,12 +322,8 @@ export const data = [ files: {}, }, metadata: [ - { - jobId: 2, - }, - { - jobId: 3, - }, + { jobId: 2, userId: 'u1' }, + { jobId: 3, userId: 'u1' }, ], batched: true, statusCode: 200, @@ -451,10 +361,7 @@ export const data = [ JSON: { name: 'local_testing', occurred_at: '2019-11-15T10:26:53+00:00', - properties: { - brand: 'Aster', - product: 'Garments', - }, + properties: { brand: 'Aster', product: 'Garments' }, }, XML: {}, JSON_ARRAY: {}, @@ -463,11 +370,7 @@ export const data = [ files: {}, audienceId: 'aud111', }, - metadata: [ - { - jobId: 5, - }, - ], + metadata: [{ jobId: 5, userId: 'u1' }], batched: false, statusCode: 200, destination: { @@ -520,11 +423,7 @@ export const data = [ files: {}, audienceId: 'aud111', }, - metadata: [ - { - jobId: 7, - }, - ], + metadata: [{ jobId: 7, userId: 'u1' }], batched: false, statusCode: 200, destination: { @@ -563,11 +462,7 @@ export const data = [ Enabled: true, Transformations: [], }, - metadata: [ - { - jobId: 6, - }, - ], + metadata: [{ jobId: 6, userId: 'u1' }], batched: false, statusCode: 400, error: 'Missing required value from "event"', @@ -598,11 +493,7 @@ export const data = [ Enabled: true, Transformations: [], }, - metadata: [ - { - jobId: 4, - }, - ], + metadata: [{ jobId: 4, userId: 'u1' }], batched: false, statusCode: 400, error: @@ -648,9 +539,7 @@ export const data = [ Enabled: true, Transformations: [], }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, message: { anonymousId: 'userId12345', channel: 'web', @@ -670,30 +559,15 @@ export const data = [ version: '1.0.0', }, ip: '0.0.0.0', - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, locale: 'en-US', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36', }, - integrations: { - All: true, - }, - traits: { - merge_fields: { - FIRSTNAME: 'Bob', - }, - status: 'subscribed', - }, + integrations: { All: true }, + traits: { merge_fields: { FIRSTNAME: 'Bob' }, status: 'subscribed' }, messageId: '21e475b2-3694-477b-afb6-5b94a81aac21', originalTimestamp: '2019-11-15T10:22:32Z', receivedAt: '2019-11-15T15:52:37+05:30', @@ -722,14 +596,10 @@ export const data = [ Enabled: true, Transformations: [], }, - metadata: { - jobId: 3, - }, + metadata: { jobId: 3, userId: 'u1' }, message: { type: 'identify', - traits: { - status: 'subscribed', - }, + traits: { status: 'subscribed' }, userId: 'emrichardson820+22822@gmail.com', channel: 'sources', context: { @@ -772,14 +642,10 @@ export const data = [ Enabled: true, Transformations: [], }, - metadata: { - jobId: 4, - }, + metadata: { jobId: 4, userId: 'u1' }, message: { type: 'identify', - traits: { - status: 'subscribed', - }, + traits: { status: 'subscribed' }, userId: 'emrichardson820+22822@gmail.com', channel: 'sources', context: { @@ -822,14 +688,10 @@ export const data = [ Enabled: true, Transformations: [], }, - metadata: { - jobId: 5, - }, + metadata: { jobId: 5, userId: 'u1' }, message: { type: 'identify', - traits: { - status: 'subscrib', - }, + traits: { status: 'subscrib' }, userId: 'emrichardson820+22822@gmail.com', channel: 'sources', context: { @@ -881,20 +743,12 @@ export const data = [ JSON: { members: [ { - merge_fields: { - FIRSTNAME: 'Bob', - }, + merge_fields: { FIRSTNAME: 'Bob' }, status: 'subscribed', email_address: 'bob.dole@initech.com', }, - { - status: 'subscribed', - email_address: 'emrichardson820+22822@gmail.com', - }, - { - status: 'subscribed', - email_address: 'emrichardson820+22822@gmail.com', - }, + { status: 'subscribed', email_address: 'emrichardson820+22822@gmail.com' }, + { status: 'subscribed', email_address: 'emrichardson820+22822@gmail.com' }, ], update_existing: true, }, @@ -905,15 +759,9 @@ export const data = [ files: {}, }, metadata: [ - { - jobId: 2, - }, - { - jobId: 3, - }, - { - jobId: 4, - }, + { jobId: 2, userId: 'u1' }, + { jobId: 3, userId: 'u1' }, + { jobId: 4, userId: 'u1' }, ], batched: true, statusCode: 200, @@ -951,11 +799,7 @@ export const data = [ Enabled: true, Transformations: [], }, - metadata: [ - { - jobId: 5, - }, - ], + metadata: [{ jobId: 5, userId: 'u1' }], batched: false, statusCode: 400, error: diff --git a/test/integrations/destinations/mailjet/router/data.ts b/test/integrations/destinations/mailjet/router/data.ts index c0410ab921..689e73ef2a 100644 --- a/test/integrations/destinations/mailjet/router/data.ts +++ b/test/integrations/destinations/mailjet/router/data.ts @@ -18,9 +18,7 @@ export const data = [ contactPropertiesMapping: [{ from: 'userCountry', to: 'country' }], }, }, - metadata: { - jobId: 1, - }, + metadata: { jobId: 1, userId: 'u1' }, message: { userId: 'user@45', type: 'identify', @@ -65,23 +63,14 @@ export const data = [ FORM: {}, JSON: { Action: 'addnoforce', - Contacts: [ - { - email: 'test@user.com', - properties: { country: 'india' }, - }, - ], + Contacts: [{ email: 'test@user.com', properties: { country: 'india' } }], }, JSON_ARRAY: {}, XML: {}, }, files: {}, }, - metadata: [ - { - jobId: 1, - }, - ], + metadata: [{ jobId: 1, userId: 'u1' }], batched: true, statusCode: 200, destination: { @@ -89,12 +78,7 @@ export const data = [ apiKey: 'dummyApiKey', apiSecret: 'dummyApiSecret', listId: '58578', - contactPropertiesMapping: [ - { - from: 'userCountry', - to: 'country', - }, - ], + contactPropertiesMapping: [{ from: 'userCountry', to: 'country' }], }, }, }, @@ -124,6 +108,7 @@ export const data = [ }, metadata: { jobId: 1, + userId: 'u1', }, message: { userId: 'user@45', @@ -184,6 +169,7 @@ export const data = [ metadata: [ { jobId: 1, + userId: 'u1', }, ], batched: true, @@ -228,6 +214,7 @@ export const data = [ }, metadata: { jobId: 1, + userId: 'u1', }, message: { userId: 'user@45', @@ -258,6 +245,7 @@ export const data = [ }, metadata: { jobId: 2, + userId: 'u1', }, message: { userId: 'user@46', @@ -300,6 +288,7 @@ export const data = [ }, metadata: { jobId: 3, + userId: 'u1', }, message: { userId: 'user@47', @@ -342,6 +331,7 @@ export const data = [ }, metadata: { jobId: 4, + userId: 'u1', }, message: { userId: 'user@48', @@ -384,6 +374,7 @@ export const data = [ }, metadata: { jobId: 5, + userId: 'u1', }, message: { userId: 'user@49', @@ -426,6 +417,7 @@ export const data = [ }, metadata: { jobId: 6, + userId: 'u1', }, message: { userId: 'user@49', @@ -462,6 +454,7 @@ export const data = [ }, metadata: { jobId: 7, + userId: 'u1', }, message: { userId: 'user@50', @@ -527,7 +520,10 @@ export const data = [ }, files: {}, }, - metadata: [{ jobId: 1 }, { jobId: 7 }], + metadata: [ + { jobId: 1, userId: 'u1' }, + { jobId: 7, userId: 'u1' }, + ], batched: true, statusCode: 200, destination: { @@ -573,7 +569,7 @@ export const data = [ }, files: {}, }, - metadata: [{ jobId: 2 }], + metadata: [{ jobId: 2, userId: 'u1' }], batched: true, statusCode: 200, destination: { @@ -619,7 +615,7 @@ export const data = [ }, files: {}, }, - metadata: [{ jobId: 3 }], + metadata: [{ jobId: 3, userId: 'u1' }], batched: true, statusCode: 200, destination: { @@ -665,7 +661,7 @@ export const data = [ }, files: {}, }, - metadata: [{ jobId: 4 }], + metadata: [{ jobId: 4, userId: 'u1' }], batched: true, statusCode: 200, destination: { @@ -711,7 +707,7 @@ export const data = [ }, files: {}, }, - metadata: [{ jobId: 5 }], + metadata: [{ jobId: 5, userId: 'u1' }], batched: true, statusCode: 200, destination: { @@ -757,7 +753,7 @@ export const data = [ }, files: {}, }, - metadata: [{ jobId: 6 }], + metadata: [{ jobId: 6, userId: 'u1' }], batched: true, statusCode: 200, destination: { diff --git a/test/integrations/destinations/mailmodo/router/data.ts b/test/integrations/destinations/mailmodo/router/data.ts index c341259bbe..3b492b0a82 100644 --- a/test/integrations/destinations/mailmodo/router/data.ts +++ b/test/integrations/destinations/mailmodo/router/data.ts @@ -14,15 +14,8 @@ export const data = [ type: 'identify', event: 'Email Opened', sentAt: '2020-08-28T16:26:16.473Z', - context: { - library: { - name: 'analytics-node', - version: '0.0.3', - }, - }, - _metadata: { - nodeVersion: '10.22.0', - }, + context: { library: { name: 'analytics-node', version: '0.0.3' } }, + _metadata: { nodeVersion: '10.22.0' }, messageId: 'node-570110489d3e99b234b18af9a9eca9d4-6009779e-82d7-469d-aaeb-5ccf162b0453', properties: { @@ -34,31 +27,16 @@ export const data = [ anonymousId: 'abcdeeeeeeeexxxx102', originalTimestamp: '2020-08-28T16:26:06.468Z', }, - metadata: { - jobId: 2, - }, - destination: { - Config: { - apiKey: 'dummyApiKey', - listName: 'abc', - }, - Enabled: true, - }, + metadata: { jobId: 2, userId: 'u1' }, + destination: { Config: { apiKey: 'dummyApiKey', listName: 'abc' }, Enabled: true }, }, { message: { type: 'track', event: 'Email Opened', sentAt: '2020-08-28T16:26:16.473Z', - context: { - library: { - name: 'analytics-node', - version: '0.0.3', - }, - }, - _metadata: { - nodeVersion: '10.22.0', - }, + context: { library: { name: 'analytics-node', version: '0.0.3' } }, + _metadata: { nodeVersion: '10.22.0' }, messageId: 'node-570110489d3e99b234b18af9a9eca9d4-6009779e-82d7-469d-aaeb-5ccf162b0453', properties: { @@ -70,16 +48,8 @@ export const data = [ anonymousId: 'abcdeeeeeeeexxxx102', originalTimestamp: '2020-08-28T16:26:06.468Z', }, - metadata: { - jobId: 3, - }, - destination: { - Config: { - apiKey: 'dummyApiKey', - listName: 'abc', - }, - Enabled: true, - }, + metadata: { jobId: 3, userId: 'u1' }, + destination: { Config: { apiKey: 'dummyApiKey', listName: 'abc' }, Enabled: true }, }, { message: { @@ -87,13 +57,9 @@ export const data = [ userId: 'identified user id', anonymousId: 'anon-id-new', context: { - traits: { - trait1: 'new-val', - }, + traits: { trait1: 'new-val' }, ip: '14.5.67.21', - library: { - name: 'http', - }, + library: { name: 'http' }, }, traits: { email: 'test@abc.com', @@ -105,31 +71,16 @@ export const data = [ }, timestamp: '2020-02-02T00:23:09.544Z', }, - metadata: { - jobId: 4, - }, - destination: { - Config: { - apiKey: 'dummyApiKey', - listName: 'abc', - }, - Enabled: true, - }, + metadata: { jobId: 4, userId: 'u1' }, + destination: { Config: { apiKey: 'dummyApiKey', listName: 'abc' }, Enabled: true }, }, { message: { type: 'identify', event: 'Email Opened', sentAt: '2020-08-28T16:26:16.473Z', - context: { - library: { - name: 'analytics-node', - version: '0.0.3', - }, - }, - _metadata: { - nodeVersion: '10.22.0', - }, + context: { library: { name: 'analytics-node', version: '0.0.3' } }, + _metadata: { nodeVersion: '10.22.0' }, messageId: 'node-570110489d3e99b234b18af9a9eca9d4-6009779e-82d7-469d-aaeb-5ccf162b0453', properties: { @@ -140,16 +91,8 @@ export const data = [ anonymousId: 'abcdeeeeeeeexxxx102', originalTimestamp: '2020-08-28T16:26:06.468Z', }, - metadata: { - jobId: 5, - }, - destination: { - Config: { - apiKey: 'dummyApiKey', - listName: '', - }, - Enabled: true, - }, + metadata: { jobId: 5, userId: 'u1' }, + destination: { Config: { apiKey: 'dummyApiKey', listName: '' }, Enabled: true }, }, ], destType: 'mailmodo', @@ -171,9 +114,7 @@ export const data = [ JSON: { listName: 'abc', values: [ - { - email: 'test@abc.com', - }, + { email: 'test@abc.com' }, { email: 'test@abc.com', data: { @@ -192,30 +133,17 @@ export const data = [ files: {}, method: 'POST', params: {}, - headers: { - mmApiKey: 'dummyApiKey', - 'Content-Type': 'application/json', - }, + headers: { mmApiKey: 'dummyApiKey', 'Content-Type': 'application/json' }, version: '1', endpoint: 'https://api.mailmodo.com/api/v1/addToList/batch', }, metadata: [ - { - jobId: 2, - }, - { - jobId: 4, - }, + { jobId: 2, userId: 'u1' }, + { jobId: 4, userId: 'u1' }, ], batched: true, statusCode: 200, - destination: { - Config: { - apiKey: 'dummyApiKey', - listName: 'abc', - }, - Enabled: true, - }, + destination: { Config: { apiKey: 'dummyApiKey', listName: 'abc' }, Enabled: true }, }, { batchedRequest: { @@ -238,37 +166,20 @@ export const data = [ files: {}, method: 'POST', params: {}, - headers: { - mmApiKey: 'dummyApiKey', - 'Content-Type': 'application/json', - }, + headers: { mmApiKey: 'dummyApiKey', 'Content-Type': 'application/json' }, version: '1', endpoint: 'https://api.mailmodo.com/api/v1/addEvent', }, - metadata: [ - { - jobId: 3, - }, - ], + metadata: [{ jobId: 3, userId: 'u1' }], batched: false, statusCode: 200, - destination: { - Config: { - apiKey: 'dummyApiKey', - listName: 'abc', - }, - Enabled: true, - }, + destination: { Config: { apiKey: 'dummyApiKey', listName: 'abc' }, Enabled: true }, }, { batched: false, error: 'Missing required value from ["traits.email","context.traits.email","properties.email"]', - metadata: [ - { - jobId: 5, - }, - ], + metadata: [{ jobId: 5, userId: 'u1' }], statTags: { destType: 'MAILMODO', errorCategory: 'dataValidation', @@ -278,13 +189,7 @@ export const data = [ module: 'destination', }, statusCode: 400, - destination: { - Config: { - apiKey: 'dummyApiKey', - listName: '', - }, - Enabled: true, - }, + destination: { Config: { apiKey: 'dummyApiKey', listName: '' }, Enabled: true }, }, ], }, diff --git a/test/integrations/destinations/marketo/router/data.ts b/test/integrations/destinations/marketo/router/data.ts index 0fa79b77df..d187792ea8 100644 --- a/test/integrations/destinations/marketo/router/data.ts +++ b/test/integrations/destinations/marketo/router/data.ts @@ -27,66 +27,33 @@ export const data = [ name: 'generic_x86', type: 'android', }, - library: { - name: 'com.rudderstack.android.sdk.core', - version: '1.0.1-beta.1', - }, + library: { name: 'com.rudderstack.android.sdk.core', version: '1.0.1-beta.1' }, locale: 'en-US', - network: { - carrier: 'Android', - bluetooth: false, - cellular: true, - wifi: true, - }, - os: { - name: 'Android', - version: '8.1.0', - }, - screen: { - density: 420, - height: 1794, - width: 1080, - }, + network: { carrier: 'Android', bluetooth: false, cellular: true, wifi: true }, + os: { name: 'Android', version: '8.1.0' }, + screen: { density: 420, height: 1794, width: 1080 }, timezone: 'Asia/Kolkata', - traits: { - anonymousId: 'anon_id_success', - }, + traits: { anonymousId: 'anon_id_success' }, userAgent: 'Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)', }, event: 'Product Clicked', - integrations: { - All: true, - }, + integrations: { All: true }, messageId: 'id1', - properties: { - name: 'Test Product', - }, + properties: { name: 'Test Product' }, originalTimestamp: '2020-12-17T21:00:59.176Z', type: 'track', sentAt: '2020-03-12T09:05:03.421Z', }, - metadata: { - jobId: 1, - }, + metadata: { jobId: 1, userId: 'u1' }, destination: { Config: { accountId: 'marketo_acct_id_success', clientId: 'marketo_client_id_success', clientSecret: 'marketo_client_secret_success', trackAnonymousEvents: true, - customActivityPropertyMap: [ - { - from: 'name', - to: 'productName', - }, - ], - leadTraitMapping: [ - { - from: 'leadScore', - to: 'customLeadScore', - }, - ], + customActivityPropertyMap: [{ from: 'name', to: 'productName' }], + leadTraitMapping: [{ from: 'leadScore', to: 'customLeadScore' }], rudderEventsMapping: [ { event: 'Product Clicked', @@ -134,56 +101,20 @@ export const data = [ responseType: 'JSON', rules: { retryable: [ - { - success: 'false', - 'errors.0.code': 600, - }, - { - success: 'false', - 'errors.0.code': 601, - }, - { - success: 'false', - 'errors.0.code': 602, - }, - { - success: 'false', - 'errors.0.code': 604, - }, - { - success: 'false', - 'errors.0.code': 606, - }, - { - success: 'false', - 'errors.0.code': 607, - }, - { - success: 'false', - 'errors.0.code': 608, - }, - { - success: 'false', - 'errors.0.code': 611, - }, + { success: 'false', 'errors.0.code': 600 }, + { success: 'false', 'errors.0.code': 601 }, + { success: 'false', 'errors.0.code': 602 }, + { success: 'false', 'errors.0.code': 604 }, + { success: 'false', 'errors.0.code': 606 }, + { success: 'false', 'errors.0.code': 607 }, + { success: 'false', 'errors.0.code': 608 }, + { success: 'false', 'errors.0.code': 611 }, ], abortable: [ - { - success: 'false', - 'errors.0.code': 603, - }, - { - success: 'false', - 'errors.0.code': 605, - }, - { - success: 'false', - 'errors.0.code': 609, - }, - { - success: 'false', - 'errors.0.code': 610, - }, + { success: 'false', 'errors.0.code': 603 }, + { success: 'false', 'errors.0.code': 605 }, + { success: 'false', 'errors.0.code': 609 }, + { success: 'false', 'errors.0.code': 610 }, ], }, }, @@ -216,67 +147,33 @@ export const data = [ name: 'generic_x86', type: 'android', }, - library: { - name: 'com.rudderstack.android.sdk.core', - version: '1.0.1-beta.1', - }, + library: { name: 'com.rudderstack.android.sdk.core', version: '1.0.1-beta.1' }, locale: 'en-US', - network: { - carrier: 'Android', - bluetooth: false, - cellular: true, - wifi: true, - }, - os: { - name: 'Android', - version: '8.1.0', - }, - screen: { - density: 420, - height: 1794, - width: 1080, - }, + network: { carrier: 'Android', bluetooth: false, cellular: true, wifi: true }, + os: { name: 'Android', version: '8.1.0' }, + screen: { density: 420, height: 1794, width: 1080 }, timezone: 'Asia/Kolkata', - traits: { - anonymousId: 'anon_id_success', - }, + traits: { anonymousId: 'anon_id_success' }, userAgent: 'Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)', }, event: 'Product Clicked', - integrations: { - All: true, - }, + integrations: { All: true }, messageId: 'id1', - properties: { - name: 'Test Product', - product_id: 'prod_1', - }, + properties: { name: 'Test Product', product_id: 'prod_1' }, originalTimestamp: '2020-12-17T21:00:59.176Z', type: 'track', sentAt: '2020-12-17T21:00:59.176Z', }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, destination: { Config: { accountId: 'marketo_acct_id_success', clientId: 'marketo_client_id_success', clientSecret: 'marketo_client_secret_success', trackAnonymousEvents: true, - customActivityPropertyMap: [ - { - from: 'name', - to: 'productName', - }, - ], - leadTraitMapping: [ - { - from: 'leadScore', - to: 'customLeadScore', - }, - ], + customActivityPropertyMap: [{ from: 'name', to: 'productName' }], + leadTraitMapping: [{ from: 'leadScore', to: 'customLeadScore' }], rudderEventsMapping: [ { event: 'Product Clicked', @@ -324,56 +221,20 @@ export const data = [ responseType: 'JSON', rules: { retryable: [ - { - success: 'false', - 'errors.0.code': 600, - }, - { - success: 'false', - 'errors.0.code': 601, - }, - { - success: 'false', - 'errors.0.code': 602, - }, - { - success: 'false', - 'errors.0.code': 604, - }, - { - success: 'false', - 'errors.0.code': 606, - }, - { - success: 'false', - 'errors.0.code': 607, - }, - { - success: 'false', - 'errors.0.code': 608, - }, - { - success: 'false', - 'errors.0.code': 611, - }, + { success: 'false', 'errors.0.code': 600 }, + { success: 'false', 'errors.0.code': 601 }, + { success: 'false', 'errors.0.code': 602 }, + { success: 'false', 'errors.0.code': 604 }, + { success: 'false', 'errors.0.code': 606 }, + { success: 'false', 'errors.0.code': 607 }, + { success: 'false', 'errors.0.code': 608 }, + { success: 'false', 'errors.0.code': 611 }, ], abortable: [ - { - success: 'false', - 'errors.0.code': 603, - }, - { - success: 'false', - 'errors.0.code': 605, - }, - { - success: 'false', - 'errors.0.code': 609, - }, - { - success: 'false', - 'errors.0.code': 610, - }, + { success: 'false', 'errors.0.code': 603 }, + { success: 'false', 'errors.0.code': 605 }, + { success: 'false', 'errors.0.code': 609 }, + { success: 'false', 'errors.0.code': 610 }, ], }, }, @@ -395,10 +256,7 @@ export const data = [ userId: 'e17c5a5e-5e2f-430b-b497-fe3f1ea3a704', channel: 'web', context: { - os: { - name: '', - version: '', - }, + os: { name: '', version: '' }, app: { name: 'RudderLabs JavaScript SDK', build: '1.0.0', @@ -441,10 +299,7 @@ export const data = [ lastWebinarEventDate: '2022-09-15T20:00:00.000Z', nextWebinarEventDate: '2022-09-16T06:15:00.000Z', }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '2.12.1', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '2.12.1' }, campaign: {}, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36', @@ -455,9 +310,7 @@ export const data = [ receivedAt: '2022-09-19T10:34:02.956Z', request_ip: '11.105.44.120', anonymousId: '0c7b8b80-9c43-4f8e-b2d2-5e2448a25040', - integrations: { - All: true, - }, + integrations: { All: true }, originalTimestamp: '2022-09-19T10:34:02.000Z', }, destination: { @@ -468,38 +321,17 @@ export const data = [ trackAnonymousEvents: false, createIfNotExist: true, rudderEventsMapping: [ - { - event: 'acq_signup_completed', - marketoActivityId: '100026', - }, - { - event: 'act_createwebinarform_submit', - marketoActivityId: '100025', - }, - { - event: 'act_presentation_style', - marketoActivityId: '100025', - }, - { - event: 'act_webinar_view', - marketoActivityId: '100025', - }, - { - event: 'act_webinar_join', - marketoActivityId: '100025', - }, - { - event: 'act_presentation_addteammember', - marketoActivityId: '100025', - }, + { event: 'acq_signup_completed', marketoActivityId: '100026' }, + { event: 'act_createwebinarform_submit', marketoActivityId: '100025' }, + { event: 'act_presentation_style', marketoActivityId: '100025' }, + { event: 'act_webinar_view', marketoActivityId: '100025' }, + { event: 'act_webinar_join', marketoActivityId: '100025' }, + { event: 'act_presentation_addteammember', marketoActivityId: '100025' }, { event: 'act_engagement_discussions_savediscussion', marketoActivityId: '100025', }, - { - event: 'act_engagement_networking_savetime', - marketoActivityId: '100025', - }, + { event: 'act_engagement_networking_savetime', marketoActivityId: '100025' }, ], }, destinationDefinition: { @@ -533,56 +365,20 @@ export const data = [ responseType: 'JSON', rules: { retryable: [ - { - success: 'false', - 'errors.0.code': 600, - }, - { - success: 'false', - 'errors.0.code': 601, - }, - { - success: 'false', - 'errors.0.code': 602, - }, - { - success: 'false', - 'errors.0.code': 604, - }, - { - success: 'false', - 'errors.0.code': 606, - }, - { - success: 'false', - 'errors.0.code': 607, - }, - { - success: 'false', - 'errors.0.code': 608, - }, - { - success: 'false', - 'errors.0.code': 611, - }, + { success: 'false', 'errors.0.code': 600 }, + { success: 'false', 'errors.0.code': 601 }, + { success: 'false', 'errors.0.code': 602 }, + { success: 'false', 'errors.0.code': 604 }, + { success: 'false', 'errors.0.code': 606 }, + { success: 'false', 'errors.0.code': 607 }, + { success: 'false', 'errors.0.code': 608 }, + { success: 'false', 'errors.0.code': 611 }, ], abortable: [ - { - success: 'false', - 'errors.0.code': 603, - }, - { - success: 'false', - 'errors.0.code': 605, - }, - { - success: 'false', - 'errors.0.code': 609, - }, - { - success: 'false', - 'errors.0.code': 610, - }, + { success: 'false', 'errors.0.code': 603 }, + { success: 'false', 'errors.0.code': 605 }, + { success: 'false', 'errors.0.code': 609 }, + { success: 'false', 'errors.0.code': 610 }, ], }, }, @@ -604,9 +400,7 @@ export const data = [ isConnectionEnabled: true, isProcessorEnabled: true, }, - metadata: { - jobId: 3, - }, + metadata: { jobId: 3, userId: 'u1' }, }, { message: { @@ -615,10 +409,7 @@ export const data = [ userId: 'e17c5a5e-5e2f-430b-b497-fe3f1ea3a704', channel: 'web', context: { - os: { - name: '', - version: '', - }, + os: { name: '', version: '' }, app: { name: 'RudderLabs JavaScript SDK', build: '1.0.0', @@ -661,10 +452,7 @@ export const data = [ lastWebinarEventDate: '2022-09-15T20:00:00.000Z', nextWebinarEventDate: '2022-09-16T06:15:00.000Z', }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '2.12.1', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '2.12.1' }, campaign: {}, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36', @@ -675,9 +463,7 @@ export const data = [ receivedAt: '2022-09-19T10:34:02.956Z', request_ip: '11.105.44.120', anonymousId: '0c7b8b80-9c43-4f8e-b2d2-5e2448a25040', - integrations: { - All: true, - }, + integrations: { All: true }, originalTimestamp: '2022-09-19T10:34:02.000Z', }, destination: { @@ -688,38 +474,17 @@ export const data = [ trackAnonymousEvents: false, createIfNotExist: true, rudderEventsMapping: [ - { - event: 'acq_signup_completed', - marketoActivityId: '100026', - }, - { - event: 'act_createwebinarform_submit', - marketoActivityId: '100025', - }, - { - event: 'act_presentation_style', - marketoActivityId: '100025', - }, - { - event: 'act_webinar_view', - marketoActivityId: '100025', - }, - { - event: 'act_webinar_join', - marketoActivityId: '100025', - }, - { - event: 'act_presentation_addteammember', - marketoActivityId: '100025', - }, + { event: 'acq_signup_completed', marketoActivityId: '100026' }, + { event: 'act_createwebinarform_submit', marketoActivityId: '100025' }, + { event: 'act_presentation_style', marketoActivityId: '100025' }, + { event: 'act_webinar_view', marketoActivityId: '100025' }, + { event: 'act_webinar_join', marketoActivityId: '100025' }, + { event: 'act_presentation_addteammember', marketoActivityId: '100025' }, { event: 'act_engagement_discussions_savediscussion', marketoActivityId: '100025', }, - { - event: 'act_engagement_networking_savetime', - marketoActivityId: '100025', - }, + { event: 'act_engagement_networking_savetime', marketoActivityId: '100025' }, ], }, destinationDefinition: { @@ -753,56 +518,20 @@ export const data = [ responseType: 'JSON', rules: { retryable: [ - { - success: 'false', - 'errors.0.code': 600, - }, - { - success: 'false', - 'errors.0.code': 601, - }, - { - success: 'false', - 'errors.0.code': 602, - }, - { - success: 'false', - 'errors.0.code': 604, - }, - { - success: 'false', - 'errors.0.code': 606, - }, - { - success: 'false', - 'errors.0.code': 607, - }, - { - success: 'false', - 'errors.0.code': 608, - }, - { - success: 'false', - 'errors.0.code': 611, - }, + { success: 'false', 'errors.0.code': 600 }, + { success: 'false', 'errors.0.code': 601 }, + { success: 'false', 'errors.0.code': 602 }, + { success: 'false', 'errors.0.code': 604 }, + { success: 'false', 'errors.0.code': 606 }, + { success: 'false', 'errors.0.code': 607 }, + { success: 'false', 'errors.0.code': 608 }, + { success: 'false', 'errors.0.code': 611 }, ], abortable: [ - { - success: 'false', - 'errors.0.code': 603, - }, - { - success: 'false', - 'errors.0.code': 605, - }, - { - success: 'false', - 'errors.0.code': 609, - }, - { - success: 'false', - 'errors.0.code': 610, - }, + { success: 'false', 'errors.0.code': 603 }, + { success: 'false', 'errors.0.code': 605 }, + { success: 'false', 'errors.0.code': 609 }, + { success: 'false', 'errors.0.code': 610 }, ], }, }, @@ -824,9 +553,7 @@ export const data = [ isConnectionEnabled: true, isProcessorEnabled: true, }, - metadata: { - jobId: 4, - }, + metadata: { jobId: 4, userId: 'u1' }, }, { message: { @@ -835,10 +562,7 @@ export const data = [ userId: 'e17c5a5e-5e2f-430b-b497-fe3f1ea3a704', channel: 'web', context: { - os: { - name: '', - version: '', - }, + os: { name: '', version: '' }, app: { name: 'RudderLabs JavaScript SDK', build: '1.0.0', @@ -881,10 +605,7 @@ export const data = [ lastWebinarEventDate: '2022-09-15T20:00:00.000Z', nextWebinarEventDate: '2022-09-16T06:15:00.000Z', }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '2.12.1', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '2.12.1' }, campaign: {}, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36', @@ -895,9 +616,7 @@ export const data = [ receivedAt: '2022-09-19T10:34:02.956Z', request_ip: '11.105.44.120', anonymousId: '0c7b8b80-9c43-4f8e-b2d2-5e2448a25040', - integrations: { - All: true, - }, + integrations: { All: true }, originalTimestamp: '2022-09-19T10:34:02.000Z', }, destination: { @@ -908,38 +627,17 @@ export const data = [ trackAnonymousEvents: false, createIfNotExist: true, rudderEventsMapping: [ - { - event: 'acq_signup_completed', - marketoActivityId: '100026', - }, - { - event: 'act_createwebinarform_submit', - marketoActivityId: '100025', - }, - { - event: 'act_presentation_style', - marketoActivityId: '100025', - }, - { - event: 'act_webinar_view', - marketoActivityId: '100025', - }, - { - event: 'act_webinar_join', - marketoActivityId: '100025', - }, - { - event: 'act_presentation_addteammember', - marketoActivityId: '100025', - }, + { event: 'acq_signup_completed', marketoActivityId: '100026' }, + { event: 'act_createwebinarform_submit', marketoActivityId: '100025' }, + { event: 'act_presentation_style', marketoActivityId: '100025' }, + { event: 'act_webinar_view', marketoActivityId: '100025' }, + { event: 'act_webinar_join', marketoActivityId: '100025' }, + { event: 'act_presentation_addteammember', marketoActivityId: '100025' }, { event: 'act_engagement_discussions_savediscussion', marketoActivityId: '100025', }, - { - event: 'act_engagement_networking_savetime', - marketoActivityId: '100025', - }, + { event: 'act_engagement_networking_savetime', marketoActivityId: '100025' }, ], }, destinationDefinition: { @@ -973,56 +671,20 @@ export const data = [ responseType: 'JSON', rules: { retryable: [ - { - success: 'false', - 'errors.0.code': 600, - }, - { - success: 'false', - 'errors.0.code': 601, - }, - { - success: 'false', - 'errors.0.code': 602, - }, - { - success: 'false', - 'errors.0.code': 604, - }, - { - success: 'false', - 'errors.0.code': 606, - }, - { - success: 'false', - 'errors.0.code': 607, - }, - { - success: 'false', - 'errors.0.code': 608, - }, - { - success: 'false', - 'errors.0.code': 611, - }, + { success: 'false', 'errors.0.code': 600 }, + { success: 'false', 'errors.0.code': 601 }, + { success: 'false', 'errors.0.code': 602 }, + { success: 'false', 'errors.0.code': 604 }, + { success: 'false', 'errors.0.code': 606 }, + { success: 'false', 'errors.0.code': 607 }, + { success: 'false', 'errors.0.code': 608 }, + { success: 'false', 'errors.0.code': 611 }, ], abortable: [ - { - success: 'false', - 'errors.0.code': 603, - }, - { - success: 'false', - 'errors.0.code': 605, - }, - { - success: 'false', - 'errors.0.code': 609, - }, - { - success: 'false', - 'errors.0.code': 610, - }, + { success: 'false', 'errors.0.code': 603 }, + { success: 'false', 'errors.0.code': 605 }, + { success: 'false', 'errors.0.code': 609 }, + { success: 'false', 'errors.0.code': 610 }, ], }, }, @@ -1044,9 +706,7 @@ export const data = [ isConnectionEnabled: true, isProcessorEnabled: true, }, - metadata: { - jobId: 5, - }, + metadata: { jobId: 5, userId: 'u1' }, }, ], destType: 'marketo', @@ -1090,12 +750,7 @@ export const data = [ files: {}, }, metadata: [ - { - destInfo: { - authKey: '1mMy5cqbtfuaKZv1IhVQKnBdVwe', - }, - jobId: 1, - }, + { destInfo: { authKey: '1mMy5cqbtfuaKZv1IhVQKnBdVwe' }, jobId: 1, userId: 'u1' }, ], batched: false, statusCode: 200, @@ -1105,18 +760,8 @@ export const data = [ clientId: 'marketo_client_id_success', clientSecret: 'marketo_client_secret_success', trackAnonymousEvents: true, - customActivityPropertyMap: [ - { - from: 'name', - to: 'productName', - }, - ], - leadTraitMapping: [ - { - from: 'leadScore', - to: 'customLeadScore', - }, - ], + customActivityPropertyMap: [{ from: 'name', to: 'productName' }], + leadTraitMapping: [{ from: 'leadScore', to: 'customLeadScore' }], rudderEventsMapping: [ { event: 'Product Clicked', @@ -1164,56 +809,20 @@ export const data = [ responseType: 'JSON', rules: { retryable: [ - { - success: 'false', - 'errors.0.code': 600, - }, - { - success: 'false', - 'errors.0.code': 601, - }, - { - success: 'false', - 'errors.0.code': 602, - }, - { - success: 'false', - 'errors.0.code': 604, - }, - { - success: 'false', - 'errors.0.code': 606, - }, - { - success: 'false', - 'errors.0.code': 607, - }, - { - success: 'false', - 'errors.0.code': 608, - }, - { - success: 'false', - 'errors.0.code': 611, - }, + { success: 'false', 'errors.0.code': 600 }, + { success: 'false', 'errors.0.code': 601 }, + { success: 'false', 'errors.0.code': 602 }, + { success: 'false', 'errors.0.code': 604 }, + { success: 'false', 'errors.0.code': 606 }, + { success: 'false', 'errors.0.code': 607 }, + { success: 'false', 'errors.0.code': 608 }, + { success: 'false', 'errors.0.code': 611 }, ], abortable: [ - { - success: 'false', - 'errors.0.code': 603, - }, - { - success: 'false', - 'errors.0.code': 605, - }, - { - success: 'false', - 'errors.0.code': 609, - }, - { - success: 'false', - 'errors.0.code': 610, - }, + { success: 'false', 'errors.0.code': 603 }, + { success: 'false', 'errors.0.code': 605 }, + { success: 'false', 'errors.0.code': 609 }, + { success: 'false', 'errors.0.code': 610 }, ], }, }, @@ -1259,12 +868,7 @@ export const data = [ files: {}, }, metadata: [ - { - destInfo: { - authKey: '1mMy5cqbtfuaKZv1IhVQKnBdVwe', - }, - jobId: 2, - }, + { destInfo: { authKey: '1mMy5cqbtfuaKZv1IhVQKnBdVwe' }, jobId: 2, userId: 'u1' }, ], batched: false, statusCode: 200, @@ -1274,18 +878,8 @@ export const data = [ clientId: 'marketo_client_id_success', clientSecret: 'marketo_client_secret_success', trackAnonymousEvents: true, - customActivityPropertyMap: [ - { - from: 'name', - to: 'productName', - }, - ], - leadTraitMapping: [ - { - from: 'leadScore', - to: 'customLeadScore', - }, - ], + customActivityPropertyMap: [{ from: 'name', to: 'productName' }], + leadTraitMapping: [{ from: 'leadScore', to: 'customLeadScore' }], rudderEventsMapping: [ { event: 'Product Clicked', @@ -1333,56 +927,20 @@ export const data = [ responseType: 'JSON', rules: { retryable: [ - { - success: 'false', - 'errors.0.code': 600, - }, - { - success: 'false', - 'errors.0.code': 601, - }, - { - success: 'false', - 'errors.0.code': 602, - }, - { - success: 'false', - 'errors.0.code': 604, - }, - { - success: 'false', - 'errors.0.code': 606, - }, - { - success: 'false', - 'errors.0.code': 607, - }, - { - success: 'false', - 'errors.0.code': 608, - }, - { - success: 'false', - 'errors.0.code': 611, - }, + { success: 'false', 'errors.0.code': 600 }, + { success: 'false', 'errors.0.code': 601 }, + { success: 'false', 'errors.0.code': 602 }, + { success: 'false', 'errors.0.code': 604 }, + { success: 'false', 'errors.0.code': 606 }, + { success: 'false', 'errors.0.code': 607 }, + { success: 'false', 'errors.0.code': 608 }, + { success: 'false', 'errors.0.code': 611 }, ], abortable: [ - { - success: 'false', - 'errors.0.code': 603, - }, - { - success: 'false', - 'errors.0.code': 605, - }, - { - success: 'false', - 'errors.0.code': 609, - }, - { - success: 'false', - 'errors.0.code': 610, - }, + { success: 'false', 'errors.0.code': 603 }, + { success: 'false', 'errors.0.code': 605 }, + { success: 'false', 'errors.0.code': 609 }, + { success: 'false', 'errors.0.code': 610 }, ], }, }, @@ -1402,17 +960,9 @@ export const data = [ statusCode: 400, error: '{"message":"Request Failed for marketo, Lookup field \'userId\' not found (Aborted).[Marketo Transformer]: During lead look up using email","destinationResponse":{"response":{"requestId":"142e4#1835b117b76","success":false,"errors":[{"code":"1006","message":"Lookup field \'userId\' not found"}]},"status":200}}', - statTags: { - errorCategory: 'network', - errorType: 'aborted', - }, + statTags: { errorCategory: 'network', errorType: 'aborted' }, metadata: [ - { - destInfo: { - authKey: '1mMy5cqbtfuaKZv1IhVQKnBdVke', - }, - jobId: 3, - }, + { destInfo: { authKey: '1mMy5cqbtfuaKZv1IhVQKnBdVke' }, jobId: 3, userId: 'u1' }, ], destination: { Config: { @@ -1422,38 +972,17 @@ export const data = [ trackAnonymousEvents: false, createIfNotExist: true, rudderEventsMapping: [ - { - event: 'acq_signup_completed', - marketoActivityId: '100026', - }, - { - event: 'act_createwebinarform_submit', - marketoActivityId: '100025', - }, - { - event: 'act_presentation_style', - marketoActivityId: '100025', - }, - { - event: 'act_webinar_view', - marketoActivityId: '100025', - }, - { - event: 'act_webinar_join', - marketoActivityId: '100025', - }, - { - event: 'act_presentation_addteammember', - marketoActivityId: '100025', - }, + { event: 'acq_signup_completed', marketoActivityId: '100026' }, + { event: 'act_createwebinarform_submit', marketoActivityId: '100025' }, + { event: 'act_presentation_style', marketoActivityId: '100025' }, + { event: 'act_webinar_view', marketoActivityId: '100025' }, + { event: 'act_webinar_join', marketoActivityId: '100025' }, + { event: 'act_presentation_addteammember', marketoActivityId: '100025' }, { event: 'act_engagement_discussions_savediscussion', marketoActivityId: '100025', }, - { - event: 'act_engagement_networking_savetime', - marketoActivityId: '100025', - }, + { event: 'act_engagement_networking_savetime', marketoActivityId: '100025' }, ], }, destinationDefinition: { @@ -1487,56 +1016,20 @@ export const data = [ responseType: 'JSON', rules: { retryable: [ - { - success: 'false', - 'errors.0.code': 600, - }, - { - success: 'false', - 'errors.0.code': 601, - }, - { - success: 'false', - 'errors.0.code': 602, - }, - { - success: 'false', - 'errors.0.code': 604, - }, - { - success: 'false', - 'errors.0.code': 606, - }, - { - success: 'false', - 'errors.0.code': 607, - }, - { - success: 'false', - 'errors.0.code': 608, - }, - { - success: 'false', - 'errors.0.code': 611, - }, + { success: 'false', 'errors.0.code': 600 }, + { success: 'false', 'errors.0.code': 601 }, + { success: 'false', 'errors.0.code': 602 }, + { success: 'false', 'errors.0.code': 604 }, + { success: 'false', 'errors.0.code': 606 }, + { success: 'false', 'errors.0.code': 607 }, + { success: 'false', 'errors.0.code': 608 }, + { success: 'false', 'errors.0.code': 611 }, ], abortable: [ - { - success: 'false', - 'errors.0.code': 603, - }, - { - success: 'false', - 'errors.0.code': 605, - }, - { - success: 'false', - 'errors.0.code': 609, - }, - { - success: 'false', - 'errors.0.code': 610, - }, + { success: 'false', 'errors.0.code': 603 }, + { success: 'false', 'errors.0.code': 605 }, + { success: 'false', 'errors.0.code': 609 }, + { success: 'false', 'errors.0.code': 610 }, ], }, }, @@ -1577,38 +1070,17 @@ export const data = [ trackAnonymousEvents: false, createIfNotExist: true, rudderEventsMapping: [ - { - event: 'acq_signup_completed', - marketoActivityId: '100026', - }, - { - event: 'act_createwebinarform_submit', - marketoActivityId: '100025', - }, - { - event: 'act_presentation_style', - marketoActivityId: '100025', - }, - { - event: 'act_webinar_view', - marketoActivityId: '100025', - }, - { - event: 'act_webinar_join', - marketoActivityId: '100025', - }, - { - event: 'act_presentation_addteammember', - marketoActivityId: '100025', - }, + { event: 'acq_signup_completed', marketoActivityId: '100026' }, + { event: 'act_createwebinarform_submit', marketoActivityId: '100025' }, + { event: 'act_presentation_style', marketoActivityId: '100025' }, + { event: 'act_webinar_view', marketoActivityId: '100025' }, + { event: 'act_webinar_join', marketoActivityId: '100025' }, + { event: 'act_presentation_addteammember', marketoActivityId: '100025' }, { event: 'act_engagement_discussions_savediscussion', marketoActivityId: '100025', }, - { - event: 'act_engagement_networking_savetime', - marketoActivityId: '100025', - }, + { event: 'act_engagement_networking_savetime', marketoActivityId: '100025' }, ], }, destinationDefinition: { @@ -1642,56 +1114,20 @@ export const data = [ responseType: 'JSON', rules: { retryable: [ - { - success: 'false', - 'errors.0.code': 600, - }, - { - success: 'false', - 'errors.0.code': 601, - }, - { - success: 'false', - 'errors.0.code': 602, - }, - { - success: 'false', - 'errors.0.code': 604, - }, - { - success: 'false', - 'errors.0.code': 606, - }, - { - success: 'false', - 'errors.0.code': 607, - }, - { - success: 'false', - 'errors.0.code': 608, - }, - { - success: 'false', - 'errors.0.code': 611, - }, + { success: 'false', 'errors.0.code': 600 }, + { success: 'false', 'errors.0.code': 601 }, + { success: 'false', 'errors.0.code': 602 }, + { success: 'false', 'errors.0.code': 604 }, + { success: 'false', 'errors.0.code': 606 }, + { success: 'false', 'errors.0.code': 607 }, + { success: 'false', 'errors.0.code': 608 }, + { success: 'false', 'errors.0.code': 611 }, ], abortable: [ - { - success: 'false', - 'errors.0.code': 603, - }, - { - success: 'false', - 'errors.0.code': 605, - }, - { - success: 'false', - 'errors.0.code': 609, - }, - { - success: 'false', - 'errors.0.code': 610, - }, + { success: 'false', 'errors.0.code': 603 }, + { success: 'false', 'errors.0.code': 605 }, + { success: 'false', 'errors.0.code': 609 }, + { success: 'false', 'errors.0.code': 610 }, ], }, }, @@ -1714,12 +1150,7 @@ export const data = [ isProcessorEnabled: true, }, metadata: [ - { - destInfo: { - authKey: '1mMy5cqbtfuaKZv1IhVQKnBdVke', - }, - jobId: 4, - }, + { destInfo: { authKey: '1mMy5cqbtfuaKZv1IhVQKnBdVke' }, jobId: 4, userId: 'u1' }, ], }, { @@ -1755,12 +1186,7 @@ export const data = [ files: {}, }, metadata: [ - { - destInfo: { - authKey: '1mMy5cqbtfuaKZv1IhVQKnBdVke', - }, - jobId: 5, - }, + { destInfo: { authKey: '1mMy5cqbtfuaKZv1IhVQKnBdVke' }, jobId: 5, userId: 'u1' }, ], batched: false, statusCode: 200, @@ -1772,38 +1198,17 @@ export const data = [ trackAnonymousEvents: false, createIfNotExist: true, rudderEventsMapping: [ - { - event: 'acq_signup_completed', - marketoActivityId: '100026', - }, - { - event: 'act_createwebinarform_submit', - marketoActivityId: '100025', - }, - { - event: 'act_presentation_style', - marketoActivityId: '100025', - }, - { - event: 'act_webinar_view', - marketoActivityId: '100025', - }, - { - event: 'act_webinar_join', - marketoActivityId: '100025', - }, - { - event: 'act_presentation_addteammember', - marketoActivityId: '100025', - }, + { event: 'acq_signup_completed', marketoActivityId: '100026' }, + { event: 'act_createwebinarform_submit', marketoActivityId: '100025' }, + { event: 'act_presentation_style', marketoActivityId: '100025' }, + { event: 'act_webinar_view', marketoActivityId: '100025' }, + { event: 'act_webinar_join', marketoActivityId: '100025' }, + { event: 'act_presentation_addteammember', marketoActivityId: '100025' }, { event: 'act_engagement_discussions_savediscussion', marketoActivityId: '100025', }, - { - event: 'act_engagement_networking_savetime', - marketoActivityId: '100025', - }, + { event: 'act_engagement_networking_savetime', marketoActivityId: '100025' }, ], }, destinationDefinition: { @@ -1837,56 +1242,20 @@ export const data = [ responseType: 'JSON', rules: { retryable: [ - { - success: 'false', - 'errors.0.code': 600, - }, - { - success: 'false', - 'errors.0.code': 601, - }, - { - success: 'false', - 'errors.0.code': 602, - }, - { - success: 'false', - 'errors.0.code': 604, - }, - { - success: 'false', - 'errors.0.code': 606, - }, - { - success: 'false', - 'errors.0.code': 607, - }, - { - success: 'false', - 'errors.0.code': 608, - }, - { - success: 'false', - 'errors.0.code': 611, - }, + { success: 'false', 'errors.0.code': 600 }, + { success: 'false', 'errors.0.code': 601 }, + { success: 'false', 'errors.0.code': 602 }, + { success: 'false', 'errors.0.code': 604 }, + { success: 'false', 'errors.0.code': 606 }, + { success: 'false', 'errors.0.code': 607 }, + { success: 'false', 'errors.0.code': 608 }, + { success: 'false', 'errors.0.code': 611 }, ], abortable: [ - { - success: 'false', - 'errors.0.code': 603, - }, - { - success: 'false', - 'errors.0.code': 605, - }, - { - success: 'false', - 'errors.0.code': 609, - }, - { - success: 'false', - 'errors.0.code': 610, - }, + { success: 'false', 'errors.0.code': 603 }, + { success: 'false', 'errors.0.code': 605 }, + { success: 'false', 'errors.0.code': 609 }, + { success: 'false', 'errors.0.code': 610 }, ], }, }, @@ -1942,42 +1311,20 @@ export const data = [ name: 'generic_x86', type: 'android', }, - library: { - name: 'com.rudderstack.android.sdk.core', - version: '1.0.1-beta.1', - }, + library: { name: 'com.rudderstack.android.sdk.core', version: '1.0.1-beta.1' }, locale: 'en-US', - network: { - carrier: 'Android', - bluetooth: false, - cellular: true, - wifi: true, - }, - os: { - name: 'Android', - version: '8.1.0', - }, - screen: { - density: 420, - height: 1794, - width: 1080, - }, + network: { carrier: 'Android', bluetooth: false, cellular: true, wifi: true }, + os: { name: 'Android', version: '8.1.0' }, + screen: { density: 420, height: 1794, width: 1080 }, timezone: 'Asia/Kolkata', - traits: { - anonymousId: 'anon_id_success', - }, + traits: { anonymousId: 'anon_id_success' }, userAgent: 'Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)', }, event: 'Product Clicked', - integrations: { - All: true, - }, + integrations: { All: true }, messageId: 'id1', - properties: { - name: 'Test Product', - product_id: 'prod_1', - }, + properties: { name: 'Test Product', product_id: 'prod_1' }, originalTimestamp: '2020-12-17T21:00:59.176Z', type: 'track', sentAt: '2020-12-17T21:00:59.176Z', @@ -1990,21 +1337,10 @@ export const data = [ clientSecret: 'marketo_client_secret_success', trackAnonymousEvents: true, customActivityPropertyMap: [ - { - from: 'name', - to: 'productName', - }, - { - from: 'product_id', - to: 'productId', - }, - ], - leadTraitMapping: [ - { - from: 'leadScore', - to: 'customLeadScore', - }, + { from: 'name', to: 'productName' }, + { from: 'product_id', to: 'productId' }, ], + leadTraitMapping: [{ from: 'leadScore', to: 'customLeadScore' }], createIfNotExist: true, rudderEventsMapping: [ { @@ -2015,17 +1351,7 @@ export const data = [ ], }, }, - metadata: [ - { - jobId: 1, - }, - { - jobId: 1, - }, - { - jobId: 1, - }, - ], + metadata: [{ jobId: 1 }, { jobId: 1 }, { jobId: 1 }], batched: false, statusCode: 200, }, @@ -2058,12 +1384,7 @@ export const data = [ { activityDate: '2020-12-17T21:00:59.176Z', activityTypeId: 100001, - attributes: [ - { - name: 'productId', - value: 'prod_1', - }, - ], + attributes: [{ name: 'productId', value: 'prod_1' }], leadId: 4, primaryAttributeValue: 'Test Product', }, @@ -2075,19 +1396,7 @@ export const data = [ }, files: {}, }, - metadata: [ - [ - { - jobId: 1, - }, - { - jobId: 1, - }, - { - jobId: 1, - }, - ], - ], + metadata: [[{ jobId: 1 }, { jobId: 1 }, { jobId: 1 }]], batched: false, statusCode: 200, destination: { @@ -2098,21 +1407,10 @@ export const data = [ clientSecret: 'marketo_client_secret_success', trackAnonymousEvents: true, customActivityPropertyMap: [ - { - from: 'name', - to: 'productName', - }, - { - from: 'product_id', - to: 'productId', - }, - ], - leadTraitMapping: [ - { - from: 'leadScore', - to: 'customLeadScore', - }, + { from: 'name', to: 'productName' }, + { from: 'product_id', to: 'productId' }, ], + leadTraitMapping: [{ from: 'leadScore', to: 'customLeadScore' }], createIfNotExist: true, rudderEventsMapping: [ { diff --git a/test/integrations/destinations/marketo_bulk_upload/processor/data.ts b/test/integrations/destinations/marketo_bulk_upload/processor/data.ts index 5c86afd372..f1b162ad28 100644 --- a/test/integrations/destinations/marketo_bulk_upload/processor/data.ts +++ b/test/integrations/destinations/marketo_bulk_upload/processor/data.ts @@ -1,499 +1,505 @@ export const data = [ - { - "name": "marketo_bulk_upload", - "description": "Test 0", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "type": "identify", - "traits": { - "name": "Carlo Lombard", - "plan": "Quarterly Team+ Plan for Enuffsaid Media", - "email": "carlo@enuffsaid.media" - }, - "userId": 476335, - "context": { - "ip": "14.0.2.238", - "page": { - "url": "enuffsaid.proposify.com", - "path": "/settings", - "method": "POST", - "referrer": "https://enuffsaid.proposify.com/login" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36" - }, - "rudderId": "786dfec9-jfh", - "messageId": "5d9bc6e2-ekjh" - }, - "destination": { - "ID": "1mMy5cqbtfuaKZv1IhVQKnBdVwe", - "Config": { - "munchkinId": "XXXX", - "clientId": "YYYY", - "clientSecret": "ZZZZ", - "columnFieldsMapping": [ - { - "to": "name__c", - "from": "name" - }, - { - "to": "email__c", - "from": "email" - }, - { - "to": "plan__c", - "from": "plan" - } - ] - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "/fileUpload", - "headers": {}, - "params": {}, - "body": { - "JSON": { - "name__c": "Carlo Lombard", - "email__c": "carlo@enuffsaid.media", - "plan__c": "Quarterly Team+ Plan for Enuffsaid Media" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "marketo_bulk_upload", - "description": "Test 1", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "traits": { - "name": "Carlo Lombard", - "plan": "Quarterly Team+ Plan for Enuffsaid Media", - "email": "carlo@enuffsaid.media" - }, - "userId": 476335, - "context": { - "ip": "14.0.2.238", - "page": { - "url": "enuffsaid.proposify.com", - "path": "/settings", - "method": "POST", - "referrer": "https://enuffsaid.proposify.com/login" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36" - }, - "rudderId": "786dfec9-jfh", - "messageId": "5d9bc6e2-ekjh" - }, - "destination": { - "ID": "1mMy5cqbtfuaKZv1IhVQKnBdVwe", - "Config": { - "munchkinId": "XXXX", - "clientId": "YYYY", - "clientSecret": "ZZZZ", - "columnFieldsMapping": [ - { - "to": "name__c", - "from": "name" - }, - { - "to": "email__c", - "from": "email" - }, - { - "to": "plan__c", - "from": "plan" - } - ] - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "Event type is required", - "statTags": { - "destType": "MARKETO_BULK_UPLOAD", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "marketo_bulk_upload", - "description": "Test 2", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "type": "track", - "traits": { - "name": "Carlo Lombard", - "plan": "Quarterly Team+ Plan for Enuffsaid Media", - "email": "carlo@enuffsaid.media" - }, - "userId": 476335, - "context": { - "ip": "14.0.2.238", - "page": { - "url": "enuffsaid.proposify.com", - "path": "/settings", - "method": "POST", - "referrer": "https://enuffsaid.proposify.com/login" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36" - }, - "rudderId": "786dfec9-jfh", - "messageId": "5d9bc6e2-ekjh" - }, - "destination": { - "ID": "1mMy5cqbtfuaKZv1IhVQKnBdVwe", - "Config": { - "munchkinId": "XXXX", - "clientId": "YYYY", - "clientSecret": "ZZZZ", - "columnFieldsMapping": [ - { - "to": "name__c", - "from": "name" - }, - { - "to": "email__c", - "from": "email" - }, - { - "to": "plan__c", - "from": "plan" - } - ] - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "Event type track is not supported", - "statTags": { - "destType": "MARKETO_BULK_UPLOAD", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "marketo_bulk_upload", - "description": "Test 3", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "type": "identify", - "traits": { - "name": "Carlo Lombard", - "plan": "Quarterly Team+ Plan for Enuffsaid Media", - "email": "carlo@enuffsaid.media" - }, - "userId": 476335, - "context": { - "ip": "14.0.2.238", - "page": { - "url": "enuffsaid.proposify.com", - "path": "/settings", - "method": "POST", - "referrer": "https://enuffsaid.proposify.com/login" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36" - }, - "rudderId": "786dfec9-jfh", - "messageId": "5d9bc6e2-ekjh" - }, - "destination": { - "ID": "1mMy5cqbtfuaKZv1IhVQKnBdVwe", - "Config": { - "munchkinId": "XXXX", - "clientId": "YYYY", - "clientSecret": "ZZZZ", - "columnFieldsMapping": [ - { - "to": "name__c", - "from": "1" - }, - { - "to": "email__c", - "from": "email1" - }, - { - "to": "plan__c", - "from": "plan1" - } - ] - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "/fileUpload", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "marketo_bulk_upload", - "description": "Test 4", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "type": "identify", - "traits": { - "name": "Carlo Lombard", - "plan": "Quarterly Team+ Plan for Enuffsaid Media", - "email": "carlo@enuffsaid.media" - }, - "userId": 476335, - "context": { - "ip": "14.0.2.238", - "page": { - "url": "enuffsaid.proposify.com", - "path": "/settings", - "method": "POST", - "referrer": "https://enuffsaid.proposify.com/login" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36" - }, - "rudderId": "786dfec9-jfh", - "messageId": "5d9bc6e2-ekjh" - }, - "destination": { - "ID": "1mMy5cqbtfuaKZv1IhVQKnBdVwe", - "Config": { - "munchkinId": "XXXX", - "clientId": "YYYY", - "clientSecret": "ZZZZ", - "columnFieldsMapping": [ - { - "to": "name__c", - "from": "name" - }, - { - "to": "email__c", - "from": "email1" - }, - { - "to": "plan__c", - "from": "plan1" - } - ] - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "/fileUpload", - "headers": {}, - "params": {}, - "body": { - "JSON": { - "name__c": "Carlo Lombard" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "marketo_bulk_upload", - "description": "Test 5", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "type": "identify", - "traits": { - "name": "Carlo Lombard", - "plan": 1 - }, - "userId": 476335, - "context": { - "ip": "14.0.2.238", - "page": { - "url": "enuffsaid.proposify.com", - "path": "/settings", - "method": "POST", - "referrer": "https://enuffsaid.proposify.com/login" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36" - }, - "rudderId": "786dfec9-jfh", - "messageId": "5d9bc6e2-ekjh" - }, - "destination": { - "ID": "1mMy5cqbtfuaKZv1IhVQKnBdVwe", - "Config": { - "munchkinId": "XXXX", - "clientId": "YYYY", - "clientSecret": "ZZZZ", - "columnFieldsMapping": [ - { - "to": "name__c", - "from": "name" - }, - { - "to": "email__c", - "from": "email" - }, - { - "to": "plan__c", - "from": "plan" - } - ] - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "/fileUpload", - "headers": {}, - "params": {}, - "body": { - "JSON": { - "name__c": "Carlo Lombard", - "plan__c": 1 - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - } -] \ No newline at end of file + { + name: 'marketo_bulk_upload', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'identify', + traits: { + name: 'Carlo Lombard', + plan: 'Quarterly Team+ Plan for Enuffsaid Media', + email: 'carlo@enuffsaid.media', + }, + userId: 476335, + context: { + ip: '14.0.2.238', + page: { + url: 'enuffsaid.proposify.com', + path: '/settings', + method: 'POST', + referrer: 'https://enuffsaid.proposify.com/login', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + rudderId: '786dfec9-jfh', + messageId: '5d9bc6e2-ekjh', + }, + destination: { + ID: '1mMy5cqbtfuaKZv1IhVQKnBdVwe', + Config: { + munchkinId: 'XXXX', + clientId: 'YYYY', + clientSecret: 'ZZZZ', + columnFieldsMapping: [ + { + to: 'name__c', + from: 'name', + }, + { + to: 'email__c', + from: 'email', + }, + { + to: 'plan__c', + from: 'plan', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: '/fileUpload', + headers: {}, + params: {}, + body: { + JSON: { + name__c: 'Carlo Lombard', + email__c: 'carlo@enuffsaid.media', + plan__c: 'Quarterly Team+ Plan for Enuffsaid Media', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'marketo_bulk_upload', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + traits: { + name: 'Carlo Lombard', + plan: 'Quarterly Team+ Plan for Enuffsaid Media', + email: 'carlo@enuffsaid.media', + }, + userId: 476335, + context: { + ip: '14.0.2.238', + page: { + url: 'enuffsaid.proposify.com', + path: '/settings', + method: 'POST', + referrer: 'https://enuffsaid.proposify.com/login', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + rudderId: '786dfec9-jfh', + messageId: '5d9bc6e2-ekjh', + }, + destination: { + ID: '1mMy5cqbtfuaKZv1IhVQKnBdVwe', + Config: { + munchkinId: 'XXXX', + clientId: 'YYYY', + clientSecret: 'ZZZZ', + columnFieldsMapping: [ + { + to: 'name__c', + from: 'name', + }, + { + to: 'email__c', + from: 'email', + }, + { + to: 'plan__c', + from: 'plan', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Event type is required', + statTags: { + destType: 'MARKETO_BULK_UPLOAD', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'marketo_bulk_upload', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + traits: { + name: 'Carlo Lombard', + plan: 'Quarterly Team+ Plan for Enuffsaid Media', + email: 'carlo@enuffsaid.media', + }, + userId: 476335, + context: { + ip: '14.0.2.238', + page: { + url: 'enuffsaid.proposify.com', + path: '/settings', + method: 'POST', + referrer: 'https://enuffsaid.proposify.com/login', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + rudderId: '786dfec9-jfh', + messageId: '5d9bc6e2-ekjh', + }, + destination: { + ID: '1mMy5cqbtfuaKZv1IhVQKnBdVwe', + Config: { + munchkinId: 'XXXX', + clientId: 'YYYY', + clientSecret: 'ZZZZ', + columnFieldsMapping: [ + { + to: 'name__c', + from: 'name', + }, + { + to: 'email__c', + from: 'email', + }, + { + to: 'plan__c', + from: 'plan', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Event type track is not supported', + statTags: { + destType: 'MARKETO_BULK_UPLOAD', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'marketo_bulk_upload', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'identify', + traits: { + name: 'Carlo Lombard', + plan: 'Quarterly Team+ Plan for Enuffsaid Media', + email: 'carlo@enuffsaid.media', + }, + userId: 476335, + context: { + ip: '14.0.2.238', + page: { + url: 'enuffsaid.proposify.com', + path: '/settings', + method: 'POST', + referrer: 'https://enuffsaid.proposify.com/login', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + rudderId: '786dfec9-jfh', + messageId: '5d9bc6e2-ekjh', + }, + destination: { + ID: '1mMy5cqbtfuaKZv1IhVQKnBdVwe', + Config: { + munchkinId: 'XXXX', + clientId: 'YYYY', + clientSecret: 'ZZZZ', + columnFieldsMapping: [ + { + to: 'name__c', + from: '1', + }, + { + to: 'email__c', + from: 'email1', + }, + { + to: 'plan__c', + from: 'plan1', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: '/fileUpload', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'marketo_bulk_upload', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'identify', + traits: { + name: 'Carlo Lombard', + plan: 'Quarterly Team+ Plan for Enuffsaid Media', + email: 'carlo@enuffsaid.media', + }, + userId: 476335, + context: { + ip: '14.0.2.238', + page: { + url: 'enuffsaid.proposify.com', + path: '/settings', + method: 'POST', + referrer: 'https://enuffsaid.proposify.com/login', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + rudderId: '786dfec9-jfh', + messageId: '5d9bc6e2-ekjh', + }, + destination: { + ID: '1mMy5cqbtfuaKZv1IhVQKnBdVwe', + Config: { + munchkinId: 'XXXX', + clientId: 'YYYY', + clientSecret: 'ZZZZ', + columnFieldsMapping: [ + { + to: 'name__c', + from: 'name', + }, + { + to: 'email__c', + from: 'email1', + }, + { + to: 'plan__c', + from: 'plan1', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: '/fileUpload', + headers: {}, + params: {}, + body: { + JSON: { + name__c: 'Carlo Lombard', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'marketo_bulk_upload', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'identify', + traits: { + name: 'Carlo Lombard', + plan: 1, + }, + userId: 476335, + context: { + ip: '14.0.2.238', + page: { + url: 'enuffsaid.proposify.com', + path: '/settings', + method: 'POST', + referrer: 'https://enuffsaid.proposify.com/login', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + rudderId: '786dfec9-jfh', + messageId: '5d9bc6e2-ekjh', + }, + destination: { + ID: '1mMy5cqbtfuaKZv1IhVQKnBdVwe', + Config: { + munchkinId: 'XXXX', + clientId: 'YYYY', + clientSecret: 'ZZZZ', + columnFieldsMapping: [ + { + to: 'name__c', + from: 'name', + }, + { + to: 'email__c', + from: 'email', + }, + { + to: 'plan__c', + from: 'plan', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: '/fileUpload', + headers: {}, + params: {}, + body: { + JSON: { + name__c: 'Carlo Lombard', + plan__c: 1, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/marketo_static_list/dataDelivery/data.ts b/test/integrations/destinations/marketo_static_list/dataDelivery/data.ts index e3deebca9b..f0275e329e 100644 --- a/test/integrations/destinations/marketo_static_list/dataDelivery/data.ts +++ b/test/integrations/destinations/marketo_static_list/dataDelivery/data.ts @@ -1,368 +1,375 @@ export const data = [ { - "name": "marketo_static_list", - "description": "Test 0", - "feature": "dataDelivery", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": { - "type": "REST", - "endpoint": "https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=110&id=111&id=112", - "method": "POST", - "userId": "", - "headers": { - "Authorization": "Bearer Incorrect_token", - "Content-Type": "application/json" + name: 'marketo_static_list', + description: 'Test 0', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + type: 'REST', + endpoint: + 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=110&id=111&id=112', + method: 'POST', + userId: '', + headers: { + Authorization: 'Bearer Incorrect_token', + 'Content-Type': 'application/json', }, - "body": { - "FORM": {}, - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {} + body: { + FORM: {}, + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + }, + files: {}, + params: { + destination: 'marketo_static_list', }, - "files": {}, - "params": { - "destination": "marketo_static_list" - } }, - "method": "POST" - } + method: 'POST', + }, }, - "output": { - "response": { - "status": 200, - "body": { - "output": { - "message": "Request Processed Successfully", - "destinationResponse": { - "response": { - "requestId": "b6d1#18a8d2c10e7", - "result": [ + output: { + response: { + status: 200, + body: { + output: { + message: 'Request Processed Successfully', + destinationResponse: { + response: { + requestId: 'b6d1#18a8d2c10e7', + result: [ { - "id": 110, - "status": "skipped", - "reasons": [ + id: 110, + status: 'skipped', + reasons: [ { - "code": "1015", - "message": "Lead not in list" - } - ] + code: '1015', + message: 'Lead not in list', + }, + ], }, { - "id": 111, - "status": "removed" + id: 111, + status: 'removed', }, { - "id": 112, - "status": "removed" - } + id: 112, + status: 'removed', + }, ], - "success": true + success: true, }, - "status": 200 + status: 200, }, - "status": 200 - } - } - } - } + status: 200, + }, + }, + }, + }, }, { - "name": "marketo_static_list", - "description": "Test 1", - "feature": "dataDelivery", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": { - "type": "REST", - "endpoint": "https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=1&id=2&id=3", - "method": "POST", - "userId": "", - "headers": { - "Authorization": "Bearer Incorrect_token", - "Content-Type": "application/json" + name: 'marketo_static_list', + description: 'Test 1', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + type: 'REST', + endpoint: + 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=1&id=2&id=3', + method: 'POST', + userId: '', + headers: { + Authorization: 'Bearer Incorrect_token', + 'Content-Type': 'application/json', + }, + body: { + FORM: {}, + JSON: {}, + JSON_ARRAY: {}, + XML: {}, }, - "body": { - "FORM": {}, - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {} + files: {}, + params: { + destination: 'marketo_static_list', }, - "files": {}, - "params": { - "destination": "marketo_static_list" - } }, - "method": "POST" - } + method: 'POST', + }, }, - "output": { - "response": { - "status": 500, - "body": { - "output": { - "status": 500, - "message": "Request Failed for Marketo Static List, Access token invalid (Retryable).during Marketo Static List Response Handling", - "destinationResponse": { - "response": { - "requestId": "68d8#1846058ee27", - "success": false, - "errors": [ + output: { + response: { + status: 500, + body: { + output: { + status: 500, + message: + 'Request Failed for Marketo Static List, Access token invalid (Retryable).during Marketo Static List Response Handling', + destinationResponse: { + response: { + requestId: '68d8#1846058ee27', + success: false, + errors: [ { - "code": "601", - "message": "Access token invalid" - } - ] + code: '601', + message: 'Access token invalid', + }, + ], }, - "status": 200 + status: 200, }, - "statTags": { - "destType": "MARKETO_STATIC_LIST", - "errorCategory": "network", - "destinationId": "Non-determininable", - "workspaceId": "Non-determininable", - "errorType": "retryable", - "feature": "dataDelivery", - "implementation": "native", - "module": "destination" - } - } - } - } - } + statTags: { + destType: 'MARKETO_STATIC_LIST', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'retryable', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + }, + }, + }, + }, + }, }, { - "name": "marketo_static_list", - "description": "Test 2", - "feature": "dataDelivery", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": { - "type": "REST", - "endpoint": "https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=1&id=2", - "method": "POST", - "userId": "", - "headers": { - "Authorization": "Bearer token", - "Content-Type": "application/json" + name: 'marketo_static_list', + description: 'Test 2', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + type: 'REST', + endpoint: + 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=1&id=2', + method: 'POST', + userId: '', + headers: { + Authorization: 'Bearer token', + 'Content-Type': 'application/json', }, - "body": { - "FORM": {}, - "JSON": { - "action": "createOrUpdate", - "input": [ + body: { + FORM: {}, + JSON: { + action: 'createOrUpdate', + input: [ { - "City": "Tokyo", - "Country": "JP", - "Email": "gabi29@gmail.com", - "PostalCode": "100-0001", - "Title": "Owner", - "id": 1328328, - "userId": "gabi_userId_45" - } + City: 'Tokyo', + Country: 'JP', + Email: 'gabi29@gmail.com', + PostalCode: '100-0001', + Title: 'Owner', + id: 1328328, + userId: 'gabi_userId_45', + }, ], - "lookupField": "id" + lookupField: 'id', }, - "JSON_ARRAY": {}, - "XML": {} + JSON_ARRAY: {}, + XML: {}, + }, + files: {}, + params: { + destination: 'marketo_static_list', }, - "files": {}, - "params": { - "destination": "marketo_static_list" - } }, - "method": "POST" - } + method: 'POST', + }, }, - "output": { - "response": { - "status": 200, - "body": { - "output": { - "status": 200, - "message": "Request Processed Successfully", - "destinationResponse": { - "response": { - "requestId": "12d3c#1846057dce2", - "success": true, - "result": [ + output: { + response: { + status: 200, + body: { + output: { + status: 200, + message: 'Request Processed Successfully', + destinationResponse: { + response: { + requestId: '12d3c#1846057dce2', + success: true, + result: [ { - "id": 1, - "status": "added" + id: 1, + status: 'added', }, { - "id": 2, - "status": "added" - } - ] + id: 2, + status: 'added', + }, + ], }, - "status": 200 - } - } - } - } - } + status: 200, + }, + }, + }, + }, + }, }, { - "name": "marketo_static_list", - "description": "Test 3", - "feature": "dataDelivery", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": { - "type": "REST", - "endpoint": "https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=3&id=4", - "method": "POST", - "userId": "", - "headers": { - "Authorization": "Bearer token", - "Content-Type": "application/json" + name: 'marketo_static_list', + description: 'Test 3', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + type: 'REST', + endpoint: + 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=3&id=4', + method: 'POST', + userId: '', + headers: { + Authorization: 'Bearer token', + 'Content-Type': 'application/json', }, - "params": {}, - "body": { - "FORM": {}, - "JSON": { - "action": "createOrUpdate", - "input": [ + params: {}, + body: { + FORM: {}, + JSON: { + action: 'createOrUpdate', + input: [ { - "City": "Tokyo", - "Country": "JP", - "Email": "gabi29@gmail.com", - "PostalCode": "100-0001", - "Title": "Owner", - "id": 1328328, - "userId": "gabi_userId_45" + City: 'Tokyo', + Country: 'JP', + Email: 'gabi29@gmail.com', + PostalCode: '100-0001', + Title: 'Owner', + id: 1328328, + userId: 'gabi_userId_45', }, { - "City": "Tokyo", - "Country": "JP", - "Email": "b@s.com", - "PostalCode": "100-0001", - "Title": "Owner", - "id": 1328329, - "userId": "ben_userId_45" - } + City: 'Tokyo', + Country: 'JP', + Email: 'b@s.com', + PostalCode: '100-0001', + Title: 'Owner', + id: 1328329, + userId: 'ben_userId_45', + }, ], - "lookupField": "id" + lookupField: 'id', }, - "JSON_ARRAY": {}, - "XML": {} + JSON_ARRAY: {}, + XML: {}, }, - "files": {} + files: {}, }, - "method": "POST" - } + method: 'POST', + }, }, - "output": { - "response": { - "status": 400, - "body": { - "output": { - "destinationResponse": "", - "message": "Request failed during: during Marketo Static List Response Handling, error: [{\"code\":\"1004\",\"message\":\"Lead not found\"}]", - "statTags": { - "destType": "MARKETO_STATIC_LIST", - "errorCategory": "dataValidation", - "destinationId": "Non-determininable", - "workspaceId": "Non-determininable", - "errorType": "instrumentation", - "feature": "dataDelivery", - "implementation": "native", - "module": "destination" + output: { + response: { + status: 400, + body: { + output: { + destinationResponse: '', + message: + 'Request failed during: during Marketo Static List Response Handling, error: [{"code":"1004","message":"Lead not found"}]', + statTags: { + destType: 'MARKETO_STATIC_LIST', + errorCategory: 'dataValidation', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'instrumentation', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', }, - "status": 400 - } - } - } - } + status: 400, + }, + }, + }, + }, }, { - "name": "marketo_static_list", - "description": "Test 4", - "feature": "dataDelivery", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": { - "type": "REST", - "endpoint": "https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=5&id=6", - "method": "POST", - "userId": "", - "headers": { - "Authorization": "Bearer token", - "Content-Type": "application/json" + name: 'marketo_static_list', + description: 'Test 4', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + type: 'REST', + endpoint: + 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=5&id=6', + method: 'POST', + userId: '', + headers: { + Authorization: 'Bearer token', + 'Content-Type': 'application/json', }, - "params": {}, - "body": { - "FORM": {}, - "JSON": { - "action": "createOrUpdate", - "input": [ + params: {}, + body: { + FORM: {}, + JSON: { + action: 'createOrUpdate', + input: [ { - "City": "Tokyo", - "Country": "JP", - "Email": "gabi29@gmail.com", - "PostalCode": "100-0001", - "Title": "Owner", - "id": 1328328, - "userId": "gabi_userId_45" + City: 'Tokyo', + Country: 'JP', + Email: 'gabi29@gmail.com', + PostalCode: '100-0001', + Title: 'Owner', + id: 1328328, + userId: 'gabi_userId_45', }, { - "City": "Tokyo", - "Country": "JP", - "Email": "b@s.com", - "PostalCode": "100-0001", - "Title": "Owner", - "id": 1328329, - "userId": "ben_userId_45" - } + City: 'Tokyo', + Country: 'JP', + Email: 'b@s.com', + PostalCode: '100-0001', + Title: 'Owner', + id: 1328329, + userId: 'ben_userId_45', + }, ], - "lookupField": "id" + lookupField: 'id', }, - "JSON_ARRAY": {}, - "XML": {} + JSON_ARRAY: {}, + XML: {}, }, - "files": {} + files: {}, }, - "method": "POST" - } + method: 'POST', + }, }, - "output": { - "response": { - "status": 200, - "body": { - "output": { - "status": 200, - "message": "Request Processed Successfully", - "destinationResponse": { - "response": { - "requestId": "12d3c#1846057dce2", - "result": { - "id": 5, - "status": "skipped", - "reasons": [ + output: { + response: { + status: 200, + body: { + output: { + status: 200, + message: 'Request Processed Successfully', + destinationResponse: { + response: { + requestId: '12d3c#1846057dce2', + result: { + id: 5, + status: 'skipped', + reasons: [ { - "code": "1015", - "message": "Lead not in list" - } - ] + code: '1015', + message: 'Lead not in list', + }, + ], }, - "success": true + success: true, }, - "status": 200 - } - } - } - } - } - } -] \ No newline at end of file + status: 200, + }, + }, + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/marketo_static_list/router/data.ts b/test/integrations/destinations/marketo_static_list/router/data.ts index 840ad773b3..6525f7419d 100644 --- a/test/integrations/destinations/marketo_static_list/router/data.ts +++ b/test/integrations/destinations/marketo_static_list/router/data.ts @@ -38,42 +38,15 @@ export const data = [ type: 'audiencelist', properties: { listData: { - add: [ - { - id: 1, - }, - { - id: 2, - }, - { - id: 3, - }, - ], - remove: [ - { - id: 4, - }, - { - id: 5, - }, - { - id: 6, - }, - ], + add: [{ id: 1 }, { id: 2 }, { id: 3 }], + remove: [{ id: 4 }, { id: 5 }, { id: 6 }], }, enablePartialFailure: true, }, - context: { - ip: '14.5.67.21', - library: { - name: 'http', - }, - }, + context: { ip: '14.5.67.21', library: { name: 'http' } }, timestamp: '2020-02-02T00:23:09.544Z', }, - metadata: { - jobId: 1, - }, + metadata: { jobId: 1, userId: 'u1' }, }, { destination: { @@ -104,1074 +77,365 @@ export const data = [ properties: { listData: { add: [ - { - id: 0, - }, - { - id: 1, - }, - { - id: 2, - }, - { - id: 3, - }, - { - id: 4, - }, - { - id: 5, - }, - { - id: 6, - }, - { - id: 7, - }, - { - id: 8, - }, - { - id: 9, - }, - { - id: 10, - }, - { - id: 11, - }, - { - id: 12, - }, - { - id: 13, - }, - { - id: 14, - }, - { - id: 15, - }, - { - id: 16, - }, - { - id: 17, - }, - { - id: 18, - }, - { - id: 19, - }, - { - id: 20, - }, - { - id: 21, - }, - { - id: 22, - }, - { - id: 23, - }, - { - id: 24, - }, - { - id: 25, - }, - { - id: 26, - }, - { - id: 27, - }, - { - id: 28, - }, - { - id: 29, - }, - { - id: 30, - }, - { - id: 31, - }, - { - id: 32, - }, - { - id: 33, - }, - { - id: 34, - }, - { - id: 35, - }, - { - id: 36, - }, - { - id: 37, - }, - { - id: 38, - }, - { - id: 39, - }, - { - id: 40, - }, - { - id: 41, - }, - { - id: 42, - }, - { - id: 43, - }, - { - id: 44, - }, - { - id: 45, - }, - { - id: 46, - }, - { - id: 47, - }, - { - id: 48, - }, - { - id: 49, - }, - { - id: 50, - }, - { - id: 51, - }, - { - id: 52, - }, - { - id: 53, - }, - { - id: 54, - }, - { - id: 55, - }, - { - id: 56, - }, - { - id: 57, - }, - { - id: 58, - }, - { - id: 59, - }, - { - id: 60, - }, - { - id: 61, - }, - { - id: 62, - }, - { - id: 63, - }, - { - id: 64, - }, - { - id: 65, - }, - { - id: 66, - }, - { - id: 67, - }, - { - id: 68, - }, - { - id: 69, - }, - { - id: 70, - }, - { - id: 71, - }, - { - id: 72, - }, - { - id: 73, - }, - { - id: 74, - }, - { - id: 75, - }, - { - id: 76, - }, - { - id: 77, - }, - { - id: 78, - }, - { - id: 79, - }, - { - id: 80, - }, - { - id: 81, - }, - { - id: 82, - }, - { - id: 83, - }, - { - id: 84, - }, - { - id: 85, - }, - { - id: 86, - }, - { - id: 87, - }, - { - id: 88, - }, - { - id: 89, - }, - { - id: 90, - }, - { - id: 91, - }, - { - id: 92, - }, - { - id: 93, - }, - { - id: 94, - }, - { - id: 95, - }, - { - id: 96, - }, - { - id: 97, - }, - { - id: 98, - }, - { - id: 99, - }, - { - id: 100, - }, - { - id: 101, - }, - { - id: 102, - }, - { - id: 103, - }, - { - id: 104, - }, - { - id: 105, - }, - { - id: 106, - }, - { - id: 107, - }, - { - id: 108, - }, - { - id: 109, - }, - { - id: 110, - }, - { - id: 111, - }, - { - id: 112, - }, - { - id: 113, - }, - { - id: 114, - }, - { - id: 115, - }, - { - id: 116, - }, - { - id: 117, - }, - { - id: 118, - }, - { - id: 119, - }, - { - id: 120, - }, - { - id: 121, - }, - { - id: 122, - }, - { - id: 123, - }, - { - id: 124, - }, - { - id: 125, - }, - { - id: 126, - }, - { - id: 127, - }, - { - id: 128, - }, - { - id: 129, - }, - { - id: 130, - }, - { - id: 131, - }, - { - id: 132, - }, - { - id: 133, - }, - { - id: 134, - }, - { - id: 135, - }, - { - id: 136, - }, - { - id: 137, - }, - { - id: 138, - }, - { - id: 139, - }, - { - id: 140, - }, - { - id: 141, - }, - { - id: 142, - }, - { - id: 143, - }, - { - id: 144, - }, - { - id: 145, - }, - { - id: 146, - }, - { - id: 147, - }, - { - id: 148, - }, - { - id: 149, - }, - { - id: 150, - }, - { - id: 151, - }, - { - id: 152, - }, - { - id: 153, - }, - { - id: 154, - }, - { - id: 155, - }, - { - id: 156, - }, - { - id: 157, - }, - { - id: 158, - }, - { - id: 159, - }, - { - id: 160, - }, - { - id: 161, - }, - { - id: 162, - }, - { - id: 163, - }, - { - id: 164, - }, - { - id: 165, - }, - { - id: 166, - }, - { - id: 167, - }, - { - id: 168, - }, - { - id: 169, - }, - { - id: 170, - }, - { - id: 171, - }, - { - id: 172, - }, - { - id: 173, - }, - { - id: 174, - }, - { - id: 175, - }, - { - id: 176, - }, - { - id: 177, - }, - { - id: 178, - }, - { - id: 179, - }, - { - id: 180, - }, - { - id: 181, - }, - { - id: 182, - }, - { - id: 183, - }, - { - id: 184, - }, - { - id: 185, - }, - { - id: 186, - }, - { - id: 187, - }, - { - id: 188, - }, - { - id: 189, - }, - { - id: 190, - }, - { - id: 191, - }, - { - id: 192, - }, - { - id: 193, - }, - { - id: 194, - }, - { - id: 195, - }, - { - id: 196, - }, - { - id: 197, - }, - { - id: 198, - }, - { - id: 199, - }, - { - id: 200, - }, - { - id: 201, - }, - { - id: 202, - }, - { - id: 203, - }, - { - id: 204, - }, - { - id: 205, - }, - { - id: 206, - }, - { - id: 207, - }, - { - id: 208, - }, - { - id: 209, - }, - { - id: 210, - }, - { - id: 211, - }, - { - id: 212, - }, - { - id: 213, - }, - { - id: 214, - }, - { - id: 215, - }, - { - id: 216, - }, - { - id: 217, - }, - { - id: 218, - }, - { - id: 219, - }, - { - id: 220, - }, - { - id: 221, - }, - { - id: 222, - }, - { - id: 223, - }, - { - id: 224, - }, - { - id: 225, - }, - { - id: 226, - }, - { - id: 227, - }, - { - id: 228, - }, - { - id: 229, - }, - { - id: 230, - }, - { - id: 231, - }, - { - id: 232, - }, - { - id: 233, - }, - { - id: 234, - }, - { - id: 235, - }, - { - id: 236, - }, - { - id: 237, - }, - { - id: 238, - }, - { - id: 239, - }, - { - id: 240, - }, - { - id: 241, - }, - { - id: 242, - }, - { - id: 243, - }, - { - id: 244, - }, - { - id: 245, - }, - { - id: 246, - }, - { - id: 247, - }, - { - id: 248, - }, - { - id: 249, - }, - { - id: 250, - }, - { - id: 251, - }, - { - id: 252, - }, - { - id: 253, - }, - { - id: 254, - }, - { - id: 255, - }, - { - id: 256, - }, - { - id: 257, - }, - { - id: 258, - }, - { - id: 259, - }, - { - id: 260, - }, - { - id: 261, - }, - { - id: 262, - }, - { - id: 263, - }, - { - id: 264, - }, - { - id: 265, - }, - { - id: 266, - }, - { - id: 267, - }, - { - id: 268, - }, - { - id: 269, - }, - { - id: 270, - }, - { - id: 271, - }, - { - id: 272, - }, - { - id: 273, - }, - { - id: 274, - }, - { - id: 275, - }, - { - id: 276, - }, - { - id: 277, - }, - { - id: 278, - }, - { - id: 279, - }, - { - id: 280, - }, - { - id: 281, - }, - { - id: 282, - }, - { - id: 283, - }, - { - id: 284, - }, - { - id: 285, - }, - { - id: 286, - }, - { - id: 287, - }, - { - id: 288, - }, - { - id: 289, - }, - { - id: 290, - }, - { - id: 291, - }, - { - id: 292, - }, - { - id: 293, - }, - { - id: 294, - }, - { - id: 295, - }, - { - id: 296, - }, - { - id: 297, - }, - { - id: 298, - }, - { - id: 299, - }, - { - id: 300, - }, - { - id: 301, - }, - { - id: 302, - }, - { - id: 303, - }, - { - id: 304, - }, - { - id: 305, - }, - { - id: 306, - }, - { - id: 307, - }, - { - id: 308, - }, - { - id: 309, - }, - { - id: 310, - }, - { - id: 311, - }, - { - id: 312, - }, - { - id: 313, - }, - { - id: 314, - }, - { - id: 315, - }, - { - id: 316, - }, - { - id: 317, - }, - { - id: 318, - }, - { - id: 319, - }, - { - id: 320, - }, - { - id: 321, - }, - { - id: 322, - }, - { - id: 323, - }, - { - id: 324, - }, - { - id: 325, - }, - { - id: 326, - }, - { - id: 327, - }, - { - id: 328, - }, - { - id: 329, - }, - { - id: 330, - }, - { - id: 331, - }, - { - id: 332, - }, - { - id: 333, - }, - { - id: 334, - }, - { - id: 335, - }, - { - id: 336, - }, - { - id: 337, - }, - { - id: 338, - }, - { - id: 339, - }, - { - id: 340, - }, - { - id: 341, - }, - { - id: 342, - }, - { - id: 343, - }, - { - id: 344, - }, - { - id: 345, - }, - { - id: 346, - }, - { - id: 347, - }, - { - id: 348, - }, - { - id: 349, - }, - { - id: 350, - }, + { id: 0 }, + { id: 1 }, + { id: 2 }, + { id: 3 }, + { id: 4 }, + { id: 5 }, + { id: 6 }, + { id: 7 }, + { id: 8 }, + { id: 9 }, + { id: 10 }, + { id: 11 }, + { id: 12 }, + { id: 13 }, + { id: 14 }, + { id: 15 }, + { id: 16 }, + { id: 17 }, + { id: 18 }, + { id: 19 }, + { id: 20 }, + { id: 21 }, + { id: 22 }, + { id: 23 }, + { id: 24 }, + { id: 25 }, + { id: 26 }, + { id: 27 }, + { id: 28 }, + { id: 29 }, + { id: 30 }, + { id: 31 }, + { id: 32 }, + { id: 33 }, + { id: 34 }, + { id: 35 }, + { id: 36 }, + { id: 37 }, + { id: 38 }, + { id: 39 }, + { id: 40 }, + { id: 41 }, + { id: 42 }, + { id: 43 }, + { id: 44 }, + { id: 45 }, + { id: 46 }, + { id: 47 }, + { id: 48 }, + { id: 49 }, + { id: 50 }, + { id: 51 }, + { id: 52 }, + { id: 53 }, + { id: 54 }, + { id: 55 }, + { id: 56 }, + { id: 57 }, + { id: 58 }, + { id: 59 }, + { id: 60 }, + { id: 61 }, + { id: 62 }, + { id: 63 }, + { id: 64 }, + { id: 65 }, + { id: 66 }, + { id: 67 }, + { id: 68 }, + { id: 69 }, + { id: 70 }, + { id: 71 }, + { id: 72 }, + { id: 73 }, + { id: 74 }, + { id: 75 }, + { id: 76 }, + { id: 77 }, + { id: 78 }, + { id: 79 }, + { id: 80 }, + { id: 81 }, + { id: 82 }, + { id: 83 }, + { id: 84 }, + { id: 85 }, + { id: 86 }, + { id: 87 }, + { id: 88 }, + { id: 89 }, + { id: 90 }, + { id: 91 }, + { id: 92 }, + { id: 93 }, + { id: 94 }, + { id: 95 }, + { id: 96 }, + { id: 97 }, + { id: 98 }, + { id: 99 }, + { id: 100 }, + { id: 101 }, + { id: 102 }, + { id: 103 }, + { id: 104 }, + { id: 105 }, + { id: 106 }, + { id: 107 }, + { id: 108 }, + { id: 109 }, + { id: 110 }, + { id: 111 }, + { id: 112 }, + { id: 113 }, + { id: 114 }, + { id: 115 }, + { id: 116 }, + { id: 117 }, + { id: 118 }, + { id: 119 }, + { id: 120 }, + { id: 121 }, + { id: 122 }, + { id: 123 }, + { id: 124 }, + { id: 125 }, + { id: 126 }, + { id: 127 }, + { id: 128 }, + { id: 129 }, + { id: 130 }, + { id: 131 }, + { id: 132 }, + { id: 133 }, + { id: 134 }, + { id: 135 }, + { id: 136 }, + { id: 137 }, + { id: 138 }, + { id: 139 }, + { id: 140 }, + { id: 141 }, + { id: 142 }, + { id: 143 }, + { id: 144 }, + { id: 145 }, + { id: 146 }, + { id: 147 }, + { id: 148 }, + { id: 149 }, + { id: 150 }, + { id: 151 }, + { id: 152 }, + { id: 153 }, + { id: 154 }, + { id: 155 }, + { id: 156 }, + { id: 157 }, + { id: 158 }, + { id: 159 }, + { id: 160 }, + { id: 161 }, + { id: 162 }, + { id: 163 }, + { id: 164 }, + { id: 165 }, + { id: 166 }, + { id: 167 }, + { id: 168 }, + { id: 169 }, + { id: 170 }, + { id: 171 }, + { id: 172 }, + { id: 173 }, + { id: 174 }, + { id: 175 }, + { id: 176 }, + { id: 177 }, + { id: 178 }, + { id: 179 }, + { id: 180 }, + { id: 181 }, + { id: 182 }, + { id: 183 }, + { id: 184 }, + { id: 185 }, + { id: 186 }, + { id: 187 }, + { id: 188 }, + { id: 189 }, + { id: 190 }, + { id: 191 }, + { id: 192 }, + { id: 193 }, + { id: 194 }, + { id: 195 }, + { id: 196 }, + { id: 197 }, + { id: 198 }, + { id: 199 }, + { id: 200 }, + { id: 201 }, + { id: 202 }, + { id: 203 }, + { id: 204 }, + { id: 205 }, + { id: 206 }, + { id: 207 }, + { id: 208 }, + { id: 209 }, + { id: 210 }, + { id: 211 }, + { id: 212 }, + { id: 213 }, + { id: 214 }, + { id: 215 }, + { id: 216 }, + { id: 217 }, + { id: 218 }, + { id: 219 }, + { id: 220 }, + { id: 221 }, + { id: 222 }, + { id: 223 }, + { id: 224 }, + { id: 225 }, + { id: 226 }, + { id: 227 }, + { id: 228 }, + { id: 229 }, + { id: 230 }, + { id: 231 }, + { id: 232 }, + { id: 233 }, + { id: 234 }, + { id: 235 }, + { id: 236 }, + { id: 237 }, + { id: 238 }, + { id: 239 }, + { id: 240 }, + { id: 241 }, + { id: 242 }, + { id: 243 }, + { id: 244 }, + { id: 245 }, + { id: 246 }, + { id: 247 }, + { id: 248 }, + { id: 249 }, + { id: 250 }, + { id: 251 }, + { id: 252 }, + { id: 253 }, + { id: 254 }, + { id: 255 }, + { id: 256 }, + { id: 257 }, + { id: 258 }, + { id: 259 }, + { id: 260 }, + { id: 261 }, + { id: 262 }, + { id: 263 }, + { id: 264 }, + { id: 265 }, + { id: 266 }, + { id: 267 }, + { id: 268 }, + { id: 269 }, + { id: 270 }, + { id: 271 }, + { id: 272 }, + { id: 273 }, + { id: 274 }, + { id: 275 }, + { id: 276 }, + { id: 277 }, + { id: 278 }, + { id: 279 }, + { id: 280 }, + { id: 281 }, + { id: 282 }, + { id: 283 }, + { id: 284 }, + { id: 285 }, + { id: 286 }, + { id: 287 }, + { id: 288 }, + { id: 289 }, + { id: 290 }, + { id: 291 }, + { id: 292 }, + { id: 293 }, + { id: 294 }, + { id: 295 }, + { id: 296 }, + { id: 297 }, + { id: 298 }, + { id: 299 }, + { id: 300 }, + { id: 301 }, + { id: 302 }, + { id: 303 }, + { id: 304 }, + { id: 305 }, + { id: 306 }, + { id: 307 }, + { id: 308 }, + { id: 309 }, + { id: 310 }, + { id: 311 }, + { id: 312 }, + { id: 313 }, + { id: 314 }, + { id: 315 }, + { id: 316 }, + { id: 317 }, + { id: 318 }, + { id: 319 }, + { id: 320 }, + { id: 321 }, + { id: 322 }, + { id: 323 }, + { id: 324 }, + { id: 325 }, + { id: 326 }, + { id: 327 }, + { id: 328 }, + { id: 329 }, + { id: 330 }, + { id: 331 }, + { id: 332 }, + { id: 333 }, + { id: 334 }, + { id: 335 }, + { id: 336 }, + { id: 337 }, + { id: 338 }, + { id: 339 }, + { id: 340 }, + { id: 341 }, + { id: 342 }, + { id: 343 }, + { id: 344 }, + { id: 345 }, + { id: 346 }, + { id: 347 }, + { id: 348 }, + { id: 349 }, + { id: 350 }, ], }, enablePartialFailure: true, }, - context: { - ip: '14.5.67.21', - library: { - name: 'http', - }, - }, + context: { ip: '14.5.67.21', library: { name: 'http' } }, timestamp: '2020-02-02T00:23:09.544Z', }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, }, ], destType: 'marketo_static_list', @@ -1197,12 +461,7 @@ export const data = [ 'Content-Type': 'application/json', }, params: {}, - body: { - JSON: {}, - JSON_ARRAY: {}, - XML: {}, - FORM: {}, - }, + body: { JSON: {}, JSON_ARRAY: {}, XML: {}, FORM: {} }, files: {}, }, { @@ -1216,22 +475,12 @@ export const data = [ 'Content-Type': 'application/json', }, params: {}, - body: { - JSON: {}, - JSON_ARRAY: {}, - XML: {}, - FORM: {}, - }, + body: { JSON: {}, JSON_ARRAY: {}, XML: {}, FORM: {} }, files: {}, }, ], metadata: [ - { - destInfo: { - authKey: '1zia9wKshXt80YksLmUdJnr7IHI', - }, - jobId: 1, - }, + { destInfo: { authKey: '1zia9wKshXt80YksLmUdJnr7IHI' }, jobId: 1, userId: 'u1' }, ], batched: false, statusCode: 200, @@ -1269,12 +518,7 @@ export const data = [ 'Content-Type': 'application/json', }, params: {}, - body: { - JSON: {}, - JSON_ARRAY: {}, - XML: {}, - FORM: {}, - }, + body: { JSON: {}, JSON_ARRAY: {}, XML: {}, FORM: {} }, files: {}, }, { @@ -1288,22 +532,12 @@ export const data = [ 'Content-Type': 'application/json', }, params: {}, - body: { - JSON: {}, - JSON_ARRAY: {}, - XML: {}, - FORM: {}, - }, + body: { JSON: {}, JSON_ARRAY: {}, XML: {}, FORM: {} }, files: {}, }, ], metadata: [ - { - destInfo: { - authKey: '1zia9wKshXt80YksLmUdJnr7IHI', - }, - jobId: 2, - }, + { destInfo: { authKey: '1zia9wKshXt80YksLmUdJnr7IHI' }, jobId: 2, userId: 'u1' }, ], batched: false, statusCode: 200, @@ -1367,9 +601,7 @@ export const data = [ message: { type: 'record', action: 'insert', - fields: { - id: 1001, - }, + fields: { id: 1001 }, channel: 'sources', context: { sources: { @@ -1378,20 +610,13 @@ export const data = [ job_run_id: 'ck99nbd2kqiljdihhkh0', task_run_id: 'ck99nbd2kqiljdihhkhg', }, - externalId: [ - { - type: 'marketoStaticListId', - identifierType: 'id', - }, - ], + externalId: [{ type: 'marketoStaticListId', identifierType: 'id' }], destinationFields: 'id', mappedToDestination: 'true', }, recordId: '3', }, - metadata: { - jobId: 1, - }, + metadata: { jobId: 1, userId: 'u1' }, }, { destination: { @@ -1417,9 +642,7 @@ export const data = [ message: { type: 'record', action: 'insert', - fields: { - id: 1002, - }, + fields: { id: 1002 }, channel: 'sources', context: { sources: { @@ -1428,20 +651,13 @@ export const data = [ job_run_id: 'ck99nbd2kqiljdihhkh0', task_run_id: 'ck99nbd2kqiljdihhkhg', }, - externalId: [ - { - type: 'marketoStaticListId', - identifierType: 'id', - }, - ], + externalId: [{ type: 'marketoStaticListId', identifierType: 'id' }], destinationFields: 'id', mappedToDestination: 'true', }, recordId: '3', }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, }, { destination: { @@ -1467,9 +683,7 @@ export const data = [ message: { type: 'record', action: 'insert', - fields: { - id: 1003, - }, + fields: { id: 1003 }, channel: 'sources', context: { sources: { @@ -1478,20 +692,13 @@ export const data = [ job_run_id: 'ck99nbd2kqiljdihhkh0', task_run_id: 'ck99nbd2kqiljdihhkhg', }, - externalId: [ - { - type: 'marketoStaticListId', - identifierType: 'id', - }, - ], + externalId: [{ type: 'marketoStaticListId', identifierType: 'id' }], destinationFields: 'id', mappedToDestination: 'true', }, recordId: '3', }, - metadata: { - jobId: 3, - }, + metadata: { jobId: 3, userId: 'u1' }, }, { destination: { @@ -1518,12 +725,7 @@ export const data = [ action: 'delete', context: { destinationFields: 'id', - externalId: [ - { - identifierType: 'id', - type: 'marketoStaticListId', - }, - ], + externalId: [{ identifierType: 'id', type: 'marketoStaticListId' }], mappedToDestination: 'true', sources: { job_id: 'sf', @@ -1534,14 +736,10 @@ export const data = [ }, recordId: '2', rudderId: '2', - fields: { - id: '2001', - }, + fields: { id: '2001' }, type: 'record', }, - metadata: { - jobId: 4, - }, + metadata: { jobId: 4, userId: 'u1' }, }, { destination: { @@ -1568,12 +766,7 @@ export const data = [ action: 'delete', context: { destinationFields: 'id', - externalId: [ - { - identifierType: 'id', - type: 'marketoStaticListId', - }, - ], + externalId: [{ identifierType: 'id', type: 'marketoStaticListId' }], mappedToDestination: 'true', sources: { job_id: 'sf', @@ -1584,14 +777,10 @@ export const data = [ }, recordId: '2', rudderId: '2', - fields: { - id: '2002', - }, + fields: { id: '2002' }, type: 'record', }, - metadata: { - jobId: 5, - }, + metadata: { jobId: 5, userId: 'u1' }, }, { destination: { @@ -1618,12 +807,7 @@ export const data = [ action: 'delete', context: { destinationFields: 'id', - externalId: [ - { - identifierType: 'id', - type: 'marketoStaticListId', - }, - ], + externalId: [{ identifierType: 'id', type: 'marketoStaticListId' }], mappedToDestination: 'true', sources: { job_id: 'sf', @@ -1634,14 +818,10 @@ export const data = [ }, recordId: '2', rudderId: '2', - fields: { - id: '2003', - }, + fields: { id: '2003' }, type: 'record', }, - metadata: { - jobId: 6, - }, + metadata: { jobId: 6, userId: 'u1' }, }, { destination: { @@ -1671,42 +851,15 @@ export const data = [ type: 'audiencelist', properties: { listData: { - add: [ - { - id: 101, - }, - { - id: 102, - }, - { - id: 103, - }, - ], - remove: [ - { - id: 4, - }, - { - id: 5, - }, - { - id: 6, - }, - ], + add: [{ id: 101 }, { id: 102 }, { id: 103 }], + remove: [{ id: 4 }, { id: 5 }, { id: 6 }], }, enablePartialFailure: true, }, - context: { - ip: '14.5.67.21', - library: { - name: 'http', - }, - }, + context: { ip: '14.5.67.21', library: { name: 'http' } }, timestamp: '2020-02-02T00:23:09.544Z', }, - metadata: { - jobId: 7, - }, + metadata: { jobId: 7, userId: 'u1' }, }, { destination: { @@ -1737,1074 +890,365 @@ export const data = [ properties: { listData: { add: [ - { - id: 0, - }, - { - id: 1, - }, - { - id: 2, - }, - { - id: 3, - }, - { - id: 4, - }, - { - id: 5, - }, - { - id: 6, - }, - { - id: 7, - }, - { - id: 8, - }, - { - id: 9, - }, - { - id: 10, - }, - { - id: 11, - }, - { - id: 12, - }, - { - id: 13, - }, - { - id: 14, - }, - { - id: 15, - }, - { - id: 16, - }, - { - id: 17, - }, - { - id: 18, - }, - { - id: 19, - }, - { - id: 20, - }, - { - id: 21, - }, - { - id: 22, - }, - { - id: 23, - }, - { - id: 24, - }, - { - id: 25, - }, - { - id: 26, - }, - { - id: 27, - }, - { - id: 28, - }, - { - id: 29, - }, - { - id: 30, - }, - { - id: 31, - }, - { - id: 32, - }, - { - id: 33, - }, - { - id: 34, - }, - { - id: 35, - }, - { - id: 36, - }, - { - id: 37, - }, - { - id: 38, - }, - { - id: 39, - }, - { - id: 40, - }, - { - id: 41, - }, - { - id: 42, - }, - { - id: 43, - }, - { - id: 44, - }, - { - id: 45, - }, - { - id: 46, - }, - { - id: 47, - }, - { - id: 48, - }, - { - id: 49, - }, - { - id: 50, - }, - { - id: 51, - }, - { - id: 52, - }, - { - id: 53, - }, - { - id: 54, - }, - { - id: 55, - }, - { - id: 56, - }, - { - id: 57, - }, - { - id: 58, - }, - { - id: 59, - }, - { - id: 60, - }, - { - id: 61, - }, - { - id: 62, - }, - { - id: 63, - }, - { - id: 64, - }, - { - id: 65, - }, - { - id: 66, - }, - { - id: 67, - }, - { - id: 68, - }, - { - id: 69, - }, - { - id: 70, - }, - { - id: 71, - }, - { - id: 72, - }, - { - id: 73, - }, - { - id: 74, - }, - { - id: 75, - }, - { - id: 76, - }, - { - id: 77, - }, - { - id: 78, - }, - { - id: 79, - }, - { - id: 80, - }, - { - id: 81, - }, - { - id: 82, - }, - { - id: 83, - }, - { - id: 84, - }, - { - id: 85, - }, - { - id: 86, - }, - { - id: 87, - }, - { - id: 88, - }, - { - id: 89, - }, - { - id: 90, - }, - { - id: 91, - }, - { - id: 92, - }, - { - id: 93, - }, - { - id: 94, - }, - { - id: 95, - }, - { - id: 96, - }, - { - id: 97, - }, - { - id: 98, - }, - { - id: 99, - }, - { - id: 100, - }, - { - id: 101, - }, - { - id: 102, - }, - { - id: 103, - }, - { - id: 104, - }, - { - id: 105, - }, - { - id: 106, - }, - { - id: 107, - }, - { - id: 108, - }, - { - id: 109, - }, - { - id: 110, - }, - { - id: 111, - }, - { - id: 112, - }, - { - id: 113, - }, - { - id: 114, - }, - { - id: 115, - }, - { - id: 116, - }, - { - id: 117, - }, - { - id: 118, - }, - { - id: 119, - }, - { - id: 120, - }, - { - id: 121, - }, - { - id: 122, - }, - { - id: 123, - }, - { - id: 124, - }, - { - id: 125, - }, - { - id: 126, - }, - { - id: 127, - }, - { - id: 128, - }, - { - id: 129, - }, - { - id: 130, - }, - { - id: 131, - }, - { - id: 132, - }, - { - id: 133, - }, - { - id: 134, - }, - { - id: 135, - }, - { - id: 136, - }, - { - id: 137, - }, - { - id: 138, - }, - { - id: 139, - }, - { - id: 140, - }, - { - id: 141, - }, - { - id: 142, - }, - { - id: 143, - }, - { - id: 144, - }, - { - id: 145, - }, - { - id: 146, - }, - { - id: 147, - }, - { - id: 148, - }, - { - id: 149, - }, - { - id: 150, - }, - { - id: 151, - }, - { - id: 152, - }, - { - id: 153, - }, - { - id: 154, - }, - { - id: 155, - }, - { - id: 156, - }, - { - id: 157, - }, - { - id: 158, - }, - { - id: 159, - }, - { - id: 160, - }, - { - id: 161, - }, - { - id: 162, - }, - { - id: 163, - }, - { - id: 164, - }, - { - id: 165, - }, - { - id: 166, - }, - { - id: 167, - }, - { - id: 168, - }, - { - id: 169, - }, - { - id: 170, - }, - { - id: 171, - }, - { - id: 172, - }, - { - id: 173, - }, - { - id: 174, - }, - { - id: 175, - }, - { - id: 176, - }, - { - id: 177, - }, - { - id: 178, - }, - { - id: 179, - }, - { - id: 180, - }, - { - id: 181, - }, - { - id: 182, - }, - { - id: 183, - }, - { - id: 184, - }, - { - id: 185, - }, - { - id: 186, - }, - { - id: 187, - }, - { - id: 188, - }, - { - id: 189, - }, - { - id: 190, - }, - { - id: 191, - }, - { - id: 192, - }, - { - id: 193, - }, - { - id: 194, - }, - { - id: 195, - }, - { - id: 196, - }, - { - id: 197, - }, - { - id: 198, - }, - { - id: 199, - }, - { - id: 200, - }, - { - id: 201, - }, - { - id: 202, - }, - { - id: 203, - }, - { - id: 204, - }, - { - id: 205, - }, - { - id: 206, - }, - { - id: 207, - }, - { - id: 208, - }, - { - id: 209, - }, - { - id: 210, - }, - { - id: 211, - }, - { - id: 212, - }, - { - id: 213, - }, - { - id: 214, - }, - { - id: 215, - }, - { - id: 216, - }, - { - id: 217, - }, - { - id: 218, - }, - { - id: 219, - }, - { - id: 220, - }, - { - id: 221, - }, - { - id: 222, - }, - { - id: 223, - }, - { - id: 224, - }, - { - id: 225, - }, - { - id: 226, - }, - { - id: 227, - }, - { - id: 228, - }, - { - id: 229, - }, - { - id: 230, - }, - { - id: 231, - }, - { - id: 232, - }, - { - id: 233, - }, - { - id: 234, - }, - { - id: 235, - }, - { - id: 236, - }, - { - id: 237, - }, - { - id: 238, - }, - { - id: 239, - }, - { - id: 240, - }, - { - id: 241, - }, - { - id: 242, - }, - { - id: 243, - }, - { - id: 244, - }, - { - id: 245, - }, - { - id: 246, - }, - { - id: 247, - }, - { - id: 248, - }, - { - id: 249, - }, - { - id: 250, - }, - { - id: 251, - }, - { - id: 252, - }, - { - id: 253, - }, - { - id: 254, - }, - { - id: 255, - }, - { - id: 256, - }, - { - id: 257, - }, - { - id: 258, - }, - { - id: 259, - }, - { - id: 260, - }, - { - id: 261, - }, - { - id: 262, - }, - { - id: 263, - }, - { - id: 264, - }, - { - id: 265, - }, - { - id: 266, - }, - { - id: 267, - }, - { - id: 268, - }, - { - id: 269, - }, - { - id: 270, - }, - { - id: 271, - }, - { - id: 272, - }, - { - id: 273, - }, - { - id: 274, - }, - { - id: 275, - }, - { - id: 276, - }, - { - id: 277, - }, - { - id: 278, - }, - { - id: 279, - }, - { - id: 280, - }, - { - id: 281, - }, - { - id: 282, - }, - { - id: 283, - }, - { - id: 284, - }, - { - id: 285, - }, - { - id: 286, - }, - { - id: 287, - }, - { - id: 288, - }, - { - id: 289, - }, - { - id: 290, - }, - { - id: 291, - }, - { - id: 292, - }, - { - id: 293, - }, - { - id: 294, - }, - { - id: 295, - }, - { - id: 296, - }, - { - id: 297, - }, - { - id: 298, - }, - { - id: 299, - }, - { - id: 300, - }, - { - id: 301, - }, - { - id: 302, - }, - { - id: 303, - }, - { - id: 304, - }, - { - id: 305, - }, - { - id: 306, - }, - { - id: 307, - }, - { - id: 308, - }, - { - id: 309, - }, - { - id: 310, - }, - { - id: 311, - }, - { - id: 312, - }, - { - id: 313, - }, - { - id: 314, - }, - { - id: 315, - }, - { - id: 316, - }, - { - id: 317, - }, - { - id: 318, - }, - { - id: 319, - }, - { - id: 320, - }, - { - id: 321, - }, - { - id: 322, - }, - { - id: 323, - }, - { - id: 324, - }, - { - id: 325, - }, - { - id: 326, - }, - { - id: 327, - }, - { - id: 328, - }, - { - id: 329, - }, - { - id: 330, - }, - { - id: 331, - }, - { - id: 332, - }, - { - id: 333, - }, - { - id: 334, - }, - { - id: 335, - }, - { - id: 336, - }, - { - id: 337, - }, - { - id: 338, - }, - { - id: 339, - }, - { - id: 340, - }, - { - id: 341, - }, - { - id: 342, - }, - { - id: 343, - }, - { - id: 344, - }, - { - id: 345, - }, - { - id: 346, - }, - { - id: 347, - }, - { - id: 348, - }, - { - id: 349, - }, - { - id: 350, - }, + { id: 0 }, + { id: 1 }, + { id: 2 }, + { id: 3 }, + { id: 4 }, + { id: 5 }, + { id: 6 }, + { id: 7 }, + { id: 8 }, + { id: 9 }, + { id: 10 }, + { id: 11 }, + { id: 12 }, + { id: 13 }, + { id: 14 }, + { id: 15 }, + { id: 16 }, + { id: 17 }, + { id: 18 }, + { id: 19 }, + { id: 20 }, + { id: 21 }, + { id: 22 }, + { id: 23 }, + { id: 24 }, + { id: 25 }, + { id: 26 }, + { id: 27 }, + { id: 28 }, + { id: 29 }, + { id: 30 }, + { id: 31 }, + { id: 32 }, + { id: 33 }, + { id: 34 }, + { id: 35 }, + { id: 36 }, + { id: 37 }, + { id: 38 }, + { id: 39 }, + { id: 40 }, + { id: 41 }, + { id: 42 }, + { id: 43 }, + { id: 44 }, + { id: 45 }, + { id: 46 }, + { id: 47 }, + { id: 48 }, + { id: 49 }, + { id: 50 }, + { id: 51 }, + { id: 52 }, + { id: 53 }, + { id: 54 }, + { id: 55 }, + { id: 56 }, + { id: 57 }, + { id: 58 }, + { id: 59 }, + { id: 60 }, + { id: 61 }, + { id: 62 }, + { id: 63 }, + { id: 64 }, + { id: 65 }, + { id: 66 }, + { id: 67 }, + { id: 68 }, + { id: 69 }, + { id: 70 }, + { id: 71 }, + { id: 72 }, + { id: 73 }, + { id: 74 }, + { id: 75 }, + { id: 76 }, + { id: 77 }, + { id: 78 }, + { id: 79 }, + { id: 80 }, + { id: 81 }, + { id: 82 }, + { id: 83 }, + { id: 84 }, + { id: 85 }, + { id: 86 }, + { id: 87 }, + { id: 88 }, + { id: 89 }, + { id: 90 }, + { id: 91 }, + { id: 92 }, + { id: 93 }, + { id: 94 }, + { id: 95 }, + { id: 96 }, + { id: 97 }, + { id: 98 }, + { id: 99 }, + { id: 100 }, + { id: 101 }, + { id: 102 }, + { id: 103 }, + { id: 104 }, + { id: 105 }, + { id: 106 }, + { id: 107 }, + { id: 108 }, + { id: 109 }, + { id: 110 }, + { id: 111 }, + { id: 112 }, + { id: 113 }, + { id: 114 }, + { id: 115 }, + { id: 116 }, + { id: 117 }, + { id: 118 }, + { id: 119 }, + { id: 120 }, + { id: 121 }, + { id: 122 }, + { id: 123 }, + { id: 124 }, + { id: 125 }, + { id: 126 }, + { id: 127 }, + { id: 128 }, + { id: 129 }, + { id: 130 }, + { id: 131 }, + { id: 132 }, + { id: 133 }, + { id: 134 }, + { id: 135 }, + { id: 136 }, + { id: 137 }, + { id: 138 }, + { id: 139 }, + { id: 140 }, + { id: 141 }, + { id: 142 }, + { id: 143 }, + { id: 144 }, + { id: 145 }, + { id: 146 }, + { id: 147 }, + { id: 148 }, + { id: 149 }, + { id: 150 }, + { id: 151 }, + { id: 152 }, + { id: 153 }, + { id: 154 }, + { id: 155 }, + { id: 156 }, + { id: 157 }, + { id: 158 }, + { id: 159 }, + { id: 160 }, + { id: 161 }, + { id: 162 }, + { id: 163 }, + { id: 164 }, + { id: 165 }, + { id: 166 }, + { id: 167 }, + { id: 168 }, + { id: 169 }, + { id: 170 }, + { id: 171 }, + { id: 172 }, + { id: 173 }, + { id: 174 }, + { id: 175 }, + { id: 176 }, + { id: 177 }, + { id: 178 }, + { id: 179 }, + { id: 180 }, + { id: 181 }, + { id: 182 }, + { id: 183 }, + { id: 184 }, + { id: 185 }, + { id: 186 }, + { id: 187 }, + { id: 188 }, + { id: 189 }, + { id: 190 }, + { id: 191 }, + { id: 192 }, + { id: 193 }, + { id: 194 }, + { id: 195 }, + { id: 196 }, + { id: 197 }, + { id: 198 }, + { id: 199 }, + { id: 200 }, + { id: 201 }, + { id: 202 }, + { id: 203 }, + { id: 204 }, + { id: 205 }, + { id: 206 }, + { id: 207 }, + { id: 208 }, + { id: 209 }, + { id: 210 }, + { id: 211 }, + { id: 212 }, + { id: 213 }, + { id: 214 }, + { id: 215 }, + { id: 216 }, + { id: 217 }, + { id: 218 }, + { id: 219 }, + { id: 220 }, + { id: 221 }, + { id: 222 }, + { id: 223 }, + { id: 224 }, + { id: 225 }, + { id: 226 }, + { id: 227 }, + { id: 228 }, + { id: 229 }, + { id: 230 }, + { id: 231 }, + { id: 232 }, + { id: 233 }, + { id: 234 }, + { id: 235 }, + { id: 236 }, + { id: 237 }, + { id: 238 }, + { id: 239 }, + { id: 240 }, + { id: 241 }, + { id: 242 }, + { id: 243 }, + { id: 244 }, + { id: 245 }, + { id: 246 }, + { id: 247 }, + { id: 248 }, + { id: 249 }, + { id: 250 }, + { id: 251 }, + { id: 252 }, + { id: 253 }, + { id: 254 }, + { id: 255 }, + { id: 256 }, + { id: 257 }, + { id: 258 }, + { id: 259 }, + { id: 260 }, + { id: 261 }, + { id: 262 }, + { id: 263 }, + { id: 264 }, + { id: 265 }, + { id: 266 }, + { id: 267 }, + { id: 268 }, + { id: 269 }, + { id: 270 }, + { id: 271 }, + { id: 272 }, + { id: 273 }, + { id: 274 }, + { id: 275 }, + { id: 276 }, + { id: 277 }, + { id: 278 }, + { id: 279 }, + { id: 280 }, + { id: 281 }, + { id: 282 }, + { id: 283 }, + { id: 284 }, + { id: 285 }, + { id: 286 }, + { id: 287 }, + { id: 288 }, + { id: 289 }, + { id: 290 }, + { id: 291 }, + { id: 292 }, + { id: 293 }, + { id: 294 }, + { id: 295 }, + { id: 296 }, + { id: 297 }, + { id: 298 }, + { id: 299 }, + { id: 300 }, + { id: 301 }, + { id: 302 }, + { id: 303 }, + { id: 304 }, + { id: 305 }, + { id: 306 }, + { id: 307 }, + { id: 308 }, + { id: 309 }, + { id: 310 }, + { id: 311 }, + { id: 312 }, + { id: 313 }, + { id: 314 }, + { id: 315 }, + { id: 316 }, + { id: 317 }, + { id: 318 }, + { id: 319 }, + { id: 320 }, + { id: 321 }, + { id: 322 }, + { id: 323 }, + { id: 324 }, + { id: 325 }, + { id: 326 }, + { id: 327 }, + { id: 328 }, + { id: 329 }, + { id: 330 }, + { id: 331 }, + { id: 332 }, + { id: 333 }, + { id: 334 }, + { id: 335 }, + { id: 336 }, + { id: 337 }, + { id: 338 }, + { id: 339 }, + { id: 340 }, + { id: 341 }, + { id: 342 }, + { id: 343 }, + { id: 344 }, + { id: 345 }, + { id: 346 }, + { id: 347 }, + { id: 348 }, + { id: 349 }, + { id: 350 }, ], }, enablePartialFailure: true, }, - context: { - ip: '14.5.67.21', - library: { - name: 'http', - }, - }, + context: { ip: '14.5.67.21', library: { name: 'http' } }, timestamp: '2020-02-02T00:23:09.544Z', }, - metadata: { - jobId: 8, - }, + metadata: { jobId: 8, userId: 'u1' }, }, ], destType: 'marketo_static_list', @@ -2830,34 +1274,14 @@ export const data = [ 'Content-Type': 'application/json', }, params: {}, - body: { - JSON: {}, - JSON_ARRAY: {}, - XML: {}, - FORM: {}, - }, + body: { JSON: {}, JSON_ARRAY: {}, XML: {}, FORM: {} }, files: {}, }, ], metadata: [ - { - jobId: 4, - destInfo: { - authKey: '1zwa1wKshSt81YksKmUdJnr4IOK', - }, - }, - { - jobId: 5, - destInfo: { - authKey: '1zwa1wKshSt81YksKmUdJnr4IOK', - }, - }, - { - jobId: 6, - destInfo: { - authKey: '1zwa1wKshSt81YksKmUdJnr4IOK', - }, - }, + { jobId: 4, destInfo: { authKey: '1zwa1wKshSt81YksKmUdJnr4IOK' }, userId: 'u1' }, + { jobId: 5, destInfo: { authKey: '1zwa1wKshSt81YksKmUdJnr4IOK' }, userId: 'u1' }, + { jobId: 6, destInfo: { authKey: '1zwa1wKshSt81YksKmUdJnr4IOK' }, userId: 'u1' }, ], batched: true, statusCode: 200, @@ -2895,34 +1319,14 @@ export const data = [ 'Content-Type': 'application/json', }, params: {}, - body: { - JSON: {}, - JSON_ARRAY: {}, - XML: {}, - FORM: {}, - }, + body: { JSON: {}, JSON_ARRAY: {}, XML: {}, FORM: {} }, files: {}, }, ], metadata: [ - { - jobId: 1, - destInfo: { - authKey: '1zwa1wKshSt81YksKmUdJnr4IOK', - }, - }, - { - jobId: 2, - destInfo: { - authKey: '1zwa1wKshSt81YksKmUdJnr4IOK', - }, - }, - { - jobId: 3, - destInfo: { - authKey: '1zwa1wKshSt81YksKmUdJnr4IOK', - }, - }, + { jobId: 1, destInfo: { authKey: '1zwa1wKshSt81YksKmUdJnr4IOK' }, userId: 'u1' }, + { jobId: 2, destInfo: { authKey: '1zwa1wKshSt81YksKmUdJnr4IOK' }, userId: 'u1' }, + { jobId: 3, destInfo: { authKey: '1zwa1wKshSt81YksKmUdJnr4IOK' }, userId: 'u1' }, ], batched: true, statusCode: 200, @@ -2960,12 +1364,7 @@ export const data = [ 'Content-Type': 'application/json', }, params: {}, - body: { - JSON: {}, - JSON_ARRAY: {}, - XML: {}, - FORM: {}, - }, + body: { JSON: {}, JSON_ARRAY: {}, XML: {}, FORM: {} }, files: {}, }, { @@ -2979,22 +1378,12 @@ export const data = [ 'Content-Type': 'application/json', }, params: {}, - body: { - JSON: {}, - JSON_ARRAY: {}, - XML: {}, - FORM: {}, - }, + body: { JSON: {}, JSON_ARRAY: {}, XML: {}, FORM: {} }, files: {}, }, ], metadata: [ - { - jobId: 7, - destInfo: { - authKey: '1zia9wKshXt80YksLmUdJnr7IHI', - }, - }, + { jobId: 7, destInfo: { authKey: '1zia9wKshXt80YksLmUdJnr7IHI' }, userId: 'u1' }, ], batched: false, statusCode: 200, @@ -3032,12 +1421,7 @@ export const data = [ 'Content-Type': 'application/json', }, params: {}, - body: { - JSON: {}, - JSON_ARRAY: {}, - XML: {}, - FORM: {}, - }, + body: { JSON: {}, JSON_ARRAY: {}, XML: {}, FORM: {} }, files: {}, }, { @@ -3051,22 +1435,12 @@ export const data = [ 'Content-Type': 'application/json', }, params: {}, - body: { - JSON: {}, - JSON_ARRAY: {}, - XML: {}, - FORM: {}, - }, + body: { JSON: {}, JSON_ARRAY: {}, XML: {}, FORM: {} }, files: {}, }, ], metadata: [ - { - jobId: 8, - destInfo: { - authKey: '1zia9wKshXt80YksLmUdJnr7IHI', - }, - }, + { jobId: 8, destInfo: { authKey: '1zia9wKshXt80YksLmUdJnr7IHI' }, userId: 'u1' }, ], batched: false, statusCode: 200, @@ -3131,9 +1505,7 @@ export const data = [ message: { type: 'record', action: 'insert', - fields: { - id: 1001, - }, + fields: { id: 1001 }, channel: 'sources', context: { sources: { @@ -3142,20 +1514,13 @@ export const data = [ job_run_id: 'ck99nbd2kqiljdihhkh0', task_run_id: 'ck99nbd2kqiljdihhkhg', }, - externalId: [ - { - type: 'marketoStaticListId', - id: 'id001', - }, - ], + externalId: [{ type: 'marketoStaticListId', id: 'id001' }], destinationFields: 'id', mappedToDestination: 'true', }, recordId: '3', }, - metadata: { - jobId: 1, - }, + metadata: { jobId: 1, userId: 'u1' }, }, { destination: { @@ -3181,9 +1546,7 @@ export const data = [ message: { type: 'record', action: 'insert', - fields: { - id: 1002, - }, + fields: { id: 1002 }, channel: 'sources', context: { sources: { @@ -3192,20 +1555,13 @@ export const data = [ job_run_id: 'ck99nbd2kqiljdihhkh0', task_run_id: 'ck99nbd2kqiljdihhkhg', }, - externalId: [ - { - type: 'marketoStaticListId', - id: 'id002', - }, - ], + externalId: [{ type: 'marketoStaticListId', id: 'id002' }], destinationFields: 'id', mappedToDestination: 'true', }, recordId: '3', }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, }, { destination: { @@ -3231,9 +1587,7 @@ export const data = [ message: { type: 'record', action: 'insert', - fields: { - id: 1003, - }, + fields: { id: 1003 }, channel: 'sources', context: { sources: { @@ -3242,20 +1596,13 @@ export const data = [ job_run_id: 'ck99nbd2kqiljdihhkh0', task_run_id: 'ck99nbd2kqiljdihhkhg', }, - externalId: [ - { - type: 'marketoStaticListId', - id: 'id001', - }, - ], + externalId: [{ type: 'marketoStaticListId', id: 'id001' }], destinationFields: 'id', mappedToDestination: 'true', }, recordId: '3', }, - metadata: { - jobId: 3, - }, + metadata: { jobId: 3, userId: 'u1' }, }, { destination: { @@ -3282,12 +1629,7 @@ export const data = [ action: 'delete', context: { destinationFields: 'id', - externalId: [ - { - id: 'id002', - type: 'marketoStaticListId', - }, - ], + externalId: [{ id: 'id002', type: 'marketoStaticListId' }], mappedToDestination: 'true', sources: { job_id: 'sf', @@ -3298,14 +1640,10 @@ export const data = [ }, recordId: '2', rudderId: '2', - fields: { - id: '2001', - }, + fields: { id: '2001' }, type: 'record', }, - metadata: { - jobId: 4, - }, + metadata: { jobId: 4, userId: 'u1' }, }, { destination: { @@ -3332,12 +1670,7 @@ export const data = [ action: 'delete', context: { destinationFields: 'id', - externalId: [ - { - id: 'id001', - type: 'marketoStaticListId', - }, - ], + externalId: [{ id: 'id001', type: 'marketoStaticListId' }], mappedToDestination: 'true', sources: { job_id: 'sf', @@ -3348,14 +1681,10 @@ export const data = [ }, recordId: '2', rudderId: '2', - fields: { - id: '2002', - }, + fields: { id: '2002' }, type: 'record', }, - metadata: { - jobId: 5, - }, + metadata: { jobId: 5, userId: 'u1' }, }, { destination: { @@ -3382,12 +1711,7 @@ export const data = [ action: 'delete', context: { destinationFields: 'id', - externalId: [ - { - id: 'id002', - type: 'marketoStaticListId', - }, - ], + externalId: [{ id: 'id002', type: 'marketoStaticListId' }], mappedToDestination: 'true', sources: { job_id: 'sf', @@ -3398,14 +1722,10 @@ export const data = [ }, recordId: '2', rudderId: '2', - fields: { - id: '2003', - }, + fields: { id: '2003' }, type: 'record', }, - metadata: { - jobId: 6, - }, + metadata: { jobId: 6, userId: 'u1' }, }, ], }, @@ -3430,22 +1750,12 @@ export const data = [ 'Content-Type': 'application/json', }, params: {}, - body: { - JSON: {}, - JSON_ARRAY: {}, - XML: {}, - FORM: {}, - }, + body: { JSON: {}, JSON_ARRAY: {}, XML: {}, FORM: {} }, files: {}, }, ], metadata: [ - { - jobId: 5, - destInfo: { - authKey: '1zwa1wKshSt81YksKmUdJnr4IOK', - }, - }, + { jobId: 5, destInfo: { authKey: '1zwa1wKshSt81YksKmUdJnr4IOK' }, userId: 'u1' }, ], batched: true, statusCode: 200, @@ -3483,28 +1793,13 @@ export const data = [ 'Content-Type': 'application/json', }, params: {}, - body: { - JSON: {}, - JSON_ARRAY: {}, - XML: {}, - FORM: {}, - }, + body: { JSON: {}, JSON_ARRAY: {}, XML: {}, FORM: {} }, files: {}, }, ], metadata: [ - { - jobId: 1, - destInfo: { - authKey: '1zwa1wKshSt81YksKmUdJnr4IOK', - }, - }, - { - jobId: 3, - destInfo: { - authKey: '1zwa1wKshSt81YksKmUdJnr4IOK', - }, - }, + { jobId: 1, destInfo: { authKey: '1zwa1wKshSt81YksKmUdJnr4IOK' }, userId: 'u1' }, + { jobId: 3, destInfo: { authKey: '1zwa1wKshSt81YksKmUdJnr4IOK' }, userId: 'u1' }, ], batched: true, statusCode: 200, @@ -3542,28 +1837,13 @@ export const data = [ 'Content-Type': 'application/json', }, params: {}, - body: { - JSON: {}, - JSON_ARRAY: {}, - XML: {}, - FORM: {}, - }, + body: { JSON: {}, JSON_ARRAY: {}, XML: {}, FORM: {} }, files: {}, }, ], metadata: [ - { - jobId: 4, - destInfo: { - authKey: '1zwa1wKshSt81YksKmUdJnr4IOK', - }, - }, - { - jobId: 6, - destInfo: { - authKey: '1zwa1wKshSt81YksKmUdJnr4IOK', - }, - }, + { jobId: 4, destInfo: { authKey: '1zwa1wKshSt81YksKmUdJnr4IOK' }, userId: 'u1' }, + { jobId: 6, destInfo: { authKey: '1zwa1wKshSt81YksKmUdJnr4IOK' }, userId: 'u1' }, ], batched: true, statusCode: 200, @@ -3601,22 +1881,12 @@ export const data = [ 'Content-Type': 'application/json', }, params: {}, - body: { - JSON: {}, - JSON_ARRAY: {}, - XML: {}, - FORM: {}, - }, + body: { JSON: {}, JSON_ARRAY: {}, XML: {}, FORM: {} }, files: {}, }, ], metadata: [ - { - jobId: 2, - destInfo: { - authKey: '1zwa1wKshSt81YksKmUdJnr4IOK', - }, - }, + { jobId: 2, destInfo: { authKey: '1zwa1wKshSt81YksKmUdJnr4IOK' }, userId: 'u1' }, ], batched: true, statusCode: 200, diff --git a/test/integrations/destinations/mautic/router/data.ts b/test/integrations/destinations/mautic/router/data.ts index 9ac6c8714f..e0924053f8 100644 --- a/test/integrations/destinations/mautic/router/data.ts +++ b/test/integrations/destinations/mautic/router/data.ts @@ -14,9 +14,7 @@ export const data = [ anonymousId: 'anon-id-new', context: { ip: '14.5.67.21', - library: { - name: 'http', - }, + library: { name: 'http' }, traits: { firstName: 'Test', lastName: 'Rudderlabs', @@ -52,9 +50,7 @@ export const data = [ userName: 'TestRudderlabs45823@gmail.com', }, }, - metadata: { - jobId: 1, - }, + metadata: { jobId: 1, userId: 'u1' }, }, ], destType: 'mautic', @@ -105,11 +101,7 @@ export const data = [ }, files: {}, }, - metadata: [ - { - jobId: 1, - }, - ], + metadata: [{ jobId: 1, userId: 'u1' }], batched: false, statusCode: 200, destination: { @@ -141,9 +133,7 @@ export const data = [ anonymousId: 'anon-id-new', context: { ip: '14.5.67.21', - library: { - name: 'http', - }, + library: { name: 'http' }, traits: { firstName: 'Test', lastName: 'Rudderlabs', @@ -180,9 +170,7 @@ export const data = [ userName: 'abcdef', }, }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, }, ], destType: 'mautic', @@ -196,11 +184,7 @@ export const data = [ body: { output: [ { - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], statTags: { errorCategory: 'dataValidation', errorType: 'configuration', @@ -241,17 +225,8 @@ export const data = [ message: { userId: 'user123', groupId: '17', - context: { - externalId: [ - { - type: 'mauticContactId', - id: '246', - }, - ], - }, - traits: { - type: 'Segments', - }, + context: { externalId: [{ type: 'mauticContactId', id: '246' }] }, + traits: { type: 'Segments' }, type: 'group', }, destination: { @@ -262,9 +237,7 @@ export const data = [ userName: 'TestRudderlabs45823@gmail.com', }, }, - metadata: { - jobId: 3, - }, + metadata: { jobId: 3, userId: 'u1' }, }, ], destType: 'mautic', @@ -289,19 +262,10 @@ export const data = [ 'Basic VGVzdFJ1ZGRlcmxhYnM0NTgyM0BnbWFpbC5jb206ZHVtbXlQYXNzd29yZA==', }, params: {}, - body: { - JSON: {}, - JSON_ARRAY: {}, - XML: {}, - FORM: {}, - }, + body: { JSON: {}, JSON_ARRAY: {}, XML: {}, FORM: {} }, files: {}, }, - metadata: [ - { - jobId: 3, - }, - ], + metadata: [{ jobId: 3, userId: 'u1' }], batched: false, statusCode: 200, destination: { diff --git a/test/integrations/destinations/moengage/router/data.ts b/test/integrations/destinations/moengage/router/data.ts index a5664906e5..0f8a3de41b 100644 --- a/test/integrations/destinations/moengage/router/data.ts +++ b/test/integrations/destinations/moengage/router/data.ts @@ -21,15 +21,9 @@ export const data = [ namespace: 'com.rudderlabs.javascript', version: '1.1.6', }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.1.6', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.6' }, locale: 'en-GB', - os: { - name: '', - version: '', - }, + os: { name: '', version: '' }, page: { path: '/testing/script-test.html', referrer: '', @@ -37,13 +31,9 @@ export const data = [ title: '', url: 'http://localhost:3243/testing/script-test.html', }, - screen: { - density: 2, - }, + screen: { density: 2 }, traits: { - company: { - id: 'abc123', - }, + company: { id: 'abc123' }, createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', email: 'rudderTest@gmail.com', name: 'Rudder Test', @@ -53,9 +43,7 @@ export const data = [ 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36', }, event: 'Order Completed', - integrations: { - All: true, - }, + integrations: { All: true }, messageId: 'a0adfab9-baf7-4e09-a2ce-bbe2844c324a', originalTimestamp: '2020-10-16T08:10:12.782Z', properties: { @@ -125,9 +113,7 @@ export const data = [ type: 'track', userId: 'rudder123', }, - metadata: { - jobId: 1, - }, + metadata: { jobId: 1, userId: 'u1' }, destination: { ID: '1iuTZs6eEZVMm6GjRBe6bNShaL3', Name: 'MoEngage Testing', @@ -136,9 +122,7 @@ export const data = [ Name: 'MOENGAGE', DisplayName: 'MoEngage', Config: { - destConfig: { - defaultConfig: ['apiId', 'apiKey', 'region'], - }, + destConfig: { defaultConfig: ['apiId', 'apiKey', 'region'] }, excludeKeys: [], includeKeys: [], supportedSourceTypes: [ @@ -175,15 +159,9 @@ export const data = [ namespace: 'com.rudderlabs.javascript', version: '1.1.6', }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.1.6', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.6' }, locale: 'en-GB', - os: { - name: '', - version: '', - }, + os: { name: '', version: '' }, page: { path: '/testing/script-test.html', referrer: '', @@ -191,13 +169,9 @@ export const data = [ title: '', url: 'http://localhost:3243/testing/script-test.html', }, - screen: { - density: 2, - }, + screen: { density: 2 }, traits: { - company: { - id: 'abc123', - }, + company: { id: 'abc123' }, createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', email: 'rudderTest@gmail.com', name: 'Rudder Test', @@ -206,9 +180,7 @@ export const data = [ userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36', }, - integrations: { - All: true, - }, + integrations: { All: true }, messageId: 'e108eb05-f6cd-4624-ba8c-568f2e2b3f92', originalTimestamp: '2020-10-16T08:26:14.938Z', receivedAt: '2020-10-16T13:56:14.945+05:30', @@ -218,9 +190,7 @@ export const data = [ type: 'identify', userId: 'rudder123', }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, destination: { ID: '1iuTZs6eEZVMm6GjRBe6bNShaL3', Name: 'MoEngage Testing', @@ -229,9 +199,7 @@ export const data = [ Name: 'MOENGAGE', DisplayName: 'MoEngage', Config: { - destConfig: { - defaultConfig: ['apiId', 'apiKey', 'region'], - }, + destConfig: { defaultConfig: ['apiId', 'apiKey', 'region'] }, excludeKeys: [], includeKeys: [], supportedSourceTypes: [ @@ -354,11 +322,7 @@ export const data = [ files: {}, userId: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', }, - metadata: [ - { - jobId: 1, - }, - ], + metadata: [{ jobId: 1, userId: 'u1' }], batched: false, statusCode: 200, destination: { @@ -369,9 +333,7 @@ export const data = [ Name: 'MOENGAGE', DisplayName: 'MoEngage', Config: { - destConfig: { - defaultConfig: ['apiId', 'apiKey', 'region'], - }, + destConfig: { defaultConfig: ['apiId', 'apiKey', 'region'] }, excludeKeys: [], includeKeys: [], supportedSourceTypes: [ @@ -429,11 +391,7 @@ export const data = [ files: {}, userId: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', }, - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], batched: false, statusCode: 200, destination: { @@ -444,9 +402,7 @@ export const data = [ Name: 'MOENGAGE', DisplayName: 'MoEngage', Config: { - destConfig: { - defaultConfig: ['apiId', 'apiKey', 'region'], - }, + destConfig: { defaultConfig: ['apiId', 'apiKey', 'region'] }, excludeKeys: [], includeKeys: [], supportedSourceTypes: [ diff --git a/test/integrations/destinations/monday/router/data.ts b/test/integrations/destinations/monday/router/data.ts index eefc106274..3be8b129c5 100644 --- a/test/integrations/destinations/monday/router/data.ts +++ b/test/integrations/destinations/monday/router/data.ts @@ -20,23 +20,16 @@ export const data = [ whitelistedEvents: [{ eventName: 'create an item' }], }, }, - metadata: { - jobId: 1, - }, + metadata: { jobId: 1, userId: 'u1' }, message: { event: 'create an item', type: 'track', sentAt: '2021-01-03T17:02:53.195Z', userId: 'user@27', channel: 'web', - properties: { - name: 'Task 1', - }, + properties: { name: 'Task 1' }, context: { - os: { - name: '', - version: '', - }, + os: { name: '', version: '' }, app: { name: 'RudderLabs JavaScript SDK', build: '1.0.0', @@ -44,13 +37,8 @@ export const data = [ namespace: 'com.rudderlabs.javascript', }, locale: 'en-US', - screen: { - density: 2, - }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.1.11', - }, + screen: { density: 2 }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.11' }, campaign: {}, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', @@ -69,18 +57,13 @@ export const data = [ boardId: '339283933', groupTitle: 'Next month', columnToPropertyMapping: [ - { - from: 'Status', - to: 'status', - }, + { from: 'Status', to: 'status' }, { from: 'Email', to: 'emailId' }, ], whitelistedEvents: [{ eventName: 'create an item' }], }, }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, message: { event: 'create an item', type: 'track', @@ -94,10 +77,7 @@ export const data = [ emailText: 'emailId', }, context: { - os: { - name: '', - version: '', - }, + os: { name: '', version: '' }, app: { name: 'RudderLabs JavaScript SDK', build: '1.0.0', @@ -105,13 +85,8 @@ export const data = [ namespace: 'com.rudderlabs.javascript', }, locale: 'en-US', - screen: { - density: 2, - }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.1.11', - }, + screen: { density: 2 }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.11' }, campaign: {}, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', @@ -155,11 +130,7 @@ export const data = [ type: 'REST', version: '1', }, - metadata: [ - { - jobId: 1, - }, - ], + metadata: [{ jobId: 1, userId: 'u1' }], batched: false, statusCode: 200, destination: { @@ -196,11 +167,7 @@ export const data = [ }, files: {}, }, - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], batched: false, statusCode: 200, destination: { @@ -210,10 +177,7 @@ export const data = [ boardId: '339283933', groupTitle: 'Next month', columnToPropertyMapping: [ - { - from: 'Status', - to: 'status', - }, + { from: 'Status', to: 'status' }, { from: 'Email', to: 'emailId' }, ], whitelistedEvents: [{ eventName: 'create an item' }], diff --git a/test/integrations/destinations/monetate/router/data.ts b/test/integrations/destinations/monetate/router/data.ts index 09a7f8073d..eff487bd73 100644 --- a/test/integrations/destinations/monetate/router/data.ts +++ b/test/integrations/destinations/monetate/router/data.ts @@ -13,54 +13,31 @@ export const data = [ message: { anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', context: { - screen: { - height: 22, - width: 11, - }, + screen: { height: 22, width: 11 }, device: { id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', manufacturer: 'Xiaomi', model: 'Redmi 6', name: 'xiaomi', }, - network: { - carrier: 'Banglalink', - }, - os: { - name: 'android', - version: '8.1.0', - }, + network: { carrier: 'Banglalink' }, + os: { name: 'android', version: '8.1.0' }, traits: { - address: { - city: 'Dhaka', - country: 'Bangladesh', - }, + address: { city: 'Dhaka', country: 'Bangladesh' }, anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', }, ip: '0.0.0.0', }, - traits: { - address: { - city: 'Kol', - country: 'Ind', - }, - }, + traits: { address: { city: 'Kol', country: 'Ind' } }, event: 'Product Viewed', - integrations: { - All: true, - }, + integrations: { All: true }, message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', - properties: { - monetateId: '1234', - product_id: 'prodId', - }, + properties: { monetateId: '1234', product_id: 'prodId' }, timestamp: '2019-09-01T15:46:51.693229+05:30', type: 'track', userId: 'newUser', }, - metadata: { - jobId: 1, - }, + metadata: { jobId: 1, userId: 'u1' }, destination: { Config: { monetateChannel: 'channel', @@ -73,61 +50,34 @@ export const data = [ message: { anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', context: { - screen: { - height: 22, - width: 11, - }, + screen: { height: 22, width: 11 }, device: { id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', manufacturer: 'Xiaomi', model: 'Redmi 6', name: 'xiaomi', }, - network: { - carrier: 'Banglalink', - }, - os: { - name: 'android', - version: '8.1.0', - }, + network: { carrier: 'Banglalink' }, + os: { name: 'android', version: '8.1.0' }, traits: { - address: { - city: 'Dhaka', - country: 'Bangladesh', - }, + address: { city: 'Dhaka', country: 'Bangladesh' }, anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', }, ip: '0.0.0.0', }, - traits: { - address: { - city: 'Kol', - country: 'Ind', - }, - }, + traits: { address: { city: 'Kol', country: 'Ind' } }, event: 'Product List Viewed', - integrations: { - All: true, - }, + integrations: { All: true }, message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', properties: { monetateId: '1234', - products: [ - { - product_id: 1, - }, - { - product_id: 2, - }, - ], + products: [{ product_id: 1 }, { product_id: 2 }], }, timestamp: '2019-09-01T15:46:51.693229+05:30', type: 'track', userId: 'newUser', }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, destination: { Config: { monetateChannel: 'channel', @@ -153,31 +103,17 @@ export const data = [ type: 'REST', method: 'POST', endpoint: 'https://engine.monetate.net/api/engine/v1/decide/retailer', - headers: { - 'Content-Type': 'application/json', - }, + headers: { 'Content-Type': 'application/json' }, params: {}, body: { JSON: { monetateId: '1234', events: [ - { - eventType: 'monetate:context:IpAddress', - ipAddress: '0.0.0.0', - }, - { - eventType: 'monetate:context:ScreenSize', - height: 22, - width: 11, - }, + { eventType: 'monetate:context:IpAddress', ipAddress: '0.0.0.0' }, + { eventType: 'monetate:context:ScreenSize', height: 22, width: 11 }, { eventType: 'monetate:context:ProductDetailView', - products: [ - { - productId: 'prodId', - sku: '', - }, - ], + products: [{ productId: 'prodId', sku: '' }], }, ], customerId: 'newUser', @@ -189,11 +125,7 @@ export const data = [ }, files: {}, }, - metadata: [ - { - jobId: 1, - }, - ], + metadata: [{ jobId: 1, userId: 'u1' }], batched: false, statusCode: 200, destination: { @@ -210,27 +142,15 @@ export const data = [ type: 'REST', method: 'POST', endpoint: 'https://engine.monetate.net/api/engine/v1/decide/retailer', - headers: { - 'Content-Type': 'application/json', - }, + headers: { 'Content-Type': 'application/json' }, params: {}, body: { JSON: { monetateId: '1234', events: [ - { - eventType: 'monetate:context:IpAddress', - ipAddress: '0.0.0.0', - }, - { - eventType: 'monetate:context:ScreenSize', - height: 22, - width: 11, - }, - { - eventType: 'monetate:context:ProductThumbnailView', - products: ['1', '2'], - }, + { eventType: 'monetate:context:IpAddress', ipAddress: '0.0.0.0' }, + { eventType: 'monetate:context:ScreenSize', height: 22, width: 11 }, + { eventType: 'monetate:context:ProductThumbnailView', products: ['1', '2'] }, ], customerId: 'newUser', channel: 'channel', @@ -241,11 +161,7 @@ export const data = [ }, files: {}, }, - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], batched: false, statusCode: 200, destination: { diff --git a/test/integrations/destinations/mp/processor/data.ts b/test/integrations/destinations/mp/processor/data.ts index bdfa82242e..dfa94352c9 100644 --- a/test/integrations/destinations/mp/processor/data.ts +++ b/test/integrations/destinations/mp/processor/data.ts @@ -94,7 +94,7 @@ export const data = [ JSON: {}, JSON_ARRAY: { batch: - '[{"event":"Loaded a Page","properties":{"ip":"0.0.0.0","campaign_id":"test_name","$user_id":"hjikl","$current_url":"https://docs.rudderstack.com/destinations/mixpanel","$screen_dpi":2,"mp_lib":"RudderLabs JavaScript SDK","$app_build_number":"1.0.0","$app_version_string":"1.0.5","$insert_id":"dd266c67-9199-4a52-ba32-f46ddde67312","token":"dummyApiKey","distinct_id":"hjikl","time":1579847342,"utm_campaign":"test_name","utm_source":"rudder","utm_medium":"test_medium","utm_term":"test_tem","utm_content":"test_content","utm_test":"test","utm_keyword":"test_keyword","name":"Contact Us","$browser":"Chrome","$browser_version":"79.0.3945.117"}}]', + '[{"event":"Loaded a Page","properties":{"ip":"0.0.0.0","campaign_id":"test_name","$user_id":"hjikl","$current_url":"https://docs.rudderstack.com/destinations/mixpanel","$screen_dpi":2,"mp_lib":"RudderLabs JavaScript SDK","$app_build_number":"1.0.0","$app_version_string":"1.0.5","$insert_id":"dd266c67-9199-4a52-ba32-f46ddde67312","token":"dummyApiKey","distinct_id":"hjikl","time":1579847342402,"utm_campaign":"test_name","utm_source":"rudder","utm_medium":"test_medium","utm_term":"test_tem","utm_content":"test_content","utm_test":"test","utm_keyword":"test_keyword","name":"Contact Us","$browser":"Chrome","$browser_version":"79.0.3945.117"}}]', }, XML: {}, FORM: {}, @@ -195,7 +195,7 @@ export const data = [ JSON: {}, JSON_ARRAY: { batch: - '[{"event":"Loaded a Page","properties":{"ip":"0.0.0.0","$user_id":"hjikl","$current_url":"https://docs.rudderstack.com/destinations/mixpanel","$screen_dpi":2,"mp_lib":"RudderLabs JavaScript SDK","$app_build_number":"1.0.0","$app_version_string":"1.0.5","$insert_id":"dd266c67-9199-4a52-ba32-f46ddde67312","token":"dummyApiKey","distinct_id":"hjikl","time":1579847342,"name":"Contact Us","category":"Contact","$browser":"Chrome","$browser_version":"79.0.3945.117"}}]', + '[{"event":"Loaded a Page","properties":{"ip":"0.0.0.0","$user_id":"hjikl","$current_url":"https://docs.rudderstack.com/destinations/mixpanel","$screen_dpi":2,"mp_lib":"RudderLabs JavaScript SDK","$app_build_number":"1.0.0","$app_version_string":"1.0.5","$insert_id":"dd266c67-9199-4a52-ba32-f46ddde67312","token":"dummyApiKey","distinct_id":"hjikl","time":1579847342402,"name":"Contact Us","category":"Contact","$browser":"Chrome","$browser_version":"79.0.3945.117"}}]', }, XML: {}, FORM: {}, @@ -276,7 +276,7 @@ export const data = [ JSON: {}, JSON_ARRAY: { batch: - '[{"event":"Loaded a Screen","properties":{"category":"communication","ip":"0.0.0.0","$user_id":"hjikl","$screen_dpi":2,"mp_lib":"RudderLabs JavaScript SDK","$app_build_number":"1.0.0","$app_version_string":"1.0.5","$insert_id":"dd266c67-9199-4a52-ba32-f46ddde67312","token":"dummyApiKey","distinct_id":"hjikl","time":1579847342,"name":"Contact Us"}}]', + '[{"event":"Loaded a Screen","properties":{"category":"communication","ip":"0.0.0.0","$user_id":"hjikl","$screen_dpi":2,"mp_lib":"RudderLabs JavaScript SDK","$app_build_number":"1.0.0","$app_version_string":"1.0.5","$insert_id":"dd266c67-9199-4a52-ba32-f46ddde67312","token":"dummyApiKey","distinct_id":"hjikl","time":1579847342402,"name":"Contact Us"}}]', }, XML: {}, FORM: {}, @@ -364,7 +364,7 @@ export const data = [ JSON: {}, JSON_ARRAY: { batch: - '[{"event":"Loaded a Screen","properties":{"path":"/tests/html/index2.html","referrer":"","search":"","title":"","url":"http://localhost/tests/html/index2.html","ip":"0.0.0.0","$user_id":"hjiklmk","$screen_dpi":2,"mp_lib":"RudderLabs Android SDK","$app_build_number":"1.0.0","$app_version_string":"1.0.5","$insert_id":"dd266c67-9199-4a52-ba32-f46ddde67312","token":"dummyApiKey","distinct_id":"hjiklmk","time":1579847342,"name":"Contact Us","category":"Contact"}}]', + '[{"event":"Loaded a Screen","properties":{"path":"/tests/html/index2.html","referrer":"","search":"","title":"","url":"http://localhost/tests/html/index2.html","ip":"0.0.0.0","$user_id":"hjiklmk","$screen_dpi":2,"mp_lib":"RudderLabs Android SDK","$app_build_number":"1.0.0","$app_version_string":"1.0.5","$insert_id":"dd266c67-9199-4a52-ba32-f46ddde67312","token":"dummyApiKey","distinct_id":"hjiklmk","time":1579847342402,"name":"Contact Us","category":"Contact"}}]', }, XML: {}, FORM: {}, @@ -444,7 +444,7 @@ export const data = [ JSON: {}, JSON_ARRAY: { batch: - '[{"event":"Loaded a Screen","properties":{"ip":"0.0.0.0","$user_id":"hjikl","$screen_dpi":2,"mp_lib":"RudderLabs JavaScript SDK","$app_build_number":"1.0.0","$app_version_string":"1.0.5","$insert_id":"dd266c67-9199-4a52-ba32-f46ddde67312","token":"dummyApiKey","distinct_id":"hjikl","time":1579847342,"name":"Contact Us"}}]', + '[{"event":"Loaded a Screen","properties":{"ip":"0.0.0.0","$user_id":"hjikl","$screen_dpi":2,"mp_lib":"RudderLabs JavaScript SDK","$app_build_number":"1.0.0","$app_version_string":"1.0.5","$insert_id":"dd266c67-9199-4a52-ba32-f46ddde67312","token":"dummyApiKey","distinct_id":"hjikl","time":1579847342402,"name":"Contact Us"}}]', }, XML: {}, FORM: {}, @@ -547,7 +547,7 @@ export const data = [ JSON: {}, JSON_ARRAY: { batch: - '[{"$set":{"$created":"2020-01-23T08:54:02.362Z","$email":"mickey@disney.com","$first_name":"Mickey","$last_name":"Mouse","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$name":"Mickey Mouse","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"dummyApiKey","$distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","$ip":"0.0.0.0","$time":1579847342}]', + '[{"$set":{"$created":"2020-01-23T08:54:02.362Z","$email":"mickey@disney.com","$first_name":"Mickey","$last_name":"Mouse","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$name":"Mickey Mouse","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"dummyApiKey","$distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","$ip":"0.0.0.0","$time":1579847342402}]', }, XML: {}, FORM: {}, @@ -705,7 +705,7 @@ export const data = [ JSON: {}, JSON_ARRAY: { batch: - '[{"event":"test revenue MIXPANEL","properties":{"currency":"USD","revenue":45.89,"counter":1,"item_purchased":"2","number_of_logins":"","city":"Disney","country":"USA","email":"mickey@disney.com","firstName":"Mickey","ip":"0.0.0.0","campaign_id":"test_name","$current_url":"https://docs.rudderstack.com/destinations/mixpanel","$screen_dpi":2,"mp_lib":"RudderLabs JavaScript SDK","$app_build_number":"1.0.0","$app_version_string":"1.0.5","$insert_id":"a6a0ad5a-bd26-4f19-8f75-38484e580fc7","token":"dummyApiKey","distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","time":1579847342,"utm_campaign":"test_name","utm_source":"rudder","utm_medium":"test_medium","utm_term":"test_tem","utm_content":"test_content","utm_test":"test","utm_keyword":"test_keyword","$browser":"Chrome","$browser_version":"79.0.3945.117"}}]', + '[{"event":"test revenue MIXPANEL","properties":{"currency":"USD","revenue":45.89,"counter":1,"item_purchased":"2","number_of_logins":"","city":"Disney","country":"USA","email":"mickey@disney.com","firstName":"Mickey","ip":"0.0.0.0","campaign_id":"test_name","$current_url":"https://docs.rudderstack.com/destinations/mixpanel","$screen_dpi":2,"mp_lib":"RudderLabs JavaScript SDK","$app_build_number":"1.0.0","$app_version_string":"1.0.5","$insert_id":"a6a0ad5a-bd26-4f19-8f75-38484e580fc7","token":"dummyApiKey","distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","time":1579847342403,"utm_campaign":"test_name","utm_source":"rudder","utm_medium":"test_medium","utm_term":"test_tem","utm_content":"test_content","utm_test":"test","utm_keyword":"test_keyword","$browser":"Chrome","$browser_version":"79.0.3945.117"}}]', }, XML: {}, FORM: {}, @@ -952,7 +952,7 @@ export const data = [ JSON: {}, JSON_ARRAY: { batch: - '[{"event":"KM Order Completed","properties":{"affiliation":"Google Store","checkout_id":"fksdjfsdjfisjf9sdfjsd9f","coupon":"hasbros","currency":"USD","discount":2.5,"order_id":"50314b8e9bcf000000000000","products":[{"category":"Games","image_url":"https:///www.example.com/product/path.jpg","name":"Monopoly: 3rd Edition","price":19,"product_id":"507f1f77bcf86cd799439011","quantity":1,"sku":"45790-32","url":"https://www.example.com/product/path"},{"category":"Games","name":"Uno Card Game","price":3,"product_id":"505bd76785ebb509fc183733","quantity":2,"sku":"46493-32"}],"revenue":25,"shipping":3,"subtotal":22.5,"tax":2,"total":27.5,"city":"Disney","country":"USA","email":"mickey@disney.com","firstName":"Mickey","ip":"0.0.0.0","$current_url":"https://docs.rudderstack.com/destinations/mixpanel","$screen_dpi":2,"mp_lib":"RudderLabs JavaScript SDK","$app_build_number":"1.0.0","$app_version_string":"1.0.5","$insert_id":"aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a","token":"dummyApiKey","distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","time":1579847342,"$browser":"Chrome","$browser_version":"79.0.3945.117"}}]', + '[{"event":"KM Order Completed","properties":{"affiliation":"Google Store","checkout_id":"fksdjfsdjfisjf9sdfjsd9f","coupon":"hasbros","currency":"USD","discount":2.5,"order_id":"50314b8e9bcf000000000000","products":[{"category":"Games","image_url":"https:///www.example.com/product/path.jpg","name":"Monopoly: 3rd Edition","price":19,"product_id":"507f1f77bcf86cd799439011","quantity":1,"sku":"45790-32","url":"https://www.example.com/product/path"},{"category":"Games","name":"Uno Card Game","price":3,"product_id":"505bd76785ebb509fc183733","quantity":2,"sku":"46493-32"}],"revenue":25,"shipping":3,"subtotal":22.5,"tax":2,"total":27.5,"city":"Disney","country":"USA","email":"mickey@disney.com","firstName":"Mickey","ip":"0.0.0.0","$current_url":"https://docs.rudderstack.com/destinations/mixpanel","$screen_dpi":2,"mp_lib":"RudderLabs JavaScript SDK","$app_build_number":"1.0.0","$app_version_string":"1.0.5","$insert_id":"aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a","token":"dummyApiKey","distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","time":1579847342402,"$browser":"Chrome","$browser_version":"79.0.3945.117"}}]', }, XML: {}, FORM: {}, @@ -1108,7 +1108,7 @@ export const data = [ JSON: {}, JSON_ARRAY: { batch: - '[{"event":"KM Order Completed","properties":{"affiliation":"Google Store","checkout_id":"fksdjfsdjfisjf9sdfjsd9f","coupon":"hasbros","currency":"USD","discount":2.5,"order_id":"50314b8e9bcf000000000000","revenue":34,"key_1":{"child_key1":"child_value1","child_key2":{"child_key21":"child_value21","child_key22":"child_value22"}},"products":[{"category":"Games","image_url":"https:///www.example.com/product/path.jpg","name":"Monopoly: 3rd Edition","price":19,"product_id":"507f1f77bcf86cd799439011","quantity":1,"sku":"45790-32","url":"https://www.example.com/product/path"},{"category":"Games","name":"Uno Card Game","price":3,"product_id":"505bd76785ebb509fc183733","quantity":2,"sku":"46493-32"}],"shipping":3,"subtotal":22.5,"tax":2,"total":27.5,"city":"Disney","country":"USA","email":"mickey@disney.com","first_name":"Mickey","lastName":"Mouse","name":"Mickey Mouse","ip":"0.0.0.0","$current_url":"https://docs.rudderstack.com/destinations/mixpanel","$screen_dpi":2,"mp_lib":"RudderLabs JavaScript SDK","$app_build_number":"1.0.0","$app_version_string":"1.0.5","$insert_id":"aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a","token":"dummyApiKey","distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","time":1579847342,"$browser":"Chrome","$browser_version":"79.0.3945.117"}}]', + '[{"event":"KM Order Completed","properties":{"affiliation":"Google Store","checkout_id":"fksdjfsdjfisjf9sdfjsd9f","coupon":"hasbros","currency":"USD","discount":2.5,"order_id":"50314b8e9bcf000000000000","revenue":34,"key_1":{"child_key1":"child_value1","child_key2":{"child_key21":"child_value21","child_key22":"child_value22"}},"products":[{"category":"Games","image_url":"https:///www.example.com/product/path.jpg","name":"Monopoly: 3rd Edition","price":19,"product_id":"507f1f77bcf86cd799439011","quantity":1,"sku":"45790-32","url":"https://www.example.com/product/path"},{"category":"Games","name":"Uno Card Game","price":3,"product_id":"505bd76785ebb509fc183733","quantity":2,"sku":"46493-32"}],"shipping":3,"subtotal":22.5,"tax":2,"total":27.5,"city":"Disney","country":"USA","email":"mickey@disney.com","first_name":"Mickey","lastName":"Mouse","name":"Mickey Mouse","ip":"0.0.0.0","$current_url":"https://docs.rudderstack.com/destinations/mixpanel","$screen_dpi":2,"mp_lib":"RudderLabs JavaScript SDK","$app_build_number":"1.0.0","$app_version_string":"1.0.5","$insert_id":"aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a","token":"dummyApiKey","distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","time":1579847342402,"$browser":"Chrome","$browser_version":"79.0.3945.117"}}]', }, XML: {}, FORM: {}, @@ -1239,7 +1239,7 @@ export const data = [ JSON: {}, JSON_ARRAY: { batch: - '[{"event":" new Order Completed totally","properties":{"affiliation":"Google Store","checkout_id":"fksdjfsdjfisjf9sdfjsd9f","coupon":"hasbros","currency":"USD","discount":2.5,"total":23,"order_id":"50314b8e9bcf000000000000","key_1":{"child_key1":"child_value1","child_key2":{"child_key21":"child_value21","child_key22":"child_value22"}},"products":[{"category":"Games","image_url":"https:///www.example.com/product/path.jpg","name":"Monopoly: 3rd Edition","price":19,"product_id":"507f1f77bcf86cd799439011","quantity":1,"sku":"45790-32","url":"https://www.example.com/product/path"},{"category":"Games","name":"Uno Card Game","price":3,"product_id":"505bd76785ebb509fc183733","quantity":2,"sku":"46493-32"}],"shipping":3,"subtotal":22.5,"tax":2,"city":"Disney","country":"USA","email":"mickey@disney.com","firstName":"Mickey","ip":"0.0.0.0","$current_url":"https://docs.rudderstack.com/destinations/mixpanel","$screen_dpi":2,"mp_lib":"RudderLabs JavaScript SDK","$app_build_number":"1.0.0","$app_version_string":"1.0.5","$insert_id":"aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a","token":"dummyApiKey","distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","time":1579847342,"$browser":"Chrome","$browser_version":"79.0.3945.117"}}]', + '[{"event":" new Order Completed totally","properties":{"affiliation":"Google Store","checkout_id":"fksdjfsdjfisjf9sdfjsd9f","coupon":"hasbros","currency":"USD","discount":2.5,"total":23,"order_id":"50314b8e9bcf000000000000","key_1":{"child_key1":"child_value1","child_key2":{"child_key21":"child_value21","child_key22":"child_value22"}},"products":[{"category":"Games","image_url":"https:///www.example.com/product/path.jpg","name":"Monopoly: 3rd Edition","price":19,"product_id":"507f1f77bcf86cd799439011","quantity":1,"sku":"45790-32","url":"https://www.example.com/product/path"},{"category":"Games","name":"Uno Card Game","price":3,"product_id":"505bd76785ebb509fc183733","quantity":2,"sku":"46493-32"}],"shipping":3,"subtotal":22.5,"tax":2,"city":"Disney","country":"USA","email":"mickey@disney.com","firstName":"Mickey","ip":"0.0.0.0","$current_url":"https://docs.rudderstack.com/destinations/mixpanel","$screen_dpi":2,"mp_lib":"RudderLabs JavaScript SDK","$app_build_number":"1.0.0","$app_version_string":"1.0.5","$insert_id":"aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a","token":"dummyApiKey","distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","time":1579847342402,"$browser":"Chrome","$browser_version":"79.0.3945.117"}}]', }, XML: {}, FORM: {}, @@ -1370,7 +1370,7 @@ export const data = [ JSON: {}, JSON_ARRAY: { batch: - '[{"event":" Order Completed ","properties":{"affiliation":"Google Store","checkout_id":"fksdjfsdjfisjf9sdfjsd9f","coupon":"hasbros","currency":"USD","discount":2.5,"total":23,"order_id":"50314b8e9bcf000000000000","key_1":{"child_key1":"child_value1","child_key2":{"child_key21":"child_value21","child_key22":"child_value22"}},"products":[{"category":"Games","image_url":"https:///www.example.com/product/path.jpg","name":"Monopoly: 3rd Edition","price":19,"product_id":"507f1f77bcf86cd799439011","quantity":1,"sku":"45790-32","url":"https://www.example.com/product/path"},{"category":"Games","name":"Uno Card Game","price":3,"product_id":"505bd76785ebb509fc183733","quantity":2,"sku":"46493-32"}],"shipping":3,"subtotal":22.5,"tax":2,"Billing Amount":"77","city":"Disney","country":"USA","email":"mickey@disney.com","firstName":"Mickey","ip":"0.0.0.0","$current_url":"https://docs.rudderstack.com/destinations/mixpanel","$screen_dpi":2,"mp_lib":"RudderLabs JavaScript SDK","$app_build_number":"1.0.0","$app_version_string":"1.0.5","$insert_id":"aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a","token":"dummyApiKey","distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","time":1579847342,"$browser":"Chrome","$browser_version":"79.0.3945.117"}}]', + '[{"event":" Order Completed ","properties":{"affiliation":"Google Store","checkout_id":"fksdjfsdjfisjf9sdfjsd9f","coupon":"hasbros","currency":"USD","discount":2.5,"total":23,"order_id":"50314b8e9bcf000000000000","key_1":{"child_key1":"child_value1","child_key2":{"child_key21":"child_value21","child_key22":"child_value22"}},"products":[{"category":"Games","image_url":"https:///www.example.com/product/path.jpg","name":"Monopoly: 3rd Edition","price":19,"product_id":"507f1f77bcf86cd799439011","quantity":1,"sku":"45790-32","url":"https://www.example.com/product/path"},{"category":"Games","name":"Uno Card Game","price":3,"product_id":"505bd76785ebb509fc183733","quantity":2,"sku":"46493-32"}],"shipping":3,"subtotal":22.5,"tax":2,"Billing Amount":"77","city":"Disney","country":"USA","email":"mickey@disney.com","firstName":"Mickey","ip":"0.0.0.0","$current_url":"https://docs.rudderstack.com/destinations/mixpanel","$screen_dpi":2,"mp_lib":"RudderLabs JavaScript SDK","$app_build_number":"1.0.0","$app_version_string":"1.0.5","$insert_id":"aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a","token":"dummyApiKey","distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","time":1579847342402,"$browser":"Chrome","$browser_version":"79.0.3945.117"}}]', }, XML: {}, FORM: {}, @@ -1538,7 +1538,7 @@ export const data = [ JSON: {}, JSON_ARRAY: { batch: - '[{"$set":{"$email":"mickey@disney.com","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$firstName":"Mickey","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"dummyApiKey","$distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","$ip":"0.0.0.0","$time":1579847342}]', + '[{"$set":{"$email":"mickey@disney.com","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$firstName":"Mickey","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"dummyApiKey","$distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","$ip":"0.0.0.0","$time":1579847342402}]', }, XML: {}, FORM: {}, @@ -2038,7 +2038,7 @@ export const data = [ JSON: {}, JSON_ARRAY: { batch: - '[{"event":"KM Order Completed","properties":{"affiliation":"Google Store","checkout_id":"fksdjfsdjfisjf9sdfjsd9f","coupon":"hasbros","currency":"USD","discount":2.5,"order_id":"50314b8e9bcf000000000000","products":[{"category":"Games","image_url":"https:///www.example.com/product/path.jpg","name":"Monopoly: 3rd Edition","price":19,"product_id":"507f1f77bcf86cd799439011","quantity":1,"sku":"45790-32","url":"https://www.example.com/product/path"},{"category":"Games","name":"Uno Card Game","price":3,"product_id":"505bd76785ebb509fc183733","quantity":2,"sku":"46493-32"}],"revenue":25,"shipping":3,"subtotal":22.5,"tax":2,"total":27.5,"city":"Disney","country":"USA","email":"mickey@disney.com","firstname":"Mickey","lastname":"Mouse","ip":"0.0.0.0","$current_url":"https://docs.rudderstack.com/destinations/mixpanel","$screen_dpi":2,"mp_lib":"RudderLabs JavaScript SDK","$app_build_number":"1.0.0","$app_version_string":"1.0.5","$insert_id":"aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a","token":"dummyApiKey","distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","time":1579847342,"$browser":"Chrome","$browser_version":"79.0.3945.117"}}]', + '[{"event":"KM Order Completed","properties":{"affiliation":"Google Store","checkout_id":"fksdjfsdjfisjf9sdfjsd9f","coupon":"hasbros","currency":"USD","discount":2.5,"order_id":"50314b8e9bcf000000000000","products":[{"category":"Games","image_url":"https:///www.example.com/product/path.jpg","name":"Monopoly: 3rd Edition","price":19,"product_id":"507f1f77bcf86cd799439011","quantity":1,"sku":"45790-32","url":"https://www.example.com/product/path"},{"category":"Games","name":"Uno Card Game","price":3,"product_id":"505bd76785ebb509fc183733","quantity":2,"sku":"46493-32"}],"revenue":25,"shipping":3,"subtotal":22.5,"tax":2,"total":27.5,"city":"Disney","country":"USA","email":"mickey@disney.com","firstname":"Mickey","lastname":"Mouse","ip":"0.0.0.0","$current_url":"https://docs.rudderstack.com/destinations/mixpanel","$screen_dpi":2,"mp_lib":"RudderLabs JavaScript SDK","$app_build_number":"1.0.0","$app_version_string":"1.0.5","$insert_id":"aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a","token":"dummyApiKey","distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","time":1579847342402,"$browser":"Chrome","$browser_version":"79.0.3945.117"}}]', }, XML: {}, FORM: {}, @@ -2126,7 +2126,7 @@ export const data = [ JSON: {}, JSON_ARRAY: { batch: - '[{"$set":{"$carrier":"Android","$manufacturer":"Google","$model":"Android SDK built for x86","$screen_height":1794,"$screen_width":1080,"$wifi":true,"anonymousId":"5094f5704b9cf2b3","$android_devices":["test_device_token"],"$os":"Android","$android_model":"Android SDK built for x86","$android_os_version":"8.1.0","$android_manufacturer":"Google","$android_app_version":"1.0","$android_app_version_code":"1.0","$android_brand":"Google"},"$token":"dummyApiKey","$distinct_id":"5094f5704b9cf2b3","$time":null}]', + '[{"$set":{"$carrier":"Android","$manufacturer":"Google","$model":"Android SDK built for x86","$screen_height":1794,"$screen_width":1080,"$wifi":true,"anonymousId":"5094f5704b9cf2b3","$android_devices":["test_device_token"],"$os":"Android","$android_model":"Android SDK built for x86","$android_os_version":"8.1.0","$android_manufacturer":"Google","$android_app_version":"1.0","$android_app_version_code":"1.0","$android_brand":"Google"},"$token":"dummyApiKey","$distinct_id":"5094f5704b9cf2b3","$time":1584003903421}]', }, XML: {}, FORM: {}, @@ -2213,7 +2213,7 @@ export const data = [ JSON: {}, JSON_ARRAY: { batch: - '[{"$set":{"$carrier":"Android","$manufacturer":"Google","$model":"Android SDK built for x86","$screen_height":1794,"$screen_width":1080,"$wifi":true,"anonymousId":"5094f5704b9cf2b3","userId":"test_user_id","$ios_devices":["test_device_token"],"$os":"iOS","$ios_device_model":"Android SDK built for x86","$ios_version":"8.1.0","$ios_app_release":"1","$ios_app_version":"1.0"},"$token":"dummyApiKey","$distinct_id":"test_user_id","$time":null}]', + '[{"$set":{"$carrier":"Android","$manufacturer":"Google","$model":"Android SDK built for x86","$screen_height":1794,"$screen_width":1080,"$wifi":true,"anonymousId":"5094f5704b9cf2b3","userId":"test_user_id","$ios_devices":["test_device_token"],"$os":"iOS","$ios_device_model":"Android SDK built for x86","$ios_version":"8.1.0","$ios_app_release":"1","$ios_app_version":"1.0"},"$token":"dummyApiKey","$distinct_id":"test_user_id","$time":1584003903421}]', }, XML: {}, FORM: {}, @@ -2332,7 +2332,7 @@ export const data = [ JSON: {}, JSON_ARRAY: { batch: - '[{"event":"Loaded a Page","properties":{"path":"/tests/html/index2.html","referrer":"","search":"","title":"","url":"http://localhost/tests/html/index2.html","category":"communication","ip":"0.0.0.0","$current_url":"https://docs.rudderstack.com/destinations/mixpanel","$screen_dpi":2,"mp_lib":"RudderLabs JavaScript SDK","$app_build_number":"1.0.0","$app_version_string":"1.0.5","$insert_id":"dd266c67-9199-4a52-ba32-f46ddde67312","token":"dummyApiKey","distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","time":1579847342,"name":"Contact Us","$browser":"Chrome","$browser_version":"79.0.3945.117"}}]', + '[{"event":"Loaded a Page","properties":{"path":"/tests/html/index2.html","referrer":"","search":"","title":"","url":"http://localhost/tests/html/index2.html","category":"communication","ip":"0.0.0.0","$current_url":"https://docs.rudderstack.com/destinations/mixpanel","$screen_dpi":2,"mp_lib":"RudderLabs JavaScript SDK","$app_build_number":"1.0.0","$app_version_string":"1.0.5","$insert_id":"dd266c67-9199-4a52-ba32-f46ddde67312","token":"dummyApiKey","distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","time":1579847342402,"name":"Contact Us","$browser":"Chrome","$browser_version":"79.0.3945.117"}}]', }, XML: {}, FORM: {}, @@ -2520,7 +2520,7 @@ export const data = [ JSON: {}, JSON_ARRAY: { batch: - '[{"$set":{"$carrier":"Android","$manufacturer":"Google","$model":"Android SDK built for x86","$screen_height":1794,"$screen_width":1080,"$wifi":true,"anonymousId":"5094f5704b9cf2b3","userId":"test_user_id","createdat":"2020-01-23T08:54:02.362Z","$ios_devices":["test_device_token"],"$ios_device_model":"Android SDK built for x86","$ios_app_release":"1","$ios_app_version":"1.0"},"$token":"dummyApiKey","$distinct_id":"test_user_id","$time":null}]', + '[{"$set":{"$carrier":"Android","$manufacturer":"Google","$model":"Android SDK built for x86","$screen_height":1794,"$screen_width":1080,"$wifi":true,"anonymousId":"5094f5704b9cf2b3","userId":"test_user_id","createdat":"2020-01-23T08:54:02.362Z","$ios_devices":["test_device_token"],"$ios_device_model":"Android SDK built for x86","$ios_app_release":"1","$ios_app_version":"1.0"},"$token":"dummyApiKey","$distinct_id":"test_user_id","$time":1584003903421}]', }, XML: {}, FORM: {}, @@ -2638,7 +2638,7 @@ export const data = [ JSON: {}, JSON_ARRAY: { batch: - '[{"$set":{"$email":"mickey@disney.com","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$name":"Mickey Mouse","$firstName":"Mickey","$lastName":"Mouse","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"dummyApiKey","$distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","$ip":"0.0.0.0","$time":1579847342}]', + '[{"$set":{"$email":"mickey@disney.com","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$name":"Mickey Mouse","$firstName":"Mickey","$lastName":"Mouse","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"dummyApiKey","$distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","$ip":"0.0.0.0","$time":1579847342402}]', }, XML: {}, FORM: {}, @@ -2730,7 +2730,7 @@ export const data = [ JSON: {}, JSON_ARRAY: { batch: - '[{"$set":{"$email":"mickey@disney.com","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$firstName":"Mickey","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"dummyApiKey","$distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","$ip":"0.0.0.0","$time":1579847342}]', + '[{"$set":{"$email":"mickey@disney.com","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$firstName":"Mickey","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"dummyApiKey","$distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","$ip":"0.0.0.0","$time":1579847342402}]', }, XML: {}, FORM: {}, @@ -2823,7 +2823,7 @@ export const data = [ JSON: {}, JSON_ARRAY: { batch: - '[{"$set":{"$email":"mickey@disney.com","$name":"Mickey Mouse","$country_code":"USA","$city":"Disney","$region":"US","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$firstName":"Mickey","$lastName":"Mouse","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"dummyApiKey","$distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","$ip":"0.0.0.0","$time":1579847342}]', + '[{"$set":{"$email":"mickey@disney.com","$name":"Mickey Mouse","$country_code":"USA","$city":"Disney","$region":"US","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$firstName":"Mickey","$lastName":"Mouse","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"dummyApiKey","$distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","$ip":"0.0.0.0","$time":1579847342402}]', }, XML: {}, FORM: {}, @@ -2921,7 +2921,7 @@ export const data = [ JSON: {}, JSON_ARRAY: { batch: - '[{"$set":{"$email":"mickey@disney.com","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$name":"Mickey Mouse","$firstName":"Mickey","$lastName":"Mouse","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"dummyApiKey","$distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","$ip":"0.0.0.0","$time":1579847342}]', + '[{"$set":{"$email":"mickey@disney.com","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$name":"Mickey Mouse","$firstName":"Mickey","$lastName":"Mouse","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"dummyApiKey","$distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","$ip":"0.0.0.0","$time":1579847342402}]', }, XML: {}, FORM: {}, @@ -3017,7 +3017,7 @@ export const data = [ JSON: {}, JSON_ARRAY: { batch: - '[{"$set":{"$email":"mickey@disney.com","$name":"Mouse","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$firstName":"Mickey","$lastName":"Mouse","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"dummyApiKey","$distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","$ip":"0.0.0.0","$time":1579847342}]', + '[{"$set":{"$email":"mickey@disney.com","$name":"Mouse","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$firstName":"Mickey","$lastName":"Mouse","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"dummyApiKey","$distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","$ip":"0.0.0.0","$time":1579847342402}]', }, XML: {}, FORM: {}, @@ -3112,7 +3112,7 @@ export const data = [ JSON: {}, JSON_ARRAY: { batch: - '[{"$set":{"$email":"mickey@disney.com","$first_name":"Mickey","$last_name":"Mouse","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$name":"Mickey Mouse","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"dummyApiKey","$distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","$ip":"0.0.0.0","$time":1579847342}]', + '[{"$set":{"$email":"mickey@disney.com","$first_name":"Mickey","$last_name":"Mouse","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$name":"Mickey Mouse","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"dummyApiKey","$distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","$ip":"0.0.0.0","$time":1579847342402}]', }, XML: {}, FORM: {}, @@ -3206,7 +3206,7 @@ export const data = [ JSON: {}, JSON_ARRAY: { batch: - '[{"$set":{"$email":"mickey@disney.com","$first_name":"Mickey","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"dummyApiKey","$distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","$ip":"0.0.0.0","$time":1579847342}]', + '[{"$set":{"$email":"mickey@disney.com","$first_name":"Mickey","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"dummyApiKey","$distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","$ip":"0.0.0.0","$time":1579847342402}]', }, XML: {}, FORM: {}, @@ -3301,7 +3301,7 @@ export const data = [ JSON: {}, JSON_ARRAY: { batch: - '[{"$set":{"$email":"mickey@disney.com","$first_name":"Mickey","$last_name":"Mouse","$name":"Mickey Mouse","$country_code":"USA","$city":"Disney","$region":"US","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"dummyApiKey","$distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","$ip":"0.0.0.0","$time":1579847342}]', + '[{"$set":{"$email":"mickey@disney.com","$first_name":"Mickey","$last_name":"Mouse","$name":"Mickey Mouse","$country_code":"USA","$city":"Disney","$region":"US","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"dummyApiKey","$distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","$ip":"0.0.0.0","$time":1579847342402}]', }, XML: {}, FORM: {}, @@ -3402,7 +3402,7 @@ export const data = [ JSON: {}, JSON_ARRAY: { batch: - '[{"$set":{"$email":"mickey@disney.com","$first_name":"Mickey","$last_name":"Mouse","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$name":"Mickey Mouse","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"dummyApiKey","$distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","$ip":"0.0.0.0","$time":1579847342}]', + '[{"$set":{"$email":"mickey@disney.com","$first_name":"Mickey","$last_name":"Mouse","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$name":"Mickey Mouse","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"dummyApiKey","$distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","$ip":"0.0.0.0","$time":1579847342402}]', }, XML: {}, FORM: {}, @@ -3691,7 +3691,7 @@ export const data = [ JSON: {}, JSON_ARRAY: { batch: - '[{"event":"MainActivity","properties":{"name":"MainActivity","automatic":true,"anonymousId":"5094f5704b9cf2b3","userId":"test_user_id","$user_id":"test_user_id","$os":"iOS","$screen_height":1794,"$screen_width":1080,"$screen_dpi":420,"$carrier":"Android","$os_version":"8.1.0","$device":"generic_x86","$manufacturer":"Google","$model":"Android SDK built for x86","mp_device_model":"Android SDK built for x86","$wifi":true,"$bluetooth_enabled":false,"mp_lib":"com.rudderstack.android.sdk.core","$app_build_number":"1","$app_version_string":"1.0","$insert_id":"id2","token":"dummyApiKey","distinct_id":"test_user_id","time":1520845503}}]', + '[{"event":"MainActivity","properties":{"name":"MainActivity","automatic":true,"anonymousId":"5094f5704b9cf2b3","userId":"test_user_id","$user_id":"test_user_id","$os":"iOS","$screen_height":1794,"$screen_width":1080,"$screen_dpi":420,"$carrier":"Android","$os_version":"8.1.0","$device":"generic_x86","$manufacturer":"Google","$model":"Android SDK built for x86","mp_device_model":"Android SDK built for x86","$wifi":true,"$bluetooth_enabled":false,"mp_lib":"com.rudderstack.android.sdk.core","$app_build_number":"1","$app_version_string":"1.0","$insert_id":"id2","token":"dummyApiKey","distinct_id":"test_user_id","time":1520845503421}}]', }, XML: {}, FORM: {}, @@ -3962,7 +3962,7 @@ export const data = [ JSON: {}, JSON_ARRAY: { batch: - '[{"$set":{"$created":"2020-01-23T08:54:02.362Z","$email":"mickey@disney.com","$first_name":"Mickey","$last_name":"Mouse","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$name":"Mickey Mouse","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"dummyApiKey","$distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","$ip":"0.0.0.0","$time":1579847342,"$ignore_time":true}]', + '[{"$set":{"$created":"2020-01-23T08:54:02.362Z","$email":"mickey@disney.com","$first_name":"Mickey","$last_name":"Mouse","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$name":"Mickey Mouse","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"dummyApiKey","$distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","$ip":"0.0.0.0","$time":1579847342402,"$ignore_time":true}]', }, XML: {}, FORM: {}, @@ -4068,7 +4068,7 @@ export const data = [ JSON: {}, JSON_ARRAY: { batch: - '[{"$set":{"$created":"2020-01-23T08:54:02.362Z","$email":"mickey@disney.com","$first_name":"Mickey","$last_name":"Mouse","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$name":"Mickey Mouse","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"dummyApiKey","$distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","$ip":"0.0.0.0","$time":1579847342}]', + '[{"$set":{"$created":"2020-01-23T08:54:02.362Z","$email":"mickey@disney.com","$first_name":"Mickey","$last_name":"Mouse","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$name":"Mickey Mouse","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"dummyApiKey","$distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","$ip":"0.0.0.0","$time":1579847342402}]', }, XML: {}, FORM: {}, @@ -4273,7 +4273,7 @@ export const data = [ JSON: {}, JSON_ARRAY: { batch: - '[{"$set":{"$created":"2020-01-23T08:54:02.362Z","$email":"mickey@disney.com","$first_name":"Mickey","$last_name":"Mouse","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$name":"Mickey Mouse","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"dummyApiKey","$distinct_id":"user1234","$ip":"0.0.0.0","$time":1579847342}]', + '[{"$set":{"$created":"2020-01-23T08:54:02.362Z","$email":"mickey@disney.com","$first_name":"Mickey","$last_name":"Mouse","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$name":"Mickey Mouse","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"dummyApiKey","$distinct_id":"user1234","$ip":"0.0.0.0","$time":1579847342402}]', }, XML: {}, FORM: {}, @@ -4392,7 +4392,7 @@ export const data = [ JSON: {}, JSON_ARRAY: { batch: - '[{"event":"Application Installed","properties":{"build":4,"version":"1.0","anonymousId":"39da706ec83d0e90","$os":"Android","$screen_height":2984,"$screen_width":1440,"$screen_dpi":560,"$carrier":"T-Mobile","$os_version":"12","$device":"emu64a","$manufacturer":"Google","$model":"sdk_gphone64_arm64","mp_device_model":"sdk_gphone64_arm64","$wifi":true,"$bluetooth_enabled":true,"mp_lib":"com.rudderstack.android.sdk.core","$app_build_number":"4","$app_version_string":"1.0","$insert_id":"168cf720-6227-4b56-a98e-c49bdc7279e9","$session_id":"1662363980","token":"dummyApiKey","distinct_id":"39da706ec83d0e90","time":null}}]', + '[{"event":"Application Installed","properties":{"build":4,"version":"1.0","anonymousId":"39da706ec83d0e90","$os":"Android","$screen_height":2984,"$screen_width":1440,"$screen_dpi":560,"$carrier":"T-Mobile","$os_version":"12","$device":"emu64a","$manufacturer":"Google","$model":"sdk_gphone64_arm64","mp_device_model":"sdk_gphone64_arm64","$wifi":true,"$bluetooth_enabled":true,"mp_lib":"com.rudderstack.android.sdk.core","$app_build_number":"4","$app_version_string":"1.0","$insert_id":"168cf720-6227-4b56-a98e-c49bdc7279e9","$session_id":"1662363980","token":"dummyApiKey","distinct_id":"39da706ec83d0e90","time":1662363980290}}]', }, XML: {}, FORM: {}, @@ -4482,7 +4482,7 @@ export const data = [ JSON: {}, JSON_ARRAY: { batch: - '[{"event":"Application Opened","properties":{"build":4,"version":"1.0","anonymousId":"39da706ec83d0e90","$os":"Android","$screen_height":2984,"$screen_width":1440,"$screen_dpi":560,"$carrier":"T-Mobile","$os_version":"12","$device":"emu64a","$manufacturer":"Google","$model":"sdk_gphone64_arm64","mp_device_model":"sdk_gphone64_arm64","$wifi":true,"$bluetooth_enabled":true,"mp_lib":"com.rudderstack.android.sdk.core","$app_build_number":"4","$app_version_string":"1.0","$insert_id":"168cf720-6227-4b56-a98e-c49bdc7279e9","$session_id":"1662363980","token":"dummyApiKey","distinct_id":"39da706ec83d0e90","time":null}}]', + '[{"event":"Application Opened","properties":{"build":4,"version":"1.0","anonymousId":"39da706ec83d0e90","$os":"Android","$screen_height":2984,"$screen_width":1440,"$screen_dpi":560,"$carrier":"T-Mobile","$os_version":"12","$device":"emu64a","$manufacturer":"Google","$model":"sdk_gphone64_arm64","mp_device_model":"sdk_gphone64_arm64","$wifi":true,"$bluetooth_enabled":true,"mp_lib":"com.rudderstack.android.sdk.core","$app_build_number":"4","$app_version_string":"1.0","$insert_id":"168cf720-6227-4b56-a98e-c49bdc7279e9","$session_id":"1662363980","token":"dummyApiKey","distinct_id":"39da706ec83d0e90","time":1662363980290}}]', }, XML: {}, FORM: {}, @@ -4682,7 +4682,7 @@ export const data = [ JSON: {}, JSON_ARRAY: { batch: - '[{"event":"Product Viewed","properties":{"name":"T-Shirt","$user_id":"userId01","$os":"iOS","$screen_height":1794,"$screen_width":1080,"$screen_dpi":420,"$carrier":"Android","$os_version":"8.1.0","$device":"generic_x86","$manufacturer":"Google","$model":"Android SDK built for x86","mp_device_model":"Android SDK built for x86","$wifi":true,"$bluetooth_enabled":false,"mp_lib":"com.rudderstack.android.sdk.core","$app_build_number":"1","$app_version_string":"1.0","$insert_id":"id2","token":"apiToken123","distinct_id":"userId01","time":1579847342,"$device_id":"anonId01"}}]', + '[{"event":"Product Viewed","properties":{"name":"T-Shirt","$user_id":"userId01","$os":"iOS","$screen_height":1794,"$screen_width":1080,"$screen_dpi":420,"$carrier":"Android","$os_version":"8.1.0","$device":"generic_x86","$manufacturer":"Google","$model":"Android SDK built for x86","mp_device_model":"Android SDK built for x86","$wifi":true,"$bluetooth_enabled":false,"mp_lib":"com.rudderstack.android.sdk.core","$app_build_number":"1","$app_version_string":"1.0","$insert_id":"id2","token":"apiToken123","distinct_id":"userId01","time":1579847342402,"$device_id":"anonId01"}}]', }, XML: {}, FORM: {}, @@ -4792,7 +4792,7 @@ export const data = [ JSON: {}, JSON_ARRAY: { batch: - '[{"$set":{"$created":"2020-01-23T08:54:02.362Z","$email":"mickey@disney.com","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$name":"Mickey Mouse","$firstName":"Mickey","$lastName":"Mouse","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"apiToken123","$distinct_id":"userId01","$ip":"0.0.0.0","$time":1579847342}]', + '[{"$set":{"$created":"2020-01-23T08:54:02.362Z","$email":"mickey@disney.com","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$name":"Mickey Mouse","$firstName":"Mickey","$lastName":"Mouse","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"apiToken123","$distinct_id":"userId01","$ip":"0.0.0.0","$time":1579847342402}]', }, XML: {}, FORM: {}, @@ -4900,7 +4900,7 @@ export const data = [ JSON: {}, JSON_ARRAY: { batch: - '[{"$set":{"$created":"2020-01-23T08:54:02.362Z","$email":"mickey@disney.com","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$name":"Mickey Mouse","$firstName":"Mickey","$lastName":"Mouse","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"apiToken123","$distinct_id":"$device:anonId01","$ip":"0.0.0.0","$time":1579847342}]', + '[{"$set":{"$created":"2020-01-23T08:54:02.362Z","$email":"mickey@disney.com","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$name":"Mickey Mouse","$firstName":"Mickey","$lastName":"Mouse","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"apiToken123","$distinct_id":"$device:anonId01","$ip":"0.0.0.0","$time":1579847342402}]', }, XML: {}, FORM: {}, @@ -5109,7 +5109,7 @@ export const data = [ JSON: {}, JSON_ARRAY: { batch: - '[{"event":"test revenue MIXPANEL","properties":{"currency":"USD","revenue":18.9,"city":"Disney","country":"USA","email":"mickey@disney.com","firstName":"Mickey","ip":"0.0.0.0","$user_id":"userId01","$current_url":"https://docs.rudderstack.com/destinations/mixpanel","$screen_dpi":2,"mp_lib":"RudderLabs JavaScript SDK","$app_build_number":"1.0.0","$app_version_string":"1.0.5","$insert_id":"a6a0ad5a-bd26-4f19-8f75-38484e580fc7","token":"apiToken123","distinct_id":"userId01","time":1579847342,"$device_id":"anonId01","$browser":"Chrome","$browser_version":"79.0.3945.117"}}]', + '[{"event":"test revenue MIXPANEL","properties":{"currency":"USD","revenue":18.9,"city":"Disney","country":"USA","email":"mickey@disney.com","firstName":"Mickey","ip":"0.0.0.0","$user_id":"userId01","$current_url":"https://docs.rudderstack.com/destinations/mixpanel","$screen_dpi":2,"mp_lib":"RudderLabs JavaScript SDK","$app_build_number":"1.0.0","$app_version_string":"1.0.5","$insert_id":"a6a0ad5a-bd26-4f19-8f75-38484e580fc7","token":"apiToken123","distinct_id":"userId01","time":1579847342403,"$device_id":"anonId01","$browser":"Chrome","$browser_version":"79.0.3945.117"}}]', }, XML: {}, FORM: {}, @@ -5213,7 +5213,7 @@ export const data = [ JSON: {}, JSON_ARRAY: { batch: - '[{"event":"Loaded a Page","properties":{"ip":"0.0.0.0","$current_url":"https://docs.rudderstack.com/destinations/mixpanel","$screen_dpi":2,"mp_lib":"RudderLabs JavaScript SDK","$app_build_number":"1.0.0","$app_version_string":"1.0.5","$insert_id":"dd266c67-9199-4a52-ba32-f46ddde67312","token":"apiToken123","distinct_id":"$device:anonId01","time":1579847342,"$device_id":"anonId01","name":"Contact Us","$browser":"Chrome","$browser_version":"79.0.3945.117"}}]', + '[{"event":"Loaded a Page","properties":{"ip":"0.0.0.0","$current_url":"https://docs.rudderstack.com/destinations/mixpanel","$screen_dpi":2,"mp_lib":"RudderLabs JavaScript SDK","$app_build_number":"1.0.0","$app_version_string":"1.0.5","$insert_id":"dd266c67-9199-4a52-ba32-f46ddde67312","token":"apiToken123","distinct_id":"$device:anonId01","time":1579847342402,"$device_id":"anonId01","name":"Contact Us","$browser":"Chrome","$browser_version":"79.0.3945.117"}}]', }, XML: {}, FORM: {}, @@ -5524,7 +5524,7 @@ export const data = [ JSON: {}, JSON_ARRAY: { batch: - '[{"event":"Application Installed","properties":{"build":4,"version":"1.0","revenue":12.13,"anonymousId":"39da706ec83d0e90","$os":"Android","$screen_height":2984,"$screen_width":1440,"$screen_dpi":560,"$carrier":"T-Mobile","$os_version":"12","$device":"emu64a","$manufacturer":"Google","$model":"sdk_gphone64_arm64","mp_device_model":"sdk_gphone64_arm64","$wifi":true,"$bluetooth_enabled":true,"mp_lib":"com.rudderstack.android.sdk.core","$app_build_number":"4","$app_version_string":"1.0","$insert_id":"168cf720-6227-4b56-a98e-c49bdc7279e9","$session_id":"1662363980","token":"dummyApiKey","distinct_id":"39da706ec83d0e90","time":null}}]', + '[{"event":"Application Installed","properties":{"build":4,"version":"1.0","revenue":12.13,"anonymousId":"39da706ec83d0e90","$os":"Android","$screen_height":2984,"$screen_width":1440,"$screen_dpi":560,"$carrier":"T-Mobile","$os_version":"12","$device":"emu64a","$manufacturer":"Google","$model":"sdk_gphone64_arm64","mp_device_model":"sdk_gphone64_arm64","$wifi":true,"$bluetooth_enabled":true,"mp_lib":"com.rudderstack.android.sdk.core","$app_build_number":"4","$app_version_string":"1.0","$insert_id":"168cf720-6227-4b56-a98e-c49bdc7279e9","$session_id":"1662363980","token":"dummyApiKey","distinct_id":"39da706ec83d0e90","time":1662363980290}}]', }, XML: {}, FORM: {}, @@ -5730,7 +5730,7 @@ export const data = [ JSON: {}, JSON_ARRAY: { batch: - '[{"$set":{"$carrier":"Android","$manufacturer":"Google","$model":"Android SDK built for x86","$screen_height":1794,"$screen_width":1080,"$wifi":true,"anonymousId":"5094f5704b9cf2b3","userId":"test_user_id","$ios_devices":["test_device_token"],"$os":"iOS","$ios_device_model":"Android SDK built for x86","$ios_version":"8.1.0","$ios_app_release":"1","$ios_app_version":"1.0"},"$token":"dummyApiKey","$distinct_id":"test_user_id","$time":null}]', + '[{"$set":{"$carrier":"Android","$manufacturer":"Google","$model":"Android SDK built for x86","$screen_height":1794,"$screen_width":1080,"$wifi":true,"anonymousId":"5094f5704b9cf2b3","userId":"test_user_id","$ios_devices":["test_device_token"],"$os":"iOS","$ios_device_model":"Android SDK built for x86","$ios_version":"8.1.0","$ios_app_release":"1","$ios_app_version":"1.0"},"$token":"dummyApiKey","$distinct_id":"test_user_id","$time":1584003903421}]', }, XML: {}, FORM: {}, diff --git a/test/integrations/destinations/mp/router/data.ts b/test/integrations/destinations/mp/router/data.ts index 7058929909..0009e2c438 100644 --- a/test/integrations/destinations/mp/router/data.ts +++ b/test/integrations/destinations/mp/router/data.ts @@ -20,10 +20,7 @@ export const data = [ useOldMapping: true, strictMode: true, }), - metadata: { - jobId: 1, - additionalProp: 1, - }, + metadata: { jobId: 1, additionalProp: 1, userId: 'u1' }, message: { anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', channel: 'web', @@ -36,18 +33,10 @@ export const data = [ version: '1.0.5', }, ip: '0.0.0.0', - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.5', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, locale: 'en-GB', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, traits: {}, page: { path: '/destinations/mixpanel', @@ -62,9 +51,7 @@ export const data = [ userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', }, - integrations: { - All: true, - }, + integrations: { All: true }, messageId: 'dd266c67-9199-4a52-ba32-f46ddde67312', originalTimestamp: '2020-01-24T06:29:02.358Z', page: { @@ -94,10 +81,7 @@ export const data = [ identityMergeApi: 'simplified', strictMode: true, }), - metadata: { - jobId: 2, - additionalProp: 2, - }, + metadata: { jobId: 2, additionalProp: 2, userId: 'u1' }, message: { anonymousId: 'anonId01', channel: 'mobile', @@ -116,40 +100,20 @@ export const data = [ type: 'ios', token: 'test_device_token', }, - library: { - name: 'com.rudderstack.android.sdk.core', - version: '1.0.1-beta.1', - }, + library: { name: 'com.rudderstack.android.sdk.core', version: '1.0.1-beta.1' }, locale: 'en-US', - network: { - carrier: 'Android', - bluetooth: false, - cellular: true, - wifi: true, - }, - os: { - name: 'iOS', - version: '8.1.0', - }, - screen: { - density: 420, - height: 1794, - width: 1080, - }, + network: { carrier: 'Android', bluetooth: false, cellular: true, wifi: true }, + os: { name: 'iOS', version: '8.1.0' }, + screen: { density: 420, height: 1794, width: 1080 }, timezone: 'Asia/Kolkata', userAgent: 'Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)', }, event: 'Product Viewed', - integrations: { - All: true, - }, + integrations: { All: true }, userId: 'userId01', messageId: 'id2', - properties: { - name: 'T-Shirt', - revenue: 18.9, - }, + properties: { name: 'T-Shirt', revenue: 18.9 }, type: 'track', originalTimestamp: '2020-01-24T06:29:02.362Z', receivedAt: '2020-01-24T11:59:02.403+05:30', @@ -165,10 +129,7 @@ export const data = [ useOldMapping: true, strictMode: true, }), - metadata: { - jobId: 3, - additionalProp: 3, - }, + metadata: { jobId: 3, additionalProp: 3, userId: 'u1' }, message: { anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', channel: 'web', @@ -180,18 +141,10 @@ export const data = [ version: '1.0.5', }, ip: '0.0.0.0', - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.5', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, locale: 'en-GB', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, traits: { city: 'Disney', country: 'USA', @@ -211,9 +164,7 @@ export const data = [ userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', }, - integrations: { - All: true, - }, + integrations: { All: true }, page: { path: '/destinations/mixpanel', referrer: '', @@ -243,10 +194,7 @@ export const data = [ identityMergeApi: 'simplified', strictMode: true, }), - metadata: { - jobId: 4, - additionalProp: 4, - }, + metadata: { jobId: 4, additionalProp: 4, userId: 'u1' }, message: { anonymousId: 'anonId01', channel: 'web', @@ -258,18 +206,10 @@ export const data = [ version: '1.0.5', }, ip: '0.0.0.0', - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.5', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, locale: 'en-GB', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, traits: { city: 'Disney', country: 'USA', @@ -291,9 +231,7 @@ export const data = [ userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', }, - integrations: { - All: true, - }, + integrations: { All: true }, page: { path: '/destinations/mixpanel', referrer: '', @@ -320,10 +258,7 @@ export const data = [ token: 'test_api_token', strictMode: true, }), - metadata: { - jobId: 5, - additionalProp: 5, - }, + metadata: { jobId: 5, additionalProp: 5, userId: 'u1' }, message: { anonymousId: '5094f5704b9cf2b3', channel: 'mobile', @@ -342,44 +277,21 @@ export const data = [ type: 'ios', token: 'test_device_token', }, - library: { - name: 'com.rudderstack.android.sdk.core', - version: '1.0.1-beta.1', - }, + library: { name: 'com.rudderstack.android.sdk.core', version: '1.0.1-beta.1' }, locale: 'en-US', - network: { - carrier: 'Android', - bluetooth: false, - cellular: true, - wifi: true, - }, - os: { - name: 'iOS', - version: '8.1.0', - }, - screen: { - density: 420, - height: 1794, - width: 1080, - }, + network: { carrier: 'Android', bluetooth: false, cellular: true, wifi: true }, + os: { name: 'iOS', version: '8.1.0' }, + screen: { density: 420, height: 1794, width: 1080 }, timezone: 'Asia/Kolkata', - traits: { - anonymousId: '5094f5704b9cf2b3', - userId: 'test_user_id', - }, + traits: { anonymousId: '5094f5704b9cf2b3', userId: 'test_user_id' }, userAgent: 'Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)', }, event: 'MainActivity', - integrations: { - All: true, - }, + integrations: { All: true }, userId: 'test_user_id', messageId: 'id2', - properties: { - name: 'MainActivity', - automatic: true, - }, + properties: { name: 'MainActivity', automatic: true }, originalTimestamp: '2020-03-12T09:05:03.421Z', type: 'identify', sentAt: '2020-03-12T09:05:13.042Z', @@ -397,10 +309,7 @@ export const data = [ ], strictMode: true, }), - metadata: { - jobId: 6, - additionalProp: 6, - }, + metadata: { jobId: 6, additionalProp: 6, userId: 'u1' }, message: { anonymousId: 'anonId06', channel: 'web', @@ -412,18 +321,10 @@ export const data = [ version: '1.0.5', }, ip: '0.0.0.0', - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.5', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, locale: 'en-GB', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, page: { path: '/destinations/mixpanel', referrer: '', @@ -437,9 +338,7 @@ export const data = [ userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', }, - integrations: { - All: true, - }, + integrations: { All: true }, page: { path: '/destinations/mixpanel', referrer: '', @@ -450,9 +349,7 @@ export const data = [ initial_referrer: 'https://docs.rudderstack.com', initial_referring_domain: 'docs.rudderstack.com', }, - traits: { - company: 'testComp', - }, + traits: { company: 'testComp' }, messageId: '2536eda4-d638-4c93-8014-8ffe3f083214', originalTimestamp: '2020-01-24T06:29:02.362Z', receivedAt: '2020-01-24T11:59:02.403+05:30', @@ -475,10 +372,7 @@ export const data = [ ], strictMode: true, }), - metadata: { - jobId: 7, - additionalProp: 7, - }, + metadata: { jobId: 7, additionalProp: 7, userId: 'u1' }, message: { anonymousId: 'anonId06', channel: 'web', @@ -490,18 +384,10 @@ export const data = [ version: '1.0.5', }, ip: '0.0.0.0', - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.5', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, locale: 'en-GB', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, page: { path: '/destinations/mixpanel', referrer: '', @@ -515,9 +401,7 @@ export const data = [ userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', }, - integrations: { - All: true, - }, + integrations: { All: true }, page: { path: '/destinations/mixpanel', referrer: '', @@ -542,9 +426,7 @@ export const data = [ destType: 'mp', }, method: 'POST', - headers: { - 'X-Feature-Gzip-Support': '?1', - }, + headers: { 'X-Feature-Gzip-Support': '?1' }, }, }, output: { @@ -562,27 +444,20 @@ export const data = [ 'Content-Type': 'application/json', Authorization: 'Basic dGVzdF9hcGlfc2VjcmV0Og==', }, - params: { - strict: 1, - }, + params: { strict: 1 }, body: { JSON: {}, JSON_ARRAY: {}, GZIP: { payload: - '[{"event":"Loaded a Page","properties":{"ip":"0.0.0.0","$user_id":"hjikl","$current_url":"https://docs.rudderstack.com/destinations/mixpanel","$screen_dpi":2,"mp_lib":"RudderLabs JavaScript SDK","$app_build_number":"1.0.0","$app_version_string":"1.0.5","$insert_id":"dd266c67-9199-4a52-ba32-f46ddde67312","token":"test_api_token","distinct_id":"hjikl","time":1688624942,"name":"Contact Us","$browser":"Chrome","$browser_version":"79.0.3945.117"}}]', + '[{"event":"Loaded a Page","properties":{"ip":"0.0.0.0","$user_id":"hjikl","$current_url":"https://docs.rudderstack.com/destinations/mixpanel","$screen_dpi":2,"mp_lib":"RudderLabs JavaScript SDK","$app_build_number":"1.0.0","$app_version_string":"1.0.5","$insert_id":"dd266c67-9199-4a52-ba32-f46ddde67312","token":"test_api_token","distinct_id":"hjikl","time":1688624942402,"name":"Contact Us","$browser":"Chrome","$browser_version":"79.0.3945.117"}}]', }, XML: {}, FORM: {}, }, files: {}, }, - metadata: [ - { - jobId: 1, - additionalProp: 1, - }, - ], + metadata: [{ jobId: 1, additionalProp: 1, userId: 'u1' }], batched: true, statusCode: 200, destination: { @@ -635,15 +510,13 @@ export const data = [ 'Content-Type': 'application/json', Authorization: 'Basic dGVzdF9hcGlfc2VjcmV0Og==', }, - params: { - strict: 1, - }, + params: { strict: 1 }, body: { JSON: {}, JSON_ARRAY: {}, GZIP: { payload: - '[{"event":"Product Viewed","properties":{"name":"T-Shirt","revenue":18.9,"$user_id":"userId01","$os":"iOS","$screen_height":1794,"$screen_width":1080,"$screen_dpi":420,"$carrier":"Android","$os_version":"8.1.0","$device":"generic_x86","$manufacturer":"Google","$model":"Android SDK built for x86","mp_device_model":"Android SDK built for x86","$wifi":true,"$bluetooth_enabled":false,"mp_lib":"com.rudderstack.android.sdk.core","$app_build_number":"1","$app_version_string":"1.0","$insert_id":"id2","token":"test_api_token","distinct_id":"userId01","time":1688624942,"$device_id":"anonId01"}}]', + '[{"event":"Product Viewed","properties":{"name":"T-Shirt","revenue":18.9,"$user_id":"userId01","$os":"iOS","$screen_height":1794,"$screen_width":1080,"$screen_dpi":420,"$carrier":"Android","$os_version":"8.1.0","$device":"generic_x86","$manufacturer":"Google","$model":"Android SDK built for x86","mp_device_model":"Android SDK built for x86","$wifi":true,"$bluetooth_enabled":false,"mp_lib":"com.rudderstack.android.sdk.core","$app_build_number":"1","$app_version_string":"1.0","$insert_id":"id2","token":"test_api_token","distinct_id":"userId01","time":1688624942402,"$device_id":"anonId01"}}]', }, XML: {}, FORM: {}, @@ -651,12 +524,7 @@ export const data = [ files: {}, }, ], - metadata: [ - { - jobId: 2, - additionalProp: 2, - }, - ], + metadata: [{ jobId: 2, additionalProp: 2, userId: 'u1' }], batched: true, statusCode: 200, destination: { @@ -693,7 +561,7 @@ export const data = [ JSON: {}, JSON_ARRAY: { batch: - '[{"$set":{"$email":"mickey@disney.com","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$firstName":"Mickey","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"test_api_token","$distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","$ip":"0.0.0.0","$time":1688624942},{"$set":{"$created":"2020-01-23T08:54:02.362Z","$email":"mickey@disney.com","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$name":"Mickey Mouse","$firstName":"Mickey","$lastName":"Mouse","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"test_api_token","$distinct_id":"$device:anonId01","$ip":"0.0.0.0","$time":1688624942},{"$set":{"$carrier":"Android","$manufacturer":"Google","$model":"Android SDK built for x86","$screen_height":1794,"$screen_width":1080,"$wifi":true,"anonymousId":"5094f5704b9cf2b3","userId":"test_user_id","$ios_devices":["test_device_token"],"$os":"iOS","$ios_device_model":"Android SDK built for x86","$ios_version":"8.1.0","$ios_app_release":"1","$ios_app_version":"1.0"},"$token":"test_api_token","$distinct_id":"test_user_id","$time":null}]', + '[{"$set":{"$email":"mickey@disney.com","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$firstName":"Mickey","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"test_api_token","$distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","$ip":"0.0.0.0","$time":1688624942402},{"$set":{"$created":"2020-01-23T08:54:02.362Z","$email":"mickey@disney.com","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$name":"Mickey Mouse","$firstName":"Mickey","$lastName":"Mouse","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"test_api_token","$distinct_id":"$device:anonId01","$ip":"0.0.0.0","$time":1688624942402},{"$set":{"$carrier":"Android","$manufacturer":"Google","$model":"Android SDK built for x86","$screen_height":1794,"$screen_width":1080,"$wifi":true,"anonymousId":"5094f5704b9cf2b3","userId":"test_user_id","$ios_devices":["test_device_token"],"$os":"iOS","$ios_device_model":"Android SDK built for x86","$ios_version":"8.1.0","$ios_app_release":"1","$ios_app_version":"1.0"},"$token":"test_api_token","$distinct_id":"test_user_id","$time":1584003903421}]', }, XML: {}, FORM: {}, @@ -709,9 +577,7 @@ export const data = [ 'Content-Type': 'application/json', Authorization: 'Basic dGVzdF9hcGlfc2VjcmV0Og==', }, - params: { - strict: 1, - }, + params: { strict: 1 }, body: { JSON: {}, JSON_ARRAY: {}, @@ -726,18 +592,9 @@ export const data = [ }, ], metadata: [ - { - jobId: 3, - additionalProp: 3, - }, - { - jobId: 4, - additionalProp: 4, - }, - { - jobId: 5, - additionalProp: 5, - }, + { jobId: 3, additionalProp: 3, userId: 'u1' }, + { jobId: 4, additionalProp: 4, userId: 'u1' }, + { jobId: 5, additionalProp: 5, userId: 'u1' }, ], batched: true, statusCode: 200, @@ -801,12 +658,7 @@ export const data = [ files: {}, }, ], - metadata: [ - { - jobId: 6, - additionalProp: 6, - }, - ], + metadata: [{ jobId: 6, additionalProp: 6, userId: 'u1' }], batched: true, statusCode: 200, destination: { @@ -815,11 +667,7 @@ export const data = [ apiSecret: 'test_api_secret', token: 'test_api_token', prefixProperties: true, - groupKeySettings: [ - { - groupKey: 'company', - }, - ], + groupKeySettings: [{ groupKey: 'company' }], strictMode: true, useNativeSDK: false, }, @@ -835,12 +683,7 @@ export const data = [ }, }, { - metadata: [ - { - jobId: 7, - additionalProp: 7, - }, - ], + metadata: [{ jobId: 7, additionalProp: 7, userId: 'u1' }], batched: false, statusCode: 400, error: @@ -860,11 +703,7 @@ export const data = [ token: 'test_api_token', prefixProperties: true, useNativeSDK: false, - groupKeySettings: [ - { - groupKey: 'company', - }, - ], + groupKeySettings: [{ groupKey: 'company' }], strictMode: true, }, DestinationDefinition: { @@ -901,10 +740,7 @@ export const data = [ useOldMapping: true, strictMode: true, }), - metadata: { - jobId: 1, - additionalProp: 1, - }, + metadata: { jobId: 1, additionalProp: 1, userId: 'u1' }, message: { anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', channel: 'web', @@ -917,18 +753,10 @@ export const data = [ version: '1.0.5', }, ip: '0.0.0.0', - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.5', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, locale: 'en-GB', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, traits: {}, page: { path: '/destinations/mixpanel', @@ -943,9 +771,7 @@ export const data = [ userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', }, - integrations: { - All: true, - }, + integrations: { All: true }, messageId: 'dd266c67-9199-4a52-ba32-f46ddde67312', originalTimestamp: '2020-01-24T06:29:02.358Z', page: { @@ -975,10 +801,7 @@ export const data = [ identityMergeApi: 'simplified', strictMode: true, }), - metadata: { - jobId: 2, - additionalProp: 2, - }, + metadata: { jobId: 2, additionalProp: 2, userId: 'u1' }, message: { anonymousId: 'anonId01', channel: 'mobile', @@ -997,40 +820,20 @@ export const data = [ type: 'ios', token: 'test_device_token', }, - library: { - name: 'com.rudderstack.android.sdk.core', - version: '1.0.1-beta.1', - }, + library: { name: 'com.rudderstack.android.sdk.core', version: '1.0.1-beta.1' }, locale: 'en-US', - network: { - carrier: 'Android', - bluetooth: false, - cellular: true, - wifi: true, - }, - os: { - name: 'iOS', - version: '8.1.0', - }, - screen: { - density: 420, - height: 1794, - width: 1080, - }, + network: { carrier: 'Android', bluetooth: false, cellular: true, wifi: true }, + os: { name: 'iOS', version: '8.1.0' }, + screen: { density: 420, height: 1794, width: 1080 }, timezone: 'Asia/Kolkata', userAgent: 'Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)', }, event: 'Product Viewed', - integrations: { - All: true, - }, + integrations: { All: true }, userId: 'userId01', messageId: 'id2', - properties: { - name: 'T-Shirt', - revenue: 18.9, - }, + properties: { name: 'T-Shirt', revenue: 18.9 }, type: 'track', originalTimestamp: '2020-01-24T06:29:02.362Z', receivedAt: '2020-01-24T11:59:02.403+05:30', @@ -1046,10 +849,7 @@ export const data = [ useOldMapping: true, strictMode: true, }), - metadata: { - jobId: 3, - additionalProp: 3, - }, + metadata: { jobId: 3, additionalProp: 3, userId: 'u1' }, message: { anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', channel: 'web', @@ -1061,18 +861,10 @@ export const data = [ version: '1.0.5', }, ip: '0.0.0.0', - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.5', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, locale: 'en-GB', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, traits: { city: 'Disney', country: 'USA', @@ -1092,9 +884,7 @@ export const data = [ userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', }, - integrations: { - All: true, - }, + integrations: { All: true }, page: { path: '/destinations/mixpanel', referrer: '', @@ -1124,10 +914,7 @@ export const data = [ identityMergeApi: 'simplified', strictMode: true, }), - metadata: { - jobId: 4, - additionalProp: 4, - }, + metadata: { jobId: 4, additionalProp: 4, userId: 'u1' }, message: { anonymousId: 'anonId01', channel: 'web', @@ -1139,18 +926,10 @@ export const data = [ version: '1.0.5', }, ip: '0.0.0.0', - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.5', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, locale: 'en-GB', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, traits: { city: 'Disney', country: 'USA', @@ -1172,9 +951,7 @@ export const data = [ userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', }, - integrations: { - All: true, - }, + integrations: { All: true }, page: { path: '/destinations/mixpanel', referrer: '', @@ -1201,10 +978,7 @@ export const data = [ token: 'test_api_token', strictMode: true, }), - metadata: { - jobId: 5, - additionalProp: 5, - }, + metadata: { jobId: 5, additionalProp: 5, userId: 'u1' }, message: { anonymousId: '5094f5704b9cf2b3', channel: 'mobile', @@ -1223,44 +997,21 @@ export const data = [ type: 'ios', token: 'test_device_token', }, - library: { - name: 'com.rudderstack.android.sdk.core', - version: '1.0.1-beta.1', - }, + library: { name: 'com.rudderstack.android.sdk.core', version: '1.0.1-beta.1' }, locale: 'en-US', - network: { - carrier: 'Android', - bluetooth: false, - cellular: true, - wifi: true, - }, - os: { - name: 'iOS', - version: '8.1.0', - }, - screen: { - density: 420, - height: 1794, - width: 1080, - }, + network: { carrier: 'Android', bluetooth: false, cellular: true, wifi: true }, + os: { name: 'iOS', version: '8.1.0' }, + screen: { density: 420, height: 1794, width: 1080 }, timezone: 'Asia/Kolkata', - traits: { - anonymousId: '5094f5704b9cf2b3', - userId: 'test_user_id', - }, + traits: { anonymousId: '5094f5704b9cf2b3', userId: 'test_user_id' }, userAgent: 'Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)', }, event: 'MainActivity', - integrations: { - All: true, - }, + integrations: { All: true }, userId: 'test_user_id', messageId: 'id2', - properties: { - name: 'MainActivity', - automatic: true, - }, + properties: { name: 'MainActivity', automatic: true }, originalTimestamp: '2020-03-12T09:05:03.421Z', type: 'identify', sentAt: '2020-03-12T09:05:13.042Z', @@ -1278,10 +1029,7 @@ export const data = [ ], strictMode: true, }), - metadata: { - jobId: 6, - additionalProp: 6, - }, + metadata: { jobId: 6, additionalProp: 6, userId: 'u1' }, message: { anonymousId: 'anonId06', channel: 'web', @@ -1293,18 +1041,10 @@ export const data = [ version: '1.0.5', }, ip: '0.0.0.0', - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.5', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, locale: 'en-GB', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, page: { path: '/destinations/mixpanel', referrer: '', @@ -1318,9 +1058,7 @@ export const data = [ userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', }, - integrations: { - All: true, - }, + integrations: { All: true }, page: { path: '/destinations/mixpanel', referrer: '', @@ -1331,9 +1069,7 @@ export const data = [ initial_referrer: 'https://docs.rudderstack.com', initial_referring_domain: 'docs.rudderstack.com', }, - traits: { - company: 'testComp', - }, + traits: { company: 'testComp' }, messageId: '2536eda4-d638-4c93-8014-8ffe3f083214', originalTimestamp: '2020-01-24T06:29:02.362Z', receivedAt: '2020-01-24T11:59:02.403+05:30', @@ -1356,10 +1092,7 @@ export const data = [ ], strictMode: true, }), - metadata: { - jobId: 7, - additionalProp: 7, - }, + metadata: { jobId: 7, additionalProp: 7, userId: 'u1' }, message: { anonymousId: 'anonId06', channel: 'web', @@ -1371,18 +1104,10 @@ export const data = [ version: '1.0.5', }, ip: '0.0.0.0', - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.5', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, locale: 'en-GB', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, page: { path: '/destinations/mixpanel', referrer: '', @@ -1396,9 +1121,7 @@ export const data = [ userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', }, - integrations: { - All: true, - }, + integrations: { All: true }, page: { path: '/destinations/mixpanel', referrer: '', @@ -1440,26 +1163,19 @@ export const data = [ 'Content-Type': 'application/json', Authorization: 'Basic dGVzdF9hcGlfc2VjcmV0Og==', }, - params: { - strict: 1, - }, + params: { strict: 1 }, body: { JSON: {}, JSON_ARRAY: { batch: - '[{"event":"Loaded a Page","properties":{"ip":"0.0.0.0","$user_id":"hjikl","$current_url":"https://docs.rudderstack.com/destinations/mixpanel","$screen_dpi":2,"mp_lib":"RudderLabs JavaScript SDK","$app_build_number":"1.0.0","$app_version_string":"1.0.5","$insert_id":"dd266c67-9199-4a52-ba32-f46ddde67312","token":"test_api_token","distinct_id":"hjikl","time":1688624942,"name":"Contact Us","$browser":"Chrome","$browser_version":"79.0.3945.117"}}]', + '[{"event":"Loaded a Page","properties":{"ip":"0.0.0.0","$user_id":"hjikl","$current_url":"https://docs.rudderstack.com/destinations/mixpanel","$screen_dpi":2,"mp_lib":"RudderLabs JavaScript SDK","$app_build_number":"1.0.0","$app_version_string":"1.0.5","$insert_id":"dd266c67-9199-4a52-ba32-f46ddde67312","token":"test_api_token","distinct_id":"hjikl","time":1688624942402,"name":"Contact Us","$browser":"Chrome","$browser_version":"79.0.3945.117"}}]', }, XML: {}, FORM: {}, }, files: {}, }, - metadata: [ - { - jobId: 1, - additionalProp: 1, - }, - ], + metadata: [{ jobId: 1, additionalProp: 1, userId: 'u1' }], batched: true, statusCode: 200, destination: { @@ -1512,14 +1228,12 @@ export const data = [ 'Content-Type': 'application/json', Authorization: 'Basic dGVzdF9hcGlfc2VjcmV0Og==', }, - params: { - strict: 1, - }, + params: { strict: 1 }, body: { JSON: {}, JSON_ARRAY: { batch: - '[{"event":"Product Viewed","properties":{"name":"T-Shirt","revenue":18.9,"$user_id":"userId01","$os":"iOS","$screen_height":1794,"$screen_width":1080,"$screen_dpi":420,"$carrier":"Android","$os_version":"8.1.0","$device":"generic_x86","$manufacturer":"Google","$model":"Android SDK built for x86","mp_device_model":"Android SDK built for x86","$wifi":true,"$bluetooth_enabled":false,"mp_lib":"com.rudderstack.android.sdk.core","$app_build_number":"1","$app_version_string":"1.0","$insert_id":"id2","token":"test_api_token","distinct_id":"userId01","time":1688624942,"$device_id":"anonId01"}}]', + '[{"event":"Product Viewed","properties":{"name":"T-Shirt","revenue":18.9,"$user_id":"userId01","$os":"iOS","$screen_height":1794,"$screen_width":1080,"$screen_dpi":420,"$carrier":"Android","$os_version":"8.1.0","$device":"generic_x86","$manufacturer":"Google","$model":"Android SDK built for x86","mp_device_model":"Android SDK built for x86","$wifi":true,"$bluetooth_enabled":false,"mp_lib":"com.rudderstack.android.sdk.core","$app_build_number":"1","$app_version_string":"1.0","$insert_id":"id2","token":"test_api_token","distinct_id":"userId01","time":1688624942402,"$device_id":"anonId01"}}]', }, XML: {}, FORM: {}, @@ -1527,12 +1241,7 @@ export const data = [ files: {}, }, ], - metadata: [ - { - jobId: 2, - additionalProp: 2, - }, - ], + metadata: [{ jobId: 2, additionalProp: 2, userId: 'u1' }], batched: true, statusCode: 200, destination: { @@ -1569,7 +1278,7 @@ export const data = [ JSON: {}, JSON_ARRAY: { batch: - '[{"$set":{"$email":"mickey@disney.com","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$firstName":"Mickey","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"test_api_token","$distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","$ip":"0.0.0.0","$time":1688624942},{"$set":{"$created":"2020-01-23T08:54:02.362Z","$email":"mickey@disney.com","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$name":"Mickey Mouse","$firstName":"Mickey","$lastName":"Mouse","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"test_api_token","$distinct_id":"$device:anonId01","$ip":"0.0.0.0","$time":1688624942},{"$set":{"$carrier":"Android","$manufacturer":"Google","$model":"Android SDK built for x86","$screen_height":1794,"$screen_width":1080,"$wifi":true,"anonymousId":"5094f5704b9cf2b3","userId":"test_user_id","$ios_devices":["test_device_token"],"$os":"iOS","$ios_device_model":"Android SDK built for x86","$ios_version":"8.1.0","$ios_app_release":"1","$ios_app_version":"1.0"},"$token":"test_api_token","$distinct_id":"test_user_id","$time":null}]', + '[{"$set":{"$email":"mickey@disney.com","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$firstName":"Mickey","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"test_api_token","$distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","$ip":"0.0.0.0","$time":1688624942402},{"$set":{"$created":"2020-01-23T08:54:02.362Z","$email":"mickey@disney.com","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$name":"Mickey Mouse","$firstName":"Mickey","$lastName":"Mouse","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"test_api_token","$distinct_id":"$device:anonId01","$ip":"0.0.0.0","$time":1688624942402},{"$set":{"$carrier":"Android","$manufacturer":"Google","$model":"Android SDK built for x86","$screen_height":1794,"$screen_width":1080,"$wifi":true,"anonymousId":"5094f5704b9cf2b3","userId":"test_user_id","$ios_devices":["test_device_token"],"$os":"iOS","$ios_device_model":"Android SDK built for x86","$ios_version":"8.1.0","$ios_app_release":"1","$ios_app_version":"1.0"},"$token":"test_api_token","$distinct_id":"test_user_id","$time":1584003903421}]', }, XML: {}, FORM: {}, @@ -1585,9 +1294,7 @@ export const data = [ 'Content-Type': 'application/json', Authorization: 'Basic dGVzdF9hcGlfc2VjcmV0Og==', }, - params: { - strict: 1, - }, + params: { strict: 1 }, body: { JSON: {}, JSON_ARRAY: { @@ -1601,18 +1308,9 @@ export const data = [ }, ], metadata: [ - { - jobId: 3, - additionalProp: 3, - }, - { - jobId: 4, - additionalProp: 4, - }, - { - jobId: 5, - additionalProp: 5, - }, + { jobId: 3, additionalProp: 3, userId: 'u1' }, + { jobId: 4, additionalProp: 4, userId: 'u1' }, + { jobId: 5, additionalProp: 5, userId: 'u1' }, ], batched: true, statusCode: 200, @@ -1676,12 +1374,7 @@ export const data = [ files: {}, }, ], - metadata: [ - { - jobId: 6, - additionalProp: 6, - }, - ], + metadata: [{ jobId: 6, additionalProp: 6, userId: 'u1' }], batched: true, statusCode: 200, destination: { @@ -1690,11 +1383,7 @@ export const data = [ apiSecret: 'test_api_secret', token: 'test_api_token', prefixProperties: true, - groupKeySettings: [ - { - groupKey: 'company', - }, - ], + groupKeySettings: [{ groupKey: 'company' }], strictMode: true, useNativeSDK: false, }, @@ -1710,12 +1399,7 @@ export const data = [ }, }, { - metadata: [ - { - jobId: 7, - additionalProp: 7, - }, - ], + metadata: [{ jobId: 7, additionalProp: 7, userId: 'u1' }], batched: false, statusCode: 400, error: @@ -1735,11 +1419,7 @@ export const data = [ token: 'test_api_token', prefixProperties: true, useNativeSDK: false, - groupKeySettings: [ - { - groupKey: 'company', - }, - ], + groupKeySettings: [{ groupKey: 'company' }], strictMode: true, }, DestinationDefinition: { diff --git a/test/integrations/destinations/ometria/router/data.ts b/test/integrations/destinations/ometria/router/data.ts index ef15eea586..58f3a91d87 100644 --- a/test/integrations/destinations/ometria/router/data.ts +++ b/test/integrations/destinations/ometria/router/data.ts @@ -16,10 +16,7 @@ export const data = [ userId: 'userId1', channel: 'web', context: { - os: { - name: '', - version: '', - }, + os: { name: '', version: '' }, app: { name: 'RudderLabs JavaScript SDK', build: '1.0.0', @@ -53,10 +50,7 @@ export const data = [ field1: 'val1', ip: '0.0.0.0', }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.2.1', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.2.1' }, campaign: {}, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36', @@ -67,14 +61,10 @@ export const data = [ receivedAt: '2021-10-25T15:10:08.889+05:30', request_ip: '[::1]', anonymousId: '7138f7d9-5dd2-4337-805d-ca17be59dc8e', - integrations: { - Ometria: { - listingId: 'test1', - }, - }, + integrations: { Ometria: { listingId: 'test1' } }, originalTimestamp: '2021-10-25T09:40:08.879Z', }, - metadata: { jobId: 1 }, + metadata: { jobId: 1, userId: 'u1' }, destination: { ID: '1zzHtStW2ZPlullmz6L7DGnmk9V', Name: 'ometria-dev', @@ -131,10 +121,7 @@ export const data = [ userId: 'userId1', channel: 'web', context: { - os: { - name: '', - version: '', - }, + os: { name: '', version: '' }, app: { name: 'RudderLabs JavaScript SDK', build: '1.0.0', @@ -168,10 +155,7 @@ export const data = [ field1: 'val1', ip: '0.0.0.0', }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.2.1', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.2.1' }, campaign: {}, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36', @@ -181,15 +165,10 @@ export const data = [ timestamp: '2021-10-25T15:10:08.888+05:30', receivedAt: '2021-10-25T15:10:08.889+05:30', request_ip: '[::1]', - integrations: { - Ometria: { - listingId: 'updatedId1', - allowMarketing: true, - }, - }, + integrations: { Ometria: { listingId: 'updatedId1', allowMarketing: true } }, originalTimestamp: '2021-10-25T09:40:08.879Z', }, - metadata: { jobId: 2 }, + metadata: { jobId: 2, userId: 'u1' }, destination: { ID: '1zzHtStW2ZPlullmz6L7DGnmk9V', Name: 'ometria-dev', @@ -255,9 +234,7 @@ export const data = [ type: 'REST', method: 'POST', endpoint: 'https://api.ometria.com/v2/push', - headers: { - 'X-Ometria-Auth': 'dummyApiKey', - }, + headers: { 'X-Ometria-Auth': 'dummyApiKey' }, params: {}, body: { JSON: {}, @@ -271,12 +248,8 @@ export const data = [ files: {}, }, metadata: [ - { - jobId: 1, - }, - { - jobId: 2, - }, + { jobId: 1, userId: 'u1' }, + { jobId: 2, userId: 'u1' }, ], batched: true, statusCode: 200, diff --git a/test/integrations/destinations/one_signal/router/data.ts b/test/integrations/destinations/one_signal/router/data.ts index 5f45d2e624..fe8460e45d 100644 --- a/test/integrations/destinations/one_signal/router/data.ts +++ b/test/integrations/destinations/one_signal/router/data.ts @@ -19,19 +19,14 @@ export const data = [ allowedProperties: [], }, }, - metadata: { - jobId: 1, - }, + metadata: { jobId: 1, userId: 'u1' }, message: { type: 'identify', sentAt: '2021-01-03T17:02:53.195Z', userId: 'user@27', channel: 'web', context: { - os: { - name: '', - version: '1.12.3', - }, + os: { name: '', version: '1.12.3' }, app: { name: 'RudderLabs JavaScript SDK', build: '1.0.0', @@ -46,18 +41,9 @@ export const data = [ userId: 'user@27', }, locale: 'en-US', - device: { - token: 'token', - id: 'id', - type: 'ios', - }, - screen: { - density: 2, - }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.1.11', - }, + device: { token: 'token', id: 'id', type: 'ios' }, + screen: { density: 2 }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.11' }, campaign: {}, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', @@ -75,34 +61,19 @@ export const data = [ emailDeviceType: false, smsDeviceType: false, eventAsTags: false, - allowedProperties: [ - { - propertyName: 'brand', - }, - { - propertyName: 'price', - }, - ], + allowedProperties: [{ propertyName: 'brand' }, { propertyName: 'price' }], }, }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, message: { event: 'add_to_Cart', type: 'track', sentAt: '2021-01-03T17:02:53.195Z', userId: 'user@27', channel: 'web', - properties: { - brand: 'Zara', - price: '12000', - }, + properties: { brand: 'Zara', price: '12000' }, context: { - os: { - name: '', - version: '', - }, + os: { name: '', version: '' }, app: { name: 'RudderLabs JavaScript SDK', build: '1.0.0', @@ -110,13 +81,8 @@ export const data = [ namespace: 'com.rudderlabs.javascript', }, locale: 'en-US', - screen: { - density: 2, - }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.1.11', - }, + screen: { density: 2 }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.11' }, campaign: {}, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', @@ -145,10 +111,7 @@ export const data = [ type: 'REST', method: 'POST', endpoint: 'https://onesignal.com/api/v1/players', - headers: { - Accept: 'application/json', - 'Content-Type': 'application/json', - }, + headers: { Accept: 'application/json', 'Content-Type': 'application/json' }, params: {}, body: { JSON: { @@ -180,10 +143,7 @@ export const data = [ type: 'REST', method: 'POST', endpoint: 'https://onesignal.com/api/v1/players', - headers: { - Accept: 'application/json', - 'Content-Type': 'application/json', - }, + headers: { Accept: 'application/json', 'Content-Type': 'application/json' }, params: {}, body: { JSON: { @@ -211,11 +171,7 @@ export const data = [ files: {}, }, ], - metadata: [ - { - jobId: 1, - }, - ], + metadata: [{ jobId: 1, userId: 'u1' }], batched: false, statusCode: 200, destination: { @@ -233,32 +189,19 @@ export const data = [ body: { XML: {}, FORM: {}, - JSON: { - tags: { - brand: 'Zara', - price: '12000', - add_to_Cart: true, - }, - }, + JSON: { tags: { brand: 'Zara', price: '12000', add_to_Cart: true } }, JSON_ARRAY: {}, }, type: 'REST', files: {}, method: 'PUT', params: {}, - headers: { - Accept: 'application/json', - 'Content-Type': 'application/json', - }, + headers: { Accept: 'application/json', 'Content-Type': 'application/json' }, version: '1', endpoint: 'https://onesignal.com/api/v1/apps/random-818c-4a28-b98e-6cd8a994eb22/users/user@27', }, - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], batched: false, statusCode: 200, destination: { @@ -267,14 +210,7 @@ export const data = [ emailDeviceType: false, smsDeviceType: false, eventAsTags: false, - allowedProperties: [ - { - propertyName: 'brand', - }, - { - propertyName: 'price', - }, - ], + allowedProperties: [{ propertyName: 'brand' }, { propertyName: 'price' }], }, }, }, diff --git a/test/integrations/destinations/optimizely_fullstack/router/data.ts b/test/integrations/destinations/optimizely_fullstack/router/data.ts index 1803881f30..270ac6873e 100644 --- a/test/integrations/destinations/optimizely_fullstack/router/data.ts +++ b/test/integrations/destinations/optimizely_fullstack/router/data.ts @@ -18,11 +18,7 @@ export const data = [ channel: 'web', properties: {}, context: { - traits: { - organization: 'RudderStack', - fullName: 'John Doe', - country: 'US', - }, + traits: { organization: 'RudderStack', fullName: 'John Doe', country: 'US' }, sessionId: 1685626914716, }, rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', @@ -32,17 +28,11 @@ export const data = [ userId: 'userId123', integrations: { All: true, - optimizely_fullstack: { - variationId: 'test_variation_id_1', - }, + optimizely_fullstack: { variationId: 'test_variation_id_1' }, }, }, destination: { - DestinationDefinition: { - Config: { - cdkV2Enabled: true, - }, - }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, Config: { dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', accountId: 'test_account_id', @@ -50,20 +40,12 @@ export const data = [ experimentId: 'test_experiment_id', trackKnownUsers: true, attributeMapping: [ - { - from: 'organization', - to: 'company', - }, - { - from: 'fullName', - to: 'name', - }, + { from: 'organization', to: 'company' }, + { from: 'fullName', to: 'name' }, ], }, }, - metadata: { - jobId: 1, - }, + metadata: { jobId: 1, userId: 'u1' }, }, { message: { @@ -72,34 +54,21 @@ export const data = [ userId: 'userId123', channel: 'web', context: { - traits: { - organization: 'RudderStack', - fullName: 'John Doe', - }, + traits: { organization: 'RudderStack', fullName: 'John Doe' }, sessionId: 1685626914716, }, rudderId: '5354b3f2-cb72-4355-a2b5-a298c3837c7d', messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', timestamp: '2023-02-10T12:16:07.251Z', - properties: { - foo: 'bar', - revenue: 123, - quantity: 2, - }, + properties: { foo: 'bar', revenue: 123, quantity: 2 }, anonymousId: '856365b8-da4b-4c13-9098-84df18559446', integrations: { All: true, - optimizely_fullstack: { - variationId: 'test_variation_id_2', - }, + optimizely_fullstack: { variationId: 'test_variation_id_2' }, }, }, destination: { - DestinationDefinition: { - Config: { - cdkV2Enabled: true, - }, - }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, Config: { dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', accountId: 'test_account_id', @@ -108,30 +77,16 @@ export const data = [ trackKnownUsers: true, anonymizeIp: true, eventMapping: [ - { - from: 'Product Searched', - to: 'Searched', - }, - { - from: 'product_added', - to: 'Product Added', - }, + { from: 'Product Searched', to: 'Searched' }, + { from: 'product_added', to: 'Product Added' }, ], attributeMapping: [ - { - from: 'organization', - to: 'company', - }, - { - from: 'fullName', - to: 'name', - }, + { from: 'organization', to: 'company' }, + { from: 'fullName', to: 'name' }, ], }, }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, }, { message: { @@ -139,33 +94,21 @@ export const data = [ userId: 'userId123', channel: 'web', context: { - traits: { - organization: 'RudderStack', - fullName: 'John Doe', - }, + traits: { organization: 'RudderStack', fullName: 'John Doe' }, sessionId: 1685626914716, }, rudderId: '5354b3f2-cb72-4355-a2b5-a298c3837c7d', messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', timestamp: '2023-02-10T12:16:07.251Z', - properties: { - foo: 'bar', - category: 'food', - }, + properties: { foo: 'bar', category: 'food' }, anonymousId: '856365b8-da4b-4c13-9098-84df18559446', integrations: { All: true, - optimizely_fullstack: { - variationId: 'test_variation_id_1', - }, + optimizely_fullstack: { variationId: 'test_variation_id_1' }, }, }, destination: { - DestinationDefinition: { - Config: { - cdkV2Enabled: true, - }, - }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, Config: { dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', accountId: 'test_account_id', @@ -176,20 +119,12 @@ export const data = [ trackCategorizedPages: true, trackNamedPages: false, pageMapping: [ - { - from: 'meal', - to: 'Viewed Meal Page', - }, - { - from: 'food', - to: 'Product Added', - }, + { from: 'meal', to: 'Viewed Meal Page' }, + { from: 'food', to: 'Product Added' }, ], }, }, - metadata: { - jobId: 3, - }, + metadata: { jobId: 3, userId: 'u1' }, }, { message: { @@ -201,19 +136,10 @@ export const data = [ rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', - integrations: { - All: true, - optimizely_fullstack: { - variationId: '123', - }, - }, + integrations: { All: true, optimizely_fullstack: { variationId: '123' } }, }, destination: { - DestinationDefinition: { - Config: { - cdkV2Enabled: true, - }, - }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, Config: { dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', accountId: 'test_account_id', @@ -223,9 +149,7 @@ export const data = [ trackNamedPages: false, }, }, - metadata: { - jobId: 4, - }, + metadata: { jobId: 4, userId: 'u1' }, }, ], destType: 'optimizely_fullstack', @@ -245,9 +169,7 @@ export const data = [ type: 'REST', method: 'POST', endpoint: 'https://logx.optimizely.com/v1/events', - headers: { - 'Content-Type': 'application/json', - }, + headers: { 'Content-Type': 'application/json' }, params: {}, body: { JSON: { @@ -303,11 +225,7 @@ export const data = [ files: {}, }, destination: { - DestinationDefinition: { - Config: { - cdkV2Enabled: true, - }, - }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, Config: { dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', accountId: 'test_account_id', @@ -315,22 +233,12 @@ export const data = [ experimentId: 'test_experiment_id', trackKnownUsers: true, attributeMapping: [ - { - from: 'organization', - to: 'company', - }, - { - from: 'fullName', - to: 'name', - }, + { from: 'organization', to: 'company' }, + { from: 'fullName', to: 'name' }, ], }, }, - metadata: [ - { - jobId: 1, - }, - ], + metadata: [{ jobId: 1, userId: 'u1' }], statusCode: 200, }, { @@ -340,9 +248,7 @@ export const data = [ type: 'REST', method: 'POST', endpoint: 'https://logx.optimizely.com/v1/events', - headers: { - 'Content-Type': 'application/json', - }, + headers: { 'Content-Type': 'application/json' }, params: {}, body: { JSON: { @@ -379,9 +285,7 @@ export const data = [ uuid: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', quantity: 2, revenue: 12300, - tags: { - foo: 'bar', - }, + tags: { foo: 'bar' }, }, ], }, @@ -397,11 +301,7 @@ export const data = [ files: {}, }, destination: { - DestinationDefinition: { - Config: { - cdkV2Enabled: true, - }, - }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, Config: { dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', accountId: 'test_account_id', @@ -410,32 +310,16 @@ export const data = [ trackKnownUsers: true, anonymizeIp: true, eventMapping: [ - { - from: 'Product Searched', - to: 'Searched', - }, - { - from: 'product_added', - to: 'Product Added', - }, + { from: 'Product Searched', to: 'Searched' }, + { from: 'product_added', to: 'Product Added' }, ], attributeMapping: [ - { - from: 'organization', - to: 'company', - }, - { - from: 'fullName', - to: 'name', - }, + { from: 'organization', to: 'company' }, + { from: 'fullName', to: 'name' }, ], }, }, - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], statusCode: 200, }, { @@ -445,9 +329,7 @@ export const data = [ type: 'REST', method: 'POST', endpoint: 'https://logx.optimizely.com/v1/events', - headers: { - 'Content-Type': 'application/json', - }, + headers: { 'Content-Type': 'application/json' }, params: {}, body: { JSON: { @@ -468,10 +350,7 @@ export const data = [ key: 'Product Added', timestamp: 1676031367251, uuid: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', - tags: { - foo: 'bar', - category: 'food', - }, + tags: { foo: 'bar', category: 'food' }, }, ], }, @@ -487,11 +366,7 @@ export const data = [ files: {}, }, destination: { - DestinationDefinition: { - Config: { - cdkV2Enabled: true, - }, - }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, Config: { dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', accountId: 'test_account_id', @@ -502,32 +377,18 @@ export const data = [ trackCategorizedPages: true, trackNamedPages: false, pageMapping: [ - { - from: 'meal', - to: 'Viewed Meal Page', - }, - { - from: 'food', - to: 'Product Added', - }, + { from: 'meal', to: 'Viewed Meal Page' }, + { from: 'food', to: 'Product Added' }, ], }, }, - metadata: [ - { - jobId: 3, - }, - ], + metadata: [{ jobId: 3, userId: 'u1' }], statusCode: 200, }, { batched: false, destination: { - DestinationDefinition: { - Config: { - cdkV2Enabled: true, - }, - }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, Config: { accountId: 'test_account_id', campaignId: 'test_campagin_id', @@ -539,11 +400,7 @@ export const data = [ }, error: "Both 'Track Categorized Pages' and 'Track Named Pages' toggles are disabled in webapp. Please enable at one of them to send page/screen events to Optimizely.", - metadata: [ - { - jobId: 4, - }, - ], + metadata: [{ jobId: 4, userId: 'u1' }], statTags: { destType: 'OPTIMIZELY_FULLSTACK', errorCategory: 'dataValidation', diff --git a/test/integrations/destinations/ortto/router/data.ts b/test/integrations/destinations/ortto/router/data.ts index 58a1dc3a5d..cf5731be80 100644 --- a/test/integrations/destinations/ortto/router/data.ts +++ b/test/integrations/destinations/ortto/router/data.ts @@ -55,7 +55,7 @@ export const data = [ Enabled: true, Transformations: [], }, - metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', jobId: 1 }, + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', jobId: 1, userId: 'u1' }, message: { anonymousId: '8d872292709c6fbe', channel: 'mobile', @@ -176,7 +176,7 @@ export const data = [ Enabled: true, Transformations: [], }, - metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', jobId: 2 }, + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', jobId: 2, userId: 'u1' }, message: { anonymousId: '8d872292709c6fbe', channel: 'mobile', @@ -327,6 +327,7 @@ export const data = [ { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', jobId: 1, + userId: 'u1', }, ], batched: true, @@ -438,6 +439,7 @@ export const data = [ { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', jobId: 2, + userId: 'u1', }, ], batched: true, diff --git a/test/integrations/destinations/pagerduty/router/data.ts b/test/integrations/destinations/pagerduty/router/data.ts index 02fd53c629..87761656f9 100644 --- a/test/integrations/destinations/pagerduty/router/data.ts +++ b/test/integrations/destinations/pagerduty/router/data.ts @@ -18,10 +18,7 @@ export const data = [ userId: 'user@45', properties: { source: 'rudder-webapp', - customDetails: { - 'ping time': '1500ms', - 'load avg': 0.75, - }, + customDetails: { 'ping time': '1500ms', 'load avg': 0.75 }, imageURLs: [ { src: 'https://static.s4be.cochrane.org/app/uploads/2017/04/shutterstock_531145954.jpg', @@ -31,9 +28,7 @@ export const data = [ src: 'https://chart.googleapis.com/chart?chs=600x400&chd=t:6,2,9,5,2,5,7,4,8,2,1&cht=lc&chds=a&chxt=y&chm=D,0033FF,0,0,5,1', alt: 'second image', }, - { - alt: 'third image', - }, + { alt: 'third image' }, ], linkURLs: [ { @@ -44,20 +39,12 @@ export const data = [ href: 'https://www.techtarget.com/whatis/definition/stack-overflow#:~:text=A%20stack%20overflow%20is%20a,been%20allocated%20to%20that%20stack', text: 'Stack Overflow Error', }, - { - text: 'Destructure Error', - }, + { text: 'Destructure Error' }, ], }, - integrations: { - pagerduty: { - type: 'changeEvent', - }, - }, - }, - metadata: { - jobId: 1, + integrations: { pagerduty: { type: 'changeEvent' } }, }, + metadata: { jobId: 1, userId: 'u1' }, destination: { Config: { routingKey: '9552b56325dc490bd0139be85f7b8fac', @@ -80,10 +67,7 @@ export const data = [ source: 'rudder-webapp', group: 'destination', class: 'connection settings', - customDetails: { - 'ping time': '1500ms', - 'load avg': 0.75, - }, + customDetails: { 'ping time': '1500ms', 'load avg': 0.75 }, imageURLs: [ { src: 'https://static.s4be.cochrane.org/app/uploads/2017/04/shutterstock_531145954.jpg', @@ -93,9 +77,7 @@ export const data = [ src: 'https://chart.googleapis.com/chart?chs=600x400&chd=t:6,2,9,5,2,5,7,4,8,2,1&cht=lc&chds=a&chxt=y&chm=D,0033FF,0,0,5,1', alt: 'second image', }, - { - alt: 'third image', - }, + { alt: 'third image' }, ], linkURLs: [ { @@ -106,15 +88,11 @@ export const data = [ href: 'https://www.techtarget.com/whatis/definition/stack-overflow#:~:text=A%20stack%20overflow%20is%20a,been%20allocated%20to%20that%20stack', text: 'Stack Overflow Error', }, - { - text: 'Destructure Error', - }, + { text: 'Destructure Error' }, ], }, }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, destination: { Config: { routingKey: '9552b56325dc490bd0139be85f7b8fac', @@ -138,10 +116,7 @@ export const data = [ source: 'rudder-webapp', group: 'destination', class: 'connection settings', - customDetails: { - 'ping time': '1500ms', - 'load avg': 0.75, - }, + customDetails: { 'ping time': '1500ms', 'load avg': 0.75 }, imageURLs: [ { src: 'https://static.s4be.cochrane.org/app/uploads/2017/04/shutterstock_531145954.jpg', @@ -151,9 +126,7 @@ export const data = [ src: 'https://chart.googleapis.com/chart?chs=600x400&chd=t:6,2,9,5,2,5,7,4,8,2,1&cht=lc&chds=a&chxt=y&chm=D,0033FF,0,0,5,1', alt: 'second image', }, - { - alt: 'third image', - }, + { alt: 'third image' }, ], linkURLs: [ { @@ -164,15 +137,11 @@ export const data = [ href: 'https://www.techtarget.com/whatis/definition/stack-overflow#:~:text=A%20stack%20overflow%20is%20a,been%20allocated%20to%20that%20stack', text: 'Stack Overflow Error', }, - { - text: 'Destructure Error', - }, + { text: 'Destructure Error' }, ], }, }, - metadata: { - jobId: 3, - }, + metadata: { jobId: 3, userId: 'u1' }, destination: { Config: { routingKey: '9552b56325dc490bd0139be85f7b8fac', @@ -221,10 +190,7 @@ export const data = [ payload: { source: 'rudder-webapp', summary: 'Github CI/CD Triggered', - custom_details: { - 'load avg': 0.75, - 'ping time': '1500ms', - }, + custom_details: { 'load avg': 0.75, 'ping time': '1500ms' }, }, routing_key: '9552b56325dc490bd0139be85f7b8fac', }, @@ -234,9 +200,7 @@ export const data = [ files: {}, method: 'POST', params: {}, - headers: { - 'Content-Type': 'application/json', - }, + headers: { 'Content-Type': 'application/json' }, version: '1', endpoint: 'https://events.pagerduty.com/v2/change/enqueue', }, @@ -246,7 +210,7 @@ export const data = [ dedupKeyFieldIdentifier: 'properties.dedupKey', }, }, - metadata: [{ jobId: 1 }], + metadata: [{ jobId: 1, userId: 'u1' }], statusCode: 200, }, { @@ -266,9 +230,7 @@ export const data = [ files: {}, method: 'POST', params: {}, - headers: { - 'Content-Type': 'application/json', - }, + headers: { 'Content-Type': 'application/json' }, version: '1', endpoint: 'https://events.pagerduty.com/v2/enqueue', }, @@ -278,13 +240,13 @@ export const data = [ dedupKeyFieldIdentifier: 'properties.dedupKey', }, }, - metadata: [{ jobId: 2 }], + metadata: [{ jobId: 2, userId: 'u1' }], statusCode: 200, }, { batched: false, error: 'Events must be sent within ninety days of their occurrence', - metadata: [{ jobId: 3 }], + metadata: [{ jobId: 3, userId: 'u1' }], statusCode: 400, statTags: { destType: 'PAGERDUTY', diff --git a/test/integrations/destinations/pardot/router/data.ts b/test/integrations/destinations/pardot/router/data.ts index 7c2a2a11e3..0862666bba 100644 --- a/test/integrations/destinations/pardot/router/data.ts +++ b/test/integrations/destinations/pardot/router/data.ts @@ -5,7 +5,7 @@ export const data = [ name: 'pardot', description: 'Test 0', feature: 'router', - module: 'destination', + module: MODULES.DESTINATION, version: 'v0', input: { request: { @@ -25,9 +25,7 @@ export const data = [ name: 'PARDOT', displayName: 'Pardot', config: { - auth: { - type: 'OAuth', - }, + auth: { type: 'OAuth' }, transformAt: 'router', transformAtV1: 'router', saveDestinationResponse: true, @@ -58,10 +56,8 @@ export const data = [ }, metadata: { jobId: 1, - secret: { - access_token: 'myToken', - refresh_token: 'myRefreshToken', - }, + secret: { access_token: 'myToken', refresh_token: 'myRefreshToken' }, + userId: 'u1', }, message: { type: 'identify', @@ -70,10 +66,7 @@ export const data = [ userId: 'user12345', channel: 'web', context: { - os: { - name: '', - version: '', - }, + os: { name: '', version: '' }, app: { name: 'RudderLabs JavaScript SDK', build: '1.0.0', @@ -100,19 +93,11 @@ export const data = [ innerHeight: 776, }, traits: {}, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.1.18', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.18' }, campaign: {}, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36', - externalId: [ - { - type: 'pardotId', - id: 123435, - }, - ], + externalId: [{ type: 'pardotId', id: 123435 }], }, rudderId: 'fa2994a5-2a81-45fd-9919-fcf5596ad380', messageId: 'e2d1a383-d9a2-4e03-a9dc-131d153c4d95', @@ -121,9 +106,7 @@ export const data = [ receivedAt: '2021-11-15T14:06:42.497+05:30', request_ip: '[::1]', anonymousId: 'd8b2ed61-7fa5-4ef8-bd92-6a506157c0cf', - integrations: { - All: true, - }, + integrations: { All: true }, originalTimestamp: '2021-09-08T11:10:45.466Z', traits: { email: 'Roger12@waltair.io', @@ -149,9 +132,7 @@ export const data = [ name: 'PARDOT', displayName: 'Pardot', config: { - auth: { - type: 'OAuth', - }, + auth: { type: 'OAuth' }, transformAt: 'router', transformAtV1: 'router', saveDestinationResponse: true, @@ -182,10 +163,8 @@ export const data = [ }, metadata: { jobId: 2, - secret: { - access_token: 'myToken', - refresh_token: 'myRefreshToken', - }, + secret: { access_token: 'myToken', refresh_token: 'myRefreshToken' }, + userId: 'u1', }, message: { type: 'identify', @@ -194,10 +173,7 @@ export const data = [ userId: 'user12345', channel: 'web', context: { - os: { - name: '', - version: '', - }, + os: { name: '', version: '' }, app: { name: 'RudderLabs JavaScript SDK', build: '1.0.0', @@ -224,10 +200,7 @@ export const data = [ innerHeight: 776, }, traits: {}, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.1.18', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.18' }, campaign: {}, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36', @@ -239,9 +212,7 @@ export const data = [ receivedAt: '2021-11-15T14:06:42.497+05:30', request_ip: '[::1]', anonymousId: 'd8b2ed61-7fa5-4ef8-bd92-6a506157c0cf', - integrations: { - All: true, - }, + integrations: { All: true }, originalTimestamp: '2021-09-08T11:10:45.466Z', traits: { email: 'Roger_12@waltair.io', @@ -267,9 +238,7 @@ export const data = [ name: 'PARDOT', displayName: 'Pardot', config: { - auth: { - type: 'OAuth', - }, + auth: { type: 'OAuth' }, transformAt: 'router', transformAtV1: 'router', saveDestinationResponse: true, @@ -300,10 +269,8 @@ export const data = [ }, metadata: { jobId: 3, - secret: { - access_token: 'myToken', - refresh_token: 'myRefreshToken', - }, + secret: { access_token: 'myToken', refresh_token: 'myRefreshToken' }, + userId: 'u1', }, message: { type: 'identify', @@ -312,10 +279,7 @@ export const data = [ userId: 'user12345', channel: 'web', context: { - os: { - name: '', - version: '', - }, + os: { name: '', version: '' }, app: { name: 'RudderLabs JavaScript SDK', build: '1.0.0', @@ -342,19 +306,11 @@ export const data = [ innerHeight: 776, }, traits: {}, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.1.18', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.18' }, campaign: {}, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36', - externalId: [ - { - type: 'crmfid', - id: '00Q6r000002LKhTPVR', - }, - ], + externalId: [{ type: 'crmfid', id: '00Q6r000002LKhTPVR' }], }, rudderId: 'fa2994a5-2a81-45fd-9919-fcf5596ad380', messageId: 'e2d1a383-d9a2-4e03-a9dc-131d153c4d95', @@ -363,9 +319,7 @@ export const data = [ receivedAt: '2021-11-15T14:06:42.497+05:30', request_ip: '[::1]', anonymousId: 'd8b2ed61-7fa5-4ef8-bd92-6a506157c0cf', - integrations: { - All: true, - }, + integrations: { All: true }, originalTimestamp: '2021-09-08T11:10:45.466Z', traits: { email: 'nick_kyrgios@waltair.io', @@ -391,9 +345,7 @@ export const data = [ name: 'PARDOT', displayName: 'Pardot', config: { - auth: { - type: 'OAuth', - }, + auth: { type: 'OAuth' }, transformAt: 'router', transformAtV1: 'router', saveDestinationResponse: true, @@ -424,10 +376,8 @@ export const data = [ }, metadata: { jobId: 4, - secret: { - access_token: 'myExpiredToken', - refresh_token: 'myRefreshToken', - }, + secret: { access_token: 'myExpiredToken', refresh_token: 'myRefreshToken' }, + userId: 'u1', }, message: { type: 'identify', @@ -436,10 +386,7 @@ export const data = [ userId: 'user12345', channel: 'web', context: { - os: { - name: '', - version: '', - }, + os: { name: '', version: '' }, app: { name: 'RudderLabs JavaScript SDK', build: '1.0.0', @@ -466,10 +413,7 @@ export const data = [ innerHeight: 776, }, traits: {}, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.1.18', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.18' }, campaign: {}, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36', @@ -481,9 +425,7 @@ export const data = [ receivedAt: '2021-11-15T14:06:42.497+05:30', request_ip: '[::1]', anonymousId: 'd8b2ed61-7fa5-4ef8-bd92-6a506157c0cf', - integrations: { - All: true, - }, + integrations: { All: true }, originalTimestamp: '2021-09-08T11:10:45.466Z', traits: { email: 'rolex_waltair@mywebsite.io', @@ -509,9 +451,7 @@ export const data = [ name: 'PARDOT', displayName: 'Pardot', config: { - auth: { - type: 'OAuth', - }, + auth: { type: 'OAuth' }, transformAt: 'router', transformAtV1: 'router', saveDestinationResponse: true, @@ -540,10 +480,7 @@ export const data = [ Name: 'test destination', Transformations: [], }, - metadata: { - jobId: 5, - secret: null, - }, + metadata: { jobId: 5, secret: null, userId: 'u1' }, message: { type: 'identify', event: 'navigated user', @@ -551,10 +488,7 @@ export const data = [ userId: 'user12345', channel: 'web', context: { - os: { - name: '', - version: '', - }, + os: { name: '', version: '' }, app: { name: 'RudderLabs JavaScript SDK', build: '1.0.0', @@ -581,10 +515,7 @@ export const data = [ innerHeight: 776, }, traits: {}, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.1.18', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.18' }, campaign: {}, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36', @@ -596,9 +527,7 @@ export const data = [ receivedAt: '2021-11-15T14:06:42.497+05:30', request_ip: '[::1]', anonymousId: 'd8b2ed61-7fa5-4ef8-bd92-6a506157c0cf', - integrations: { - All: true, - }, + integrations: { All: true }, originalTimestamp: '2021-09-08T11:10:45.466Z', traits: { email: 'rolex_waltair@mywebsite.io', @@ -649,10 +578,8 @@ export const data = [ metadata: [ { jobId: 1, - secret: { - access_token: 'myToken', - refresh_token: 'myRefreshToken', - }, + secret: { access_token: 'myToken', refresh_token: 'myRefreshToken' }, + userId: 'u1', }, ], batched: false, @@ -670,9 +597,7 @@ export const data = [ name: 'PARDOT', displayName: 'Pardot', config: { - auth: { - type: 'OAuth', - }, + auth: { type: 'OAuth' }, transformAt: 'router', transformAtV1: 'router', saveDestinationResponse: true, @@ -731,10 +656,8 @@ export const data = [ metadata: [ { jobId: 2, - secret: { - access_token: 'myToken', - refresh_token: 'myRefreshToken', - }, + secret: { access_token: 'myToken', refresh_token: 'myRefreshToken' }, + userId: 'u1', }, ], batched: false, @@ -752,9 +675,7 @@ export const data = [ name: 'PARDOT', displayName: 'Pardot', config: { - auth: { - type: 'OAuth', - }, + auth: { type: 'OAuth' }, transformAt: 'router', transformAtV1: 'router', saveDestinationResponse: true, @@ -813,10 +734,8 @@ export const data = [ metadata: [ { jobId: 3, - secret: { - access_token: 'myToken', - refresh_token: 'myRefreshToken', - }, + secret: { access_token: 'myToken', refresh_token: 'myRefreshToken' }, + userId: 'u1', }, ], batched: false, @@ -834,9 +753,7 @@ export const data = [ name: 'PARDOT', displayName: 'Pardot', config: { - auth: { - type: 'OAuth', - }, + auth: { type: 'OAuth' }, transformAt: 'router', transformAtV1: 'router', saveDestinationResponse: true, @@ -895,10 +812,8 @@ export const data = [ metadata: [ { jobId: 4, - secret: { - access_token: 'myExpiredToken', - refresh_token: 'myRefreshToken', - }, + secret: { access_token: 'myExpiredToken', refresh_token: 'myRefreshToken' }, + userId: 'u1', }, ], batched: false, @@ -916,9 +831,7 @@ export const data = [ name: 'PARDOT', displayName: 'Pardot', config: { - auth: { - type: 'OAuth', - }, + auth: { type: 'OAuth' }, transformAt: 'router', transformAtV1: 'router', saveDestinationResponse: true, @@ -962,9 +875,7 @@ export const data = [ name: 'PARDOT', displayName: 'Pardot', config: { - auth: { - type: 'OAuth', - }, + auth: { type: 'OAuth' }, transformAt: 'router', transformAtV1: 'router', saveDestinationResponse: true, @@ -993,12 +904,7 @@ export const data = [ Name: 'test destination', Transformations: [], }, - metadata: [ - { - jobId: 5, - secret: null, - }, - ], + metadata: [{ jobId: 5, secret: null, userId: 'u1' }], batched: false, statusCode: 500, error: 'OAuth - access token not found', @@ -1046,9 +952,7 @@ export const data = [ }, }, files: {}, - params: { - destination: 'pardot', - }, + params: { destination: 'pardot' }, }, method: 'POST', }, @@ -1062,10 +966,7 @@ export const data = [ status: 200, destinationResponse: { response: { - '@attributes': { - stat: 'ok', - version: 1, - }, + '@attributes': { stat: 'ok', version: 1 }, prospect: { id: 123435, campaign_id: 42213, @@ -1112,11 +1013,7 @@ export const data = [ is_starred: null, created_at: '2022-01-21 18:21:46', updated_at: '2022-01-21 18:48:41', - campaign: { - id: 42113, - name: 'Test', - crm_fid: '7012y000000MNOCLL4', - }, + campaign: { id: 42113, name: 'Test', crm_fid: '7012y000000MNOCLL4' }, assigned_to: { user: { id: 38443703, @@ -1142,26 +1039,10 @@ export const data = [ id: 304, name: 'Default', profile_criteria: [ - { - id: 1500, - name: 'Shipping Volume', - matches: 'Unknown', - }, - { - id: 1502, - name: 'Industry', - matches: 'Unknown', - }, - { - id: 1506, - name: 'Job Title', - matches: 'Unknown', - }, - { - id: 1508, - name: 'Department', - matches: 'Unknown', - }, + { id: 1500, name: 'Shipping Volume', matches: 'Unknown' }, + { id: 1502, name: 'Industry', matches: 'Unknown' }, + { id: 1506, name: 'Job Title', matches: 'Unknown' }, + { id: 1508, name: 'Department', matches: 'Unknown' }, ], }, visitors: null, @@ -1207,9 +1088,7 @@ export const data = [ }, }, files: {}, - params: { - destination: 'pardot', - }, + params: { destination: 'pardot' }, }, method: 'POST', }, @@ -1223,10 +1102,7 @@ export const data = [ status: 201, destinationResponse: { response: { - '@attributes': { - stat: 'ok', - version: 1, - }, + '@attributes': { stat: 'ok', version: 1 }, prospect: { id: 123435, campaign_id: 42213, @@ -1273,11 +1149,7 @@ export const data = [ is_starred: null, created_at: '2022-01-21 18:21:46', updated_at: '2022-01-21 18:48:41', - campaign: { - id: 42113, - name: 'Test', - crm_fid: '7012y000000MNOCLL4', - }, + campaign: { id: 42113, name: 'Test', crm_fid: '7012y000000MNOCLL4' }, assigned_to: { user: { id: 38443703, @@ -1303,26 +1175,10 @@ export const data = [ id: 304, name: 'Default', profile_criteria: [ - { - id: 1500, - name: 'Shipping Volume', - matches: 'Unknown', - }, - { - id: 1502, - name: 'Industry', - matches: 'Unknown', - }, - { - id: 1506, - name: 'Job Title', - matches: 'Unknown', - }, - { - id: 1508, - name: 'Department', - matches: 'Unknown', - }, + { id: 1500, name: 'Shipping Volume', matches: 'Unknown' }, + { id: 1502, name: 'Industry', matches: 'Unknown' }, + { id: 1506, name: 'Job Title', matches: 'Unknown' }, + { id: 1508, name: 'Department', matches: 'Unknown' }, ], }, visitors: null, @@ -1367,9 +1223,7 @@ export const data = [ }, }, files: {}, - params: { - destination: 'pardot', - }, + params: { destination: 'pardot' }, }, method: 'POST', }, @@ -1383,10 +1237,7 @@ export const data = [ status: 200, destinationResponse: { response: { - '@attributes': { - stat: 'ok', - version: 1, - }, + '@attributes': { stat: 'ok', version: 1 }, prospect: { id: 123435, campaign_id: 42213, @@ -1433,11 +1284,7 @@ export const data = [ is_starred: null, created_at: '2022-01-21 18:21:46', updated_at: '2022-01-21 18:48:41', - campaign: { - id: 42113, - name: 'Test', - crm_fid: '7012y000000MNOCLL4', - }, + campaign: { id: 42113, name: 'Test', crm_fid: '7012y000000MNOCLL4' }, assigned_to: { user: { id: 38443703, @@ -1463,26 +1310,10 @@ export const data = [ id: 304, name: 'Default', profile_criteria: [ - { - id: 1500, - name: 'Shipping Volume', - matches: 'Unknown', - }, - { - id: 1502, - name: 'Industry', - matches: 'Unknown', - }, - { - id: 1506, - name: 'Job Title', - matches: 'Unknown', - }, - { - id: 1508, - name: 'Department', - matches: 'Unknown', - }, + { id: 1500, name: 'Shipping Volume', matches: 'Unknown' }, + { id: 1502, name: 'Industry', matches: 'Unknown' }, + { id: 1506, name: 'Job Title', matches: 'Unknown' }, + { id: 1508, name: 'Department', matches: 'Unknown' }, ], }, visitors: null, @@ -1528,9 +1359,7 @@ export const data = [ }, }, files: {}, - params: { - destination: 'pardot', - }, + params: { destination: 'pardot' }, }, method: 'POST', }, @@ -1545,11 +1374,7 @@ export const data = [ status: 500, authErrorCategory: 'REFRESH_TOKEN', destinationResponse: { - '@attributes': { - stat: 'fail', - version: 1, - err_code: 184, - }, + '@attributes': { stat: 'fail', version: 1, err_code: 184 }, err: 'access_token is invalid, unknown, or malformed: Inactive token', }, statTags: { @@ -1558,7 +1383,7 @@ export const data = [ destinationId: 'Non-determininable', workspaceId: 'Non-determininable', errorType: 'retryable', - feature: 'dataDelivery', + feature: FEATURES.DATA_DELIVERY, implementation: 'native', module: 'destination', }, diff --git a/test/integrations/destinations/persistiq/router/data.ts b/test/integrations/destinations/persistiq/router/data.ts index 051a8a4bca..ddb39b9028 100644 --- a/test/integrations/destinations/persistiq/router/data.ts +++ b/test/integrations/destinations/persistiq/router/data.ts @@ -26,33 +26,22 @@ export const data = [ Snippet: 'extra value', extra: 'extraVal', }, - externalId: [ - { - type: 'persistIqLeadId', - id: 'lel1c5u1wuk8', - }, - ], + externalId: [{ type: 'persistIqLeadId', id: 'lel1c5u1wuk8' }], }, traits: { linkedinUrl: 'www.google.com', dup: 'update', status: 'open', - company: { - name: 'abc123', - }, + company: { name: 'abc123' }, }, }, destination: { Config: { apiKey: 'dummyApiKey', - persistIqAttributesMapping: [ - { - from: 'useroccupation', - to: 'occupation', - }, - ], + persistIqAttributesMapping: [{ from: 'useroccupation', to: 'occupation' }], }, }, + metadata: { jobId: 1, userId: 'u1' }, }, ], destType: 'persistiq', @@ -102,7 +91,7 @@ export const data = [ persistIqAttributesMapping: [{ from: 'useroccupation', to: 'occupation' }], }, }, - metadata: [null], + metadata: [{ jobId: 1, userId: 'u1' }], statusCode: 200, }, ], diff --git a/test/integrations/destinations/pinterest_tag/router/data.ts b/test/integrations/destinations/pinterest_tag/router/data.ts index e004be25f0..c02b1781e3 100644 --- a/test/integrations/destinations/pinterest_tag/router/data.ts +++ b/test/integrations/destinations/pinterest_tag/router/data.ts @@ -26,20 +26,10 @@ export const data = [ db: '19950715', lastname: 'Rudderlabs', firstName: 'Test', - address: { - city: 'Kolkata', - state: 'WB', - zip: '700114', - country: 'IN', - }, - }, - device: { - advertisingId: 'abc123', - }, - library: { - name: 'rudder-sdk-ruby-sync', - version: '1.0.6', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, }, messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', timestamp: '2020-08-14T05:30:30.118Z', @@ -81,14 +71,9 @@ export const data = [ checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', }, anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', - integrations: { - All: true, - }, - }, - metadata: { - destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', - jobId: 1, + integrations: { All: true }, }, + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', jobId: 1, userId: 'u1' }, destination: { DestinationDefinition: { Config: { cdkV2Enabled: true } }, ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', @@ -103,30 +88,14 @@ export const data = [ deduplicationKey: 'messageId', enhancedMatch: true, customProperties: [ - { - properties: 'presentclass', - }, - { - properties: 'presentgrade', - }, + { properties: 'presentclass' }, + { properties: 'presentgrade' }, ], eventsMapping: [ - { - from: 'ABC Searched', - to: 'WatchVideo', - }, - { - from: 'ABC Searched', - to: 'Signup', - }, - { - from: 'User Signup', - to: 'Signup', - }, - { - from: 'User Created', - to: 'Signup', - }, + { from: 'ABC Searched', to: 'WatchVideo' }, + { from: 'ABC Searched', to: 'Signup' }, + { from: 'User Signup', to: 'Signup' }, + { from: 'User Created', to: 'Signup' }, ], }, Enabled: true, @@ -150,20 +119,10 @@ export const data = [ db: '19950715', lastname: 'Rudderlabs', firstName: 'Test', - address: { - city: 'Kolkata', - state: 'WB', - zip: '700114', - country: 'IN', - }, - }, - device: { - advertisingId: 'abc123', - }, - library: { - name: 'rudder-sdk-ruby-sync', - version: '1.0.6', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, }, messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', timestamp: '2020-08-14T05:30:30.118Z', @@ -204,14 +163,9 @@ export const data = [ checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', }, anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', - integrations: { - All: true, - }, - }, - metadata: { - destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', - jobId: 2, + integrations: { All: true }, }, + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', jobId: 2, userId: 'u1' }, destination: { DestinationDefinition: { Config: { cdkV2Enabled: true } }, ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', @@ -226,30 +180,14 @@ export const data = [ deduplicationKey: 'messageId', enhancedMatch: true, customProperties: [ - { - properties: 'presentclass', - }, - { - properties: 'presentgrade', - }, + { properties: 'presentclass' }, + { properties: 'presentgrade' }, ], eventsMapping: [ - { - from: 'ABC Searched', - to: 'WatchVideo', - }, - { - from: 'ABC Searched', - to: 'Signup', - }, - { - from: 'User Signup', - to: 'Signup', - }, - { - from: 'User Created', - to: 'Signup', - }, + { from: 'ABC Searched', to: 'WatchVideo' }, + { from: 'ABC Searched', to: 'Signup' }, + { from: 'User Signup', to: 'Signup' }, + { from: 'User Created', to: 'Signup' }, ], }, Enabled: true, @@ -273,20 +211,10 @@ export const data = [ db: '19950715', lastname: 'Rudderlabs', firstName: 'Test', - address: { - city: 'Kolkata', - state: 'WB', - zip: '700114', - country: 'IN', - }, - }, - device: { - advertisingId: 'abc123', - }, - library: { - name: 'rudder-sdk-ruby-sync', - version: '1.0.6', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, }, messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', timestamp: '2020-08-14T05:30:30.118Z', @@ -308,14 +236,9 @@ export const data = [ checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', }, anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', - integrations: { - All: true, - }, - }, - metadata: { - destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', - jobId: 3, + integrations: { All: true }, }, + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', jobId: 3, userId: 'u1' }, destination: { DestinationDefinition: { Config: { cdkV2Enabled: true } }, ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', @@ -330,30 +253,14 @@ export const data = [ deduplicationKey: 'messageId', enhancedMatch: true, customProperties: [ - { - properties: 'presentclass', - }, - { - properties: 'presentgrade', - }, + { properties: 'presentclass' }, + { properties: 'presentgrade' }, ], eventsMapping: [ - { - from: 'ABC Searched', - to: 'WatchVideo', - }, - { - from: 'ABC Searched', - to: 'Signup', - }, - { - from: 'User Signup', - to: 'Signup', - }, - { - from: 'User Created', - to: 'Signup', - }, + { from: 'ABC Searched', to: 'WatchVideo' }, + { from: 'ABC Searched', to: 'Signup' }, + { from: 'User Signup', to: 'Signup' }, + { from: 'User Created', to: 'Signup' }, ], }, Enabled: true, @@ -377,20 +284,10 @@ export const data = [ db: '19950715', lastname: 'Rudderlabs', firstName: 'Test', - address: { - city: 'Kolkata', - state: 'WB', - zip: '700114', - country: 'IN', - }, - }, - device: { - advertisingId: 'abc123', - }, - library: { - name: 'rudder-sdk-ruby-sync', - version: '1.0.6', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, }, messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', timestamp: '2020-08-14T05:30:30.118Z', @@ -431,14 +328,9 @@ export const data = [ checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', }, anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', - integrations: { - All: true, - }, - }, - metadata: { - destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', - jobId: 4, + integrations: { All: true }, }, + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', jobId: 4, userId: 'u1' }, destination: { DestinationDefinition: { Config: { cdkV2Enabled: true } }, ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', @@ -453,30 +345,14 @@ export const data = [ deduplicationKey: 'messageId', enhancedMatch: true, customProperties: [ - { - properties: 'presentclass', - }, - { - properties: 'presentgrade', - }, + { properties: 'presentclass' }, + { properties: 'presentgrade' }, ], eventsMapping: [ - { - from: 'ABC Searched', - to: 'WatchVideo', - }, - { - from: 'ABC Searched', - to: 'Signup', - }, - { - from: 'User Signup', - to: 'Signup', - }, - { - from: 'User Created', - to: 'Signup', - }, + { from: 'ABC Searched', to: 'WatchVideo' }, + { from: 'ABC Searched', to: 'Signup' }, + { from: 'User Signup', to: 'Signup' }, + { from: 'User Created', to: 'Signup' }, ], }, Enabled: true, @@ -500,20 +376,10 @@ export const data = [ db: '19950715', lastname: 'Rudderlabs', firstName: 'Test', - address: { - city: 'Kolkata', - state: 'WB', - zip: '700114', - country: 'IN', - }, - }, - device: { - advertisingId: 'abc123', - }, - library: { - name: 'rudder-sdk-ruby-sync', - version: '1.0.6', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, }, messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', timestamp: '2020-08-14T05:30:30.118Z', @@ -554,14 +420,9 @@ export const data = [ checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', }, anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', - integrations: { - All: true, - }, - }, - metadata: { - destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', - jobId: 5, + integrations: { All: true }, }, + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', jobId: 5, userId: 'u1' }, destination: { DestinationDefinition: { Config: { cdkV2Enabled: true } }, ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', @@ -576,30 +437,14 @@ export const data = [ deduplicationKey: 'messageId', enhancedMatch: true, customProperties: [ - { - properties: 'presentclass', - }, - { - properties: 'presentgrade', - }, + { properties: 'presentclass' }, + { properties: 'presentgrade' }, ], eventsMapping: [ - { - from: 'ABC Searched', - to: 'WatchVideo', - }, - { - from: 'ABC Searched', - to: 'Signup', - }, - { - from: 'User Signup', - to: 'Signup', - }, - { - from: 'User Created', - to: 'Signup', - }, + { from: 'ABC Searched', to: 'WatchVideo' }, + { from: 'ABC Searched', to: 'Signup' }, + { from: 'User Signup', to: 'Signup' }, + { from: 'User Created', to: 'Signup' }, ], }, Enabled: true, @@ -623,20 +468,10 @@ export const data = [ db: '19950715', lastname: 'Rudderlabs', firstName: 'Test', - address: { - city: 'Kolkata', - state: 'WB', - zip: '700114', - country: 'IN', - }, - }, - device: { - advertisingId: 'abc123', - }, - library: { - name: 'rudder-sdk-ruby-sync', - version: '1.0.6', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, }, messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', timestamp: '2020-08-14T05:30:30.118Z', @@ -677,14 +512,9 @@ export const data = [ checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', }, anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', - integrations: { - All: true, - }, - }, - metadata: { - destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', - jobId: 6, + integrations: { All: true }, }, + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', jobId: 6, userId: 'u1' }, destination: { DestinationDefinition: { Config: { cdkV2Enabled: true } }, ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', @@ -699,30 +529,14 @@ export const data = [ deduplicationKey: 'messageId', enhancedMatch: true, customProperties: [ - { - properties: 'presentclass', - }, - { - properties: 'presentgrade', - }, + { properties: 'presentclass' }, + { properties: 'presentgrade' }, ], eventsMapping: [ - { - from: 'ABC Searched', - to: 'WatchVideo', - }, - { - from: 'ABC Searched', - to: 'Signup', - }, - { - from: 'User Signup', - to: 'Signup', - }, - { - from: 'User Created', - to: 'Signup', - }, + { from: 'ABC Searched', to: 'WatchVideo' }, + { from: 'ABC Searched', to: 'Signup' }, + { from: 'User Signup', to: 'Signup' }, + { from: 'User Created', to: 'Signup' }, ], }, Enabled: true, @@ -736,9 +550,7 @@ export const data = [ type: 'REST', method: 'POST', endpoint: 'https://ct.pinterest.com/events/v3', - headers: { - 'Content-Type': 'application/json', - }, + headers: { 'Content-Type': 'application/json' }, params: {}, body: { JSON: { @@ -769,14 +581,8 @@ export const data = [ num_items: 3, content_ids: ['507f1f77bcf86cd799439011', '505bd76785ebb509fc183733'], contents: [ - { - quantity: 1, - item_price: '19', - }, - { - quantity: 2, - item_price: '3', - }, + { quantity: 1, item_price: '19' }, + { quantity: 2, item_price: '3' }, ], }, }, @@ -786,10 +592,7 @@ export const data = [ }, files: {}, }, - metadata: { - destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', - jobId: 7, - }, + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', jobId: 7, userId: 'u1' }, destination: { DestinationDefinition: { Config: { cdkV2Enabled: true } }, ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', @@ -804,30 +607,14 @@ export const data = [ deduplicationKey: 'messageId', enhancedMatch: true, customProperties: [ - { - properties: 'presentclass', - }, - { - properties: 'presentgrade', - }, + { properties: 'presentclass' }, + { properties: 'presentgrade' }, ], eventsMapping: [ - { - from: 'ABC Searched', - to: 'WatchVideo', - }, - { - from: 'ABC Searched', - to: 'Signup', - }, - { - from: 'User Signup', - to: 'Signup', - }, - { - from: 'User Created', - to: 'Signup', - }, + { from: 'ABC Searched', to: 'WatchVideo' }, + { from: 'ABC Searched', to: 'Signup' }, + { from: 'User Signup', to: 'Signup' }, + { from: 'User Created', to: 'Signup' }, ], }, Enabled: true, @@ -851,9 +638,7 @@ export const data = [ type: 'REST', method: 'POST', endpoint: 'https://ct.pinterest.com/events/v3', - headers: { - 'Content-Type': 'application/json', - }, + headers: { 'Content-Type': 'application/json' }, params: {}, body: { JSON: { @@ -889,14 +674,8 @@ export const data = [ opt_out_type: 'LDP', content_ids: ['507f1f77bcf86cd799439011', '505bd76785ebb509fc183733'], contents: [ - { - quantity: 1, - item_price: '19', - }, - { - quantity: 2, - item_price: '3', - }, + { quantity: 1, item_price: '19' }, + { quantity: 2, item_price: '3' }, ], }, }, @@ -931,14 +710,8 @@ export const data = [ opt_out_type: 'LDP', content_ids: ['507f1f77bcf86cd799439011', '505bd76785ebb509fc183733'], contents: [ - { - quantity: 1, - item_price: '19', - }, - { - quantity: 2, - item_price: '3', - }, + { quantity: 1, item_price: '19' }, + { quantity: 2, item_price: '3' }, ], }, }, @@ -972,14 +745,8 @@ export const data = [ num_items: 3, content_ids: ['507f1f77bcf86cd799439011', '505bd76785ebb509fc183733'], contents: [ - { - quantity: 1, - item_price: '19', - }, - { - quantity: 2, - item_price: '3', - }, + { quantity: 1, item_price: '19' }, + { quantity: 2, item_price: '3' }, ], }, }, @@ -1012,12 +779,7 @@ export const data = [ order_id: '50314b8e9bcf000000000000', num_items: 2, content_ids: ['123'], - contents: [ - { - quantity: 2, - item_price: '25', - }, - ], + contents: [{ quantity: 2, item_price: '25' }], }, }, { @@ -1050,14 +812,8 @@ export const data = [ num_items: 3, content_ids: ['507f1f77bcf86cd799439011', '505bd76785ebb509fc183733'], contents: [ - { - quantity: 1, - item_price: '19', - }, - { - quantity: 2, - item_price: '3', - }, + { quantity: 1, item_price: '19' }, + { quantity: 2, item_price: '3' }, ], }, }, @@ -1091,14 +847,8 @@ export const data = [ num_items: 3, content_ids: ['507f1f77bcf86cd799439011', '505bd76785ebb509fc183733'], contents: [ - { - quantity: 1, - item_price: '19', - }, - { - quantity: 2, - item_price: '3', - }, + { quantity: 1, item_price: '19' }, + { quantity: 2, item_price: '3' }, ], }, }, @@ -1132,14 +882,8 @@ export const data = [ num_items: 3, content_ids: ['507f1f77bcf86cd799439011', '505bd76785ebb509fc183733'], contents: [ - { - quantity: 1, - item_price: '19', - }, - { - quantity: 2, - item_price: '3', - }, + { quantity: 1, item_price: '19' }, + { quantity: 2, item_price: '3' }, ], }, }, @@ -1152,30 +896,12 @@ export const data = [ files: {}, }, metadata: [ - { - destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', - jobId: 1, - }, - { - destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', - jobId: 2, - }, - { - destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', - jobId: 3, - }, - { - destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', - jobId: 4, - }, - { - destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', - jobId: 6, - }, - { - destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', - jobId: 7, - }, + { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', jobId: 1, userId: 'u1' }, + { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', jobId: 2, userId: 'u1' }, + { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', jobId: 3, userId: 'u1' }, + { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', jobId: 4, userId: 'u1' }, + { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', jobId: 6, userId: 'u1' }, + { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', jobId: 7, userId: 'u1' }, ], batched: true, statusCode: 200, @@ -1193,30 +919,14 @@ export const data = [ deduplicationKey: 'messageId', enhancedMatch: true, customProperties: [ - { - properties: 'presentclass', - }, - { - properties: 'presentgrade', - }, + { properties: 'presentclass' }, + { properties: 'presentgrade' }, ], eventsMapping: [ - { - from: 'ABC Searched', - to: 'WatchVideo', - }, - { - from: 'ABC Searched', - to: 'Signup', - }, - { - from: 'User Signup', - to: 'Signup', - }, - { - from: 'User Created', - to: 'Signup', - }, + { from: 'ABC Searched', to: 'WatchVideo' }, + { from: 'ABC Searched', to: 'Signup' }, + { from: 'User Signup', to: 'Signup' }, + { from: 'User Created', to: 'Signup' }, ], }, Enabled: true, @@ -1224,12 +934,7 @@ export const data = [ }, }, { - metadata: [ - { - destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', - jobId: 5, - }, - ], + metadata: [{ destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', jobId: 5, userId: 'u1' }], statTags: { destType: 'PINTEREST_TAG', feature: 'router', @@ -1255,30 +960,14 @@ export const data = [ deduplicationKey: 'messageId', enhancedMatch: true, customProperties: [ - { - properties: 'presentclass', - }, - { - properties: 'presentgrade', - }, + { properties: 'presentclass' }, + { properties: 'presentgrade' }, ], eventsMapping: [ - { - from: 'ABC Searched', - to: 'WatchVideo', - }, - { - from: 'ABC Searched', - to: 'Signup', - }, - { - from: 'User Signup', - to: 'Signup', - }, - { - from: 'User Created', - to: 'Signup', - }, + { from: 'ABC Searched', to: 'WatchVideo' }, + { from: 'ABC Searched', to: 'Signup' }, + { from: 'User Signup', to: 'Signup' }, + { from: 'User Created', to: 'Signup' }, ], }, Enabled: true, @@ -1317,20 +1006,10 @@ export const data = [ db: '19950715', lastname: 'Rudderlabs', firstName: 'Test', - address: { - city: 'Kolkata', - state: 'WB', - zip: '700114', - country: 'IN', - }, - }, - device: { - advertisingId: 'abc123', - }, - library: { - name: 'rudder-sdk-ruby-sync', - version: '1.0.6', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, }, messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', timestamp: '2020-08-14T05:30:30.118Z', @@ -1372,14 +1051,9 @@ export const data = [ checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', }, anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', - integrations: { - All: true, - }, - }, - metadata: { - destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', - jobId: 8, + integrations: { All: true }, }, + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', jobId: 8, userId: 'u1' }, destination: { DestinationDefinition: { Config: { cdkV2Enabled: true } }, ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', @@ -1396,30 +1070,14 @@ export const data = [ deduplicationKey: 'messageId', enhancedMatch: true, customProperties: [ - { - properties: 'presentclass', - }, - { - properties: 'presentgrade', - }, + { properties: 'presentclass' }, + { properties: 'presentgrade' }, ], eventsMapping: [ - { - from: 'ABC Searched', - to: 'WatchVideo', - }, - { - from: 'ABC Searched', - to: 'Signup', - }, - { - from: 'User Signup', - to: 'Signup', - }, - { - from: 'User Created', - to: 'Signup', - }, + { from: 'ABC Searched', to: 'WatchVideo' }, + { from: 'ABC Searched', to: 'Signup' }, + { from: 'User Signup', to: 'Signup' }, + { from: 'User Created', to: 'Signup' }, ], }, Enabled: true, @@ -1443,20 +1101,10 @@ export const data = [ db: '19950715', lastname: 'Rudderlabs', firstName: 'Test', - address: { - city: 'Kolkata', - state: 'WB', - zip: '700114', - country: 'IN', - }, - }, - device: { - advertisingId: 'abc123', - }, - library: { - name: 'rudder-sdk-ruby-sync', - version: '1.0.6', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, }, messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', timestamp: '2020-08-14T05:30:30.118Z', @@ -1497,14 +1145,9 @@ export const data = [ checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', }, anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', - integrations: { - All: true, - }, - }, - metadata: { - destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', - jobId: 9, + integrations: { All: true }, }, + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', jobId: 9, userId: 'u1' }, destination: { DestinationDefinition: { Config: { cdkV2Enabled: true } }, ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', @@ -1521,30 +1164,14 @@ export const data = [ deduplicationKey: 'messageId', enhancedMatch: true, customProperties: [ - { - properties: 'presentclass', - }, - { - properties: 'presentgrade', - }, + { properties: 'presentclass' }, + { properties: 'presentgrade' }, ], eventsMapping: [ - { - from: 'ABC Searched', - to: 'WatchVideo', - }, - { - from: 'ABC Searched', - to: 'Signup', - }, - { - from: 'User Signup', - to: 'Signup', - }, - { - from: 'User Created', - to: 'Signup', - }, + { from: 'ABC Searched', to: 'WatchVideo' }, + { from: 'ABC Searched', to: 'Signup' }, + { from: 'User Signup', to: 'Signup' }, + { from: 'User Created', to: 'Signup' }, ], }, Enabled: true, @@ -1568,20 +1195,10 @@ export const data = [ db: '19950715', lastname: 'Rudderlabs', firstName: 'Test', - address: { - city: 'Kolkata', - state: 'WB', - zip: '700114', - country: 'IN', - }, - }, - device: { - advertisingId: 'abc123', - }, - library: { - name: 'rudder-sdk-ruby-sync', - version: '1.0.6', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, }, messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', timestamp: '2020-08-14T05:30:30.118Z', @@ -1622,14 +1239,9 @@ export const data = [ checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', }, anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', - integrations: { - All: true, - }, - }, - metadata: { - destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', - jobId: 10, + integrations: { All: true }, }, + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', jobId: 10, userId: 'u1' }, destination: { DestinationDefinition: { Config: { cdkV2Enabled: true } }, ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', @@ -1647,30 +1259,14 @@ export const data = [ enhancedMatch: true, sendAsCustomEvent: true, customProperties: [ - { - properties: 'presentclass', - }, - { - properties: 'presentgrade', - }, + { properties: 'presentclass' }, + { properties: 'presentgrade' }, ], eventsMapping: [ - { - from: 'ABC Searched', - to: 'WatchVideo', - }, - { - from: 'ABC Searched', - to: 'Signup', - }, - { - from: 'User Signup', - to: 'Signup', - }, - { - from: 'User Created', - to: 'Signup', - }, + { from: 'ABC Searched', to: 'WatchVideo' }, + { from: 'ABC Searched', to: 'Signup' }, + { from: 'User Signup', to: 'Signup' }, + { from: 'User Created', to: 'Signup' }, ], }, Enabled: true, @@ -1732,14 +1328,8 @@ export const data = [ opt_out_type: 'LDP', content_ids: ['507f1f77bcf86cd799439011', '505bd76785ebb509fc183733'], contents: [ - { - quantity: 1, - item_price: '19', - }, - { - quantity: 2, - item_price: '3', - }, + { quantity: 1, item_price: '19' }, + { quantity: 2, item_price: '3' }, ], }, }, @@ -1773,14 +1363,8 @@ export const data = [ opt_out_type: 'LDP', content_ids: ['507f1f77bcf86cd799439011', '505bd76785ebb509fc183733'], contents: [ - { - quantity: 1, - item_price: '19', - }, - { - quantity: 2, - item_price: '3', - }, + { quantity: 1, item_price: '19' }, + { quantity: 2, item_price: '3' }, ], }, }, @@ -1813,14 +1397,8 @@ export const data = [ num_items: 3, content_ids: ['507f1f77bcf86cd799439011', '505bd76785ebb509fc183733'], contents: [ - { - quantity: 1, - item_price: '19', - }, - { - quantity: 2, - item_price: '3', - }, + { quantity: 1, item_price: '19' }, + { quantity: 2, item_price: '3' }, ], }, }, @@ -1853,14 +1431,8 @@ export const data = [ num_items: 3, content_ids: ['507f1f77bcf86cd799439011', '505bd76785ebb509fc183733'], contents: [ - { - quantity: 1, - item_price: '19', - }, - { - quantity: 2, - item_price: '3', - }, + { quantity: 1, item_price: '19' }, + { quantity: 2, item_price: '3' }, ], }, }, @@ -1873,18 +1445,9 @@ export const data = [ files: {}, }, metadata: [ - { - destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', - jobId: 8, - }, - { - destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', - jobId: 9, - }, - { - destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', - jobId: 10, - }, + { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', jobId: 8, userId: 'u1' }, + { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', jobId: 9, userId: 'u1' }, + { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', jobId: 10, userId: 'u1' }, ], batched: true, statusCode: 200, @@ -1904,30 +1467,14 @@ export const data = [ deduplicationKey: 'messageId', enhancedMatch: true, customProperties: [ - { - properties: 'presentclass', - }, - { - properties: 'presentgrade', - }, + { properties: 'presentclass' }, + { properties: 'presentgrade' }, ], eventsMapping: [ - { - from: 'ABC Searched', - to: 'WatchVideo', - }, - { - from: 'ABC Searched', - to: 'Signup', - }, - { - from: 'User Signup', - to: 'Signup', - }, - { - from: 'User Created', - to: 'Signup', - }, + { from: 'ABC Searched', to: 'WatchVideo' }, + { from: 'ABC Searched', to: 'Signup' }, + { from: 'User Signup', to: 'Signup' }, + { from: 'User Created', to: 'Signup' }, ], }, Enabled: true, @@ -1966,20 +1513,10 @@ export const data = [ db: '19950715', lastname: 'Rudderlabs', firstName: 'Test', - address: { - city: 'Kolkata', - state: 'WB', - zip: '700114', - country: 'IN', - }, - }, - device: { - advertisingId: 'abc123', - }, - library: { - name: 'rudder-sdk-ruby-sync', - version: '1.0.6', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, }, messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', timestamp: '2020-08-14T05:30:30.118Z', @@ -2020,14 +1557,9 @@ export const data = [ checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', }, anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', - integrations: { - All: true, - }, - }, - metadata: { - destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', - jobId: 5, + integrations: { All: true }, }, + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', jobId: 5, userId: 'u1' }, destination: { DestinationDefinition: { Config: { cdkV2Enabled: true } }, ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', @@ -2042,30 +1574,14 @@ export const data = [ deduplicationKey: 'messageId', enhancedMatch: true, customProperties: [ - { - properties: 'presentclass', - }, - { - properties: 'presentgrade', - }, + { properties: 'presentclass' }, + { properties: 'presentgrade' }, ], eventsMapping: [ - { - from: 'ABC Searched', - to: 'Watch Video', - }, - { - from: 'ABC Searched', - to: 'Signup', - }, - { - from: 'User Signup', - to: 'Signup', - }, - { - from: 'User Created', - to: 'Signup', - }, + { from: 'ABC Searched', to: 'Watch Video' }, + { from: 'ABC Searched', to: 'Signup' }, + { from: 'User Signup', to: 'Signup' }, + { from: 'User Created', to: 'Signup' }, ], }, Enabled: true, @@ -2084,12 +1600,7 @@ export const data = [ body: { output: [ { - metadata: [ - { - destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', - jobId: 5, - }, - ], + metadata: [{ destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', jobId: 5, userId: 'u1' }], batched: false, statusCode: 400, error: 'message type identify is not supported', @@ -2115,30 +1626,14 @@ export const data = [ deduplicationKey: 'messageId', enhancedMatch: true, customProperties: [ - { - properties: 'presentclass', - }, - { - properties: 'presentgrade', - }, + { properties: 'presentclass' }, + { properties: 'presentgrade' }, ], eventsMapping: [ - { - from: 'ABC Searched', - to: 'Watch Video', - }, - { - from: 'ABC Searched', - to: 'Signup', - }, - { - from: 'User Signup', - to: 'Signup', - }, - { - from: 'User Created', - to: 'Signup', - }, + { from: 'ABC Searched', to: 'Watch Video' }, + { from: 'ABC Searched', to: 'Signup' }, + { from: 'User Signup', to: 'Signup' }, + { from: 'User Created', to: 'Signup' }, ], }, Enabled: true, diff --git a/test/integrations/destinations/pipedream/router/data.ts b/test/integrations/destinations/pipedream/router/data.ts index fa71e6a592..3e05ad9551 100644 --- a/test/integrations/destinations/pipedream/router/data.ts +++ b/test/integrations/destinations/pipedream/router/data.ts @@ -19,25 +19,15 @@ export const data = [ model: 'Redmi 6', name: 'xiaomi', }, - network: { - carrier: 'Banglalink', - }, - os: { - name: 'android', - version: '8.1.0', - }, + network: { carrier: 'Banglalink' }, + os: { name: 'android', version: '8.1.0' }, traits: { - address: { - city: 'Dhaka', - country: 'Bangladesh', - }, + address: { city: 'Dhaka', country: 'Bangladesh' }, anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', }, }, event: 'spin_result', - integrations: { - All: true, - }, + integrations: { All: true }, message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', properties: { additional_bet_index: 0, @@ -100,21 +90,13 @@ export const data = [ versionSessionCount: 2, }, }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, destination: { Config: { pipedreamUrl: 'http://6b0e6a60.ngrok.io', headers: [ - { - from: '', - to: '', - }, - { - from: 'test2', - to: 'value2', - }, + { from: '', to: '' }, + { from: 'test2', to: 'value2' }, ], }, }, @@ -157,9 +139,7 @@ export const data = [ versionSessionCount: 2, game_name: 'FireEagleSlots', }, - integrations: { - All: true, - }, + integrations: { All: true }, event: 'spin_result', message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', @@ -172,18 +152,10 @@ export const data = [ }, traits: { anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', - address: { - city: 'Dhaka', - country: 'Bangladesh', - }, - }, - os: { - version: '8.1.0', - name: 'android', - }, - network: { - carrier: 'Banglalink', + address: { city: 'Dhaka', country: 'Bangladesh' }, }, + os: { version: '8.1.0', name: 'android' }, + network: { carrier: 'Banglalink' }, }, type: 'track', properties: { @@ -230,34 +202,21 @@ export const data = [ files: {}, endpoint: 'http://6b0e6a60.ngrok.io', userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', - headers: { - 'content-type': 'application/json', - test2: 'value2', - }, + headers: { 'content-type': 'application/json', test2: 'value2' }, version: '1', params: {}, type: 'REST', method: 'POST', }, - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], batched: false, statusCode: 200, destination: { Config: { pipedreamUrl: 'http://6b0e6a60.ngrok.io', headers: [ - { - from: '', - to: '', - }, - { - from: 'test2', - to: 'value2', - }, + { from: '', to: '' }, + { from: 'test2', to: 'value2' }, ], }, }, @@ -287,25 +246,15 @@ export const data = [ model: 'Redmi 6', name: 'xiaomi', }, - network: { - carrier: 'Banglalink', - }, - os: { - name: 'android', - version: '8.1.0', - }, + network: { carrier: 'Banglalink' }, + os: { name: 'android', version: '8.1.0' }, traits: { - address: { - city: 'Dhaka', - country: 'Bangladesh', - }, + address: { city: 'Dhaka', country: 'Bangladesh' }, anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', }, }, event: 'spin_result', - integrations: { - All: true, - }, + integrations: { All: true }, message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', properties: { additional_bet_index: 0, @@ -368,14 +317,8 @@ export const data = [ versionSessionCount: 2, }, }, - metadata: { - jobId: 2, - }, - destination: { - Config: { - pipedreamUrl: 'https://6b0e6a60.ngrok.io/n', - }, - }, + metadata: { jobId: 2, userId: 'u1' }, + destination: { Config: { pipedreamUrl: 'https://6b0e6a60.ngrok.io/n' } }, }, ], destType: 'pipedream', @@ -415,9 +358,7 @@ export const data = [ versionSessionCount: 2, game_name: 'FireEagleSlots', }, - integrations: { - All: true, - }, + integrations: { All: true }, event: 'spin_result', message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', @@ -430,18 +371,10 @@ export const data = [ }, traits: { anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', - address: { - city: 'Dhaka', - country: 'Bangladesh', - }, - }, - os: { - version: '8.1.0', - name: 'android', - }, - network: { - carrier: 'Banglalink', + address: { city: 'Dhaka', country: 'Bangladesh' }, }, + os: { version: '8.1.0', name: 'android' }, + network: { carrier: 'Banglalink' }, }, type: 'track', properties: { @@ -488,26 +421,16 @@ export const data = [ files: {}, endpoint: 'https://6b0e6a60.ngrok.io/n', userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', - headers: { - 'content-type': 'application/json', - }, + headers: { 'content-type': 'application/json' }, version: '1', params: {}, type: 'REST', method: 'POST', }, - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], batched: false, statusCode: 200, - destination: { - Config: { - pipedreamUrl: 'https://6b0e6a60.ngrok.io/n', - }, - }, + destination: { Config: { pipedreamUrl: 'https://6b0e6a60.ngrok.io/n' } }, }, ], }, diff --git a/test/integrations/destinations/posthog/router/data.ts b/test/integrations/destinations/posthog/router/data.ts index f69b4bfbdd..dab8ba8b1c 100644 --- a/test/integrations/destinations/posthog/router/data.ts +++ b/test/integrations/destinations/posthog/router/data.ts @@ -16,9 +16,7 @@ export const data = [ yourInstance: 'https://app.posthog.com/', }, }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, message: { event: 'event-alias', context: { @@ -29,13 +27,8 @@ export const data = [ model: 'Redmi 6', name: 'xiaomi', }, - network: { - carrier: 'Banglalink', - }, - os: { - name: 'android', - version: '8.1.0', - }, + network: { carrier: 'Banglalink' }, + os: { name: 'android', version: '8.1.0' }, app: { build: '1.0.0', name: 'RudderLabs JavaScript SDK', @@ -43,10 +36,7 @@ export const data = [ version: '1.1.7', }, traits: { - address: { - city: 'Dhaka', - country: 'Bangladesh', - }, + address: { city: 'Dhaka', country: 'Bangladesh' }, anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', }, }, @@ -74,18 +64,13 @@ export const data = [ type: 'REST', method: 'POST', endpoint: 'https://app.posthog.com/batch', - headers: { - 'Content-Type': 'application/json', - }, + headers: { 'Content-Type': 'application/json' }, params: {}, body: { JSON: { properties: { $set: { - address: { - city: 'Dhaka', - country: 'Bangladesh', - }, + address: { city: 'Dhaka', country: 'Bangladesh' }, anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', }, $os: 'android', @@ -117,11 +102,7 @@ export const data = [ }, files: {}, }, - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], batched: false, statusCode: 200, destination: { @@ -148,13 +129,9 @@ export const data = [ input: [ { destination: { - Config: { - teamApiKey: 'K_HlByO3IE73-Tz4ch1LNDs0JGdwbknNGolFc4HdoAE', - }, - }, - metadata: { - jobId: 2, + Config: { teamApiKey: 'K_HlByO3IE73-Tz4ch1LNDs0JGdwbknNGolFc4HdoAE' }, }, + metadata: { jobId: 2, userId: 'u1' }, message: { anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', event: 'Product Brought', @@ -166,18 +143,10 @@ export const data = [ model: 'Redmi 6', name: 'xiaomi', }, - network: { - carrier: 'Banglalink', - }, - os: { - name: 'android', - version: '8.1.0', - }, + network: { carrier: 'Banglalink' }, + os: { name: 'android', version: '8.1.0' }, traits: { - address: { - city: 'Dhaka', - country: 'Bangladesh', - }, + address: { city: 'Dhaka', country: 'Bangladesh' }, anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', }, }, @@ -241,9 +210,7 @@ export const data = [ type: 'REST', method: 'POST', endpoint: 'https://app.posthog.com/batch', - headers: { - 'Content-Type': 'application/json', - }, + headers: { 'Content-Type': 'application/json' }, params: {}, body: { JSON: { @@ -252,10 +219,7 @@ export const data = [ messageId: 'e4408cb8-16dd-41e9-a313-a7a9cdc4bac5', properties: { $set: { - address: { - city: 'Dhaka', - country: 'Bangladesh', - }, + address: { city: 'Dhaka', country: 'Bangladesh' }, anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', }, $os: 'android', @@ -316,17 +280,11 @@ export const data = [ }, files: {}, }, - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], batched: false, statusCode: 200, destination: { - Config: { - teamApiKey: 'K_HlByO3IE73-Tz4ch1LNDs0JGdwbknNGolFc4HdoAE', - }, + Config: { teamApiKey: 'K_HlByO3IE73-Tz4ch1LNDs0JGdwbknNGolFc4HdoAE' }, }, }, ], diff --git a/test/integrations/destinations/profitwell/router/data.ts b/test/integrations/destinations/profitwell/router/data.ts index 11f08c2139..b308155dae 100644 --- a/test/integrations/destinations/profitwell/router/data.ts +++ b/test/integrations/destinations/profitwell/router/data.ts @@ -10,14 +10,8 @@ export const data = [ body: { input: [ { - destination: { - Config: { - privateApiKey: '9270161a8e5abaa0e56efddfd9dbcb62', - }, - }, - metadata: { - jobId: 2, - }, + destination: { Config: { privateApiKey: '9270161a8e5abaa0e56efddfd9dbcb62' } }, + metadata: { jobId: 2, userId: 'u1' }, message: { channel: 'web', context: { @@ -92,18 +86,10 @@ export const data = [ version: '1', endpoint: 'https://api.profitwell.com/v2/subscriptions/', }, - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], batched: false, statusCode: 200, - destination: { - Config: { - privateApiKey: '9270161a8e5abaa0e56efddfd9dbcb62', - }, - }, + destination: { Config: { privateApiKey: '9270161a8e5abaa0e56efddfd9dbcb62' } }, }, ], }, diff --git a/test/integrations/destinations/rakuten/dataDelivery/data.ts b/test/integrations/destinations/rakuten/dataDelivery/data.ts new file mode 100644 index 0000000000..ff40954fdf --- /dev/null +++ b/test/integrations/destinations/rakuten/dataDelivery/data.ts @@ -0,0 +1,204 @@ +import { endpoint, commonOutputHeaders } from '../processor/commonConfig'; +const commonParams = { + xml: 1, + source: 'rudderstack', + amtlist: '12500|12500', + qlist: '|5', + ord: 'SampleOrderId', + tr: 'SampleRanSiteID', + land: '20240129_1200', +}; +export const data = [ + { + name: 'rakuten', + description: 'Test 0: Failure response from rakuten for invalid mid', + feature: 'dataDelivery', + module: 'destination', + scenario: 'Framework', + version: 'v0', + input: { + request: { + body: { + method: 'GET', + endpoint, + headers: commonOutputHeaders, + params: { + mid: 'invalid_mid', + ...commonParams, + }, + userId: '', + }, + }, + }, + output: { + response: { + status: 400, + statTags: { + errorCategory: 'network', + errorType: 'configuration', + destType: 'RAKUTEN', + module: 'destination', + implementation: 'native', + feature: 'dataDelivery', + destinationId: 'dummyDestId', + workspaceId: 'dummyWorkspaceId', + }, + destinationResponse: { + response: + 'HTTP Status 400 – Bad Request

HTTP Status 400 – Bad Request

', + status: 400, + rudderJobMetadata: [ + { + jobId: 2, + attemptNum: 0, + userId: '', + sourceId: 'dummySourceId', + destinationId: 'dummyDestId', + workspaceId: 'dummyWorkspaceId', + }, + ], + }, + authErrorCategory: '', + message: 'Request failed with status: 400 due to invalid Marketing Id', + }, + }, + }, + { + name: 'rakuten', + description: 'Test 1: Failure response from rakuten for access denied for rakuten mid', + feature: 'dataDelivery', + scenario: 'Framework', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + method: 'GET', + endpoint, + headers: commonOutputHeaders, + params: { + mid: 'access_denied_for_mid', + ...commonParams, + }, + userId: '', + }, + }, + }, + output: { + response: { + status: 400, + statTags: { + errorCategory: 'network', + errorType: 'configuration', + destType: 'RAKUTEN', + module: 'destination', + implementation: 'native', + feature: 'dataDelivery', + destinationId: 'dummyDestId', + workspaceId: 'dummyWorkspaceId', + }, + destinationResponse: { + response: 'Access denied', + status: 200, + rudderJobMetadata: [ + { + jobId: 2, + attemptNum: 0, + userId: '', + sourceId: 'dummySourceId', + destinationId: 'dummyDestId', + workspaceId: 'dummyWorkspaceId', + }, + ], + }, + authErrorCategory: '', + message: + 'Request failed with status: 200 due to Access denied. Can you try to enable pixel tracking for this mid.', + }, + }, + }, + { + name: 'rakuten', + description: 'Test 2: Failure response from rakuten for bad records>0', + feature: 'dataDelivery', + scenario: 'Framework', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + method: 'GET', + endpoint, + headers: commonOutputHeaders, + params: { + mid: 'valid_mid_with_bad_records', + ...commonParams, + }, + userId: '', + }, + }, + }, + output: { + response: { + status: 400, + statTags: { + errorCategory: 'network', + errorType: 'aborted', + destType: 'RAKUTEN', + module: 'destination', + implementation: 'native', + feature: 'dataDelivery', + destinationId: 'dummyDestId', + workspaceId: 'dummyWorkspaceId', + }, + destinationResponse: { + response: + '14340739143103', + status: 200, + rudderJobMetadata: [ + { + jobId: 2, + attemptNum: 0, + userId: '', + sourceId: 'dummySourceId', + destinationId: 'dummyDestId', + workspaceId: 'dummyWorkspaceId', + }, + ], + }, + authErrorCategory: '', + message: 'Request failed with status: 200 with number of bad records 3', + }, + }, + }, + { + name: 'rakuten', + description: 'Test 3: Success response from rakuten with good records > 0', + feature: 'dataDelivery', + scenario: 'Framework', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + method: 'GET', + endpoint, + headers: commonOutputHeaders, + params: { + mid: 'valid_mid_with_good_records', + ...commonParams, + }, + userId: '', + }, + }, + }, + output: { + response: { + status: 200, + destinationResponse: + 'uniqueId30', + message: '[RAKUTEN Response Handler] - Request Processed Successfully', + }, + }, + }, +]; diff --git a/test/integrations/destinations/rakuten/network.ts b/test/integrations/destinations/rakuten/network.ts new file mode 100644 index 0000000000..a9770d83e2 --- /dev/null +++ b/test/integrations/destinations/rakuten/network.ts @@ -0,0 +1,102 @@ +export const networkCallsData = [ + { + description: 'When mid is invalid', + httpReq: { + url: 'https://track.linksynergy.com/ep', + params: { + mid: 'invalid_mid', + xml: 1, + source: 'rudderstack', + amtlist: '12500|12500', + qlist: '|5', + ord: 'SampleOrderId', + tr: 'SampleRanSiteID', + land: '20240129_1200', + }, + headers: { + Accept: 'application/json', + 'Content-Type': 'application/json', + }, + method: 'GET', + }, + httpRes: { + status: 400, + data: 'HTTP Status 400 – Bad Request

HTTP Status 400 – Bad Request

', + }, + }, + { + description: 'When mid is valid but there is no access', + httpReq: { + url: 'https://track.linksynergy.com/ep', + params: { + mid: 'access_denied_for_mid', + xml: 1, + source: 'rudderstack', + amtlist: '12500|12500', + qlist: '|5', + ord: 'SampleOrderId', + tr: 'SampleRanSiteID', + land: '20240129_1200', + }, + headers: { + Accept: 'application/json', + 'Content-Type': 'application/json', + }, + method: 'GET', + }, + httpRes: { + status: 200, + data: 'Access denied', + }, + }, + { + description: 'When record along with mid is valid', + httpReq: { + url: 'https://track.linksynergy.com/ep', + params: { + mid: 'valid_mid_with_good_records', + xml: 1, + source: 'rudderstack', + amtlist: '12500|12500', + qlist: '|5', + ord: 'SampleOrderId', + tr: 'SampleRanSiteID', + land: '20240129_1200', + }, + headers: { + Accept: 'application/json', + 'Content-Type': 'application/json', + }, + method: 'GET', + }, + httpRes: { + status: 200, + data: 'uniqueId30', + }, + }, + { + description: 'When records are invalid and mid is valid', + httpReq: { + url: 'https://track.linksynergy.com/ep', + params: { + mid: 'valid_mid_with_bad_records', + xml: 1, + source: 'rudderstack', + amtlist: '12500|12500', + qlist: '|5', + ord: 'SampleOrderId', + tr: 'SampleRanSiteID', + land: '20240129_1200', + }, + headers: { + Accept: 'application/json', + 'Content-Type': 'application/json', + }, + method: 'GET', + }, + httpRes: { + status: 200, + data: 'uniqueId03', + }, + }, +]; diff --git a/test/integrations/destinations/rakuten/processor/commonConfig.ts b/test/integrations/destinations/rakuten/processor/commonConfig.ts new file mode 100644 index 0000000000..e7e2af7fbd --- /dev/null +++ b/test/integrations/destinations/rakuten/processor/commonConfig.ts @@ -0,0 +1,65 @@ +export const destination = { + ID: 'random_id', + Name: 'rakuten', + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + mid: 'dummyMarketingId', + }, +}; +export const endpoint = 'https://track.linksynergy.com/ep'; +export const commonOutputHeaders = { + accept: 'application/json', + 'content-type': 'application/json', +}; +export const singleProductWithAllProperties = { + sku: 'ABC123', + amount: 20, + quantity: 5, + name: 'SampleProduct', + brand: 'SampleBrand', + coupon: 'SALE20', + categoryId: '12345', + category: 'Electronics', + discountAmount: 10.5, + discountType: 'Percentage', + isClearance: 'Y', + isMarketPlace: 'N', + isSale: 'Y', + itmStatus: 'In Stock', + margin: 0.15, + markdown: 5.0, + shipId: 'SHIP123', + shipBy: 'Express', + taxExempt: 'N', + sequence: '123', + isComm: 'Y', +}; +export const commonProperties = { + orderId: 'SampleOrderId', + tr: 'SampleRanSiteID', + landTime: '20240129_1200', + date: '20240129_1300', + altord: 'SampleAlternateOrderId', + currency: 'INR', + creditCardType: 'Visa', + commReason: 'SampleCommReason', + isComm: 'Y', + consumed: '20240129_1400', + coupon: 'SampleCoupon', + custId: 'SampleCustomerId', + custScore: 'A', + custStatus: 'New', + dId: 'SampleDeviceId', + disamt: '50.00', + ordStatus: 'Pending', + segment: 'SampleSegment', + shipcountry: 'USA', + shipped: '20240129_1500', + sitename: 'SampleSiteName', + storeId: '12345', + storecat: 'Electronics', +}; diff --git a/test/integrations/destinations/rakuten/processor/data.ts b/test/integrations/destinations/rakuten/processor/data.ts new file mode 100644 index 0000000000..bdce4e850e --- /dev/null +++ b/test/integrations/destinations/rakuten/processor/data.ts @@ -0,0 +1,3 @@ +import { transformationFailures } from './transformationFailure'; +import { trackSuccess } from './track'; +export const data = [...trackSuccess, ...transformationFailures]; diff --git a/test/integrations/destinations/rakuten/processor/track.ts b/test/integrations/destinations/rakuten/processor/track.ts new file mode 100644 index 0000000000..49b26e4658 --- /dev/null +++ b/test/integrations/destinations/rakuten/processor/track.ts @@ -0,0 +1,452 @@ +import { + destination, + commonOutputHeaders, + commonProperties, + endpoint, + singleProductWithAllProperties, +} from './commonConfig'; +import { transformResultBuilder } from '../../../testUtils'; +export const trackSuccess = [ + { + id: 'rakuten-test-track-success-1', + name: 'rakuten', + description: + 'Track call with properties.products with all properties in payload and one product containing all product properties and other containg some', + scenario: 'Business', + successCriteria: + 'Response should contain only properties and product payload and status code should be 200', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination, + message: { + type: 'track', + event: 'product purchased', + sentAt: '2021-01-25T16:12:02.048Z', + userId: 'sajal12', + channel: 'mobile', + rudderId: 'b7b24f86-f7bf-46d8-b2b4-ccafc080239c', + messageId: '1611588776408-ee5a3212-fbf9-4cbb-bbad-3ed0f7c6a2ce', + properties: { + ...commonProperties, + products: [ + { ...singleProductWithAllProperties }, + { + sku: 'custom sku 1', + quantity: 5, + amount: 25, + name: 'name_1', + }, + { + sku: 'custom sku 2', + name: 'SampleProduct', + quantity: 1, + amount: 30, + coupon: 'SALE50', + }, + ], + }, + anonymousId: '9c6bd77ea9da3e68', + integrations: { + All: true, + }, + originalTimestamp: '2021-01-25T15:32:56.409Z', + }, + metadata: { + destinationId: 'dummyDestId', + jobId: '1', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + destinationId: 'dummyDestId', + jobId: '1', + }, + output: transformResultBuilder({ + method: 'GET', + endpoint, + headers: commonOutputHeaders, + params: { + mid: 'dummyMarketingId', + xml: 1, + source: 'rudderstack', + amtlist: '2000|2500|3000', + brandlist: 'SampleBrand||', + catidlist: '12345||', + catlist: 'Electronics||', + couponlist: 'SALE20||SALE50', + disamtlist: '10.5||', + distypelist: 'Percentage||', + ismarketplacelist: 'N||', + sequencelist: '123||', + shipbylist: 'Express||', + shipidlist: 'SHIP123||', + qlist: '5|5|1', + marginlist: '0.15||', + markdownlist: '5||', + taxexemptlist: 'N||', + namelist: 'SampleProduct|name_1|SampleProduct', + skulist: 'ABC123|custom sku 1|custom sku 2', + issalelist: 'Y||', + itmstatuslist: 'In Stock||', + isclearancelist: 'Y||', + ord: 'SampleOrderId', + tr: 'SampleRanSiteID', + land: '20240129_1200', + date: '20240129_1300', + altord: 'SampleAlternateOrderId', + cur: 'INR', + cc: 'Visa', + commreason: 'SampleCommReason', + iscomm: 'Y', + consumed: '20240129_1400', + coupon: 'SampleCoupon', + custid: 'SampleCustomerId', + custscore: 'A', + custstatus: 'New', + did: 'SampleDeviceId', + disamt: '50.00', + ordstatus: 'Pending', + segment: 'SampleSegment', + shipcountry: 'USA', + shipped: '20240129_1500', + sitename: 'SampleSiteName', + storeid: '12345', + storecat: 'Electronics', + }, + userId: '', + }), + statusCode: 200, + }, + ], + }, + }, + }, + { + id: 'rakuten-test-track-success-2', + name: 'rakuten', + description: + 'Track call with properties.products and no event in payload and products containing amount,price and quantity', + scenario: 'Business+Framework', + successCriteria: + 'Response should contain only properties and product payload and amount to be calculated from price*quantity where amount is not present and quantity taken as 1 by default and status code should be 200', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination, + message: { + type: 'track', + sentAt: '2021-01-25T16:12:02.048Z', + userId: 'sajal12', + channel: 'mobile', + rudderId: 'b7b24f86-f7bf-46d8-b2b4-ccafc080239c', + messageId: '1611588776408-ee5a3212-fbf9-4cbb-bbad-3ed0f7c6a2ce', + properties: { + ...commonProperties, + products: [ + { + sku: 'custom sku 0', + amount: '125', + quantity: 1, + name: 'name_1', + }, + { + sku: 'custom sku 1', + quantity: 5, + price: 25, + name: 'name_2', + }, + { + sku: 'custom sku 2', + name: 'SampleProduct', + price: 30, + quantity: 1, + coupon: 'SALE50', + }, + ], + }, + anonymousId: '9c6bd77ea9da3e68', + integrations: { + All: true, + }, + originalTimestamp: '2021-01-25T15:32:56.409Z', + }, + metadata: { + destinationId: 'dummyDestId', + jobId: '1', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + destinationId: 'dummyDestId', + jobId: '1', + }, + output: transformResultBuilder({ + method: 'GET', + endpoint, + headers: commonOutputHeaders, + params: { + mid: 'dummyMarketingId', + xml: 1, + source: 'rudderstack', + amtlist: '12500|12500|3000', + couponlist: '||SALE50', + namelist: 'name_1|name_2|SampleProduct', + skulist: 'custom sku 0|custom sku 1|custom sku 2', + qlist: '1|5|1', + ord: 'SampleOrderId', + tr: 'SampleRanSiteID', + land: '20240129_1200', + date: '20240129_1300', + altord: 'SampleAlternateOrderId', + cur: 'INR', + cc: 'Visa', + commreason: 'SampleCommReason', + iscomm: 'Y', + consumed: '20240129_1400', + coupon: 'SampleCoupon', + custid: 'SampleCustomerId', + custscore: 'A', + custstatus: 'New', + did: 'SampleDeviceId', + disamt: '50.00', + ordstatus: 'Pending', + segment: 'SampleSegment', + shipcountry: 'USA', + shipped: '20240129_1500', + sitename: 'SampleSiteName', + storeid: '12345', + storecat: 'Electronics', + }, + userId: '', + }), + statusCode: 200, + }, + ], + }, + }, + }, + { + id: 'rakuten-test-track-success-3', + name: 'rakuten', + description: + 'Track call for products return or cancelled products containing amount,price and quantity where price is negative', + scenario: 'Business', + successCriteria: + 'Response should contain only properties and product payload and amount to be calculated from price*quantity where amount is negative and status code should be 200', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination, + message: { + type: 'track', + sentAt: '2021-01-25T16:12:02.048Z', + userId: 'sajal12', + channel: 'mobile', + rudderId: 'b7b24f86-f7bf-46d8-b2b4-ccafc080239c', + messageId: '1611588776408-ee5a3212-fbf9-4cbb-bbad-3ed0f7c6a2ce', + properties: { + ...commonProperties, + products: [ + { + sku: 'custom sku 0', + quantity: 1, + amount: '-125', + name: 'name_1', + }, + { + sku: 'custom sku 1', + quantity: 5, + price: -25, + name: 'name_2', + }, + ], + }, + anonymousId: '9c6bd77ea9da3e68', + integrations: { + All: true, + }, + originalTimestamp: '2021-01-25T15:32:56.409Z', + }, + metadata: { + destinationId: 'dummyDestId', + jobId: '1', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + destinationId: 'dummyDestId', + jobId: '1', + }, + output: transformResultBuilder({ + method: 'GET', + endpoint, + headers: commonOutputHeaders, + params: { + mid: 'dummyMarketingId', + xml: 1, + source: 'rudderstack', + amtlist: '-12500|-12500', + skulist: 'custom sku 0|custom sku 1', + qlist: '1|5', + ord: 'SampleOrderId', + namelist: 'name_1|name_2', + tr: 'SampleRanSiteID', + land: '20240129_1200', + date: '20240129_1300', + altord: 'SampleAlternateOrderId', + cur: 'INR', + cc: 'Visa', + commreason: 'SampleCommReason', + iscomm: 'Y', + consumed: '20240129_1400', + coupon: 'SampleCoupon', + custid: 'SampleCustomerId', + custscore: 'A', + custstatus: 'New', + did: 'SampleDeviceId', + disamt: '50.00', + ordstatus: 'Pending', + segment: 'SampleSegment', + shipcountry: 'USA', + shipped: '20240129_1500', + sitename: 'SampleSiteName', + storeid: '12345', + storecat: 'Electronics', + }, + userId: '', + }), + statusCode: 200, + }, + ], + }, + }, + }, + { + id: 'rakuten-test-track-success-4', + name: 'rakuten', + description: 'Track call for Discount event ', + scenario: 'Business', + successCriteria: + 'Response should have last item of skulist as "Discount", qlist as 0 and amtlist as negative and status code should be 200', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination, + message: { + type: 'track', + sentAt: '2021-01-25T16:12:02.048Z', + userId: 'sajal12', + channel: 'mobile', + rudderId: 'b7b24f86-f7bf-46d8-b2b4-ccafc080239c', + messageId: '1611588776408-ee5a3212-fbf9-4cbb-bbad-3ed0f7c6a2ce', + properties: { + orderId: 'SampleOrderId', + tr: 'SampleRanSiteID', + landTime: '20240129_1200', + products: [ + { + sku: 'custom sku 0', + quantity: 5, + amount: '125', + name: 'name_1', + }, + { + sku: 'custom sku 1', + quantity: 5, + price: 25, + name: 'name_2', + }, + { + sku: 'Discount', + quantity: 0, + amount: -500, + name: 'Discount', + }, + ], + }, + anonymousId: '9c6bd77ea9da3e68', + integrations: { + All: true, + }, + originalTimestamp: '2021-01-25T15:32:56.409Z', + }, + metadata: { + destinationId: 'dummyDestId', + jobId: '1', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + destinationId: 'dummyDestId', + jobId: '1', + }, + output: transformResultBuilder({ + method: 'GET', + endpoint, + headers: commonOutputHeaders, + params: { + mid: 'dummyMarketingId', + xml: 1, + source: 'rudderstack', + namelist: 'name_1|name_2|Discount', + amtlist: '12500|12500|-50000', + skulist: 'custom sku 0|custom sku 1|Discount', + qlist: '5|5|0', + ord: 'SampleOrderId', + tr: 'SampleRanSiteID', + land: '20240129_1200', + }, + userId: '', + }), + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/rakuten/processor/transformationFailure.ts b/test/integrations/destinations/rakuten/processor/transformationFailure.ts new file mode 100644 index 0000000000..906ddafd6a --- /dev/null +++ b/test/integrations/destinations/rakuten/processor/transformationFailure.ts @@ -0,0 +1,335 @@ +import { destination } from './commonConfig'; + +export const transformationFailures = [ + { + id: 'rakuten-test-2', + name: 'rakuten', + description: 'Required field orderId not present', + scenario: 'Framework', + successCriteria: 'Transformationn Error for orderId not present', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination, + message: { + type: 'track', + event: 'product purchased', + sentAt: '2021-01-25T16:12:02.048Z', + userId: 'sajal12', + channel: 'mobile', + rudderId: 'b7b24f86-f7bf-46d8-b2b4-ccafc080239c', + messageId: '1611588776408-ee5a3212-fbf9-4cbb-bbad-3ed0f7c6a2ce', + properties: { + products: [{}], + }, + anonymousId: '9c6bd77ea9da3e68', + integrations: { + All: true, + }, + originalTimestamp: '2021-01-25T15:32:56.409Z', + }, + metadata: { + destinationId: 'dummyDestId', + jobId: '1', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'Missing required value from "properties.orderId": Workflow: procWorkflow, Step: prepareTrackPayload, ChildStep: undefined, OriginalError: Missing required value from "properties.orderId"', + metadata: { + destinationId: 'dummyDestId', + jobId: '1', + }, + statTags: { + destType: 'RAKUTEN', + destinationId: 'dummyDestId', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + id: 'rakuten-test-3', + name: 'rakuten', + description: 'No products available in products array to send', + scenario: 'Framework', + successCriteria: 'Transformationn Error for no products present to send', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination, + message: { + type: 'track', + event: 'product purchased', + sentAt: '2021-01-25T16:12:02.048Z', + userId: 'sajal12', + channel: 'mobile', + rudderId: 'b7b24f86-f7bf-46d8-b2b4-ccafc080239c', + messageId: '1611588776408-ee5a3212-fbf9-4cbb-bbad-3ed0f7c6a2ce', + properties: { + land: '20230406_2342', + tr: 'txnId', + orderId: 'ord 123', + products: [], + }, + anonymousId: '9c6bd77ea9da3e68', + integrations: { + All: true, + }, + originalTimestamp: '2021-01-25T15:32:56.409Z', + }, + metadata: { + destinationId: 'dummyDestId', + jobId: '1', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'Either properties.product is not an array or is empty: Workflow: procWorkflow, Step: prepareTrackPayload, ChildStep: undefined, OriginalError: Either properties.product is not an array or is empty', + metadata: { + destinationId: 'dummyDestId', + jobId: '1', + }, + statTags: { + destType: 'RAKUTEN', + destinationId: 'dummyDestId', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + id: 'rakuten-test-4', + name: 'rakuten', + description: 'Unsupported message type -> Identify', + scenario: 'Framework', + successCriteria: 'Transformationn Error for Unsupported message type', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination, + message: { + type: 'identify', + sentAt: '2021-01-25T16:12:02.048Z', + userId: 'sajal12', + channel: 'mobile', + rudderId: 'b7b24f86-f7bf-46d8-b2b4-ccafc080239c', + messageId: '1611588776408-ee5a3212-fbf9-4cbb-bbad-3ed0f7c6a2ce', + traits: { + orderId: 'ord 123', + products: [], + }, + anonymousId: '9c6bd77ea9da3e68', + integrations: { + All: true, + }, + originalTimestamp: '2021-01-25T15:32:56.409Z', + }, + metadata: { + destinationId: 'dummyDestId', + jobId: '1', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'message type identify is not supported: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: message type identify is not supported', + metadata: { + destinationId: 'dummyDestId', + jobId: '1', + }, + statTags: { + destType: 'RAKUTEN', + errorCategory: 'dataValidation', + destinationId: 'dummyDestId', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + id: 'rakuten-test-5', + name: 'rakuten', + description: 'No eligible property available for required field tr present', + scenario: 'Framework', + successCriteria: 'Transformationn Error for required field tr not present', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination, + message: { + type: 'track', + event: 'product purchased', + sentAt: '2021-01-25T16:12:02.048Z', + userId: 'sajal12', + channel: 'mobile', + rudderId: 'b7b24f86-f7bf-46d8-b2b4-ccafc080239c', + messageId: '1611588776408-ee5a3212-fbf9-4cbb-bbad-3ed0f7c6a2ce', + properties: { + orderId: 'ord 123', + products: [], + }, + anonymousId: '9c6bd77ea9da3e68', + integrations: { + All: true, + }, + originalTimestamp: '2021-01-25T15:32:56.409Z', + }, + metadata: { + destinationId: 'dummyDestId', + jobId: '1', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'Missing required value from ["properties.tr","properties.ranSiteID"]: Workflow: procWorkflow, Step: prepareTrackPayload, ChildStep: undefined, OriginalError: Missing required value from ["properties.tr","properties.ranSiteID"]', + metadata: { + destinationId: 'dummyDestId', + jobId: '1', + }, + statTags: { + destType: 'RAKUTEN', + destinationId: 'dummyDestId', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + id: 'rakuten-test-6', + name: 'rakuten', + description: 'No eligible property available for required field land present', + scenario: 'Framework', + successCriteria: 'Transformationn Error for required field land not present', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination, + message: { + type: 'track', + event: 'product purchased', + sentAt: '2021-01-25T16:12:02.048Z', + userId: 'sajal12', + channel: 'mobile', + rudderId: 'b7b24f86-f7bf-46d8-b2b4-ccafc080239c', + messageId: '1611588776408-ee5a3212-fbf9-4cbb-bbad-3ed0f7c6a2ce', + properties: { + tr: 'txnId', + orderId: 'ord 123', + products: [], + }, + anonymousId: '9c6bd77ea9da3e68', + integrations: { + All: true, + }, + originalTimestamp: '2021-01-25T15:32:56.409Z', + }, + metadata: { + destinationId: 'dummyDestId', + jobId: '1', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'Missing required value from ["properties.land","properties.landTime"]: Workflow: procWorkflow, Step: prepareTrackPayload, ChildStep: undefined, OriginalError: Missing required value from ["properties.land","properties.landTime"]', + metadata: { + destinationId: 'dummyDestId', + jobId: '1', + }, + statTags: { + destType: 'RAKUTEN', + destinationId: 'dummyDestId', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/reddit/router/data.ts b/test/integrations/destinations/reddit/router/data.ts index e71b69b1fc..723afff374 100644 --- a/test/integrations/destinations/reddit/router/data.ts +++ b/test/integrations/destinations/reddit/router/data.ts @@ -12,9 +12,7 @@ export const data = [ { message: { context: { - traits: { - email: 'testone@gmail.com', - }, + traits: { email: 'testone@gmail.com' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', ip: '54.100.200.255', @@ -57,38 +55,29 @@ export const data = [ }, ], }, - integrations: { - All: true, - }, + integrations: { All: true }, sentAt: '2019-10-14T09:03:22.563Z', }, destination: { Config: { accountId: 'a2_fsddXXXfsfd', hashData: true, - eventsMapping: [ - { - from: 'Order Completed', - to: 'Purchase', - }, - ], + eventsMapping: [{ from: 'Order Completed', to: 'Purchase' }], }, DestinationDefinition: { Config: { cdkV2Enabled: true } }, }, metadata: { destinationId: 'destId', workspaceId: 'wspId', - secret: { - accessToken: 'dummyAccessToken', - }, + secret: { accessToken: 'dummyAccessToken' }, + jobId: 1, + userId: 'u1', }, }, { message: { context: { - traits: { - email: 'testone@gmail.com', - }, + traits: { email: 'testone@gmail.com' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', ip: '54.100.200.255', @@ -122,38 +111,29 @@ export const data = [ }, ], }, - integrations: { - All: true, - }, + integrations: { All: true }, sentAt: '2019-10-14T09:03:22.563Z', }, destination: { Config: { accountId: 'a2_fsddXXXfsfd', hashData: true, - eventsMapping: [ - { - from: 'Order Completed', - to: 'Purchase', - }, - ], + eventsMapping: [{ from: 'Order Completed', to: 'Purchase' }], }, DestinationDefinition: { Config: { cdkV2Enabled: true } }, }, metadata: { destinationId: 'destId', workspaceId: 'wspId', - secret: { - accessToken: 'dummyAccessToken', - }, + secret: { accessToken: 'dummyAccessToken' }, + jobId: 2, + userId: 'u1', }, }, { message: { context: { - traits: { - email: 'testone@gmail.com', - }, + traits: { email: 'testone@gmail.com' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', ip: '54.100.200.255', @@ -177,30 +157,23 @@ export const data = [ url: 'https://www.website.com/product/path', image_url: 'https://www.website.com/product/path.webp', }, - integrations: { - All: true, - }, + integrations: { All: true }, sentAt: '2019-10-14T09:03:22.563Z', }, destination: { Config: { accountId: 'a2_fsddXXXfsfd', hashData: true, - eventsMapping: [ - { - from: 'Order Completed', - to: 'Purchase', - }, - ], + eventsMapping: [{ from: 'Order Completed', to: 'Purchase' }], }, DestinationDefinition: { Config: { cdkV2Enabled: true } }, }, metadata: { destinationId: 'destId', workspaceId: 'wspId', - secret: { - accessToken: 'dummyAccessToken', - }, + secret: { accessToken: 'dummyAccessToken' }, + jobId: 3, + userId: 'u1', }, }, ], @@ -220,9 +193,7 @@ export const data = [ events: [ { event_at: '2019-10-14T09:03:17.562Z', - event_type: { - tracking_type: 'Purchase', - }, + event_type: { tracking_type: 'Purchase' }, user: { email: 'ac144532d9e4efeab19475d9253a879173ea12a3d2238d1cb8a332a7b3a105f2', external_id: @@ -239,24 +210,14 @@ export const data = [ value: 1500, value_decimal: 15, products: [ - { - id: '123', - name: 'Monopoly', - category: 'Games', - }, - { - id: '345', - name: 'UNO', - category: 'Games', - }, + { id: '123', name: 'Monopoly', category: 'Games' }, + { id: '345', name: 'UNO', category: 'Games' }, ], }, }, { event_at: '2019-10-14T09:03:17.562Z', - event_type: { - tracking_type: 'ViewContent', - }, + event_type: { tracking_type: 'ViewContent' }, user: { email: 'ac144532d9e4efeab19475d9253a879173ea12a3d2238d1cb8a332a7b3a105f2', external_id: @@ -285,9 +246,7 @@ export const data = [ }, { event_at: '2019-10-14T09:03:17.562Z', - event_type: { - tracking_type: 'AddToCart', - }, + event_type: { tracking_type: 'AddToCart' }, user: { email: 'ac144532d9e4efeab19475d9253a879173ea12a3d2238d1cb8a332a7b3a105f2', external_id: @@ -330,23 +289,23 @@ export const data = [ { destinationId: 'destId', workspaceId: 'wspId', - secret: { - accessToken: 'dummyAccessToken', - }, + secret: { accessToken: 'dummyAccessToken' }, + jobId: 1, + userId: 'u1', }, { destinationId: 'destId', workspaceId: 'wspId', - secret: { - accessToken: 'dummyAccessToken', - }, + secret: { accessToken: 'dummyAccessToken' }, + jobId: 2, + userId: 'u1', }, { destinationId: 'destId', workspaceId: 'wspId', - secret: { - accessToken: 'dummyAccessToken', - }, + secret: { accessToken: 'dummyAccessToken' }, + jobId: 3, + userId: 'u1', }, ], batched: true, @@ -355,18 +314,9 @@ export const data = [ Config: { accountId: 'a2_fsddXXXfsfd', hashData: true, - eventsMapping: [ - { - from: 'Order Completed', - to: 'Purchase', - }, - ], - }, - DestinationDefinition: { - Config: { - cdkV2Enabled: true, - }, + eventsMapping: [{ from: 'Order Completed', to: 'Purchase' }], }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, }, }, ], @@ -387,9 +337,7 @@ export const data = [ { message: { context: { - traits: { - email: 'testone@gmail.com', - }, + traits: { email: 'testone@gmail.com' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', ip: '54.100.200.255', @@ -422,29 +370,22 @@ export const data = [ }, ], }, - integrations: { - All: true, - }, + integrations: { All: true }, sentAt: '2019-10-14T09:03:22.563Z', }, destination: { Config: { accountId: 'a2_fsddXXXfsfd', - eventsMapping: [ - { - from: 'Order Completed', - to: 'Purchase', - }, - ], + eventsMapping: [{ from: 'Order Completed', to: 'Purchase' }], }, DestinationDefinition: { Config: { cdkV2Enabled: true } }, }, metadata: { destinationId: 'destId', workspaceId: 'wspId', - secret: { - accessToken: 'dummyAccessToken', - }, + secret: { accessToken: 'dummyAccessToken' }, + jobId: 1, + userId: 'u1', }, }, ], @@ -462,26 +403,17 @@ export const data = [ { destinationId: 'destId', workspaceId: 'wspId', - secret: { - accessToken: 'dummyAccessToken', - }, + secret: { accessToken: 'dummyAccessToken' }, + jobId: 1, + userId: 'u1', }, ], destination: { Config: { accountId: 'a2_fsddXXXfsfd', - eventsMapping: [ - { - from: 'Order Completed', - to: 'Purchase', - }, - ], - }, - DestinationDefinition: { - Config: { - cdkV2Enabled: true, - }, + eventsMapping: [{ from: 'Order Completed', to: 'Purchase' }], }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, }, batched: false, statusCode: 400, diff --git a/test/integrations/destinations/refiner/router/data.ts b/test/integrations/destinations/refiner/router/data.ts index bea4d3ddcc..0ff75120d6 100644 --- a/test/integrations/destinations/refiner/router/data.ts +++ b/test/integrations/destinations/refiner/router/data.ts @@ -21,10 +21,7 @@ export const data = [ city: 'Banglore', email: 'test@user.com', phone: '7267286346802347827', - address: { - city: 'ahmedabad', - state: 'india', - }, + address: { city: 'ahmedabad', state: 'india' }, lastName: 'user', username: 'testUser', firstName: 'test', @@ -38,9 +35,7 @@ export const data = [ request_ip: '[::1]', originalTimestamp: '2022-10-11T13:10:54.877+05:30', }, - metadata: { - jobId: 1, - }, + metadata: { jobId: 1, userId: 'u1' }, destination: { Config: { apiKey: 'dummyApiKey', @@ -75,10 +70,7 @@ export const data = [ firstName: 'test', lastName: 'user', phone: '7267286346802347827', - userAddress: { - city: 'ahmedabad', - state: 'india', - }, + userAddress: { city: 'ahmedabad', state: 'india' }, userCountry: 'india', userId: 'user@45', username: 'testUser', @@ -109,7 +101,7 @@ export const data = [ whitelistedEvents: [{ eventName: '' }], }, }, - metadata: [{ jobId: 1 }], + metadata: [{ jobId: 1, userId: 'u1' }], statusCode: 200, }, ], @@ -161,10 +153,7 @@ export const data = [ firstName: 'test', userCountry: 'india', }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.1.2', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.2' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36', }, @@ -176,30 +165,16 @@ export const data = [ currency: 'IND', order_id: '5241735', products: [ - { - id: 'product-bacon-jam', - category: 'Merch', - brand: '', - }, - { - id: 'product-t-shirt', - category: 'Merch', - brand: 'Levis', - }, - { - id: 'offer-t-shirt', - category: 'Merch', - brand: 'Levis', - }, + { id: 'product-bacon-jam', category: 'Merch', brand: '' }, + { id: 'product-t-shirt', category: 'Merch', brand: 'Levis' }, + { id: 'offer-t-shirt', category: 'Merch', brand: 'Levis' }, ], }, receivedAt: '2022-10-11T13:38:29.178+05:30', request_ip: '[::1]', originalTimestamp: '2022-10-11T13:38:31.827+05:30', }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, destination: { Config: { apiKey: 'dummyApiKey', @@ -227,11 +202,7 @@ export const data = [ batched: false, batchedRequest: { body: { - FORM: { - email: 'test@user.com', - event: 'Product Searched', - id: 'user@45', - }, + FORM: { email: 'test@user.com', event: 'Product Searched', id: 'user@45' }, JSON: {}, JSON_ARRAY: {}, XML: {}, @@ -258,7 +229,7 @@ export const data = [ whitelistedEvents: [{ eventName: '' }], }, }, - metadata: [{ jobId: 2 }], + metadata: [{ jobId: 2, userId: 'u1' }], statusCode: 200, }, ], @@ -280,10 +251,7 @@ export const data = [ message: { type: 'group', sentAt: '2015-02-23T22:28:55.111Z', - traits: { - name: 'rudder ventures', - email: 'business@rudderstack.com', - }, + traits: { name: 'rudder ventures', email: 'business@rudderstack.com' }, userId: 'test@12', channel: 'browser', context: { @@ -297,9 +265,7 @@ export const data = [ integrations: { All: true }, originalTimestamp: '2022-10-11T13:51:00.906+05:30', }, - metadata: { - jobId: 3, - }, + metadata: { jobId: 3, userId: 'u1' }, destination: { Config: { accountAttributesMapping: [{ from: 'email', to: 'businessEmail' }], @@ -361,7 +327,7 @@ export const data = [ whitelistedEvents: [{ eventName: '' }], }, }, - metadata: [{ jobId: 3 }], + metadata: [{ jobId: 3, userId: 'u1' }], statusCode: 200, }, ], diff --git a/test/integrations/destinations/revenue_cat/processor/data.ts b/test/integrations/destinations/revenue_cat/processor/data.ts index 45ff5d8499..84b7c5975f 100644 --- a/test/integrations/destinations/revenue_cat/processor/data.ts +++ b/test/integrations/destinations/revenue_cat/processor/data.ts @@ -1,1079 +1,1083 @@ export const data = [ - { - "name": "revenue_cat", - "description": "Test 0", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "as9d920a5e75a18acb4a29abd9ec1e2e", - "xPlatform": "stripe" - } - }, - "message": { - "userId": "rudder1235678", - "channel": "web", - "context": { - "ip": "14.5.67.21", - "app": { - "build": "1", - "name": "RudderAndroidClient", - "namespace": "com.rudderstack.demo.android", - "version": "1.0" - }, - "device": { - "manufacturer": "Google", - "model": "Android SDK built for x86", - "name": "generic_x86", - "type": "android" - }, - "library": { - "name": "com.rudderstack.android.sdk.core", - "version": "0.1.4" - }, - "locale": "en-US", - "network": { - "carrier": "Android", - "bluetooth": false, - "cellular": true, - "wifi": true - }, - "campaign": { - "source": "google", - "medium": "medium", - "term": "keyword", - "content": "some content" - }, - "os": { - "name": "Android", - "version": "9" - }, - "screen": { - "density": 420, - "height": 1794, - "width": 1080 - }, - "timezone": "Asia/Mumbai", - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)" - }, - "type": "identify", - "traits": { - "email": "chandan@companyname.com", - "phone": "92374162212", - "lastname": "Doe", - "density": "420", - "height": "1794", - "width": "1080", - "iterableCampaignId": "1234", - "iterableTemplateId": "1234" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "GET", - "endpoint": "https://api.revenuecat.com/v1/subscribers/rudder1235678", - "headers": { - "Authorization": "Basic as9d920a5e75a18acb4a29abd9ec1e2e", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - }, - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.revenuecat.com/v1/subscribers/rudder1235678/attributes", - "headers": { - "Authorization": "Basic as9d920a5e75a18acb4a29abd9ec1e2e", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "attributes": { - "app_user_id": { - "value": "rudder1235678" - }, - "$email": { - "value": "chandan@companyname.com" - }, - "$phoneNumber": { - "value": "92374162212" - }, - "$ip": { - "value": "14.5.67.21" - }, - "$iterableCampaignId": { - "value": "1234" - }, - "$iterableTemplateId": { - "value": "1234" - }, - "$displayName": { - "value": "Doe" - }, - "lastname": { - "value": "Doe" - }, - "density": { - "value": "420" - }, - "height": { - "value": "1794" - }, - "width": { - "value": "1080" - } - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "revenue_cat", - "description": "Test 1", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "a5e75dfda29abd920ec1ec8a18acb42e", - "xPlatform": "stripe" - } - }, - "message": { - "userId": "rudder1235678", - "channel": "web", - "context": { - "ip": "14.5.67.21", - "app": { - "build": "1", - "name": "RudderAndroidClient", - "namespace": "com.rudderstack.demo.android", - "version": "1.0" - }, - "device": { - "manufacturer": "Google", - "model": "Android SDK built for x86", - "name": "generic_x86", - "type": "android" - }, - "library": { - "name": "com.rudderstack.android.sdk.core", - "version": "0.1.4" - }, - "locale": "en-US", - "network": { - "carrier": "Android", - "bluetooth": false, - "cellular": true, - "wifi": true - }, - "campaign": { - "source": "google", - "medium": "medium", - "term": "keyword", - "content": "some content" - }, - "os": { - "name": "Android", - "version": "9" - }, - "screen": { - "density": 420, - "height": 1794, - "width": 1080 - }, - "timezone": "Asia/Mumbai", - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)" - }, - "type": "identify", - "traits": { - "email": "chandan@companyname.com", - "phone": "92374162212", - "firstname": "James", - "density": 420, - "height": 1794, - "width": 1080, - "iterableCampaignId": "1234", - "iterableTemplateId": "1234" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "GET", - "endpoint": "https://api.revenuecat.com/v1/subscribers/rudder1235678", - "headers": { - "Authorization": "Basic a5e75dfda29abd920ec1ec8a18acb42e", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - }, - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.revenuecat.com/v1/subscribers/rudder1235678/attributes", - "headers": { - "Authorization": "Basic a5e75dfda29abd920ec1ec8a18acb42e", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "attributes": { - "app_user_id": { - "value": "rudder1235678" - }, - "$email": { - "value": "chandan@companyname.com" - }, - "$phoneNumber": { - "value": "92374162212" - }, - "$ip": { - "value": "14.5.67.21" - }, - "$iterableCampaignId": { - "value": "1234" - }, - "$iterableTemplateId": { - "value": "1234" - }, - "$displayName": { - "value": "James" - }, - "firstname": { - "value": "James" - }, - "density": { - "value": "420" - }, - "height": { - "value": "1794" - }, - "width": { - "value": "1080" - } - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "revenue_cat", - "description": "Test 2", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "xPlatform": "stripe" - } - }, - "message": { - "userId": "rudder1235678", - "channel": "web", - "context": { - "ip": "14.5.67.21", - "app": { - "build": "1", - "name": "RudderAndroidClient", - "namespace": "com.rudderstack.demo.android", - "version": "1.0" - }, - "device": { - "manufacturer": "Google", - "model": "Android SDK built for x86", - "name": "generic_x86", - "type": "android" - }, - "library": { - "name": "com.rudderstack.android.sdk.core", - "version": "0.1.4" - }, - "locale": "en-US", - "network": { - "carrier": "Android", - "bluetooth": false, - "cellular": true, - "wifi": true - }, - "campaign": { - "source": "google", - "medium": "medium", - "term": "keyword", - "content": "some content" - }, - "os": { - "name": "Android", - "version": "9" - }, - "screen": { - "density": 420, - "height": 1794, - "width": 1080 - }, - "timezone": "Asia/Mumbai", - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)" - }, - "type": "identify", - "traits": { - "email": "chandan@companyname.com", - "phone": "92374162212", - "name": "John Doe" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "statusCode": 400, - "error": "Public API Key required for Authentication", - "statTags": { - "errorCategory": "dataValidation", - "errorType": "configuration", - "destType": "REVENUE_CAT", - "module": "destination", - "implementation": "native", - "feature": "processor" - } - } - ] - } - } - }, - { - "name": "revenue_cat", - "description": "Test 3", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "a5e75d99c8a18acb4a29abd920ec1e2e" - } - }, - "message": { - "userId": "rudder1235678", - "channel": "web", - "context": { - "ip": "14.5.67.21", - "app": { - "build": "1", - "name": "RudderAndroidClient", - "namespace": "com.rudderstack.demo.android", - "version": "1.0" - }, - "device": { - "manufacturer": "Google", - "model": "Android SDK built for x86", - "name": "generic_x86", - "type": "android" - }, - "library": { - "name": "com.rudderstack.android.sdk.core", - "version": "0.1.4" - }, - "locale": "en-US", - "network": { - "carrier": "Android", - "bluetooth": false, - "cellular": true, - "wifi": true - }, - "campaign": { - "source": "google", - "medium": "medium", - "term": "keyword", - "content": "some content" - }, - "os": { - "name": "Android", - "version": "9" - }, - "screen": { - "density": 420, - "height": 1794, - "width": 1080 - }, - "timezone": "Asia/Mumbai", - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)" - }, - "type": "identify", - "traits": { - "email": "chandan@companyname.com", - "phone": "92374162212", - "name": "John Doe" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "GET", - "endpoint": "https://api.revenuecat.com/v1/subscribers/rudder1235678", - "headers": { - "Authorization": "Basic a5e75d99c8a18acb4a29abd920ec1e2e", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - }, - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.revenuecat.com/v1/subscribers/rudder1235678/attributes", - "headers": { - "Authorization": "Basic a5e75d99c8a18acb4a29abd920ec1e2e", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "attributes": { - "app_user_id": { - "value": "rudder1235678" - }, - "$displayName": { - "value": "John Doe" - }, - "$email": { - "value": "chandan@companyname.com" - }, - "$phoneNumber": { - "value": "92374162212" - }, - "$ip": { - "value": "14.5.67.21" - } - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "revenue_cat", - "description": "Test 4", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "dummyApiKey" - } - }, - "message": { - "type": "track", - "userId": "rudder123", - "properties": { - "checkout_id": "12345", - "order_id": "1234", - "affiliation": "Apple Store", - "total": 20, - "revenue": 15, - "shipping": 22, - "tax": 1, - "discount": 1.5, - "coupon": "ImagePro", - "currency": "USD", - "fetch_token": "dummyFetchToken", - "product_id": "123", - "products": [ - { - "sku": "G-32", - "name": "Monopoly", - "price": 14, - "quantity": 1, - "introductory_price": "350", - "is_restore": true, - "presented_offering_identifier": "123erd" - }, - { - "product_id": "345", - "sku": "F-32", - "name": "UNO", - "price": 3.45, - "quantity": 2, - "category": "Games", - "introductory_price": "250", - "is_restore": false, - "presented_offering_identifier": "123erd" - } - ] - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "statusCode": 400, - "error": "X-Platform is required field", - "statTags": { - "errorCategory": "dataValidation", - "errorType": "configuration", - "destType": "REVENUE_CAT", - "module": "destination", - "implementation": "native", - "feature": "processor" - } - } - ] - } - } - }, - { - "name": "revenue_cat", - "description": "Test 5", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "xPlatform": "stripe" - } - }, - "message": { - "type": "track", - "userId": "rudder123", - "properties": { - "checkout_id": "12345", - "order_id": "1234", - "affiliation": "Apple Store", - "total": 20, - "revenue": 15, - "shipping": 22, - "tax": 1, - "discount": 1.5, - "coupon": "ImagePro", - "currency": "USD", - "fetch_token": "dummyFetchToken", - "product_id": "123", - "products": [ - { - "sku": "G-32", - "name": "Monopoly", - "price": 14, - "quantity": 1, - "introductory_price": "350", - "is_restore": true, - "presented_offering_identifier": "123erd" - }, - { - "product_id": "345", - "sku": "F-32", - "name": "UNO", - "price": 3.45, - "quantity": 2, - "category": "Games", - "introductory_price": "250", - "is_restore": false, - "presented_offering_identifier": "123erd" - } - ] - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.revenuecat.com/v1/receipts", - "headers": { - "Authorization": "Basic dummyApiKey", - "Content-Type": "application/json", - "X-Platform": "stripe" - }, - "params": {}, - "body": { - "JSON": { - "app_user_id": "rudder123", - "fetch_token": "dummyFetchToken", - "product_id": "123", - "currency": "USD", - "price": 14, - "introductory_price": "350", - "is_restore": true, - "presented_offering_identifier": "123erd" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - }, - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.revenuecat.com/v1/receipts", - "headers": { - "Authorization": "Basic dummyApiKey", - "Content-Type": "application/json", - "X-Platform": "stripe" - }, - "params": {}, - "body": { - "JSON": { - "app_user_id": "rudder123", - "fetch_token": "dummyFetchToken", - "product_id": "345", - "currency": "USD", - "price": 3.45, - "introductory_price": "250", - "is_restore": false, - "presented_offering_identifier": "123erd" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "revenue_cat", - "description": "Test 6", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "xPlatform": "stripe" - } - }, - "message": { - "type": "track", - "userId": "rudder123", - "properties": { - "checkout_id": "12345", - "order_id": "1234", - "affiliation": "Apple Store", - "total": 20, - "revenue": 15, - "shipping": 22, - "tax": 1, - "discount": 1.5, - "coupon": "ImagePro", - "currency": "USD", - "fetch_token": "dummyFetchToken", - "product_id": "123-sa", - "products": [ - { - "sku": "G-32", - "name": "Monopoly", - "price": 14, - "quantity": 1, - "introductory_price": "350", - "is_restore": true, - "presented_offering_identifier": "123erd" - }, - { - "product_id": "345", - "sku": "F-32", - "name": "UNO", - "price": 3.45, - "quantity": 2, - "category": "Games", - "introductory_price": "250", - "is_restore": false, - "presented_offering_identifier": "123erd" - }, - { - "sku": "G-33", - "name": "SunGlass", - "price": 14, - "quantity": 1, - "introductory_price": "350", - "is_restore": true, - "presented_offering_identifier": "123erd" - }, - { - "sku": "G-35", - "product_id": "1234sb", - "name": "Real-me", - "price": 14, - "quantity": 1, - "introductory_price": "350", - "is_restore": true, - "presented_offering_identifier": "123erd" - } - ] - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.revenuecat.com/v1/receipts", - "headers": { - "Authorization": "Basic dummyApiKey", - "Content-Type": "application/json", - "X-Platform": "stripe" - }, - "params": {}, - "body": { - "JSON": { - "app_user_id": "rudder123", - "fetch_token": "dummyFetchToken", - "product_id": "123-sa", - "currency": "USD", - "price": 14, - "introductory_price": "350", - "is_restore": true, - "presented_offering_identifier": "123erd" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - }, - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.revenuecat.com/v1/receipts", - "headers": { - "Authorization": "Basic dummyApiKey", - "Content-Type": "application/json", - "X-Platform": "stripe" - }, - "params": {}, - "body": { - "JSON": { - "app_user_id": "rudder123", - "fetch_token": "dummyFetchToken", - "product_id": "345", - "currency": "USD", - "price": 3.45, - "introductory_price": "250", - "is_restore": false, - "presented_offering_identifier": "123erd" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - }, - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.revenuecat.com/v1/receipts", - "headers": { - "Authorization": "Basic dummyApiKey", - "Content-Type": "application/json", - "X-Platform": "stripe" - }, - "params": {}, - "body": { - "JSON": { - "app_user_id": "rudder123", - "fetch_token": "dummyFetchToken", - "product_id": "123-sa", - "currency": "USD", - "price": 14, - "introductory_price": "350", - "is_restore": true, - "presented_offering_identifier": "123erd" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - }, - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.revenuecat.com/v1/receipts", - "headers": { - "Authorization": "Basic dummyApiKey", - "Content-Type": "application/json", - "X-Platform": "stripe" - }, - "params": {}, - "body": { - "JSON": { - "app_user_id": "rudder123", - "fetch_token": "dummyFetchToken", - "product_id": "1234sb", - "currency": "USD", - "price": 14, - "introductory_price": "350", - "is_restore": true, - "presented_offering_identifier": "123erd" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "revenue_cat", - "description": "Test 7", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "xPlatform": "stripe" - } - }, - "message": { - "type": "track", - "userId": "rudder123", - "properties": { - "checkout_id": "12345", - "order_id": "1234", - "affiliation": "Apple Store", - "total": 20, - "revenue": 15, - "shipping": 22, - "tax": 1, - "discount": 1.5, - "coupon": "ImagePro", - "currency": "USD", - "fetch_token": "dummyFetchToken", - "product_id": "123-sa", - "sku": "G-32", - "name": "Monopoly", - "price": 14, - "quantity": 1, - "introductory_price": "350", - "is_restore": true, - "presented_offering_identifier": "123erd" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.revenuecat.com/v1/receipts", - "headers": { - "Authorization": "Basic dummyApiKey", - "Content-Type": "application/json", - "X-Platform": "stripe" - }, - "params": {}, - "body": { - "JSON": { - "app_user_id": "rudder123", - "fetch_token": "dummyFetchToken", - "product_id": "123-sa", - "price": 14, - "currency": "USD", - "introductory_price": "350", - "is_restore": true, - "presented_offering_identifier": "123erd" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - } -] \ No newline at end of file + { + name: 'revenue_cat', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'as9d920a5e75a18acb4a29abd9ec1e2e', + xPlatform: 'stripe', + }, + }, + message: { + userId: 'rudder1235678', + channel: 'web', + context: { + ip: '14.5.67.21', + app: { + build: '1', + name: 'RudderAndroidClient', + namespace: 'com.rudderstack.demo.android', + version: '1.0', + }, + device: { + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + type: 'android', + }, + library: { + name: 'com.rudderstack.android.sdk.core', + version: '0.1.4', + }, + locale: 'en-US', + network: { + carrier: 'Android', + bluetooth: false, + cellular: true, + wifi: true, + }, + campaign: { + source: 'google', + medium: 'medium', + term: 'keyword', + content: 'some content', + }, + os: { + name: 'Android', + version: '9', + }, + screen: { + density: 420, + height: 1794, + width: 1080, + }, + timezone: 'Asia/Mumbai', + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)', + }, + type: 'identify', + traits: { + email: 'chandan@companyname.com', + phone: '92374162212', + lastname: 'Doe', + density: '420', + height: '1794', + width: '1080', + iterableCampaignId: '1234', + iterableTemplateId: '1234', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'GET', + endpoint: 'https://api.revenuecat.com/v1/subscribers/rudder1235678', + headers: { + Authorization: 'Basic as9d920a5e75a18acb4a29abd9ec1e2e', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.revenuecat.com/v1/subscribers/rudder1235678/attributes', + headers: { + Authorization: 'Basic as9d920a5e75a18acb4a29abd9ec1e2e', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + attributes: { + app_user_id: { + value: 'rudder1235678', + }, + $email: { + value: 'chandan@companyname.com', + }, + $phoneNumber: { + value: '92374162212', + }, + $ip: { + value: '14.5.67.21', + }, + $iterableCampaignId: { + value: '1234', + }, + $iterableTemplateId: { + value: '1234', + }, + $displayName: { + value: 'Doe', + }, + lastname: { + value: 'Doe', + }, + density: { + value: '420', + }, + height: { + value: '1794', + }, + width: { + value: '1080', + }, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'revenue_cat', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'a5e75dfda29abd920ec1ec8a18acb42e', + xPlatform: 'stripe', + }, + }, + message: { + userId: 'rudder1235678', + channel: 'web', + context: { + ip: '14.5.67.21', + app: { + build: '1', + name: 'RudderAndroidClient', + namespace: 'com.rudderstack.demo.android', + version: '1.0', + }, + device: { + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + type: 'android', + }, + library: { + name: 'com.rudderstack.android.sdk.core', + version: '0.1.4', + }, + locale: 'en-US', + network: { + carrier: 'Android', + bluetooth: false, + cellular: true, + wifi: true, + }, + campaign: { + source: 'google', + medium: 'medium', + term: 'keyword', + content: 'some content', + }, + os: { + name: 'Android', + version: '9', + }, + screen: { + density: 420, + height: 1794, + width: 1080, + }, + timezone: 'Asia/Mumbai', + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)', + }, + type: 'identify', + traits: { + email: 'chandan@companyname.com', + phone: '92374162212', + firstname: 'James', + density: 420, + height: 1794, + width: 1080, + iterableCampaignId: '1234', + iterableTemplateId: '1234', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'GET', + endpoint: 'https://api.revenuecat.com/v1/subscribers/rudder1235678', + headers: { + Authorization: 'Basic a5e75dfda29abd920ec1ec8a18acb42e', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.revenuecat.com/v1/subscribers/rudder1235678/attributes', + headers: { + Authorization: 'Basic a5e75dfda29abd920ec1ec8a18acb42e', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + attributes: { + app_user_id: { + value: 'rudder1235678', + }, + $email: { + value: 'chandan@companyname.com', + }, + $phoneNumber: { + value: '92374162212', + }, + $ip: { + value: '14.5.67.21', + }, + $iterableCampaignId: { + value: '1234', + }, + $iterableTemplateId: { + value: '1234', + }, + $displayName: { + value: 'James', + }, + firstname: { + value: 'James', + }, + density: { + value: '420', + }, + height: { + value: '1794', + }, + width: { + value: '1080', + }, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'revenue_cat', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + xPlatform: 'stripe', + }, + }, + message: { + userId: 'rudder1235678', + channel: 'web', + context: { + ip: '14.5.67.21', + app: { + build: '1', + name: 'RudderAndroidClient', + namespace: 'com.rudderstack.demo.android', + version: '1.0', + }, + device: { + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + type: 'android', + }, + library: { + name: 'com.rudderstack.android.sdk.core', + version: '0.1.4', + }, + locale: 'en-US', + network: { + carrier: 'Android', + bluetooth: false, + cellular: true, + wifi: true, + }, + campaign: { + source: 'google', + medium: 'medium', + term: 'keyword', + content: 'some content', + }, + os: { + name: 'Android', + version: '9', + }, + screen: { + density: 420, + height: 1794, + width: 1080, + }, + timezone: 'Asia/Mumbai', + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)', + }, + type: 'identify', + traits: { + email: 'chandan@companyname.com', + phone: '92374162212', + name: 'John Doe', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: 'Public API Key required for Authentication', + statTags: { + errorCategory: 'dataValidation', + errorType: 'configuration', + destType: 'REVENUE_CAT', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'revenue_cat', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'a5e75d99c8a18acb4a29abd920ec1e2e', + }, + }, + message: { + userId: 'rudder1235678', + channel: 'web', + context: { + ip: '14.5.67.21', + app: { + build: '1', + name: 'RudderAndroidClient', + namespace: 'com.rudderstack.demo.android', + version: '1.0', + }, + device: { + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + type: 'android', + }, + library: { + name: 'com.rudderstack.android.sdk.core', + version: '0.1.4', + }, + locale: 'en-US', + network: { + carrier: 'Android', + bluetooth: false, + cellular: true, + wifi: true, + }, + campaign: { + source: 'google', + medium: 'medium', + term: 'keyword', + content: 'some content', + }, + os: { + name: 'Android', + version: '9', + }, + screen: { + density: 420, + height: 1794, + width: 1080, + }, + timezone: 'Asia/Mumbai', + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)', + }, + type: 'identify', + traits: { + email: 'chandan@companyname.com', + phone: '92374162212', + name: 'John Doe', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'GET', + endpoint: 'https://api.revenuecat.com/v1/subscribers/rudder1235678', + headers: { + Authorization: 'Basic a5e75d99c8a18acb4a29abd920ec1e2e', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.revenuecat.com/v1/subscribers/rudder1235678/attributes', + headers: { + Authorization: 'Basic a5e75d99c8a18acb4a29abd920ec1e2e', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + attributes: { + app_user_id: { + value: 'rudder1235678', + }, + $displayName: { + value: 'John Doe', + }, + $email: { + value: 'chandan@companyname.com', + }, + $phoneNumber: { + value: '92374162212', + }, + $ip: { + value: '14.5.67.21', + }, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'revenue_cat', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + }, + }, + message: { + type: 'track', + userId: 'rudder123', + properties: { + checkout_id: '12345', + order_id: '1234', + affiliation: 'Apple Store', + total: 20, + revenue: 15, + shipping: 22, + tax: 1, + discount: 1.5, + coupon: 'ImagePro', + currency: 'USD', + fetch_token: 'dummyFetchToken', + product_id: '123', + products: [ + { + sku: 'G-32', + name: 'Monopoly', + price: 14, + quantity: 1, + introductory_price: '350', + is_restore: true, + presented_offering_identifier: '123erd', + }, + { + product_id: '345', + sku: 'F-32', + name: 'UNO', + price: 3.45, + quantity: 2, + category: 'Games', + introductory_price: '250', + is_restore: false, + presented_offering_identifier: '123erd', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: 'X-Platform is required field', + statTags: { + errorCategory: 'dataValidation', + errorType: 'configuration', + destType: 'REVENUE_CAT', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'revenue_cat', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + xPlatform: 'stripe', + }, + }, + message: { + type: 'track', + userId: 'rudder123', + properties: { + checkout_id: '12345', + order_id: '1234', + affiliation: 'Apple Store', + total: 20, + revenue: 15, + shipping: 22, + tax: 1, + discount: 1.5, + coupon: 'ImagePro', + currency: 'USD', + fetch_token: 'dummyFetchToken', + product_id: '123', + products: [ + { + sku: 'G-32', + name: 'Monopoly', + price: 14, + quantity: 1, + introductory_price: '350', + is_restore: true, + presented_offering_identifier: '123erd', + }, + { + product_id: '345', + sku: 'F-32', + name: 'UNO', + price: 3.45, + quantity: 2, + category: 'Games', + introductory_price: '250', + is_restore: false, + presented_offering_identifier: '123erd', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.revenuecat.com/v1/receipts', + headers: { + Authorization: 'Basic dummyApiKey', + 'Content-Type': 'application/json', + 'X-Platform': 'stripe', + }, + params: {}, + body: { + JSON: { + app_user_id: 'rudder123', + fetch_token: 'dummyFetchToken', + product_id: '123', + currency: 'USD', + price: 14, + introductory_price: '350', + is_restore: true, + presented_offering_identifier: '123erd', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.revenuecat.com/v1/receipts', + headers: { + Authorization: 'Basic dummyApiKey', + 'Content-Type': 'application/json', + 'X-Platform': 'stripe', + }, + params: {}, + body: { + JSON: { + app_user_id: 'rudder123', + fetch_token: 'dummyFetchToken', + product_id: '345', + currency: 'USD', + price: 3.45, + introductory_price: '250', + is_restore: false, + presented_offering_identifier: '123erd', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'revenue_cat', + description: 'Test 6', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + xPlatform: 'stripe', + }, + }, + message: { + type: 'track', + userId: 'rudder123', + properties: { + checkout_id: '12345', + order_id: '1234', + affiliation: 'Apple Store', + total: 20, + revenue: 15, + shipping: 22, + tax: 1, + discount: 1.5, + coupon: 'ImagePro', + currency: 'USD', + fetch_token: 'dummyFetchToken', + product_id: '123-sa', + products: [ + { + sku: 'G-32', + name: 'Monopoly', + price: 14, + quantity: 1, + introductory_price: '350', + is_restore: true, + presented_offering_identifier: '123erd', + }, + { + product_id: '345', + sku: 'F-32', + name: 'UNO', + price: 3.45, + quantity: 2, + category: 'Games', + introductory_price: '250', + is_restore: false, + presented_offering_identifier: '123erd', + }, + { + sku: 'G-33', + name: 'SunGlass', + price: 14, + quantity: 1, + introductory_price: '350', + is_restore: true, + presented_offering_identifier: '123erd', + }, + { + sku: 'G-35', + product_id: '1234sb', + name: 'Real-me', + price: 14, + quantity: 1, + introductory_price: '350', + is_restore: true, + presented_offering_identifier: '123erd', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.revenuecat.com/v1/receipts', + headers: { + Authorization: 'Basic dummyApiKey', + 'Content-Type': 'application/json', + 'X-Platform': 'stripe', + }, + params: {}, + body: { + JSON: { + app_user_id: 'rudder123', + fetch_token: 'dummyFetchToken', + product_id: '123-sa', + currency: 'USD', + price: 14, + introductory_price: '350', + is_restore: true, + presented_offering_identifier: '123erd', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.revenuecat.com/v1/receipts', + headers: { + Authorization: 'Basic dummyApiKey', + 'Content-Type': 'application/json', + 'X-Platform': 'stripe', + }, + params: {}, + body: { + JSON: { + app_user_id: 'rudder123', + fetch_token: 'dummyFetchToken', + product_id: '345', + currency: 'USD', + price: 3.45, + introductory_price: '250', + is_restore: false, + presented_offering_identifier: '123erd', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.revenuecat.com/v1/receipts', + headers: { + Authorization: 'Basic dummyApiKey', + 'Content-Type': 'application/json', + 'X-Platform': 'stripe', + }, + params: {}, + body: { + JSON: { + app_user_id: 'rudder123', + fetch_token: 'dummyFetchToken', + product_id: '123-sa', + currency: 'USD', + price: 14, + introductory_price: '350', + is_restore: true, + presented_offering_identifier: '123erd', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.revenuecat.com/v1/receipts', + headers: { + Authorization: 'Basic dummyApiKey', + 'Content-Type': 'application/json', + 'X-Platform': 'stripe', + }, + params: {}, + body: { + JSON: { + app_user_id: 'rudder123', + fetch_token: 'dummyFetchToken', + product_id: '1234sb', + currency: 'USD', + price: 14, + introductory_price: '350', + is_restore: true, + presented_offering_identifier: '123erd', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'revenue_cat', + description: 'Test 7', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + xPlatform: 'stripe', + }, + }, + message: { + type: 'track', + userId: 'rudder123', + properties: { + checkout_id: '12345', + order_id: '1234', + affiliation: 'Apple Store', + total: 20, + revenue: 15, + shipping: 22, + tax: 1, + discount: 1.5, + coupon: 'ImagePro', + currency: 'USD', + fetch_token: 'dummyFetchToken', + product_id: '123-sa', + sku: 'G-32', + name: 'Monopoly', + price: 14, + quantity: 1, + introductory_price: '350', + is_restore: true, + presented_offering_identifier: '123erd', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.revenuecat.com/v1/receipts', + headers: { + Authorization: 'Basic dummyApiKey', + 'Content-Type': 'application/json', + 'X-Platform': 'stripe', + }, + params: {}, + body: { + JSON: { + app_user_id: 'rudder123', + fetch_token: 'dummyFetchToken', + product_id: '123-sa', + price: 14, + currency: 'USD', + introductory_price: '350', + is_restore: true, + presented_offering_identifier: '123erd', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/rockerbox/processor/data.ts b/test/integrations/destinations/rockerbox/processor/data.ts index ff8f6d4620..76dd8ef11b 100644 --- a/test/integrations/destinations/rockerbox/processor/data.ts +++ b/test/integrations/destinations/rockerbox/processor/data.ts @@ -1,749 +1,746 @@ export const data = [ - { - "name": "rockerbox", - "description": "Test 0", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "advertiserId": "KDH4JNDHCFJHJ57SJOWJE490W01JFNHGDSSFHDKDSDF" - } - }, - "message": { - "context": { - "traits": { - "homwTown": "kanpur", - "age": "24" - } - }, - "type": "Identify", - "userId": "yash001", - "originalTimestamp": "2019-10-14T09:03:17.562Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "statusCode": 400, - "error": "Message type identify is not supported", - "statTags": { - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "destType": "ROCKERBOX", - "module": "destination", - "implementation": "native", - "feature": "processor" - } - } - ] - } - } - }, - { - "name": "rockerbox", - "description": "Test 1", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "advertiserId": "test id", - "eventFilteringOption": "disable", - "whitelistedEvents": [ - { - "eventName": "" - } - ], - "blacklistedEvents": [ - { - "eventName": "" - } - ], - "eventsMap": [ - { - "from": "Product Added To Cart", - "to": "conv.add_to_cart" - } - ], - "useNativeSDK": { - "web": false - }, - "clientAuthId": { - "web": "test-client-auth-id" - }, - "oneTrustCookieCategories": { - "web": [ - { - "oneTrustCookieCategory": "Marketing Sample" - } - ] - }, - "customDomain": { - "web": "https://cookiedomain.com" - }, - "enableCookieSync": { - "web": true - } - } - }, - "message": { - "type": "track", - "event": "Product Added", - "sentAt": "2022-08-07T20:02:19.352Z", - "userId": "userSampleX138", - "channel": "web", - "context": { - "os": { - "name": "", - "version": "" - }, - "locale": "en-IN", - "screen": { - "width": 1440, - "height": 900, - "density": 2, - "innerWidth": 584, - "innerHeight": 789 - }, - "traits": { - "email": "userSampleX120@gmail.com", - "phone": "9878764736", - "last_name": "Stack", - "first_name": "Rudder", - "subscription": "youtube" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36" - }, - "rudderId": "4a47e99b-2afc-45c6-b902-ed69282ca805", - "messageId": "1659902539347900-c622426c-a1dd-44c0-ac6d-d4dbee3f4a93", - "properties": { - "checkout_id": "12345", - "product_url": "http://www.yourdomain.com/products/red-t-shirt", - "product_name": "Red T-shirt" - }, - "anonymousId": "5f093403-1457-4a2c-b4e4-c61ec3bacf56", - "integrations": { - "All": true - }, - "originalTimestamp": "2022-08-07T20:02:19.347Z" - }, - "writeKey": "2D0yaayoBD7bp8uFomnBONdedcA", - "requestIP": "[::1]", - "receivedAt": "2022-08-08T01:32:19.369+05:30" - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "statusCode": 400, - "error": "The event is not associated to a RockerBox event. Aborting!", - "statTags": { - "errorCategory": "dataValidation", - "errorType": "configuration", - "destType": "ROCKERBOX", - "module": "destination", - "implementation": "native", - "feature": "processor" - } - } - ] - } - } - }, - { - "name": "rockerbox", - "description": "Test 2", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "advertiserId": "test id", - "eventFilteringOption": "disable", - "whitelistedEvents": [ - { - "eventName": "" - } - ], - "blacklistedEvents": [ - { - "eventName": "" - } - ], - "eventsMap": [ - { - "from": "Product Added", - "to": "conv.add_to_cart" - } - ], - "useNativeSDK": { - "web": false - }, - "clientAuthId": { - "web": "test-client-auth-id" - }, - "oneTrustCookieCategories": { - "web": [ - { - "oneTrustCookieCategory": "Marketing Sample" - } - ] - }, - "customDomain": { - "web": "https://cookiedomain.com" - }, - "enableCookieSync": { - "web": true - } - } - }, - "message": { - "type": "track", - "event": "Product Added", - "sentAt": "2022-08-07T20:02:19.352Z", - "userId": "userSampleX138", - "channel": "web", - "context": { - "os": { - "name": "", - "version": "" - }, - "locale": "en-IN", - "traits": { - "email": "userSampleX120@gmail.com", - "phone": "9878764736", - "last_name": "Stack", - "first_name": "Rudder" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36" - }, - "rudderId": "4a47e99b-2afc-45c6-b902-ed69282ca805", - "messageId": "1659902539347900-c622426c-a1dd-44c0-ac6d-d4dbee3f4a93", - "properties": { - "checkout_id": "12345", - "product_url": "http://www.yourdomain.com/products/red-t-shirt", - "product_name": "Red T-shirt" - }, - "anonymousId": "5f093403-1457-4a2c-b4e4-c61ec3bacf56", - "integrations": { - "All": true - }, - "originalTimestamp": "2022-08-07T20:02:19.347Z" - }, - "writeKey": "2D0yaayoBD7bp8uFomnBONdedcA", - "requestIP": "[::1]", - "receivedAt": "2022-08-08T01:32:19.369+05:30" - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://webhooks.getrockerbox.com/rudderstack", - "headers": {}, - "params": { - "advertiser": "test id" - }, - "body": { - "JSON": { - "customer_id": "userSampleX138", - "anonymous_id": "5f093403-1457-4a2c-b4e4-c61ec3bacf56", - "email": "userSampleX120@gmail.com", - "phone": "9878764736", - "timestamp": 1659902539, - "conversion_source": "RudderStack", - "action": "conv.add_to_cart", - "checkout_id": "12345", - "product_url": "http://www.yourdomain.com/products/red-t-shirt", - "product_name": "Red T-shirt" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "rockerbox", - "description": "Test 3", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "advertiserId": "test id", - "eventFilteringOption": "disable", - "whitelistedEvents": [ - { - "eventName": "" - } - ], - "blacklistedEvents": [ - { - "eventName": "" - } - ], - "eventsMap": [ - { - "from": "Product Added", - "to": "conv.add_to_cart" - } - ], - "useNativeSDK": { - "web": false - }, - "clientAuthId": { - "web": "test-client-auth-id" - }, - "oneTrustCookieCategories": { - "web": [ - { - "oneTrustCookieCategory": "Marketing Sample" - } - ] - }, - "customDomain": { - "web": "https://cookiedomain.com" - }, - "enableCookieSync": { - "web": true - } - } - }, - "message": { - "type": "track", - "event": "Product Added", - "sentAt": "2022-08-07T20:02:19.352Z", - "userId": "userSampleX138", - "channel": "web", - "context": { - "os": { - "name": "", - "version": "" - }, - "locale": "en-IN", - "traits": { - "email": "userSampleX120@gmail.com", - "phone": "9878764736", - "last_name": "Stack", - "first_name": "Rudder" - }, - "externalId": [ - { - "type": "rockerboxExternalId", - "id": "rbUid" - } - ], - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36" - }, - "rudderId": "4a47e99b-2afc-45c6-b902-ed69282ca805", - "messageId": "1659902539347900-c622426c-a1dd-44c0-ac6d-d4dbee3f4a93", - "properties": { - "checkout_id": "12345", - "product_url": "http://www.yourdomain.com/products/red-t-shirt", - "product_name": "Red T-shirt", - "externalId": "rbUid", - "countryCode": "IN", - "listingId": "10101" - }, - "anonymousId": "5f093403-1457-4a2c-b4e4-c61ec3bacf56", - "integrations": { - "All": true - }, - "originalTimestamp": "2022-08-07T20:02:19.347Z" - }, - "writeKey": "2D0yaayoBD7bp8uFomnBONdedcA", - "requestIP": "[::1]", - "receivedAt": "2022-08-08T01:32:19.369+05:30" - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://webhooks.getrockerbox.com/rudderstack", - "headers": {}, - "params": { - "advertiser": "test id" - }, - "body": { - "JSON": { - "customer_id": "userSampleX138", - "anonymous_id": "5f093403-1457-4a2c-b4e4-c61ec3bacf56", - "email": "userSampleX120@gmail.com", - "phone": "9878764736", - "timestamp": 1659902539, - "country_code": "IN", - "listing_id": "10101", - "conversion_source": "RudderStack", - "action": "conv.add_to_cart", - "checkout_id": "12345", - "product_url": "http://www.yourdomain.com/products/red-t-shirt", - "product_name": "Red T-shirt", - "externalId": "rbUid" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "rockerbox", - "description": "Test 4", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "advertiserId": "hdowhfiqhfwaiwhrdafshbfacicolsa", - "eventFilteringOption": "disable", - "whitelistedEvents": [ - { - "eventName": "" - } - ], - "blacklistedEvents": [ - { - "eventName": "" - } - ], - "eventsMap": [ - { - "from": "Product Added", - "to": "conv.add_to_cart" - } - ], - "customPropsMapping": [ - { - "from": "unit_id", - "to": "unitID" - }, - { - "from": "merch_id", - "to": "merch_id" - }, - { - "from": "bounce_id", - "to": "bounceID" - } - ], - "useNativeSDK": { - "web": false - }, - "useNativeSDKToSend": { - "web": false - }, - "clientAuthId": { - "web": "" - }, - "oneTrustCookieCategories": { - "web": [ - { - "oneTrustCookieCategory": "" - } - ] - }, - "customDomain": { - "web": "" - }, - "enableCookieSync": { - "web": false - } - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "anon_id", - "type": "track", - "traits": { - "userId": "anon_id", - "email": "jamesDoe@gmail.com", - "name": "James Doe", - "phone": "92374162212", - "gender": "M", - "employed": true, - "birthday": "1614775793", - "education": "Science", - "graduate": true, - "married": true, - "customerType": "Prime", - "msg_push": true, - "msgSms": true, - "msgemail": true, - "msgwhatsapp": false, - "custom_tags": [ - "Test_User", - "Interested_User", - "DIY_Hobby" - ], - "custom_mappings": { - "Office": "Trastkiv", - "Country": "Russia" - }, - "address": { - "city": "kolkata", - "country": "India", - "postalCode": 789223, - "state": "WB", - "street": "" - } - }, - "properties": { - "unit_id": 123, - "merch_id": false, - "bounceiD": "fakefake", - "counce_id": "" - }, - "event": "Product Added", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "writeKey": "2D0yaayoBD7bp8uFomnBONdedcA", - "requestIP": "[::1]", - "receivedAt": "2022-08-08T01:32:19.369+05:30" - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://webhooks.getrockerbox.com/rudderstack", - "headers": {}, - "params": { - "advertiser": "hdowhfiqhfwaiwhrdafshbfacicolsa" - }, - "body": { - "JSON": { - "customer_id": "anon_id", - "anonymous_id": "anon_id", - "email": "jamesDoe@gmail.com", - "phone": "92374162212", - "timestamp": 1571043797, - "conversion_source": "RudderStack", - "action": "conv.add_to_cart", - "unit_id": 123, - "merch_id": false, - "bounceiD": "fakefake", - "counce_id": "" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "rockerbox", - "description": "Test 5", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "advertiserId": "KDH4JNDHCFJHJ57SJOWJE490W01JFNHGDSSFHDKDSDF" - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "type": "track", - "traits": { - "email": "jamesDoe@gmail.com", - "name": "James Doe", - "phone": "92374162212", - "gender": "M", - "employed": true, - "birthday": "1614775793", - "education": "Science", - "graduate": true, - "married": true, - "customerType": "Prime", - "msg_push": true, - "msgSms": true, - "msgemail": true, - "msgwhatsapp": false, - "custom_tags": [ - "Test_User", - "Interested_User", - "DIY_Hobby" - ], - "custom_mappings": { - "Office": "Trastkiv", - "Country": "Russia" - }, - "address": { - "city": "kolkata", - "country": "India", - "postalCode": 789223, - "state": "WB", - "street": "" - } - }, - "properties": { - "unit_id": 123, - "merch_id": false, - "bounceiD": "fakefake", - "counce_id": "" - }, - "event": "Product Added", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "statusCode": 400, - "error": "Anyone of userId or anonymousId is required to make the call", - "statTags": { - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "destType": "ROCKERBOX", - "module": "destination", - "implementation": "native", - "feature": "processor" - } - } - ] - } - } - } -] \ No newline at end of file + { + name: 'rockerbox', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + advertiserId: 'KDH4JNDHCFJHJ57SJOWJE490W01JFNHGDSSFHDKDSDF', + }, + }, + message: { + context: { + traits: { + homwTown: 'kanpur', + age: '24', + }, + }, + type: 'Identify', + userId: 'yash001', + originalTimestamp: '2019-10-14T09:03:17.562Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: 'Message type identify is not supported', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'ROCKERBOX', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'rockerbox', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + advertiserId: 'test id', + eventFilteringOption: 'disable', + whitelistedEvents: [ + { + eventName: '', + }, + ], + blacklistedEvents: [ + { + eventName: '', + }, + ], + eventsMap: [ + { + from: 'Product Added To Cart', + to: 'conv.add_to_cart', + }, + ], + useNativeSDK: { + web: false, + }, + clientAuthId: { + web: 'test-client-auth-id', + }, + oneTrustCookieCategories: { + web: [ + { + oneTrustCookieCategory: 'Marketing Sample', + }, + ], + }, + customDomain: { + web: 'https://cookiedomain.com', + }, + enableCookieSync: { + web: true, + }, + }, + }, + message: { + type: 'track', + event: 'Product Added', + sentAt: '2022-08-07T20:02:19.352Z', + userId: 'userSampleX138', + channel: 'web', + context: { + os: { + name: '', + version: '', + }, + locale: 'en-IN', + screen: { + width: 1440, + height: 900, + density: 2, + innerWidth: 584, + innerHeight: 789, + }, + traits: { + email: 'userSampleX120@gmail.com', + phone: '9878764736', + last_name: 'Stack', + first_name: 'Rudder', + subscription: 'youtube', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36', + }, + rudderId: '4a47e99b-2afc-45c6-b902-ed69282ca805', + messageId: '1659902539347900-c622426c-a1dd-44c0-ac6d-d4dbee3f4a93', + properties: { + checkout_id: '12345', + product_url: 'http://www.yourdomain.com/products/red-t-shirt', + product_name: 'Red T-shirt', + }, + anonymousId: '5f093403-1457-4a2c-b4e4-c61ec3bacf56', + integrations: { + All: true, + }, + originalTimestamp: '2022-08-07T20:02:19.347Z', + }, + writeKey: '2D0yaayoBD7bp8uFomnBONdedcA', + requestIP: '[::1]', + receivedAt: '2022-08-08T01:32:19.369+05:30', + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: 'The event is not associated to a RockerBox event. Aborting!', + statTags: { + errorCategory: 'dataValidation', + errorType: 'configuration', + destType: 'ROCKERBOX', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'rockerbox', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + advertiserId: 'test id', + eventFilteringOption: 'disable', + whitelistedEvents: [ + { + eventName: '', + }, + ], + blacklistedEvents: [ + { + eventName: '', + }, + ], + eventsMap: [ + { + from: 'Product Added', + to: 'conv.add_to_cart', + }, + ], + useNativeSDK: { + web: false, + }, + clientAuthId: { + web: 'test-client-auth-id', + }, + oneTrustCookieCategories: { + web: [ + { + oneTrustCookieCategory: 'Marketing Sample', + }, + ], + }, + customDomain: { + web: 'https://cookiedomain.com', + }, + enableCookieSync: { + web: true, + }, + }, + }, + message: { + type: 'track', + event: 'Product Added', + sentAt: '2022-08-07T20:02:19.352Z', + userId: 'userSampleX138', + channel: 'web', + context: { + os: { + name: '', + version: '', + }, + locale: 'en-IN', + traits: { + email: 'userSampleX120@gmail.com', + phone: '9878764736', + last_name: 'Stack', + first_name: 'Rudder', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36', + }, + rudderId: '4a47e99b-2afc-45c6-b902-ed69282ca805', + messageId: '1659902539347900-c622426c-a1dd-44c0-ac6d-d4dbee3f4a93', + properties: { + checkout_id: '12345', + product_url: 'http://www.yourdomain.com/products/red-t-shirt', + product_name: 'Red T-shirt', + }, + anonymousId: '5f093403-1457-4a2c-b4e4-c61ec3bacf56', + integrations: { + All: true, + }, + originalTimestamp: '2022-08-07T20:02:19.347Z', + }, + writeKey: '2D0yaayoBD7bp8uFomnBONdedcA', + requestIP: '[::1]', + receivedAt: '2022-08-08T01:32:19.369+05:30', + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://webhooks.getrockerbox.com/rudderstack', + headers: {}, + params: { + advertiser: 'test id', + }, + body: { + JSON: { + customer_id: 'userSampleX138', + anonymous_id: '5f093403-1457-4a2c-b4e4-c61ec3bacf56', + email: 'userSampleX120@gmail.com', + phone: '9878764736', + timestamp: 1659902539, + conversion_source: 'RudderStack', + action: 'conv.add_to_cart', + checkout_id: '12345', + product_url: 'http://www.yourdomain.com/products/red-t-shirt', + product_name: 'Red T-shirt', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'rockerbox', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + advertiserId: 'test id', + eventFilteringOption: 'disable', + whitelistedEvents: [ + { + eventName: '', + }, + ], + blacklistedEvents: [ + { + eventName: '', + }, + ], + eventsMap: [ + { + from: 'Product Added', + to: 'conv.add_to_cart', + }, + ], + useNativeSDK: { + web: false, + }, + clientAuthId: { + web: 'test-client-auth-id', + }, + oneTrustCookieCategories: { + web: [ + { + oneTrustCookieCategory: 'Marketing Sample', + }, + ], + }, + customDomain: { + web: 'https://cookiedomain.com', + }, + enableCookieSync: { + web: true, + }, + }, + }, + message: { + type: 'track', + event: 'Product Added', + sentAt: '2022-08-07T20:02:19.352Z', + userId: 'userSampleX138', + channel: 'web', + context: { + os: { + name: '', + version: '', + }, + locale: 'en-IN', + traits: { + email: 'userSampleX120@gmail.com', + phone: '9878764736', + last_name: 'Stack', + first_name: 'Rudder', + }, + externalId: [ + { + type: 'rockerboxExternalId', + id: 'rbUid', + }, + ], + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36', + }, + rudderId: '4a47e99b-2afc-45c6-b902-ed69282ca805', + messageId: '1659902539347900-c622426c-a1dd-44c0-ac6d-d4dbee3f4a93', + properties: { + checkout_id: '12345', + product_url: 'http://www.yourdomain.com/products/red-t-shirt', + product_name: 'Red T-shirt', + externalId: 'rbUid', + countryCode: 'IN', + listingId: '10101', + }, + anonymousId: '5f093403-1457-4a2c-b4e4-c61ec3bacf56', + integrations: { + All: true, + }, + originalTimestamp: '2022-08-07T20:02:19.347Z', + }, + writeKey: '2D0yaayoBD7bp8uFomnBONdedcA', + requestIP: '[::1]', + receivedAt: '2022-08-08T01:32:19.369+05:30', + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://webhooks.getrockerbox.com/rudderstack', + headers: {}, + params: { + advertiser: 'test id', + }, + body: { + JSON: { + customer_id: 'userSampleX138', + anonymous_id: '5f093403-1457-4a2c-b4e4-c61ec3bacf56', + email: 'userSampleX120@gmail.com', + phone: '9878764736', + timestamp: 1659902539, + country_code: 'IN', + listing_id: '10101', + conversion_source: 'RudderStack', + action: 'conv.add_to_cart', + checkout_id: '12345', + product_url: 'http://www.yourdomain.com/products/red-t-shirt', + product_name: 'Red T-shirt', + externalId: 'rbUid', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'rockerbox', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + advertiserId: 'hdowhfiqhfwaiwhrdafshbfacicolsa', + eventFilteringOption: 'disable', + whitelistedEvents: [ + { + eventName: '', + }, + ], + blacklistedEvents: [ + { + eventName: '', + }, + ], + eventsMap: [ + { + from: 'Product Added', + to: 'conv.add_to_cart', + }, + ], + customPropsMapping: [ + { + from: 'unit_id', + to: 'unitID', + }, + { + from: 'merch_id', + to: 'merch_id', + }, + { + from: 'bounce_id', + to: 'bounceID', + }, + ], + useNativeSDK: { + web: false, + }, + useNativeSDKToSend: { + web: false, + }, + clientAuthId: { + web: '', + }, + oneTrustCookieCategories: { + web: [ + { + oneTrustCookieCategory: '', + }, + ], + }, + customDomain: { + web: '', + }, + enableCookieSync: { + web: false, + }, + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: 'anon_id', + type: 'track', + traits: { + userId: 'anon_id', + email: 'jamesDoe@gmail.com', + name: 'James Doe', + phone: '92374162212', + gender: 'M', + employed: true, + birthday: '1614775793', + education: 'Science', + graduate: true, + married: true, + customerType: 'Prime', + msg_push: true, + msgSms: true, + msgemail: true, + msgwhatsapp: false, + custom_tags: ['Test_User', 'Interested_User', 'DIY_Hobby'], + custom_mappings: { + Office: 'Trastkiv', + Country: 'Russia', + }, + address: { + city: 'kolkata', + country: 'India', + postalCode: 789223, + state: 'WB', + street: '', + }, + }, + properties: { + unit_id: 123, + merch_id: false, + bounceiD: 'fakefake', + counce_id: '', + }, + event: 'Product Added', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + writeKey: '2D0yaayoBD7bp8uFomnBONdedcA', + requestIP: '[::1]', + receivedAt: '2022-08-08T01:32:19.369+05:30', + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://webhooks.getrockerbox.com/rudderstack', + headers: {}, + params: { + advertiser: 'hdowhfiqhfwaiwhrdafshbfacicolsa', + }, + body: { + JSON: { + customer_id: 'anon_id', + anonymous_id: 'anon_id', + email: 'jamesDoe@gmail.com', + phone: '92374162212', + timestamp: 1571043797, + conversion_source: 'RudderStack', + action: 'conv.add_to_cart', + unit_id: 123, + merch_id: false, + bounceiD: 'fakefake', + counce_id: '', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'rockerbox', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + advertiserId: 'KDH4JNDHCFJHJ57SJOWJE490W01JFNHGDSSFHDKDSDF', + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + type: 'track', + traits: { + email: 'jamesDoe@gmail.com', + name: 'James Doe', + phone: '92374162212', + gender: 'M', + employed: true, + birthday: '1614775793', + education: 'Science', + graduate: true, + married: true, + customerType: 'Prime', + msg_push: true, + msgSms: true, + msgemail: true, + msgwhatsapp: false, + custom_tags: ['Test_User', 'Interested_User', 'DIY_Hobby'], + custom_mappings: { + Office: 'Trastkiv', + Country: 'Russia', + }, + address: { + city: 'kolkata', + country: 'India', + postalCode: 789223, + state: 'WB', + street: '', + }, + }, + properties: { + unit_id: 123, + merch_id: false, + bounceiD: 'fakefake', + counce_id: '', + }, + event: 'Product Added', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: 'Anyone of userId or anonymousId is required to make the call', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'ROCKERBOX', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/rockerbox/router/data.ts b/test/integrations/destinations/rockerbox/router/data.ts index caa8f1ba08..af943d7e6b 100644 --- a/test/integrations/destinations/rockerbox/router/data.ts +++ b/test/integrations/destinations/rockerbox/router/data.ts @@ -14,46 +14,19 @@ export const data = [ Config: { advertiserId: 'test id', eventFilteringOption: 'disable', - whitelistedEvents: [ - { - eventName: '', - }, - ], - blacklistedEvents: [ - { - eventName: '', - }, - ], - eventsMap: [ - { - from: 'Product Added', - to: 'conv.add_to_cart', - }, - ], - useNativeSDK: { - web: false, - }, - clientAuthId: { - web: 'test-client-auth-id', - }, + whitelistedEvents: [{ eventName: '' }], + blacklistedEvents: [{ eventName: '' }], + eventsMap: [{ from: 'Product Added', to: 'conv.add_to_cart' }], + useNativeSDK: { web: false }, + clientAuthId: { web: 'test-client-auth-id' }, oneTrustCookieCategories: { - web: [ - { - oneTrustCookieCategory: 'Marketing Sample', - }, - ], - }, - customDomain: { - web: 'https://cookiedomain.com', - }, - enableCookieSync: { - web: true, + web: [{ oneTrustCookieCategory: 'Marketing Sample' }], }, + customDomain: { web: 'https://cookiedomain.com' }, + enableCookieSync: { web: true }, }, }, - metadata: { - jobId: 1, - }, + metadata: { jobId: 1, userId: 'u1' }, message: { type: 'track', event: 'Product Added', @@ -61,10 +34,7 @@ export const data = [ userId: 'userSampleX138', channel: 'web', context: { - os: { - name: '', - version: '', - }, + os: { name: '', version: '' }, locale: 'en-IN', traits: { email: 'userSampleX120@gmail.com', @@ -84,9 +54,7 @@ export const data = [ product_name: 'Red T-shirt', }, anonymousId: '5f093403-1457-4a2c-b4e4-c61ec3bacf56', - integrations: { - All: true, - }, + integrations: { All: true }, originalTimestamp: '2022-08-07T20:02:19.347Z', }, writeKey: '2D0yaayoBD7bp8uFomnBONdedcA', @@ -147,7 +115,7 @@ export const data = [ whitelistedEvents: [{ eventName: '' }], }, }, - metadata: [{ jobId: 1 }], + metadata: [{ jobId: 1, userId: 'u1' }], statusCode: 200, }, ], @@ -170,46 +138,19 @@ export const data = [ Config: { advertiserId: 'test id', eventFilteringOption: 'disable', - whitelistedEvents: [ - { - eventName: '', - }, - ], - blacklistedEvents: [ - { - eventName: '', - }, - ], - eventsMap: [ - { - from: 'Product Viewed', - to: 'conv.add_to_cart', - }, - ], - useNativeSDK: { - web: false, - }, - clientAuthId: { - web: 'test-client-auth-id', - }, + whitelistedEvents: [{ eventName: '' }], + blacklistedEvents: [{ eventName: '' }], + eventsMap: [{ from: 'Product Viewed', to: 'conv.add_to_cart' }], + useNativeSDK: { web: false }, + clientAuthId: { web: 'test-client-auth-id' }, oneTrustCookieCategories: { - web: [ - { - oneTrustCookieCategory: 'Marketing Sample', - }, - ], - }, - customDomain: { - web: 'https://cookiedomain.com', - }, - enableCookieSync: { - web: true, + web: [{ oneTrustCookieCategory: 'Marketing Sample' }], }, + customDomain: { web: 'https://cookiedomain.com' }, + enableCookieSync: { web: true }, }, }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, message: { type: 'track', event: 'Product Viewed', @@ -217,10 +158,7 @@ export const data = [ userId: 'userSampleX138', channel: 'web', context: { - os: { - name: '', - version: '', - }, + os: { name: '', version: '' }, locale: 'en-IN', traits: { email: 'userSampleX120@gmail.com', @@ -240,9 +178,7 @@ export const data = [ product_name: 'Red T-shirt', }, anonymousId: '5f093403-1457-4a2c-b4e4-c61ec3bacf56', - integrations: { - All: true, - }, + integrations: { All: true }, originalTimestamp: '2022-08-07T20:02:19.347Z', }, writeKey: '2D0yaayoBD7bp8uFomnBONdedcA', @@ -303,7 +239,7 @@ export const data = [ whitelistedEvents: [{ eventName: '' }], }, }, - metadata: [{ jobId: 2 }], + metadata: [{ jobId: 2, userId: 'u1' }], statusCode: 200, }, ], diff --git a/test/integrations/destinations/salesforce/router/data.ts b/test/integrations/destinations/salesforce/router/data.ts index 8c36d3a785..4a37f7ed40 100644 --- a/test/integrations/destinations/salesforce/router/data.ts +++ b/test/integrations/destinations/salesforce/router/data.ts @@ -1,10 +1,8 @@ -import { FEATURES } from '../../../../../src/v0/util/tags'; - export const data = [ { name: 'salesforce', description: 'Test 0', - feature: FEATURES.ROUTER, + feature: 'router', module: 'destination', version: 'v0', input: { @@ -23,18 +21,10 @@ export const data = [ version: '1.0.0', }, ip: '0.0.0.0', - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, locale: 'en-US', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, traits: { anonymousId: '1e7673da-9473-49c6-97f7-da848ecafa76', company: 'Initech', @@ -54,9 +44,7 @@ export const data = [ userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36', }, - integrations: { - All: true, - }, + integrations: { All: true }, messageId: 'f19c35da-e9de-4c6e-b6e5-9e60cccc12c8', originalTimestamp: '2020-01-27T12:20:55.301Z', receivedAt: '2020-01-27T17:50:58.657+05:30', @@ -66,9 +54,7 @@ export const data = [ type: 'identify', userId: '1e7673da-9473-49c6-97f7-da848ecafa76', }, - metadata: { - jobId: 1, - }, + metadata: { jobId: 1, userId: 'u1' }, destination: { Config: { initialAccessToken: 'dummyInitialAccessToken', @@ -133,12 +119,7 @@ export const data = [ }, ], metadata: [ - { - destInfo: { - authKey: '1WqFFH5esuVPnUgHkvEoYxDcX3y', - }, - jobId: 1, - }, + { destInfo: { authKey: '1WqFFH5esuVPnUgHkvEoYxDcX3y' }, jobId: 1, userId: 'u1' }, ], batched: false, statusCode: 200, @@ -167,7 +148,7 @@ export const data = [ { name: 'salesforce', description: 'Test 1', - feature: FEATURES.ROUTER, + feature: 'router', module: 'destination', version: 'v0', input: { @@ -186,18 +167,10 @@ export const data = [ version: '1.0.0', }, ip: '0.0.0.0', - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, locale: 'en-US', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, traits: { anonymousId: '1e7673da-9473-49c6-97f7-da848ecafa76', company: 'Initech', @@ -217,9 +190,7 @@ export const data = [ userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36', }, - integrations: { - All: true, - }, + integrations: { All: true }, messageId: 'f19c35da-e9de-4c6e-b6e5-9e60cccc12c8', originalTimestamp: '2020-01-27T12:20:55.301Z', receivedAt: '2020-01-27T17:50:58.657+05:30', @@ -229,9 +200,7 @@ export const data = [ type: 'identify', userId: '1e7673da-9473-49c6-97f7-da848ecafa76', }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, destination: { Config: { initialAccessToken: 'dummyInitialAccessToken', @@ -297,12 +266,7 @@ export const data = [ }, ], metadata: [ - { - destInfo: { - authKey: '1WqFFH5esuVPnUgHkvEoYxDcX3y', - }, - jobId: 2, - }, + { destInfo: { authKey: '1WqFFH5esuVPnUgHkvEoYxDcX3y' }, jobId: 2, userId: 'u1' }, ], batched: false, statusCode: 200, @@ -331,7 +295,7 @@ export const data = [ { name: 'salesforce', description: 'Test 2', - feature: FEATURES.ROUTER, + feature: 'router', module: 'destination', version: 'v0', input: { @@ -350,24 +314,14 @@ export const data = [ version: '1.0.0', }, ip: '0.0.0.0', - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, locale: 'en-US', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36', }, - integrations: { - All: true, - }, + integrations: { All: true }, traits: { anonymousId: '1e7673da-9473-49c6-97f7-da848ecafa76', company: 'Initech', @@ -393,9 +347,7 @@ export const data = [ type: 'identify', userId: '1e7673da-9473-49c6-97f7-da848ecafa76', }, - metadata: { - jobId: 3, - }, + metadata: { jobId: 3, userId: 'u1' }, destination: { Config: { initialAccessToken: 'dummyInitialAccessToken', @@ -460,12 +412,7 @@ export const data = [ }, ], metadata: [ - { - destInfo: { - authKey: '1WqFFH5esuVPnUgHkvEoYxDcX3y', - }, - jobId: 3, - }, + { destInfo: { authKey: '1WqFFH5esuVPnUgHkvEoYxDcX3y' }, jobId: 3, userId: 'u1' }, ], batched: false, statusCode: 200, @@ -494,7 +441,7 @@ export const data = [ { name: 'salesforce', description: 'Test 3', - feature: FEATURES.ROUTER, + feature: 'router', module: 'destination', version: 'v0', input: { @@ -535,9 +482,7 @@ export const data = [ files: {}, statusCode: 200, }, - metadata: { - jobId: 4, - }, + metadata: { jobId: 4, userId: 'u1' }, destination: { Config: { initialAccessToken: 'dummyInitialAccessToken', @@ -601,12 +546,7 @@ export const data = [ statusCode: 200, }, metadata: [ - { - destInfo: { - authKey: '1WqFFH5esuVPnUgHkvEoYxDcX3y', - }, - jobId: 4, - }, + { destInfo: { authKey: '1WqFFH5esuVPnUgHkvEoYxDcX3y' }, jobId: 4, userId: 'u1' }, ], batched: false, statusCode: 200, diff --git a/test/integrations/destinations/segment/processor/data.ts b/test/integrations/destinations/segment/processor/data.ts index 0a140e2b99..9ba9601d6e 100644 --- a/test/integrations/destinations/segment/processor/data.ts +++ b/test/integrations/destinations/segment/processor/data.ts @@ -1,670 +1,675 @@ export const data = [ - { - "name": "segment", - "description": "Test 0", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "ID": "1afmecIpsJm7D72aRTksxyODrwR", - "Name": "Segment", - "DestinationDefinition": { - "ID": "1afjjahf0X5lSyNze7Xh7aqJs11", - "Name": "SEGMENT", - "DisplayName": "Segment", - "Config": { - "excludeKeys": [], - "includeKeys": [] - } - }, - "Config": { - "writeKey": "abcdefghijklmnopqrstuvwxyz" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "anonymousId": "ac7722c2-ccb6-4ae2-baf6-1effe861f4cd", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1-rc.2" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1-rc.2" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/tests/html/index4.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost/tests/html/index4.html" - }, - "screen": { - "density": 2 - }, - "traits": { - "age": 23, - "email": "testmp@rudderstack.com", - "firstname": "Test Kafka" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "258b77c6-442d-4bdc-8729-f0e4cef41353", - "name": "home", - "originalTimestamp": "2020-04-17T14:55:31.367Z", - "properties": { - "path": "/tests/html/index4.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost/tests/html/index4.html" - }, - "receivedAt": "2020-04-17T20:25:31.381+05:30", - "request_ip": "[::1]:57363", - "sentAt": "2020-04-17T14:55:31.367Z", - "timestamp": "2020-04-17T20:25:31.381+05:30", - "type": "page", - "userId": "user12345" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "userId": "user12345", - "endpoint": "https://api.segment.io/v1/batch", - "headers": { - "Content-Type": "application/json", - "Authorization": "Basic YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXo6" - }, - "params": {}, - "body": { - "JSON": { - "batch": [ - { - "anonymousId": "ac7722c2-ccb6-4ae2-baf6-1effe861f4cd", - "type": "page", - "userId": "user12345", - "traits": { - "age": 23, - "email": "testmp@rudderstack.com", - "firstname": "Test Kafka" - }, - "properties": { - "path": "/tests/html/index4.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost/tests/html/index4.html" - }, - "timeStamp": "2020-04-17T20:25:31.381+05:30" - } - ] - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "statusCode": 200 - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "segment", - "description": "Test 1", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "ID": "1afmecIpsJm7D72aRTksxyODrwR", - "Name": "Segment", - "DestinationDefinition": { - "ID": "1afjjahf0X5lSyNze7Xh7aqJs11", - "Name": "SEGMENT", - "DisplayName": "Segment", - "Config": { - "excludeKeys": [], - "includeKeys": [] - } - }, - "Config": { - "writeKey": "abcdefghijklmnopqrstuvwxyz" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "anonymousId": "ac7722c2-ccb6-4ae2-baf6-1effe861f4cd", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1-rc.2" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1-rc.2" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/tests/html/index4.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost/tests/html/index4.html" - }, - "screen": { - "density": 2 - }, - "traits": { - "age": 23, - "email": "testmp@email.com", - "firstname": "Test Transformer" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "023a3a48-190a-4968-9394-a8e99b81a3c0", - "originalTimestamp": "2020-04-17T14:55:31.37Z", - "receivedAt": "2020-04-17T20:25:31.401+05:30", - "request_ip": "[::1]:57364", - "sentAt": "2020-04-17T14:55:31.37Z", - "timestamp": "2020-04-17T20:25:31.401+05:30", - "type": "identify", - "userId": "user12345" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "userId": "user12345", - "method": "POST", - "endpoint": "https://api.segment.io/v1/batch", - "headers": { - "Content-Type": "application/json", - "Authorization": "Basic YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXo6" - }, - "params": {}, - "body": { - "JSON": { - "batch": [ - { - "anonymousId": "ac7722c2-ccb6-4ae2-baf6-1effe861f4cd", - "type": "identify", - "userId": "user12345", - "traits": { - "age": 23, - "email": "testmp@email.com", - "firstname": "Test Transformer" - }, - "timeStamp": "2020-04-17T20:25:31.401+05:30" - } - ] - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "statusCode": 200 - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "segment", - "description": "Test 2", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "ID": "1afmecIpsJm7D72aRTksxyODrwR", - "Name": "Segment", - "DestinationDefinition": { - "ID": "1afjjahf0X5lSyNze7Xh7aqJs11", - "Name": "SEGMENT", - "DisplayName": "Segment", - "Config": { - "excludeKeys": [], - "includeKeys": [] - } - }, - "Config": { - "writeKey": "abcdefghijklmnopqrstuvwxyz" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "anonymousId": "ac7722c2-ccb6-4ae2-baf6-1effe861f4cd", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1-rc.2" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1-rc.2" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/tests/html/index4.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost/tests/html/index4.html" - }, - "screen": { - "density": 2 - }, - "traits": { - "age": 23, - "email": "testmp@email.com", - "firstname": "Test Transformer" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36" - }, - "event": "test track with property", - "integrations": { - "All": true - }, - "messageId": "584fde02-901a-4964-a4a0-4078b999d5b2", - "originalTimestamp": "2020-04-17T14:55:31.372Z", - "properties": { - "test_prop_1": "test prop", - "test_prop_2": 1232 - }, - "receivedAt": "2020-04-17T20:25:31.401+05:30", - "request_ip": "[::1]:57365", - "sentAt": "2020-04-17T14:55:31.372Z", - "timestamp": "2020-04-17T20:25:31.401+05:30", - "type": "track", - "userId": "user12345" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "userId": "user12345", - "method": "POST", - "endpoint": "https://api.segment.io/v1/batch", - "headers": { - "Content-Type": "application/json", - "Authorization": "Basic YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXo6" - }, - "params": {}, - "body": { - "JSON": { - "batch": [ - { - "anonymousId": "ac7722c2-ccb6-4ae2-baf6-1effe861f4cd", - "type": "track", - "userId": "user12345", - "event": "test track with property", - "traits": { - "age": 23, - "email": "testmp@email.com", - "firstname": "Test Transformer" - }, - "properties": { - "test_prop_1": "test prop", - "test_prop_2": 1232 - }, - "timeStamp": "2020-04-17T20:25:31.401+05:30" - } - ] - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "statusCode": 200 - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "segment", - "description": "Test 3", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "ID": "1afmecIpsJm7D72aRTksxyODrwR", - "Name": "Segment", - "DestinationDefinition": { - "ID": "1afjjahf0X5lSyNze7Xh7aqJs11", - "Name": "SEGMENT", - "DisplayName": "Segment", - "Config": { - "excludeKeys": [], - "includeKeys": [] - } - }, - "Config": { - "writeKey": "abcdefghijklmnopqrstuvwxyz" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1-rc.2" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1-rc.2" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/tests/html/index4.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost/tests/html/index4.html" - }, - "screen": { - "density": 2 - }, - "traits": { - "age": 23, - "email": "testmp@rudderstack.com", - "firstname": "Test Kafka" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "258b77c6-442d-4bdc-8729-f0e4cef41353", - "name": "home", - "originalTimestamp": "2020-04-17T14:55:31.367Z", - "properties": { - "path": "/tests/html/index4.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost/tests/html/index4.html" - }, - "receivedAt": "2020-04-17T20:25:31.381+05:30", - "request_ip": "[::1]:57363", - "sentAt": "2020-04-17T14:55:31.367Z", - "timestamp": "2020-04-17T20:25:31.381+05:30", - "type": "page", - "userId": "user12345" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.segment.io/v1/batch", - "headers": { - "Content-Type": "application/json", - "Authorization": "Basic YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXo6" - }, - "params": {}, - "body": { - "JSON": { - "batch": [ - { - "type": "page", - "userId": "user12345", - "traits": { - "age": 23, - "email": "testmp@rudderstack.com", - "firstname": "Test Kafka" - }, - "properties": { - "path": "/tests/html/index4.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost/tests/html/index4.html" - }, - "timeStamp": "2020-04-17T20:25:31.381+05:30" - } - ] - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "user12345", - "statusCode": 200 - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "segment", - "description": "Test 4", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "ID": "1afmecIpsJm7D72aRTksxyODrwR", - "Name": "Segment", - "DestinationDefinition": { - "ID": "1afjjahf0X5lSyNze7Xh7aqJs11", - "Name": "SEGMENT", - "DisplayName": "Segment", - "Config": { - "excludeKeys": [], - "includeKeys": [] - } - }, - "Config": { - "writeKey": "abcdefghijklmnopqrstuvwxyz" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "anonymousId": "ac7722c2-ccb6-4ae2-baf6-1effe861f4cd", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1-rc.2" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1-rc.2" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/tests/html/index4.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost/tests/html/index4.html" - }, - "screen": { - "density": 2 - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36" - }, - "event": "test track with property", - "integrations": { - "All": true - }, - "messageId": "584fde02-901a-4964-a4a0-4078b999d5b2", - "originalTimestamp": "2020-04-17T14:55:31.372Z", - "properties": { - "test_prop_1": "test prop", - "test_prop_2": 1232 - }, - "receivedAt": "2020-04-17T20:25:31.401+05:30", - "request_ip": "[::1]:57365", - "sentAt": "2020-04-17T14:55:31.372Z", - "timestamp": "2020-04-17T20:25:31.401+05:30", - "type": "track", - "userId": "user12345" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.segment.io/v1/batch", - "headers": { - "Content-Type": "application/json", - "Authorization": "Basic YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXo6" - }, - "params": {}, - "body": { - "JSON": { - "batch": [ - { - "anonymousId": "ac7722c2-ccb6-4ae2-baf6-1effe861f4cd", - "type": "track", - "userId": "user12345", - "event": "test track with property", - "properties": { - "test_prop_1": "test prop", - "test_prop_2": 1232 - }, - "timeStamp": "2020-04-17T20:25:31.401+05:30" - } - ] - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "user12345", - "statusCode": 200 - }, - "statusCode": 200 - } - ] - } - } - } -] \ No newline at end of file + { + name: 'segment', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + ID: '1afmecIpsJm7D72aRTksxyODrwR', + Name: 'Segment', + DestinationDefinition: { + ID: '1afjjahf0X5lSyNze7Xh7aqJs11', + Name: 'SEGMENT', + DisplayName: 'Segment', + Config: { + excludeKeys: [], + includeKeys: [], + }, + }, + Config: { + writeKey: 'abcdefghijklmnopqrstuvwxyz', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + anonymousId: 'ac7722c2-ccb6-4ae2-baf6-1effe861f4cd', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.1-rc.2', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.1-rc.2', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/tests/html/index4.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost/tests/html/index4.html', + }, + screen: { + density: 2, + }, + traits: { + age: 23, + email: 'testmp@rudderstack.com', + firstname: 'Test Kafka', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36', + }, + integrations: { + All: true, + }, + messageId: '258b77c6-442d-4bdc-8729-f0e4cef41353', + name: 'home', + originalTimestamp: '2020-04-17T14:55:31.367Z', + properties: { + path: '/tests/html/index4.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost/tests/html/index4.html', + }, + receivedAt: '2020-04-17T20:25:31.381+05:30', + request_ip: '[::1]:57363', + sentAt: '2020-04-17T14:55:31.367Z', + timestamp: '2020-04-17T20:25:31.381+05:30', + type: 'page', + userId: 'user12345', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + userId: 'user12345', + endpoint: 'https://api.segment.io/v1/batch', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Basic YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXo6', + }, + params: {}, + body: { + JSON: { + batch: [ + { + anonymousId: 'ac7722c2-ccb6-4ae2-baf6-1effe861f4cd', + type: 'page', + userId: 'user12345', + traits: { + age: 23, + email: 'testmp@rudderstack.com', + firstname: 'Test Kafka', + }, + properties: { + path: '/tests/html/index4.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost/tests/html/index4.html', + }, + timeStamp: '2020-04-17T20:25:31.381+05:30', + }, + ], + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'segment', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + ID: '1afmecIpsJm7D72aRTksxyODrwR', + Name: 'Segment', + DestinationDefinition: { + ID: '1afjjahf0X5lSyNze7Xh7aqJs11', + Name: 'SEGMENT', + DisplayName: 'Segment', + Config: { + excludeKeys: [], + includeKeys: [], + }, + }, + Config: { + writeKey: 'abcdefghijklmnopqrstuvwxyz', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + anonymousId: 'ac7722c2-ccb6-4ae2-baf6-1effe861f4cd', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.1-rc.2', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.1-rc.2', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/tests/html/index4.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost/tests/html/index4.html', + }, + screen: { + density: 2, + }, + traits: { + age: 23, + email: 'testmp@email.com', + firstname: 'Test Transformer', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36', + }, + integrations: { + All: true, + }, + messageId: '023a3a48-190a-4968-9394-a8e99b81a3c0', + originalTimestamp: '2020-04-17T14:55:31.37Z', + receivedAt: '2020-04-17T20:25:31.401+05:30', + request_ip: '[::1]:57364', + sentAt: '2020-04-17T14:55:31.37Z', + timestamp: '2020-04-17T20:25:31.401+05:30', + type: 'identify', + userId: 'user12345', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + userId: 'user12345', + method: 'POST', + endpoint: 'https://api.segment.io/v1/batch', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Basic YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXo6', + }, + params: {}, + body: { + JSON: { + batch: [ + { + anonymousId: 'ac7722c2-ccb6-4ae2-baf6-1effe861f4cd', + type: 'identify', + userId: 'user12345', + traits: { + age: 23, + email: 'testmp@email.com', + firstname: 'Test Transformer', + }, + timeStamp: '2020-04-17T20:25:31.401+05:30', + }, + ], + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'segment', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + ID: '1afmecIpsJm7D72aRTksxyODrwR', + Name: 'Segment', + DestinationDefinition: { + ID: '1afjjahf0X5lSyNze7Xh7aqJs11', + Name: 'SEGMENT', + DisplayName: 'Segment', + Config: { + excludeKeys: [], + includeKeys: [], + }, + }, + Config: { + writeKey: 'abcdefghijklmnopqrstuvwxyz', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + anonymousId: 'ac7722c2-ccb6-4ae2-baf6-1effe861f4cd', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.1-rc.2', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.1-rc.2', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/tests/html/index4.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost/tests/html/index4.html', + }, + screen: { + density: 2, + }, + traits: { + age: 23, + email: 'testmp@email.com', + firstname: 'Test Transformer', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36', + }, + event: 'test track with property', + integrations: { + All: true, + }, + messageId: '584fde02-901a-4964-a4a0-4078b999d5b2', + originalTimestamp: '2020-04-17T14:55:31.372Z', + properties: { + test_prop_1: 'test prop', + test_prop_2: 1232, + }, + receivedAt: '2020-04-17T20:25:31.401+05:30', + request_ip: '[::1]:57365', + sentAt: '2020-04-17T14:55:31.372Z', + timestamp: '2020-04-17T20:25:31.401+05:30', + type: 'track', + userId: 'user12345', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + userId: 'user12345', + method: 'POST', + endpoint: 'https://api.segment.io/v1/batch', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Basic YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXo6', + }, + params: {}, + body: { + JSON: { + batch: [ + { + anonymousId: 'ac7722c2-ccb6-4ae2-baf6-1effe861f4cd', + type: 'track', + userId: 'user12345', + event: 'test track with property', + traits: { + age: 23, + email: 'testmp@email.com', + firstname: 'Test Transformer', + }, + properties: { + test_prop_1: 'test prop', + test_prop_2: 1232, + }, + timeStamp: '2020-04-17T20:25:31.401+05:30', + }, + ], + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'segment', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + ID: '1afmecIpsJm7D72aRTksxyODrwR', + Name: 'Segment', + DestinationDefinition: { + ID: '1afjjahf0X5lSyNze7Xh7aqJs11', + Name: 'SEGMENT', + DisplayName: 'Segment', + Config: { + excludeKeys: [], + includeKeys: [], + }, + }, + Config: { + writeKey: 'abcdefghijklmnopqrstuvwxyz', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.1-rc.2', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.1-rc.2', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/tests/html/index4.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost/tests/html/index4.html', + }, + screen: { + density: 2, + }, + traits: { + age: 23, + email: 'testmp@rudderstack.com', + firstname: 'Test Kafka', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36', + }, + integrations: { + All: true, + }, + messageId: '258b77c6-442d-4bdc-8729-f0e4cef41353', + name: 'home', + originalTimestamp: '2020-04-17T14:55:31.367Z', + properties: { + path: '/tests/html/index4.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost/tests/html/index4.html', + }, + receivedAt: '2020-04-17T20:25:31.381+05:30', + request_ip: '[::1]:57363', + sentAt: '2020-04-17T14:55:31.367Z', + timestamp: '2020-04-17T20:25:31.381+05:30', + type: 'page', + userId: 'user12345', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.segment.io/v1/batch', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Basic YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXo6', + }, + params: {}, + body: { + JSON: { + batch: [ + { + type: 'page', + userId: 'user12345', + traits: { + age: 23, + email: 'testmp@rudderstack.com', + firstname: 'Test Kafka', + }, + properties: { + path: '/tests/html/index4.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost/tests/html/index4.html', + }, + timeStamp: '2020-04-17T20:25:31.381+05:30', + }, + ], + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: 'user12345', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'segment', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + ID: '1afmecIpsJm7D72aRTksxyODrwR', + Name: 'Segment', + DestinationDefinition: { + ID: '1afjjahf0X5lSyNze7Xh7aqJs11', + Name: 'SEGMENT', + DisplayName: 'Segment', + Config: { + excludeKeys: [], + includeKeys: [], + }, + }, + Config: { + writeKey: 'abcdefghijklmnopqrstuvwxyz', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + anonymousId: 'ac7722c2-ccb6-4ae2-baf6-1effe861f4cd', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.1-rc.2', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.1-rc.2', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/tests/html/index4.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost/tests/html/index4.html', + }, + screen: { + density: 2, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36', + }, + event: 'test track with property', + integrations: { + All: true, + }, + messageId: '584fde02-901a-4964-a4a0-4078b999d5b2', + originalTimestamp: '2020-04-17T14:55:31.372Z', + properties: { + test_prop_1: 'test prop', + test_prop_2: 1232, + }, + receivedAt: '2020-04-17T20:25:31.401+05:30', + request_ip: '[::1]:57365', + sentAt: '2020-04-17T14:55:31.372Z', + timestamp: '2020-04-17T20:25:31.401+05:30', + type: 'track', + userId: 'user12345', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.segment.io/v1/batch', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Basic YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXo6', + }, + params: {}, + body: { + JSON: { + batch: [ + { + anonymousId: 'ac7722c2-ccb6-4ae2-baf6-1effe861f4cd', + type: 'track', + userId: 'user12345', + event: 'test track with property', + properties: { + test_prop_1: 'test prop', + test_prop_2: 1232, + }, + timeStamp: '2020-04-17T20:25:31.401+05:30', + }, + ], + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: 'user12345', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/sendgrid/router/data.ts b/test/integrations/destinations/sendgrid/router/data.ts index 5c45f54efb..e9ef671226 100644 --- a/test/integrations/destinations/sendgrid/router/data.ts +++ b/test/integrations/destinations/sendgrid/router/data.ts @@ -1,10 +1,8 @@ -import { FEATURES } from '../../../../../src/v0/util/tags'; - export const data = [ { name: 'sendgrid', description: 'Router Test Case', - feature: FEATURES.ROUTER, + feature: 'router', module: 'destination', version: 'v0', input: { @@ -35,9 +33,7 @@ export const data = [ clickTrackingEnableText: false, }, }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, message: { channel: 'web', context: { @@ -47,10 +43,7 @@ export const data = [ namespace: 'com.rudderlabs.javascript', version: '1.0.0', }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', locale: 'en-US', @@ -65,21 +58,9 @@ export const data = [ event: 'testing', properties: { personalizations: [ - { - to: [ - { - email: 'a@g.com', - }, - { - name: 'hello', - }, - ], - subject: 'hey there', - }, + { to: [{ email: 'a@g.com' }, { name: 'hello' }], subject: 'hey there' }, ], - from: { - email: 'ankit@rudderstack.com', - }, + from: { email: 'ankit@rudderstack.com' }, }, integrations: { All: true }, sentAt: '2019-10-14T09:03:22.563Z', @@ -103,19 +84,8 @@ export const data = [ FORM: {}, JSON_ARRAY: {}, JSON: { - personalizations: [ - { - to: [ - { - email: 'a@g.com', - }, - ], - subject: 'hey there', - }, - ], - from: { - email: 'ankit@rudderstack.com', - }, + personalizations: [{ to: [{ email: 'a@g.com' }], subject: 'hey there' }], + from: { email: 'ankit@rudderstack.com' }, reply_to: { email: 'ankit@rudderstack.com' }, subject: 'A sample subject', content: [ @@ -131,18 +101,11 @@ export const data = [ files: {}, method: 'POST', params: {}, - headers: { - Authorization: 'Bearer apikey', - 'Content-Type': 'application/json', - }, + headers: { Authorization: 'Bearer apikey', 'Content-Type': 'application/json' }, version: '1', endpoint: 'https://api.sendgrid.com/v3/mail/send', }, - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], batched: false, statusCode: 200, destination: { @@ -177,7 +140,7 @@ export const data = [ { name: 'sendgrid', description: 'Identify call batching with multiple listIds', - feature: FEATURES.ROUTER, + feature: 'router', module: 'destination', version: 'v0', input: { diff --git a/test/integrations/destinations/sendinblue/router/data.ts b/test/integrations/destinations/sendinblue/router/data.ts index 31781e4c4f..ef96b3f55f 100644 --- a/test/integrations/destinations/sendinblue/router/data.ts +++ b/test/integrations/destinations/sendinblue/router/data.ts @@ -18,18 +18,8 @@ export const data = [ properties: { orderId: '1341394-3812392190', products: [ - { - product_id: 1234, - product_name: 'Track Pants', - amount: 1, - price: 220, - }, - { - product_id: 5768, - product_name: 'T-Shirt', - amount: 5, - price: 1058, - }, + { product_id: 1234, product_name: 'Track Pants', amount: 1, price: 220 }, + { product_id: 5768, product_name: 'T-Shirt', amount: 5, price: 1058 }, ], }, context: { @@ -48,20 +38,13 @@ export const data = [ anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', originalTimestamp: '2021-01-03T17:02:53.193Z', }, - metadata: { - jobId: 1, - }, + metadata: { jobId: 1, userId: 'u1' }, destination: { Config: { apiKey: 'apiKey123', clientKey: 'clientKey123', doi: false, - contactAttributeMapping: [ - { - from: 'location', - to: 'LOCATION', - }, - ], + contactAttributeMapping: [{ from: 'location', to: 'LOCATION' }], sendTraitsInTrack: true, }, }, @@ -72,14 +55,9 @@ export const data = [ sentAt: '2021-01-03T17:02:53.195Z', channel: 'web', name: 'New Page', - properties: { - url: 'https://www.google.com/', - title: 'Google home', - }, + properties: { url: 'https://www.google.com/', title: 'Google home' }, context: { - traits: { - email: 'john_doe@example.com', - }, + traits: { email: 'john_doe@example.com' }, page: { url: 'http://127.0.0.1:7307/Testing/test/ourSdk.html', path: '/Testing/test/ourSdk.html', @@ -97,9 +75,7 @@ export const data = [ anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', originalTimestamp: '2021-01-03T17:02:53.193Z', }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, destination: { Config: { apiKey: 'apiKey123', @@ -125,39 +101,20 @@ export const data = [ newEmail: 'alex_root@example.com', role: 'SDE', }, - context: { - externalId: [ - { - type: 'sendinblueIncludeListIds', - id: [1, 2], - }, - ], - }, - integrations: { - All: true, - sendinblue: { - emailBlacklisted: true, - }, - }, + context: { externalId: [{ type: 'sendinblueIncludeListIds', id: [1, 2] }] }, + integrations: { All: true, sendinblue: { emailBlacklisted: true } }, rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', originalTimestamp: '2021-01-03T17:02:53.193Z', }, - metadata: { - jobId: 3, - }, + metadata: { jobId: 3, userId: 'u1' }, destination: { Config: { apiKey: 'apiKey123', clientKey: 'clientKey123', doi: false, - contactAttributeMapping: [ - { - from: 'location', - to: 'LOCATION', - }, - ], + contactAttributeMapping: [{ from: 'location', to: 'LOCATION' }], }, }, }, @@ -181,9 +138,7 @@ export const data = [ anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', originalTimestamp: '2021-01-03T17:02:53.193Z', }, - metadata: { - jobId: 4, - }, + metadata: { jobId: 4, userId: 'u1' }, destination: { Config: { apiKey: 'apiKey123', @@ -216,18 +171,8 @@ export const data = [ data: { orderId: '1341394-3812392190', products: [ - { - amount: 1, - price: 220, - product_id: 1234, - product_name: 'Track Pants', - }, - { - amount: 5, - price: 1058, - product_id: 5768, - product_name: 'T-Shirt', - }, + { amount: 1, price: 220, product_id: 1234, product_name: 'Track Pants' }, + { amount: 5, price: 1058, product_id: 5768, product_name: 'T-Shirt' }, ], }, id: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', @@ -246,10 +191,7 @@ export const data = [ }, endpoint: 'https://in-automate.sendinblue.com/api/v2/trackEvent', files: {}, - headers: { - 'Content-Type': 'application/json', - 'ma-key': 'clientKey123', - }, + headers: { 'Content-Type': 'application/json', 'ma-key': 'clientKey123' }, method: 'POST', params: {}, type: 'REST', @@ -259,21 +201,12 @@ export const data = [ Config: { apiKey: 'apiKey123', clientKey: 'clientKey123', - contactAttributeMapping: [ - { - from: 'location', - to: 'LOCATION', - }, - ], + contactAttributeMapping: [{ from: 'location', to: 'LOCATION' }], doi: false, sendTraitsInTrack: true, }, }, - metadata: [ - { - jobId: 1, - }, - ], + metadata: [{ jobId: 1, userId: 'u1' }], statusCode: 200, }, { @@ -296,10 +229,7 @@ export const data = [ }, endpoint: 'https://in-automate.sendinblue.com/api/v2/trackPage', files: {}, - headers: { - 'Content-Type': 'application/json', - 'ma-key': 'clientKey123', - }, + headers: { 'Content-Type': 'application/json', 'ma-key': 'clientKey123' }, method: 'POST', params: {}, type: 'REST', @@ -314,11 +244,7 @@ export const data = [ templateId: 3, }, }, - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], statusCode: 200, }, { @@ -346,10 +272,7 @@ export const data = [ }, endpoint: 'https://api.sendinblue.com/v3/contacts', files: {}, - headers: { - 'Content-Type': 'application/json', - 'api-key': 'apiKey123', - }, + headers: { 'Content-Type': 'application/json', 'api-key': 'apiKey123' }, method: 'POST', params: {}, type: 'REST', @@ -359,30 +282,17 @@ export const data = [ Config: { apiKey: 'apiKey123', clientKey: 'clientKey123', - contactAttributeMapping: [ - { - from: 'location', - to: 'LOCATION', - }, - ], + contactAttributeMapping: [{ from: 'location', to: 'LOCATION' }], doi: false, }, }, - metadata: [ - { - jobId: 3, - }, - ], + metadata: [{ jobId: 3, userId: 'u1' }], statusCode: 200, }, { batched: false, error: 'sendinblueIncludeListIds is required to create a contact using DOI', - metadata: [ - { - jobId: 4, - }, - ], + metadata: [{ jobId: 4, userId: 'u1' }], statTags: { destType: 'SENDINBLUE', errorCategory: 'dataValidation', diff --git a/test/integrations/destinations/serenytics/router/data.ts b/test/integrations/destinations/serenytics/router/data.ts index 2edbe58257..1e0226eab0 100644 --- a/test/integrations/destinations/serenytics/router/data.ts +++ b/test/integrations/destinations/serenytics/router/data.ts @@ -26,24 +26,15 @@ export const data = [ 'https://api.serenytics.com/api/data_source/5dc8508e-0946-47fc-8ed8-f67307c407f1/push/997877c6358621beb1f86dc320ac822b9f069760', }, }, - metadata: { - jobId: 1, - }, + metadata: { jobId: 1, userId: 'u1' }, message: { event: 'New Alert', type: 'track', sentAt: '2021-01-03T17:02:53.195Z', channel: 'web', - properties: { - message: 'Please check the alert', - brand: 'Zara', - price: '12000', - }, + properties: { message: 'Please check the alert', brand: 'Zara', price: '12000' }, context: { - os: { - name: '', - version: '', - }, + os: { name: '', version: '' }, app: { name: 'RudderLabs JavaScript SDK', build: '1.0.0', @@ -51,13 +42,8 @@ export const data = [ namespace: 'com.rudderlabs.javascript', }, locale: 'en-US', - screen: { - density: 2, - }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.1.11', - }, + screen: { density: 2 }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.11' }, campaign: {}, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', @@ -108,11 +94,7 @@ export const data = [ files: {}, }, ], - metadata: [ - { - jobId: 1, - }, - ], + metadata: [{ jobId: 1, userId: 'u1' }], batched: false, statusCode: 200, destination: { @@ -178,24 +160,15 @@ export const data = [ ], }, }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, message: { event: 'Order Completed', type: 'track', sentAt: '2021-01-03T17:02:53.195Z', channel: 'web', - properties: { - message: 'Please check the alert', - brand: 'Zara', - price: '12000', - }, + properties: { message: 'Please check the alert', brand: 'Zara', price: '12000' }, context: { - os: { - name: '', - version: '', - }, + os: { name: '', version: '' }, app: { name: 'RudderLabs JavaScript SDK', build: '1.0.0', @@ -203,13 +176,8 @@ export const data = [ namespace: 'com.rudderlabs.javascript', }, locale: 'en-US', - screen: { - density: 2, - }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.1.11', - }, + screen: { density: 2 }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.11' }, campaign: {}, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', @@ -312,11 +280,7 @@ export const data = [ files: {}, }, ], - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], batched: false, statusCode: 200, destination: { @@ -396,9 +360,7 @@ export const data = [ ], }, }, - metadata: { - jobId: 3, - }, + metadata: { jobId: 3, userId: 'u1' }, message: { messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', originalTimestamp: '2022-06-22T10:57:58Z', @@ -419,18 +381,10 @@ export const data = [ type: 'ios', attTrackingStatus: 3, }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.0.0', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, locale: 'en-US', - os: { - name: 'iOS', - version: '14.4.1', - }, - screen: { - density: 2, - }, + os: { name: 'iOS', version: '14.4.1' }, + screen: { density: 2 }, }, traits: { email: 'testuser@google.com', @@ -485,11 +439,7 @@ export const data = [ endpoint: 'https://api.serenytics.com/api/data_source/5dc8508e-0946-47fc-8ed8-f67307c407f1/push/997877c6358621beb1f86dc320ac822b9f069760', }, - metadata: [ - { - jobId: 3, - }, - ], + metadata: [{ jobId: 3, userId: 'u1' }], batched: false, statusCode: 200, destination: { diff --git a/test/integrations/destinations/signl4/router/data.ts b/test/integrations/destinations/signl4/router/data.ts index 582c02e26d..0fcf55d046 100644 --- a/test/integrations/destinations/signl4/router/data.ts +++ b/test/integrations/destinations/signl4/router/data.ts @@ -27,24 +27,15 @@ export const data = [ eventToTitleMapping: [], }, }, - metadata: { - jobId: 1, - }, + metadata: { jobId: 1, userId: 'u1' }, message: { event: 'New Alert', type: 'track', sentAt: '2021-01-03T17:02:53.195Z', channel: 'web', - properties: { - message: 'Please check the alert', - brand: 'Zara', - price: '12000', - }, + properties: { message: 'Please check the alert', brand: 'Zara', price: '12000' }, context: { - os: { - name: '', - version: '', - }, + os: { name: '', version: '' }, app: { name: 'RudderLabs JavaScript SDK', build: '1.0.0', @@ -52,13 +43,8 @@ export const data = [ namespace: 'com.rudderlabs.javascript', }, locale: 'en-US', - screen: { - density: 2, - }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.1.11', - }, + screen: { density: 2 }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.11' }, campaign: {}, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', @@ -86,9 +72,7 @@ export const data = [ type: 'REST', method: 'POST', endpoint: 'https://connect.signl4.com/webhook/dummyApiKey', - headers: { - 'Content-Type': 'application/json', - }, + headers: { 'Content-Type': 'application/json' }, params: {}, body: { JSON: { @@ -108,11 +92,7 @@ export const data = [ }, files: {}, }, - metadata: [ - { - jobId: 1, - }, - ], + metadata: [{ jobId: 1, userId: 'u1' }], batched: false, statusCode: 200, destination: { @@ -163,32 +143,18 @@ export const data = [ s4StatusValue: 'new', s4StatusProperty: '', s4Filter: false, - eventToTitleMapping: [ - { - from: 'New Alert', - to: 'Alert Created', - }, - ], + eventToTitleMapping: [{ from: 'New Alert', to: 'Alert Created' }], }, }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, message: { event: 'New Alert', type: 'identify', sentAt: '2021-01-03T17:02:53.195Z', channel: 'web', - properties: { - message: 'Please check the alert', - brand: 'Zara', - price: '12000', - }, + properties: { message: 'Please check the alert', brand: 'Zara', price: '12000' }, context: { - os: { - name: '', - version: '', - }, + os: { name: '', version: '' }, app: { name: 'RudderLabs JavaScript SDK', build: '1.0.0', @@ -196,13 +162,8 @@ export const data = [ namespace: 'com.rudderlabs.javascript', }, locale: 'en-US', - screen: { - density: 2, - }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.1.11', - }, + screen: { density: 2 }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.11' }, campaign: {}, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', @@ -239,19 +200,10 @@ export const data = [ s4StatusValue: 'new', s4StatusProperty: '', s4Filter: false, - eventToTitleMapping: [ - { - from: 'New Alert', - to: 'Alert Created', - }, - ], + eventToTitleMapping: [{ from: 'New Alert', to: 'Alert Created' }], }, }, - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], statTags: { errorCategory: 'dataValidation', destType: 'SIGNL4', diff --git a/test/integrations/destinations/singular/router/data.ts b/test/integrations/destinations/singular/router/data.ts index d9c9f7a8cb..9074ef2fdc 100644 --- a/test/integrations/destinations/singular/router/data.ts +++ b/test/integrations/destinations/singular/router/data.ts @@ -14,21 +14,13 @@ export const data = [ Config: { apiKey: 'dummyApiKey', sessionEventList: [ - { - sessionEventName: 'mysessionevent', - }, - { - sessionEventName: 'randomuser', - }, - { - sessionEventName: 'titanium', - }, + { sessionEventName: 'mysessionevent' }, + { sessionEventName: 'randomuser' }, + { sessionEventName: 'titanium' }, ], }, }, - metadata: { - jobId: 1, - }, + metadata: { jobId: 1, userId: 'u1' }, message: { type: 'track', event: 'mysessionevent', @@ -52,32 +44,17 @@ export const data = [ adTrackingEnabled: 'true', token: 'testDeviceToken', }, - library: { - name: 'com.rudderstack.android.sdk.core', - version: '0.1.4', - }, + library: { name: 'com.rudderstack.android.sdk.core', version: '0.1.4' }, locale: 'en-US', - network: { - carrier: 'Android', - bluetooth: false, - cellular: true, - wifi: true, - }, + network: { carrier: 'Android', bluetooth: false, cellular: true, wifi: true }, campaign: { source: 'google', medium: 'medium', term: 'keyword', content: 'some content', }, - os: { - name: 'Android', - version: '9', - }, - screen: { - density: 420, - height: 1794, - width: 1080, - }, + os: { name: 'Android', version: '9' }, + screen: { density: 420, height: 1794, width: 1080 }, timezone: 'Asia/Mumbai', userAgent: 'Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)', @@ -93,7 +70,7 @@ export const data = [ receipt_signature: '1234dfghnh', referring_application: '2134dfg', total: 20, - revenue: 15.0, + revenue: 15, shipping: 22, tax: 1, discount: 1.5, @@ -112,13 +89,7 @@ export const data = [ url: 'https://www.website.com/product/path', image_url: 'https://www.website.com/product/path.jpg', }, - { - sku: 'F-32', - name: 'UNO', - price: 3.45, - quantity: 2, - category: 'Games', - }, + { sku: 'F-32', name: 'UNO', price: 3.45, quantity: 2, category: 'Games' }, ], }, timestamp: '2021-09-01T15:46:51.000Z', @@ -171,34 +142,19 @@ export const data = [ c: 'wifi', a: 'dummyApiKey', }, - body: { - JSON: {}, - JSON_ARRAY: {}, - XML: {}, - FORM: {}, - }, + body: { JSON: {}, JSON_ARRAY: {}, XML: {}, FORM: {} }, files: {}, }, - metadata: [ - { - jobId: 1, - }, - ], + metadata: [{ jobId: 1, userId: 'u1' }], batched: false, statusCode: 200, destination: { Config: { apiKey: 'dummyApiKey', sessionEventList: [ - { - sessionEventName: 'mysessionevent', - }, - { - sessionEventName: 'randomuser', - }, - { - sessionEventName: 'titanium', - }, + { sessionEventName: 'mysessionevent' }, + { sessionEventName: 'randomuser' }, + { sessionEventName: 'titanium' }, ], }, }, @@ -223,21 +179,13 @@ export const data = [ Config: { apiKey: 'dummyApiKey', sessionEventList: [ - { - sessionEventName: 'mysessionevent', - }, - { - sessionEventName: 'randomuser', - }, - { - sessionEventName: 'titanium', - }, + { sessionEventName: 'mysessionevent' }, + { sessionEventName: 'randomuser' }, + { sessionEventName: 'titanium' }, ], }, }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, message: { type: 'track', event: 'mysessionevent', @@ -261,32 +209,17 @@ export const data = [ adTrackingEnabled: 'true', token: 'testDeviceToken', }, - library: { - name: 'com.rudderstack.android.sdk.core', - version: '0.1.4', - }, + library: { name: 'com.rudderstack.android.sdk.core', version: '0.1.4' }, locale: 'en-US', - network: { - carrier: 'Android', - bluetooth: false, - cellular: true, - wifi: true, - }, + network: { carrier: 'Android', bluetooth: false, cellular: true, wifi: true }, campaign: { source: 'google', medium: 'medium', term: 'keyword', content: 'some content', }, - os: { - name: 'Android', - version: '9', - }, - screen: { - density: 420, - height: 1794, - width: 1080, - }, + os: { name: 'Android', version: '9' }, + screen: { density: 420, height: 1794, width: 1080 }, timezone: 'Asia/Mumbai', userAgent: 'Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)', @@ -302,7 +235,7 @@ export const data = [ receipt_signature: '1234dfghnh', referring_application: '2134dfg', total: 20, - revenue: 15.0, + revenue: 15, shipping: 22, tax: 1, discount: 1.5, @@ -321,13 +254,7 @@ export const data = [ url: 'https://www.website.com/product/path', image_url: 'https://www.website.com/product/path.jpg', }, - { - sku: 'F-32', - name: 'UNO', - price: 3.45, - quantity: 2, - category: 'Games', - }, + { sku: 'F-32', name: 'UNO', price: 3.45, quantity: 2, category: 'Games' }, ], }, timestamp: '2021-09-01T15:46:51.000Z', @@ -380,34 +307,19 @@ export const data = [ c: 'wifi', a: 'dummyApiKey', }, - body: { - JSON: {}, - JSON_ARRAY: {}, - XML: {}, - FORM: {}, - }, + body: { JSON: {}, JSON_ARRAY: {}, XML: {}, FORM: {} }, files: {}, }, - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], batched: false, statusCode: 200, destination: { Config: { apiKey: 'dummyApiKey', sessionEventList: [ - { - sessionEventName: 'mysessionevent', - }, - { - sessionEventName: 'randomuser', - }, - { - sessionEventName: 'titanium', - }, + { sessionEventName: 'mysessionevent' }, + { sessionEventName: 'randomuser' }, + { sessionEventName: 'titanium' }, ], }, }, @@ -432,21 +344,13 @@ export const data = [ Config: { apiKey: 'dummyApiKey', sessionEventList: [ - { - sessionEventName: 'mysessionevent', - }, - { - sessionEventName: 'randomuser', - }, - { - sessionEventName: 'titanium', - }, + { sessionEventName: 'mysessionevent' }, + { sessionEventName: 'randomuser' }, + { sessionEventName: 'titanium' }, ], }, }, - metadata: { - jobId: 3, - }, + metadata: { jobId: 3, userId: 'u1' }, message: { type: 'track', event: 'mysessionevent', @@ -470,32 +374,17 @@ export const data = [ adTrackingEnabled: 'true', token: 'testDeviceToken', }, - library: { - name: 'com.rudderstack.android.sdk.core', - version: '0.1.4', - }, + library: { name: 'com.rudderstack.android.sdk.core', version: '0.1.4' }, locale: 'en-US', - network: { - carrier: 'Android', - bluetooth: false, - cellular: true, - wifi: true, - }, + network: { carrier: 'Android', bluetooth: false, cellular: true, wifi: true }, campaign: { source: 'google', medium: 'medium', term: 'keyword', content: 'some content', }, - os: { - name: 'Android', - version: '9', - }, - screen: { - density: 420, - height: 1794, - width: 1080, - }, + os: { name: 'Android', version: '9' }, + screen: { density: 420, height: 1794, width: 1080 }, timezone: 'Asia/Mumbai', userAgent: 'Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)', @@ -511,7 +400,7 @@ export const data = [ receipt_signature: '1234dfghnh', referring_application: '2134dfg', total: 20, - revenue: 15.0, + revenue: 15, shipping: 22, tax: 1, discount: 1.5, @@ -530,13 +419,7 @@ export const data = [ url: 'https://www.website.com/product/path', image_url: 'https://www.website.com/product/path.jpg', }, - { - sku: 'F-32', - name: 'UNO', - price: 3.45, - quantity: 2, - category: 'Games', - }, + { sku: 'F-32', name: 'UNO', price: 3.45, quantity: 2, category: 'Games' }, ], }, timestamp: '2021-09-01T15:46:51.000Z', @@ -589,34 +472,19 @@ export const data = [ c: 'wifi', a: 'dummyApiKey', }, - body: { - JSON: {}, - JSON_ARRAY: {}, - XML: {}, - FORM: {}, - }, + body: { JSON: {}, JSON_ARRAY: {}, XML: {}, FORM: {} }, files: {}, }, - metadata: [ - { - jobId: 3, - }, - ], + metadata: [{ jobId: 3, userId: 'u1' }], batched: false, statusCode: 200, destination: { Config: { apiKey: 'dummyApiKey', sessionEventList: [ - { - sessionEventName: 'mysessionevent', - }, - { - sessionEventName: 'randomuser', - }, - { - sessionEventName: 'titanium', - }, + { sessionEventName: 'mysessionevent' }, + { sessionEventName: 'randomuser' }, + { sessionEventName: 'titanium' }, ], }, }, @@ -644,15 +512,8 @@ export const data = [ userId: '68e214f1-ac84-4241-b27d-78a18f59f21e', channel: 'mobile', context: { - os: { - name: 'iOS', - version: '16.2', - }, - app: { - build: '5013', - version: '0.5.13', - namespace: 'com.yabimoney', - }, + os: { name: 'iOS', version: '16.2' }, + app: { build: '5013', version: '0.5.13', namespace: 'com.yabimoney' }, device: { id: 'cc06ff5e-838b-4e33-9d90-4ab5a6068bec', name: 'iPhone', @@ -664,11 +525,7 @@ export const data = [ attTrackingStatus: 0, }, locale: 'en-AE', - screen: { - width: 844, - height: 390, - density: 3, - }, + screen: { width: 844, height: 390, density: 3 }, traits: { phone: '', userId: '68e214f1-ac84-4241-b27d-78a18f59f21e', @@ -677,15 +534,8 @@ export const data = [ yabi_user_id: 'uCh5IS8p', subscription_type: '', }, - library: { - name: 'rudder-ios-library', - version: '1.8.0', - }, - network: { - wifi: true, - carrier: 'etisalat', - cellular: false, - }, + library: { name: 'rudder-ios-library', version: '1.8.0' }, + network: { wifi: true, carrier: 'etisalat', cellular: false }, timezone: 'Asia/Dubai', sessionId: 1674138119, }, @@ -695,9 +545,7 @@ export const data = [ receivedAt: '2023-01-19T14:25:25.465Z', request_ip: '87.201.98.151', anonymousId: 'cc06ff5e-838b-4e33-9d90-4ab5a6068bec', - integrations: { - All: true, - }, + integrations: { All: true }, originalTimestamp: '2023-01-19T14:25:06.301Z', }, destination: { @@ -705,29 +553,14 @@ export const data = [ Config: { apiKey: 'apiKey', apiSecret: 'dummyApiSecret', - sessionEventList: [ - { - sessionEventName: 'test_event', - }, - ], - blacklistedEvents: [ - { - eventName: '', - }, - ], - whitelistedEvents: [ - { - eventName: '', - }, - ], + sessionEventList: [{ sessionEventName: 'test_event' }], + blacklistedEvents: [{ eventName: '' }], + whitelistedEvents: [{ eventName: '' }], eventFilteringOption: 'whitelistedEvents', eventDelivery: false, eventDeliveryTS: 1663919255086, }, - liveEventsConfig: { - eventDelivery: false, - eventDeliveryTS: 1663919255086, - }, + liveEventsConfig: { eventDelivery: false, eventDeliveryTS: 1663919255086 }, ID: '2EhlBrBduwN2NX4pJ7nrVDHAz6C', workspaceId: '1sUXvPs0hYgjBxSfjG4gqnRFNoP', DestinationDefinition: { @@ -821,6 +654,7 @@ export const data = [ eventType: 'track', sourceDefinitionId: '1TW48i2bIzEl1HPf825cEznfIM8', destinationDefinitionId: '', + userId: 'u1', }, }, ], @@ -856,12 +690,7 @@ export const data = [ a: 'apiKey', e: {}, }, - body: { - JSON: {}, - JSON_ARRAY: {}, - XML: {}, - FORM: {}, - }, + body: { JSON: {}, JSON_ARRAY: {}, XML: {}, FORM: {} }, files: {}, }, metadata: [ @@ -895,6 +724,7 @@ export const data = [ eventType: 'track', sourceDefinitionId: '1TW48i2bIzEl1HPf825cEznfIM8', destinationDefinitionId: '', + userId: 'u1', }, ], batched: false, @@ -904,29 +734,14 @@ export const data = [ Config: { apiKey: 'apiKey', apiSecret: 'dummyApiSecret', - sessionEventList: [ - { - sessionEventName: 'test_event', - }, - ], - blacklistedEvents: [ - { - eventName: '', - }, - ], - whitelistedEvents: [ - { - eventName: '', - }, - ], + sessionEventList: [{ sessionEventName: 'test_event' }], + blacklistedEvents: [{ eventName: '' }], + whitelistedEvents: [{ eventName: '' }], eventFilteringOption: 'whitelistedEvents', eventDelivery: false, eventDeliveryTS: 1663919255086, }, - liveEventsConfig: { - eventDelivery: false, - eventDeliveryTS: 1663919255086, - }, + liveEventsConfig: { eventDelivery: false, eventDeliveryTS: 1663919255086 }, ID: '2EhlBrBduwN2NX4pJ7nrVDHAz6C', workspaceId: '1sUXvPs0hYgjBxSfjG4gqnRFNoP', DestinationDefinition: { diff --git a/test/integrations/destinations/slack/router/data.ts b/test/integrations/destinations/slack/router/data.ts index 87b1fe3b22..349b1a486f 100644 --- a/test/integrations/destinations/slack/router/data.ts +++ b/test/integrations/destinations/slack/router/data.ts @@ -17,28 +17,13 @@ export const data = [ ID: '1ZQUiJVMlmF7lfsdfXg7KXQnlLV', Name: 'SLACK', DisplayName: 'Slack', - Config: { - excludeKeys: [], - includeKeys: [], - }, + Config: { excludeKeys: [], includeKeys: [] }, }, Config: { eventChannelSettings: [ - { - eventChannel: '#slack_integration', - eventName: 'is', - eventRegex: true, - }, - { - eventChannel: '', - eventName: '', - eventRegex: false, - }, - { - eventChannel: '', - eventName: '', - eventRegex: false, - }, + { eventChannel: '#slack_integration', eventName: 'is', eventRegex: true }, + { eventChannel: '', eventName: '', eventRegex: false }, + { eventChannel: '', eventName: '', eventRegex: false }, ], eventTemplateSettings: [ { @@ -47,22 +32,11 @@ export const data = [ eventTemplate: '{{name}} performed {{event}} with {{properties.key1}} {{properties.key2}}', }, - { - eventName: '', - eventRegex: false, - eventTemplate: '', - }, + { eventName: '', eventRegex: false, eventTemplate: '' }, ], identifyTemplate: 'identified {{name}} with {{traits}}', webhookUrl: 'https://hooks.slack.com/services/THZM86VSS/BV9HZ2UN6/demo', - whitelistedTraitsSettings: [ - { - trait: 'hiji', - }, - { - trait: '', - }, - ], + whitelistedTraitsSettings: [{ trait: 'hiji' }, { trait: '' }], }, Enabled: true, Transformations: [], @@ -78,15 +52,9 @@ export const data = [ namespace: 'com.rudderlabs.javascript', version: '1.1.1-rc.1', }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.1.1-rc.1', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.1-rc.1' }, locale: 'en-US', - os: { - name: '', - version: '', - }, + os: { name: '', version: '' }, page: { path: '/tests/html/script-test.html', referrer: 'http://localhost:1111/tests/html/', @@ -94,9 +62,7 @@ export const data = [ title: '', url: 'http://localhost:1111/tests/html/script-test.html', }, - screen: { - density: 1.7999999523162842, - }, + screen: { density: 1.7999999523162842 }, traits: { country: 'India', email: 'name@domain.com', @@ -106,9 +72,7 @@ export const data = [ userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36', }, - integrations: { - All: true, - }, + integrations: { All: true }, messageId: '9ecc0183-89ed-48bd-87eb-b2d8e1ca6780', originalTimestamp: '2020-03-23T03:46:30.916Z', properties: { @@ -132,6 +96,7 @@ export const data = [ jobId: 126, messageId: '9ecc0183-89ed-48bd-87eb-b2d8e1ca6780', sourceId: '1YhwKyDcKstudlGxkeN5p2wgsrp', + userId: 'u1', }, }, ], @@ -187,6 +152,7 @@ export const data = [ jobId: 126, messageId: '9ecc0183-89ed-48bd-87eb-b2d8e1ca6780', sourceId: '1YhwKyDcKstudlGxkeN5p2wgsrp', + userId: 'u1', }, ], statTags: { @@ -223,28 +189,13 @@ export const data = [ ID: '1ZQUiJVMlmF7lfsdfXg7KXQnlLV', Name: 'SLACK', DisplayName: 'Slack', - Config: { - excludeKeys: [], - includeKeys: [], - }, + Config: { excludeKeys: [], includeKeys: [] }, }, Config: { eventChannelSettings: [ - { - eventChannel: '#slack_integration', - eventName: 'is', - eventRegex: true, - }, - { - eventChannel: '', - eventName: '', - eventRegex: false, - }, - { - eventChannel: '', - eventName: '', - eventRegex: false, - }, + { eventChannel: '#slack_integration', eventName: 'is', eventRegex: true }, + { eventChannel: '', eventName: '', eventRegex: false }, + { eventChannel: '', eventName: '', eventRegex: false }, ], eventTemplateSettings: [ { @@ -253,22 +204,11 @@ export const data = [ eventTemplate: '{{name}} performed {{event}} with {{properties.key1}} {{properties.key2}}', }, - { - eventName: '', - eventRegex: false, - eventTemplate: '', - }, + { eventName: '', eventRegex: false, eventTemplate: '' }, ], identifyTemplate: 'identified {{name}} with {{traits}}', webhookUrl: 'https://hooks.slack.com/services/THZM86VSS/BV9HZ2UN6/demo', - whitelistedTraitsSettings: [ - { - trait: 'hiji', - }, - { - trait: '', - }, - ], + whitelistedTraitsSettings: [{ trait: 'hiji' }, { trait: '' }], }, Enabled: true, Transformations: [], @@ -284,25 +224,11 @@ export const data = [ namespace: 'com.rudderlabs.javascript', version: '1.1.1-rc.1', }, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.1.1-rc.1', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.1-rc.1' }, locale: 'en-US', - os: { - name: '', - version: '', - }, - page: { - path: '', - referrer: '', - search: '', - title: '', - url: '', - }, - screen: { - density: 1.7999999523162842, - }, + os: { name: '', version: '' }, + page: { path: '', referrer: '', search: '', title: '', url: '' }, + screen: { density: 1.7999999523162842 }, traits: { country: 'India', email: 'name@domain.com', @@ -318,9 +244,7 @@ export const data = [ hiji: 'hulala-1', name: 'my-name-1', }, - integrations: { - All: true, - }, + integrations: { All: true }, messageId: '4aaecff2-a513-4bbf-9824-c471f4ac9777', originalTimestamp: '2020-03-23T03:41:46.122Z', receivedAt: '2020-03-23T09:11:46.244+05:30', @@ -337,6 +261,7 @@ export const data = [ jobId: 123, messageId: '4aaecff2-a513-4bbf-9824-c471f4ac9777', sourceId: '1YhwKyDcKstudlGxkeN5p2wgsrp', + userId: 'u1', }, }, ], @@ -413,6 +338,7 @@ export const data = [ jobId: 123, messageId: '4aaecff2-a513-4bbf-9824-c471f4ac9777', sourceId: '1YhwKyDcKstudlGxkeN5p2wgsrp', + userId: 'u1', }, ], statusCode: 200, diff --git a/test/integrations/destinations/snapchat_conversion/router/data.ts b/test/integrations/destinations/snapchat_conversion/router/data.ts index bfa9acd4d2..685ed2e5b4 100644 --- a/test/integrations/destinations/snapchat_conversion/router/data.ts +++ b/test/integrations/destinations/snapchat_conversion/router/data.ts @@ -69,6 +69,7 @@ export const data = [ }, metadata: { jobId: 1, + userId: 'u1', }, destination: { Config: { @@ -135,6 +136,7 @@ export const data = [ }, metadata: { jobId: 2, + userId: 'u1', }, destination: { Config: { @@ -201,6 +203,7 @@ export const data = [ }, metadata: { jobId: 3, + userId: 'u1', }, destination: { Config: { @@ -244,12 +247,15 @@ export const data = [ metadata: [ { jobId: 1, + userId: 'u1', }, { jobId: 2, + userId: 'u1', }, { jobId: 3, + userId: 'u1', }, ], batched: true, @@ -381,6 +387,7 @@ export const data = [ }, metadata: { jobId: 4, + userId: 'u1', }, destination: { Config: { @@ -412,6 +419,7 @@ export const data = [ metadata: [ { jobId: 4, + userId: 'u1', }, ], batched: false, diff --git a/test/integrations/destinations/snapchat_custom_audience/dataDelivery/data.ts b/test/integrations/destinations/snapchat_custom_audience/dataDelivery/data.ts index 2ed5625fe8..d8ec365a82 100644 --- a/test/integrations/destinations/snapchat_custom_audience/dataDelivery/data.ts +++ b/test/integrations/destinations/snapchat_custom_audience/dataDelivery/data.ts @@ -1,222 +1,206 @@ export const data = [ { - "name": "snapchat_custom_audience", - "description": "Test 0", - "feature": "dataDelivery", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://adsapi.snapchat.com/v1/segments/123/users", - "headers": { - "Authorization": "Bearer abcd123", - "Content-Type": "application/json" + name: 'snapchat_custom_audience', + description: 'Test 0', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://adsapi.snapchat.com/v1/segments/123/users', + headers: { + Authorization: 'Bearer abcd123', + 'Content-Type': 'application/json', }, - "body": { - "JSON": { - "users": [ + body: { + JSON: { + users: [ { - "schema": [ - "EMAIL_SHA256" - ], - "data": [ - [ - "938758751f5af66652a118e26503af824404bc13acd1cb7642ddff99916f0e1c" - ] - ] - } - ] + schema: ['EMAIL_SHA256'], + data: [['938758751f5af66652a118e26503af824404bc13acd1cb7642ddff99916f0e1c']], + }, + ], }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + params: { + destination: 'snapchat_custom_audience', }, - "files": {}, - "params": { - "destination": "snapchat_custom_audience" - } }, - "method": "POST" - } + method: 'POST', + }, }, - "output": { - "response": { - "status": 200, - "body": { - "output": { - "status": 200, - "message": "Request Processed Successfully", - "destinationResponse": { - "response": { - "request_status": "SUCCESS", - "request_id": "12345", - "users": [ + output: { + response: { + status: 200, + body: { + output: { + status: 200, + message: 'Request Processed Successfully', + destinationResponse: { + response: { + request_status: 'SUCCESS', + request_id: '12345', + users: [ { - "sub_request_status": "SUCCESS", - "user": { - "number_uploaded_users": 1 - } - } - ] + sub_request_status: 'SUCCESS', + user: { + number_uploaded_users: 1, + }, + }, + ], }, - "status": 200 - } - } - } - } - } + status: 200, + }, + }, + }, + }, + }, }, { - "name": "snapchat_custom_audience", - "description": "Test 1", - "feature": "dataDelivery", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://adsapi.snapchat.com/v1/segments/456/users", - "headers": { - "Authorization": "Bearer abcd123", - "Content-Type": "application/json" + name: 'snapchat_custom_audience', + description: 'Test 1', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://adsapi.snapchat.com/v1/segments/456/users', + headers: { + Authorization: 'Bearer abcd123', + 'Content-Type': 'application/json', }, - "body": { - "JSON": { - "users": [ + body: { + JSON: { + users: [ { - "schema": [ - "EMAIL_SHA256" - ], - "data": [ - [ - "938758751f5af66652a118e26503af824404bc13acd1cb7642ddff99916f0e1c" - ] - ] - } - ] + schema: ['EMAIL_SHA256'], + data: [['938758751f5af66652a118e26503af824404bc13acd1cb7642ddff99916f0e1c']], + }, + ], }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + params: { + destination: 'snapchat_custom_audience', }, - "files": {}, - "params": { - "destination": "snapchat_custom_audience" - } }, - "method": "POST" - } + method: 'POST', + }, }, - "output": { - "response": { - "status": 500, - "body": { - "output": { - "status": 500, - "destinationResponse": { - "response": "unauthorized", - "status": 401 + output: { + response: { + status: 500, + body: { + output: { + status: 500, + destinationResponse: { + response: 'unauthorized', + status: 401, }, - "message": "Failed with unauthorized during snapchat_custom_audience response transformation", - "statTags": { - "destType": "SNAPCHAT_CUSTOM_AUDIENCE", - "errorCategory": "network", - "destinationId": "Non-determininable", - "workspaceId": "Non-determininable", - "errorType": "retryable", - "feature": "dataDelivery", - "implementation": "native", - "module": "destination" + message: + 'Failed with unauthorized during snapchat_custom_audience response transformation', + statTags: { + destType: 'SNAPCHAT_CUSTOM_AUDIENCE', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'retryable', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', }, - "authErrorCategory": "REFRESH_TOKEN" - } - } - } - } + authErrorCategory: 'REFRESH_TOKEN', + }, + }, + }, + }, }, { - "name": "snapchat_custom_audience", - "description": "Test 2", - "feature": "dataDelivery", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": { - "version": "1", - "type": "REST", - "method": "DELETE", - "endpoint": "https://adsapi.snapchat.com/v1/segments/789/users", - "headers": { - "Authorization": "Bearer abcd123", - "Content-Type": "application/json" + name: 'snapchat_custom_audience', + description: 'Test 2', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'DELETE', + endpoint: 'https://adsapi.snapchat.com/v1/segments/789/users', + headers: { + Authorization: 'Bearer abcd123', + 'Content-Type': 'application/json', }, - "body": { - "JSON": { - "users": [ + body: { + JSON: { + users: [ { - "id": "123456", - "schema": [ - "EMAIL_SHA256" - ], - "data": [ - [ - "938758751f5af66652a118e26503af824404bc13acd1cb7642ddff99916f0e1c" - ] - ] - } - ] + id: '123456', + schema: ['EMAIL_SHA256'], + data: [['938758751f5af66652a118e26503af824404bc13acd1cb7642ddff99916f0e1c']], + }, + ], }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + params: { + destination: 'snapchat_custom_audience', }, - "files": {}, - "params": { - "destination": "snapchat_custom_audience" - } }, - "method": "POST" - } + method: 'POST', + }, }, - "output": { - "response": { - "status": 400, - "body": { - "output": { - "authErrorCategory": "AUTH_STATUS_INACTIVE", - "status": 400, - "destinationResponse": { - "response": { - "request_status": "ERROR", - "request_id": "98e2a602-3cf4-4596-a8f9-7f034161f89a", - "debug_message": "Caller does not have permission", - "display_message": "We're sorry, but the requested resource is not available at this time", - "error_code": "E3002" + output: { + response: { + status: 400, + body: { + output: { + authErrorCategory: 'AUTH_STATUS_INACTIVE', + status: 400, + destinationResponse: { + response: { + request_status: 'ERROR', + request_id: '98e2a602-3cf4-4596-a8f9-7f034161f89a', + debug_message: 'Caller does not have permission', + display_message: + "We're sorry, but the requested resource is not available at this time", + error_code: 'E3002', }, - "status": 403 + status: 403, }, - "message": "undefined during snapchat_custom_audience response transformation", - "statTags": { - "destType": "SNAPCHAT_CUSTOM_AUDIENCE", - "errorCategory": "network", - "destinationId": "Non-determininable", - "workspaceId": "Non-determininable", - "errorType": "aborted", - "feature": "dataDelivery", - "implementation": "native", - "module": "destination" - } - } - } - } - } - } -] \ No newline at end of file + message: 'undefined during snapchat_custom_audience response transformation', + statTags: { + destType: 'SNAPCHAT_CUSTOM_AUDIENCE', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'aborted', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + }, + }, + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/snapchat_custom_audience/processor/data.ts b/test/integrations/destinations/snapchat_custom_audience/processor/data.ts index 9ad6106c7e..546f056fa4 100644 --- a/test/integrations/destinations/snapchat_custom_audience/processor/data.ts +++ b/test/integrations/destinations/snapchat_custom_audience/processor/data.ts @@ -1,1404 +1,1351 @@ export const data = [ - { - "name": "snapchat_custom_audience", - "description": "Test 0", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "metadata": { - "secret": { - "access_token": "dummyAccessToken", - "refresh_token": "dummyRefreshToken", - "developer_token": "dummyDeveloperToken" - } - }, - "destination": { - "Config": { - "segmentId": "123", - "disableHashing": false, - "schema": "email" - } - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [ - { - "email": "test@abc.com", - "phone": "@09876543210", - "firstName": "test", - "lastName": "rudderlabs", - "country": "US", - "postalCode": "1245" - } - ] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://adsapi.snapchat.com/v1/segments/123/users", - "headers": { - "Authorization": "Bearer dummyAccessToken", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "users": [ - { - "schema": [ - "EMAIL_SHA256" - ], - "data": [ - [ - "d3142c8f9c9129484daf28df80cc5c955791efed5e69afabb603bc8cb9ffd419" - ] - ] - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "metadata": { - "secret": { - "access_token": "dummyAccessToken", - "refresh_token": "dummyRefreshToken", - "developer_token": "dummyDeveloperToken" - } - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "snapchat_custom_audience", - "description": "Test 1", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "metadata": { - "secret": { - "access_token": "dummyAccessToken", - "refresh_token": "dummyRefreshToken", - "developer_token": "dummyDeveloperToken" - } - }, - "destination": { - "Config": { - "segmentId": "123", - "disableHashing": true, - "schema": "email" - } - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "remove": [ - { - "email": "d3142c8f9c9129484daf28df80cc5c955791efed5e69afabb603bc8cb9ffd419", - "phone": "@09876543210", - "firstName": "test", - "lastName": "rudderlabs", - "country": "US", - "postalCode": "1245" - } - ] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "DELETE", - "endpoint": "https://adsapi.snapchat.com/v1/segments/123/users", - "headers": { - "Authorization": "Bearer dummyAccessToken", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "users": [ - { - "schema": [ - "EMAIL_SHA256" - ], - "data": [ - [ - "d3142c8f9c9129484daf28df80cc5c955791efed5e69afabb603bc8cb9ffd419" - ] - ], - "id": "123" - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "metadata": { - "secret": { - "access_token": "dummyAccessToken", - "refresh_token": "dummyRefreshToken", - "developer_token": "dummyDeveloperToken" - } - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "snapchat_custom_audience", - "description": "Test 2", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "metadata": { - "secret": { - "access_token": "dummyAccessToken", - "refresh_token": "dummyRefreshToken", - "developer_token": "dummyDeveloperToken" - } - }, - "destination": { - "Config": { - "segmentId": "123", - "disableHashing": false, - "schema": "email" - } - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [ - { - "email": "test@abc.com", - "phone": "@09876543210", - "firstName": "test", - "lastName": "rudderlabs", - "country": "US", - "postalCode": "1245" - } - ], - "remove": [ - { - "email": "test@abc.com", - "phone": "@09876543210", - "firstName": "test", - "lastName": "rudderlabs", - "country": "US", - "postalCode": "1245" - } - ] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://adsapi.snapchat.com/v1/segments/123/users", - "headers": { - "Authorization": "Bearer dummyAccessToken", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "users": [ - { - "schema": [ - "EMAIL_SHA256" - ], - "data": [ - [ - "d3142c8f9c9129484daf28df80cc5c955791efed5e69afabb603bc8cb9ffd419" - ] - ] - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "metadata": { - "secret": { - "access_token": "dummyAccessToken", - "refresh_token": "dummyRefreshToken", - "developer_token": "dummyDeveloperToken" - } - }, - "statusCode": 200 - }, - { - "output": { - "version": "1", - "type": "REST", - "method": "DELETE", - "endpoint": "https://adsapi.snapchat.com/v1/segments/123/users", - "headers": { - "Authorization": "Bearer dummyAccessToken", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "users": [ - { - "schema": [ - "EMAIL_SHA256" - ], - "data": [ - [ - "d3142c8f9c9129484daf28df80cc5c955791efed5e69afabb603bc8cb9ffd419" - ] - ], - "id": "123" - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "metadata": { - "secret": { - "access_token": "dummyAccessToken", - "refresh_token": "dummyRefreshToken", - "developer_token": "dummyDeveloperToken" - } - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "snapchat_custom_audience", - "description": "Test 3", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "metadata": { - "secret": { - "access_token": "dummyAccessToken", - "refresh_token": "dummyRefreshToken", - "developer_token": "dummyDeveloperToken" - } - }, - "destination": { - "Config": { - "segmentId": "123", - "disableHashing": false, - "schema": "email" - } - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [ - { - "email": "test@abc.com", - "phone": "@09876543210", - "firstName": "test", - "lastName": "rudderlabs", - "country": "US", - "postalCode": "1245" - }, - { - "email": "test@rudderstack.com", - "phone": "@09876543210", - "firstName": "rudderlabs", - "lastName": "rudderlabs", - "country": "US", - "postalCode": "1245" - } - ] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://adsapi.snapchat.com/v1/segments/123/users", - "headers": { - "Authorization": "Bearer dummyAccessToken", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "users": [ - { - "schema": [ - "EMAIL_SHA256" - ], - "data": [ - [ - "d3142c8f9c9129484daf28df80cc5c955791efed5e69afabb603bc8cb9ffd419" - ], - [ - "1c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd" - ] - ] - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "metadata": { - "secret": { - "access_token": "dummyAccessToken", - "refresh_token": "dummyRefreshToken", - "developer_token": "dummyDeveloperToken" - } - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "snapchat_custom_audience", - "description": "Test 4", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "metadata": { - "secret": { - "access_token": "dummyAccessToken", - "refresh_token": "dummyRefreshToken", - "developer_token": "dummyDeveloperToken" - } - }, - "destination": { - "Config": { - "segmentId": "123", - "disableHashing": false, - "schema": "email" - } - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "remove": [ - { - "email": "test@abc.com", - "phone": "@09876543210", - "firstName": "test", - "lastName": "rudderlabs", - "country": "US", - "postalCode": "1245" - }, - { - "email": "test@rudderstack.com", - "phone": "@09876543210", - "firstName": "rudderlabs", - "lastName": "rudderlabs", - "country": "US", - "postalCode": "1245" - } - ] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "DELETE", - "endpoint": "https://adsapi.snapchat.com/v1/segments/123/users", - "headers": { - "Authorization": "Bearer dummyAccessToken", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "users": [ - { - "schema": [ - "EMAIL_SHA256" - ], - "data": [ - [ - "d3142c8f9c9129484daf28df80cc5c955791efed5e69afabb603bc8cb9ffd419" - ], - [ - "1c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd" - ] - ], - "id": "123" - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "metadata": { - "secret": { - "access_token": "dummyAccessToken", - "refresh_token": "dummyRefreshToken", - "developer_token": "dummyDeveloperToken" - } - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "snapchat_custom_audience", - "description": "Test 5", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "metadata": { - "secret": { - "access_token": "dummyAccessToken", - "refresh_token": "dummyRefreshToken", - "developer_token": "dummyDeveloperToken" - } - }, - "destination": { - "Config": { - "segmentId": "123", - "disableHashing": false, - "schema": "email" - } - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audience", - "properties": { - "listData": { - "add": [ - { - "email": "test@rudderstack.com", - "phone": "@09876543210", - "firstName": "rudderlabs", - "lastName": "rudderlabs", - "country": "US", - "postalCode": "1245" - } - ] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "metadata": { - "secret": { - "access_token": "dummyAccessToken", - "refresh_token": "dummyRefreshToken", - "developer_token": "dummyDeveloperToken" - } - }, - "statusCode": 400, - "error": "Event type audience is not supported", - "statTags": { - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "destType": "SNAPCHAT_CUSTOM_AUDIENCE", - "module": "destination", - "implementation": "native", - "feature": "processor" - } - } - ] - } - } - }, - { - "name": "snapchat_custom_audience", - "description": "Test 6", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "metadata": { - "secret": { - "access_token": "dummyAccessToken", - "refresh_token": "dummyRefreshToken", - "developer_token": "dummyDeveloperToken" - } - }, - "destination": { - "Config": { - "segmentId": "123", - "disableHashing": false, - "schema": "email" - } - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "properties": { - "listData": { - "add": [ - { - "email": "test@rudderstack.com", - "phone": "@09876543210", - "firstName": "rudderlabs", - "lastName": "rudderlabs", - "country": "US", - "postalCode": "1245" - } - ] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "metadata": { - "secret": { - "access_token": "dummyAccessToken", - "refresh_token": "dummyRefreshToken", - "developer_token": "dummyDeveloperToken" - } - }, - "statusCode": 400, - "error": "Event type is required", - "statTags": { - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "destType": "SNAPCHAT_CUSTOM_AUDIENCE", - "module": "destination", - "implementation": "native", - "feature": "processor" - } - } - ] - } - } - }, - { - "name": "snapchat_custom_audience", - "description": "Test 7", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "metadata": { - "secret": { - "access_token": "dummyAccessToken", - "refresh_token": "dummyRefreshToken", - "developer_token": "dummyDeveloperToken" - } - }, - "destination": { - "Config": { - "segmentId": "123", - "disableHashing": false, - "schema": "email" - } - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "metadata": { - "secret": { - "access_token": "dummyAccessToken", - "refresh_token": "dummyRefreshToken", - "developer_token": "dummyDeveloperToken" - } - }, - "statusCode": 400, - "error": "Message properties is not present. Aborting message", - "statTags": { - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "destType": "SNAPCHAT_CUSTOM_AUDIENCE", - "module": "destination", - "implementation": "native", - "feature": "processor" - } - } - ] - } - } - }, - { - "name": "snapchat_custom_audience", - "description": "Test 8", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "metadata": { - "secret": { - "access_token": "dummyAccessToken", - "refresh_token": "dummyRefreshToken", - "developer_token": "dummyDeveloperToken" - } - }, - "destination": { - "Config": { - "segmentId": "123", - "disableHashing": false, - "schema": "email" - } - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "metadata": { - "secret": { - "access_token": "dummyAccessToken", - "refresh_token": "dummyRefreshToken", - "developer_token": "dummyDeveloperToken" - } - }, - "statusCode": 400, - "error": "listData is not present inside properties. Aborting message", - "statTags": { - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "destType": "SNAPCHAT_CUSTOM_AUDIENCE", - "module": "destination", - "implementation": "native", - "feature": "processor" - } - } - ] - } - } - }, - { - "name": "snapchat_custom_audience", - "description": "Test 9", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "metadata": { - "secret": { - "access_token": "dummyAccessToken", - "refresh_token": "dummyRefreshToken", - "developer_token": "dummyDeveloperToken" - } - }, - "destination": { - "Config": { - "segmentId": "123", - "disableHashing": false, - "schema": "email" - } - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "abc": "123" - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "metadata": { - "secret": { - "access_token": "dummyAccessToken", - "refresh_token": "dummyRefreshToken", - "developer_token": "dummyDeveloperToken" - } - }, - "statusCode": 400, - "error": "Neither 'add' nor 'remove' property is present inside 'listData'. Aborting message", - "statTags": { - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "destType": "SNAPCHAT_CUSTOM_AUDIENCE", - "module": "destination", - "implementation": "native", - "feature": "processor" - } - } - ] - } - } - }, - { - "name": "snapchat_custom_audience", - "description": "Test 10", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "metadata": { - "secret": { - "access_token": "dummyAccessToken", - "refresh_token": "dummyRefreshToken", - "developer_token": "dummyDeveloperToken" - } - }, - "destination": { - "Config": { - "segmentId": "123", - "disableHashing": false, - "schema": "email" - } - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "remove": [ - { - "email": "", - "phone": "@09876543210", - "firstName": "test", - "lastName": "rudderlabs", - "country": "US", - "postalCode": "1245" - }, - { - "phone": "@09876543210", - "firstName": "test", - "lastName": "rudderlabs", - "country": "US", - "postalCode": "1245" - } - ] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "metadata": { - "secret": { - "access_token": "dummyAccessToken", - "refresh_token": "dummyRefreshToken", - "developer_token": "dummyDeveloperToken" - } - }, - "statusCode": 400, - "error": "Required schema parameter email is not found from payload", - "statTags": { - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "destType": "SNAPCHAT_CUSTOM_AUDIENCE", - "module": "destination", - "implementation": "native", - "feature": "processor" - } - } - ] - } - } - }, - { - "name": "snapchat_custom_audience", - "description": "Test 11", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "metadata": { - "secret": { - "access_token": "dummyAccessToken", - "refresh_token": "dummyRefreshToken", - "developer_token": "dummyDeveloperToken" - } - }, - "destination": { - "Config": { - "segmentId": "123", - "disableHashing": false, - "schema": "email" - } - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "remove": [ - { - "email": "abcd@abc.com", - "phone": "@09876543210", - "firstName": "test", - "lastName": "rudderlabs", - "country": "US", - "postalCode": "1245" - }, - { - "phone": "@09876543210", - "firstName": "test", - "lastName": "rudderlabs", - "country": "US", - "postalCode": "1245" - } - ] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "DELETE", - "endpoint": "https://adsapi.snapchat.com/v1/segments/123/users", - "headers": { - "Authorization": "Bearer dummyAccessToken", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "users": [ - { - "schema": [ - "EMAIL_SHA256" - ], - "data": [ - [ - "8c37cbc5d9abb3082303c6548571cfc7655a4546ddc1e943f041fc9126e7274a" - ] - ], - "id": "123" - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "metadata": { - "secret": { - "access_token": "dummyAccessToken", - "refresh_token": "dummyRefreshToken", - "developer_token": "dummyDeveloperToken" - } - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "snapchat_custom_audience", - "description": "Test 12", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "metadata": { - "secret": { - "access_token": "dummyAccessToken", - "refresh_token": "dummyRefreshToken", - "developer_token": "dummyDeveloperToken" - } - }, - "destination": { - "Config": { - "segmentId": "123", - "disableHashing": false, - "schema": "phone" - } - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [ - { - "email": "test@abc.com", - "phone": "09876543210", - "firstName": "test", - "lastName": "rudderlabs", - "country": "US", - "postalCode": "1245" - } - ] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://adsapi.snapchat.com/v1/segments/123/users", - "headers": { - "Authorization": "Bearer dummyAccessToken", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "users": [ - { - "schema": [ - "PHONE_SHA256" - ], - "data": [ - [ - "7619ee8cea49187f309616e30ecf54be072259b43760f1f550a644945d5572f2" - ] - ] - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "metadata": { - "secret": { - "access_token": "dummyAccessToken", - "refresh_token": "dummyRefreshToken", - "developer_token": "dummyDeveloperToken" - } - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "snapchat_custom_audience", - "description": "Test 13", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "metadata": { - "secret": { - "access_token": "dummyAccessToken", - "refresh_token": "dummyRefreshToken", - "developer_token": "dummyDeveloperToken" - } - }, - "destination": { - "Config": { - "segmentId": "123", - "disableHashing": false, - "schema": "mobileAdId" - } - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [ - { - "email": "test@abc.com", - "phone": "09876543210", - "mobileId": "1334", - "firstName": "test", - "lastName": "rudderlabs", - "country": "US", - "postalCode": "1245" - } - ] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://adsapi.snapchat.com/v1/segments/123/users", - "headers": { - "Authorization": "Bearer dummyAccessToken", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "users": [ - { - "schema": [ - "MOBILE_AD_ID_SHA256" - ], - "data": [ - [ - "eb43272640b269219a01caf99c5a4122d6edc0916d45ac13c0ce80ca3ad2def0" - ] - ] - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "metadata": { - "secret": { - "access_token": "dummyAccessToken", - "refresh_token": "dummyRefreshToken", - "developer_token": "dummyDeveloperToken" - } - }, - "statusCode": 200 - } - ] - } - } - } -] \ No newline at end of file + { + name: 'snapchat_custom_audience', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + metadata: { + secret: { + access_token: 'dummyAccessToken', + refresh_token: 'dummyRefreshToken', + developer_token: 'dummyDeveloperToken', + }, + }, + destination: { + Config: { + segmentId: '123', + disableHashing: false, + schema: 'email', + }, + }, + message: { + userId: 'user 1', + anonymousId: 'anon-id-new', + event: 'event1', + type: 'audiencelist', + properties: { + listData: { + add: [ + { + email: 'test@abc.com', + phone: '@09876543210', + firstName: 'test', + lastName: 'rudderlabs', + country: 'US', + postalCode: '1245', + }, + ], + }, + enablePartialFailure: true, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://adsapi.snapchat.com/v1/segments/123/users', + headers: { + Authorization: 'Bearer dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + users: [ + { + schema: ['EMAIL_SHA256'], + data: [['d3142c8f9c9129484daf28df80cc5c955791efed5e69afabb603bc8cb9ffd419']], + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + secret: { + access_token: 'dummyAccessToken', + refresh_token: 'dummyRefreshToken', + developer_token: 'dummyDeveloperToken', + }, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'snapchat_custom_audience', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + metadata: { + secret: { + access_token: 'dummyAccessToken', + refresh_token: 'dummyRefreshToken', + developer_token: 'dummyDeveloperToken', + }, + }, + destination: { + Config: { + segmentId: '123', + disableHashing: true, + schema: 'email', + }, + }, + message: { + userId: 'user 1', + anonymousId: 'anon-id-new', + event: 'event1', + type: 'audiencelist', + properties: { + listData: { + remove: [ + { + email: 'd3142c8f9c9129484daf28df80cc5c955791efed5e69afabb603bc8cb9ffd419', + phone: '@09876543210', + firstName: 'test', + lastName: 'rudderlabs', + country: 'US', + postalCode: '1245', + }, + ], + }, + enablePartialFailure: true, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'DELETE', + endpoint: 'https://adsapi.snapchat.com/v1/segments/123/users', + headers: { + Authorization: 'Bearer dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + users: [ + { + schema: ['EMAIL_SHA256'], + data: [['d3142c8f9c9129484daf28df80cc5c955791efed5e69afabb603bc8cb9ffd419']], + id: '123', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + secret: { + access_token: 'dummyAccessToken', + refresh_token: 'dummyRefreshToken', + developer_token: 'dummyDeveloperToken', + }, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'snapchat_custom_audience', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + metadata: { + secret: { + access_token: 'dummyAccessToken', + refresh_token: 'dummyRefreshToken', + developer_token: 'dummyDeveloperToken', + }, + }, + destination: { + Config: { + segmentId: '123', + disableHashing: false, + schema: 'email', + }, + }, + message: { + userId: 'user 1', + anonymousId: 'anon-id-new', + event: 'event1', + type: 'audiencelist', + properties: { + listData: { + add: [ + { + email: 'test@abc.com', + phone: '@09876543210', + firstName: 'test', + lastName: 'rudderlabs', + country: 'US', + postalCode: '1245', + }, + ], + remove: [ + { + email: 'test@abc.com', + phone: '@09876543210', + firstName: 'test', + lastName: 'rudderlabs', + country: 'US', + postalCode: '1245', + }, + ], + }, + enablePartialFailure: true, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://adsapi.snapchat.com/v1/segments/123/users', + headers: { + Authorization: 'Bearer dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + users: [ + { + schema: ['EMAIL_SHA256'], + data: [['d3142c8f9c9129484daf28df80cc5c955791efed5e69afabb603bc8cb9ffd419']], + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + secret: { + access_token: 'dummyAccessToken', + refresh_token: 'dummyRefreshToken', + developer_token: 'dummyDeveloperToken', + }, + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'DELETE', + endpoint: 'https://adsapi.snapchat.com/v1/segments/123/users', + headers: { + Authorization: 'Bearer dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + users: [ + { + schema: ['EMAIL_SHA256'], + data: [['d3142c8f9c9129484daf28df80cc5c955791efed5e69afabb603bc8cb9ffd419']], + id: '123', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + secret: { + access_token: 'dummyAccessToken', + refresh_token: 'dummyRefreshToken', + developer_token: 'dummyDeveloperToken', + }, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'snapchat_custom_audience', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + metadata: { + secret: { + access_token: 'dummyAccessToken', + refresh_token: 'dummyRefreshToken', + developer_token: 'dummyDeveloperToken', + }, + }, + destination: { + Config: { + segmentId: '123', + disableHashing: false, + schema: 'email', + }, + }, + message: { + userId: 'user 1', + anonymousId: 'anon-id-new', + event: 'event1', + type: 'audiencelist', + properties: { + listData: { + add: [ + { + email: 'test@abc.com', + phone: '@09876543210', + firstName: 'test', + lastName: 'rudderlabs', + country: 'US', + postalCode: '1245', + }, + { + email: 'test@rudderstack.com', + phone: '@09876543210', + firstName: 'rudderlabs', + lastName: 'rudderlabs', + country: 'US', + postalCode: '1245', + }, + ], + }, + enablePartialFailure: true, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://adsapi.snapchat.com/v1/segments/123/users', + headers: { + Authorization: 'Bearer dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + users: [ + { + schema: ['EMAIL_SHA256'], + data: [ + ['d3142c8f9c9129484daf28df80cc5c955791efed5e69afabb603bc8cb9ffd419'], + ['1c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd'], + ], + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + secret: { + access_token: 'dummyAccessToken', + refresh_token: 'dummyRefreshToken', + developer_token: 'dummyDeveloperToken', + }, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'snapchat_custom_audience', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + metadata: { + secret: { + access_token: 'dummyAccessToken', + refresh_token: 'dummyRefreshToken', + developer_token: 'dummyDeveloperToken', + }, + }, + destination: { + Config: { + segmentId: '123', + disableHashing: false, + schema: 'email', + }, + }, + message: { + userId: 'user 1', + anonymousId: 'anon-id-new', + event: 'event1', + type: 'audiencelist', + properties: { + listData: { + remove: [ + { + email: 'test@abc.com', + phone: '@09876543210', + firstName: 'test', + lastName: 'rudderlabs', + country: 'US', + postalCode: '1245', + }, + { + email: 'test@rudderstack.com', + phone: '@09876543210', + firstName: 'rudderlabs', + lastName: 'rudderlabs', + country: 'US', + postalCode: '1245', + }, + ], + }, + enablePartialFailure: true, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'DELETE', + endpoint: 'https://adsapi.snapchat.com/v1/segments/123/users', + headers: { + Authorization: 'Bearer dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + users: [ + { + schema: ['EMAIL_SHA256'], + data: [ + ['d3142c8f9c9129484daf28df80cc5c955791efed5e69afabb603bc8cb9ffd419'], + ['1c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd'], + ], + id: '123', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + secret: { + access_token: 'dummyAccessToken', + refresh_token: 'dummyRefreshToken', + developer_token: 'dummyDeveloperToken', + }, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'snapchat_custom_audience', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + metadata: { + secret: { + access_token: 'dummyAccessToken', + refresh_token: 'dummyRefreshToken', + developer_token: 'dummyDeveloperToken', + }, + }, + destination: { + Config: { + segmentId: '123', + disableHashing: false, + schema: 'email', + }, + }, + message: { + userId: 'user 1', + anonymousId: 'anon-id-new', + event: 'event1', + type: 'audience', + properties: { + listData: { + add: [ + { + email: 'test@rudderstack.com', + phone: '@09876543210', + firstName: 'rudderlabs', + lastName: 'rudderlabs', + country: 'US', + postalCode: '1245', + }, + ], + }, + enablePartialFailure: true, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + secret: { + access_token: 'dummyAccessToken', + refresh_token: 'dummyRefreshToken', + developer_token: 'dummyDeveloperToken', + }, + }, + statusCode: 400, + error: 'Event type audience is not supported', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'SNAPCHAT_CUSTOM_AUDIENCE', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'snapchat_custom_audience', + description: 'Test 6', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + metadata: { + secret: { + access_token: 'dummyAccessToken', + refresh_token: 'dummyRefreshToken', + developer_token: 'dummyDeveloperToken', + }, + }, + destination: { + Config: { + segmentId: '123', + disableHashing: false, + schema: 'email', + }, + }, + message: { + userId: 'user 1', + anonymousId: 'anon-id-new', + event: 'event1', + properties: { + listData: { + add: [ + { + email: 'test@rudderstack.com', + phone: '@09876543210', + firstName: 'rudderlabs', + lastName: 'rudderlabs', + country: 'US', + postalCode: '1245', + }, + ], + }, + enablePartialFailure: true, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + secret: { + access_token: 'dummyAccessToken', + refresh_token: 'dummyRefreshToken', + developer_token: 'dummyDeveloperToken', + }, + }, + statusCode: 400, + error: 'Event type is required', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'SNAPCHAT_CUSTOM_AUDIENCE', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'snapchat_custom_audience', + description: 'Test 7', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + metadata: { + secret: { + access_token: 'dummyAccessToken', + refresh_token: 'dummyRefreshToken', + developer_token: 'dummyDeveloperToken', + }, + }, + destination: { + Config: { + segmentId: '123', + disableHashing: false, + schema: 'email', + }, + }, + message: { + userId: 'user 1', + anonymousId: 'anon-id-new', + event: 'event1', + type: 'audiencelist', + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + secret: { + access_token: 'dummyAccessToken', + refresh_token: 'dummyRefreshToken', + developer_token: 'dummyDeveloperToken', + }, + }, + statusCode: 400, + error: 'Message properties is not present. Aborting message', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'SNAPCHAT_CUSTOM_AUDIENCE', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'snapchat_custom_audience', + description: 'Test 8', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + metadata: { + secret: { + access_token: 'dummyAccessToken', + refresh_token: 'dummyRefreshToken', + developer_token: 'dummyDeveloperToken', + }, + }, + destination: { + Config: { + segmentId: '123', + disableHashing: false, + schema: 'email', + }, + }, + message: { + userId: 'user 1', + anonymousId: 'anon-id-new', + event: 'event1', + type: 'audiencelist', + properties: { + enablePartialFailure: true, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + secret: { + access_token: 'dummyAccessToken', + refresh_token: 'dummyRefreshToken', + developer_token: 'dummyDeveloperToken', + }, + }, + statusCode: 400, + error: 'listData is not present inside properties. Aborting message', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'SNAPCHAT_CUSTOM_AUDIENCE', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'snapchat_custom_audience', + description: 'Test 9', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + metadata: { + secret: { + access_token: 'dummyAccessToken', + refresh_token: 'dummyRefreshToken', + developer_token: 'dummyDeveloperToken', + }, + }, + destination: { + Config: { + segmentId: '123', + disableHashing: false, + schema: 'email', + }, + }, + message: { + userId: 'user 1', + anonymousId: 'anon-id-new', + event: 'event1', + type: 'audiencelist', + properties: { + listData: { + abc: '123', + }, + enablePartialFailure: true, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + secret: { + access_token: 'dummyAccessToken', + refresh_token: 'dummyRefreshToken', + developer_token: 'dummyDeveloperToken', + }, + }, + statusCode: 400, + error: + "Neither 'add' nor 'remove' property is present inside 'listData'. Aborting message", + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'SNAPCHAT_CUSTOM_AUDIENCE', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'snapchat_custom_audience', + description: 'Test 10', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + metadata: { + secret: { + access_token: 'dummyAccessToken', + refresh_token: 'dummyRefreshToken', + developer_token: 'dummyDeveloperToken', + }, + }, + destination: { + Config: { + segmentId: '123', + disableHashing: false, + schema: 'email', + }, + }, + message: { + userId: 'user 1', + anonymousId: 'anon-id-new', + event: 'event1', + type: 'audiencelist', + properties: { + listData: { + remove: [ + { + email: '', + phone: '@09876543210', + firstName: 'test', + lastName: 'rudderlabs', + country: 'US', + postalCode: '1245', + }, + { + phone: '@09876543210', + firstName: 'test', + lastName: 'rudderlabs', + country: 'US', + postalCode: '1245', + }, + ], + }, + enablePartialFailure: true, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + secret: { + access_token: 'dummyAccessToken', + refresh_token: 'dummyRefreshToken', + developer_token: 'dummyDeveloperToken', + }, + }, + statusCode: 400, + error: 'Required schema parameter email is not found from payload', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'SNAPCHAT_CUSTOM_AUDIENCE', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'snapchat_custom_audience', + description: 'Test 11', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + metadata: { + secret: { + access_token: 'dummyAccessToken', + refresh_token: 'dummyRefreshToken', + developer_token: 'dummyDeveloperToken', + }, + }, + destination: { + Config: { + segmentId: '123', + disableHashing: false, + schema: 'email', + }, + }, + message: { + userId: 'user 1', + anonymousId: 'anon-id-new', + event: 'event1', + type: 'audiencelist', + properties: { + listData: { + remove: [ + { + email: 'abcd@abc.com', + phone: '@09876543210', + firstName: 'test', + lastName: 'rudderlabs', + country: 'US', + postalCode: '1245', + }, + { + phone: '@09876543210', + firstName: 'test', + lastName: 'rudderlabs', + country: 'US', + postalCode: '1245', + }, + ], + }, + enablePartialFailure: true, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'DELETE', + endpoint: 'https://adsapi.snapchat.com/v1/segments/123/users', + headers: { + Authorization: 'Bearer dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + users: [ + { + schema: ['EMAIL_SHA256'], + data: [['8c37cbc5d9abb3082303c6548571cfc7655a4546ddc1e943f041fc9126e7274a']], + id: '123', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + secret: { + access_token: 'dummyAccessToken', + refresh_token: 'dummyRefreshToken', + developer_token: 'dummyDeveloperToken', + }, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'snapchat_custom_audience', + description: 'Test 12', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + metadata: { + secret: { + access_token: 'dummyAccessToken', + refresh_token: 'dummyRefreshToken', + developer_token: 'dummyDeveloperToken', + }, + }, + destination: { + Config: { + segmentId: '123', + disableHashing: false, + schema: 'phone', + }, + }, + message: { + userId: 'user 1', + anonymousId: 'anon-id-new', + event: 'event1', + type: 'audiencelist', + properties: { + listData: { + add: [ + { + email: 'test@abc.com', + phone: '09876543210', + firstName: 'test', + lastName: 'rudderlabs', + country: 'US', + postalCode: '1245', + }, + ], + }, + enablePartialFailure: true, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://adsapi.snapchat.com/v1/segments/123/users', + headers: { + Authorization: 'Bearer dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + users: [ + { + schema: ['PHONE_SHA256'], + data: [['7619ee8cea49187f309616e30ecf54be072259b43760f1f550a644945d5572f2']], + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + secret: { + access_token: 'dummyAccessToken', + refresh_token: 'dummyRefreshToken', + developer_token: 'dummyDeveloperToken', + }, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'snapchat_custom_audience', + description: 'Test 13', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + metadata: { + secret: { + access_token: 'dummyAccessToken', + refresh_token: 'dummyRefreshToken', + developer_token: 'dummyDeveloperToken', + }, + }, + destination: { + Config: { + segmentId: '123', + disableHashing: false, + schema: 'mobileAdId', + }, + }, + message: { + userId: 'user 1', + anonymousId: 'anon-id-new', + event: 'event1', + type: 'audiencelist', + properties: { + listData: { + add: [ + { + email: 'test@abc.com', + phone: '09876543210', + mobileId: '1334', + firstName: 'test', + lastName: 'rudderlabs', + country: 'US', + postalCode: '1245', + }, + ], + }, + enablePartialFailure: true, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://adsapi.snapchat.com/v1/segments/123/users', + headers: { + Authorization: 'Bearer dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + users: [ + { + schema: ['MOBILE_AD_ID_SHA256'], + data: [['eb43272640b269219a01caf99c5a4122d6edc0916d45ac13c0ce80ca3ad2def0']], + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + secret: { + access_token: 'dummyAccessToken', + refresh_token: 'dummyRefreshToken', + developer_token: 'dummyDeveloperToken', + }, + }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/snapchat_custom_audience/router/data.ts b/test/integrations/destinations/snapchat_custom_audience/router/data.ts index 2807201e73..44fdb4b47b 100644 --- a/test/integrations/destinations/snapchat_custom_audience/router/data.ts +++ b/test/integrations/destinations/snapchat_custom_audience/router/data.ts @@ -1,13 +1,9 @@ -import { FEATURES, MODULES } from '../../../../../src/v0/util/tags'; - -const DEST_TYPE = 'snapchat_custom_audience'; - export const data = [ { - name: DEST_TYPE, + name: 'snapchat_custom_audience', description: 'Test 0', - feature: FEATURES.ROUTER, - module: MODULES.DESTINATION, + feature: 'router', + module: 'destination', version: 'v0', input: { request: { @@ -20,14 +16,9 @@ export const data = [ refresh_token: 'dummyRefreshToken', developer_token: 'dummyDeveloperToken', }, + userId: 'u1', }, - destination: { - Config: { - segmentId: '123', - disableHashing: false, - schema: 'email', - }, - }, + destination: { Config: { segmentId: '123', disableHashing: false, schema: 'email' } }, message: { userId: 'user 1', anonymousId: 'anon-id-new', @@ -48,17 +39,12 @@ export const data = [ }, enablePartialFailure: true, }, - context: { - ip: '14.5.67.21', - library: { - name: 'http', - }, - }, + context: { ip: '14.5.67.21', library: { name: 'http' } }, timestamp: '2020-02-02T00:23:09.544Z', }, }, ], - destType: DEST_TYPE, + destType: 'snapchat_custom_audience', }, }, }, @@ -104,17 +90,12 @@ export const data = [ developer_token: 'dummyDeveloperToken', refresh_token: 'dummyRefreshToken', }, + userId: 'u1', }, ], batched: false, statusCode: 200, - destination: { - Config: { - disableHashing: false, - schema: 'email', - segmentId: '123', - }, - }, + destination: { Config: { disableHashing: false, schema: 'email', segmentId: '123' } }, }, ], }, diff --git a/test/integrations/destinations/splitio/processor/data.ts b/test/integrations/destinations/splitio/processor/data.ts index 6f77c6f562..3fda93cc30 100644 --- a/test/integrations/destinations/splitio/processor/data.ts +++ b/test/integrations/destinations/splitio/processor/data.ts @@ -1,915 +1,905 @@ export const data = [ - { - "name": "splitio", - "description": "Test 0", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "traits": { - "martin": 21.565, - "trafficTypeName": "user", - "vertical": "restaurant", - "eventTypeId": "page_load end to end", - "timestamp": 1513357833000, - "GMV": false - }, - "userId": "user123", - "messageId": "c73198a8-41d8-4426-9fd9-de167194d5f3", - "rudderId": "bda76e3e-87eb-4153-9d1e-e9c2ed48b7a5", - "context": { - "ip": "14.5.67.21", - "traits": { - "abc": "new-val", - "key": "key_user_0", - "value": "0.93" - }, - "library": { - "name": "http" - } - }, - "type": "group", - "groupId": "group1", - "timestamp": "2020-01-21T00:21:34.208Z", - "writeKey": "1pe7u01A7rYOrvacE6WSgI6ESXh", - "receivedAt": "2021-04-19T14:53:18.215+05:30", - "requestIP": "[::1]" - }, - "destination": { - "Config": { - "apiKey": "abcde", - "environment": "staging", - "trafficType": "user" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://events.split.io/api/events", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer abcde" - }, - "params": {}, - "body": { - "JSON": { - "eventTypeId": "group", - "key": "user123", - "timestamp": 1579566094208, - "environmentName": "staging", - "trafficTypeName": "user", - "properties": { - "martin": 21.565, - "vertical": "restaurant", - "GMV": false - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "splitio", - "description": "Test 1", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "traits": { - "martin": 21.565, - "trafficTypeName": "user", - "eventTypeId": "page_load end to end", - "timestamp": 1513357833000, - "address": { - "city": "San Francisco", - "state": "CA", - "country": "USA" - }, - "key1": { - "a": "a" - }, - "key2": [ - 1, - 2, - 3 - ], - "key3": { - "key4": {} - }, - "key5": null - }, - "userId": "user123", - "messageId": "c73198a8-41d8-4426-9fd9-de167194d5f3", - "rudderId": "bda76e3e-87eb-4153-9d1e-e9c2ed48b7a5", - "context": { - "ip": "14.5.67.21", - "traits": { - "abc": "new-val", - "key": "key_user_0" - }, - "library": { - "name": "http" - } - }, - "type": "identify", - "timestamp": "2020-01-21T00:21:34.208Z", - "writeKey": "1pe7u01A7rYOrvacE6WSgI6ESXh", - "receivedAt": "2021-04-19T14:53:18.215+05:30", - "requestIP": "[::1]" - }, - "destination": { - "Config": { - "apiKey": "abcde", - "environment": "staging", - "trafficType": "user" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://events.split.io/api/events", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer abcde" - }, - "params": {}, - "body": { - "JSON": { - "eventTypeId": "identify", - "key": "user123", - "timestamp": 1579566094208, - "environmentName": "staging", - "trafficTypeName": "user", - "properties": { - "martin": 21.565, - "address.city": "San Francisco", - "address.state": "CA", - "address.country": "USA", - "key1.a": "a", - "key2[0]": 1, - "key2[1]": 2, - "key2[2]": 3 - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "splitio", - "description": "Test 2", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "event": "splitio_test_1", - "messageId": "9b200548-5961-4448-9dbc-098b7ce85751", - "properties": { - "eventTypeId": "page_load", - "trafficTypeName": "user", - "key": "key_user_0", - "timestamp": 1513357833000, - "value": "0.93", - "martin": 21.565, - "vertical": "restaurant", - "GMV": true, - "abc": "new-val", - "property1": { - "property2": 1, - "property3": "test", - "property4": { - "subProp1": { - "a": "a", - "b": "b" - }, - "subProp2": [ - "a", - "b" - ], - "subProp3": { - "prop": {} - } - } - }, - "properties5": null - }, - "receivedAt": "2021-03-01T22:55:54.806Z", - "rudderId": "6886eb9e-215d-4f61-a651-4b8ef18aaea3", - "timestamp": "2021-03-01T22:55:54.771Z", - "type": "track", - "userId": "user 1" - }, - "destination": { - "Config": { - "apiKey": "abcde", - "environment": "production", - "trafficType": "user" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://events.split.io/api/events", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer abcde" - }, - "params": {}, - "body": { - "JSON": { - "eventTypeId": "splitio_test_1", - "key": "user 1", - "timestamp": 1614639354771, - "value": 0.93, - "environmentName": "production", - "trafficTypeName": "user", - "properties": { - "martin": 21.565, - "vertical": "restaurant", - "GMV": true, - "abc": "new-val", - "property1.property2": 1, - "property1.property3": "test", - "property1.property4.subProp1.a": "a", - "property1.property4.subProp1.b": "b", - "property1.property4.subProp2[0]": "a", - "property1.property4.subProp2[1]": "b" - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "splitio", - "description": "Test 3", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "name": "splitio_test_1", - "messageId": "9b200548-5961-4448-9dbc-098b7ce85751", - "properties": { - "eventTypeId": "page_load", - "trafficTypeName": "user", - "key": "key_user_0", - "timestamp": 1513357833000, - "value": "0.93", - "martin": 21.565, - "vertical": "restaurant", - "GMV": true, - "abc": "new-val" - }, - "receivedAt": "2021-03-01T22:55:54.806Z", - "rudderId": "6886eb9e-215d-4f61-a651-4b8ef18aaea3", - "timestamp": "2021-03-01T22:55:54.771Z", - "type": "page", - "userId": "user 1" - }, - "destination": { - "Config": { - "apiKey": "abcde", - "environment": "production", - "trafficType": "user" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://events.split.io/api/events", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer abcde" - }, - "params": {}, - "body": { - "JSON": { - "eventTypeId": "Viewed_splitio_test_1_page", - "key": "user 1", - "timestamp": 1614639354771, - "value": 0.93, - "environmentName": "production", - "trafficTypeName": "user", - "properties": { - "martin": 21.565, - "vertical": "restaurant", - "GMV": true, - "abc": "new-val" - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "splitio", - "description": "Test 4", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "name": "splitio_test_1", - "messageId": "9b200548-5961-4448-9dbc-098b7ce85751", - "properties": { - "eventTypeId": "page_load", - "trafficTypeName": "user", - "key": "key_user_0", - "timestamp": 1513357833000, - "value": "0.93", - "martin": 21.565, - "vertical": "restaurant", - "GMV": true, - "abc": "new-val" - }, - "receivedAt": "2021-03-01T22:55:54.806Z", - "rudderId": "6886eb9e-215d-4f61-a651-4b8ef18aaea3", - "timestamp": "2021-03-01T22:55:54.771Z", - "type": "screen", - "userId": "user 1" - }, - "destination": { - "Config": { - "apiKey": "abcde", - "environment": "staging", - "trafficType": "user" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://events.split.io/api/events", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer abcde" - }, - "params": {}, - "body": { - "JSON": { - "eventTypeId": "Viewed_splitio_test_1_screen", - "key": "user 1", - "timestamp": 1614639354771, - "value": 0.93, - "environmentName": "staging", - "trafficTypeName": "user", - "properties": { - "martin": 21.565, - "vertical": "restaurant", - "GMV": true, - "abc": "new-val" - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "splitio", - "description": "Test 5", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "userId": "user123", - "messageId": "c73198a8-41d8-4426-9fd9-de167194d5f3", - "rudderId": "bda76e3e-87eb-4153-9d1e-e9c2ed48b7a5", - "context": { - "ip": "14.5.67.21", - "traits": { - "abc": "new-val", - "key": "key_user_0", - "newProperty": "1", - "martin": 21.565, - "vertical": "restaurant", - "GMV": false - }, - "library": { - "name": "http" - } - }, - "type": "identify", - "timestamp": "2020-01-21T00:21:34.208Z", - "writeKey": "1pe7u01A7rYOrvacE6WSgI6ESXh", - "receivedAt": "2021-04-19T14:53:18.215+05:30", - "requestIP": "[::1]" - }, - "destination": { - "Config": { - "apiKey": "abcde", - "environment": "staging", - "trafficType": "user" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://events.split.io/api/events", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer abcde" - }, - "params": {}, - "body": { - "JSON": { - "eventTypeId": "identify", - "key": "user123", - "timestamp": 1579566094208, - "environmentName": "staging", - "trafficTypeName": "user", - "properties": { - "abc": "new-val", - "newProperty": "1", - "martin": 21.565, - "vertical": "restaurant", - "GMV": false - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "splitio", - "description": "Test 6", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "userId": "user123", - "messageId": "c73198a8-41d8-4426-9fd9-de167194d5f3", - "rudderId": "bda76e3e-87eb-4153-9d1e-e9c2ed48b7a5", - "context": { - "ip": "14.5.67.21", - "traits": { - "abc": "new-val", - "key": "key_user_0", - "newProperty": "1" - }, - "library": { - "name": "http" - } - }, - "timestamp": "2020-01-21T00:21:34.208Z", - "writeKey": "1pe7u01A7rYOrvacE6WSgI6ESXh", - "receivedAt": "2021-04-19T14:53:18.215+05:30", - "requestIP": "[::1]" - }, - "destination": { - "Config": { - "apiKey": "abcde", - "environment": "staging", - "trafficType": "user" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "statusCode": 400, - "error": "Event type is required", - "statTags": { - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "destType": "SPLITIO", - "module": "destination", - "implementation": "native", - "feature": "processor" - } - } - ] - } - } - }, - { - "name": "splitio", - "description": "Test 7", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "userId": "user123", - "messageId": "c73198a8-41d8-4426-9fd9-de167194d5f3", - "rudderId": "bda76e3e-87eb-4153-9d1e-e9c2ed48b7a5", - "context": { - "ip": "14.5.67.21", - "traits": { - "abc": "new-val", - "key": "key_user_0", - "newProperty": "1" - }, - "library": { - "name": "http" - } - }, - "type": "abc", - "timestamp": "2020-01-21T00:21:34.208Z", - "writeKey": "1pe7u01A7rYOrvacE6WSgI6ESXh", - "receivedAt": "2021-04-19T14:53:18.215+05:30", - "requestIP": "[::1]" - }, - "destination": { - "Config": { - "apiKey": "abcde", - "environment": "staging", - "trafficType": "user" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "statusCode": 400, - "error": "Event type abc is not supported", - "statTags": { - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "destType": "SPLITIO", - "module": "destination", - "implementation": "native", - "feature": "processor" - } - } - ] - } - } - }, - { - "name": "splitio", - "description": "Test 8", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "name": "@$%%^&", - "messageId": "9b200548-5961-4448-9dbc-098b7ce85751", - "properties": { - "eventTypeId": "page_load", - "trafficTypeName": "user", - "key": "key_user_0", - "timestamp": 1513357833000, - "value": "0.93", - "martin": 21.565, - "vertical": "restaurant", - "GMV": true, - "abc": "new-val" - }, - "receivedAt": "2021-03-01T22:55:54.806Z", - "rudderId": "6886eb9e-215d-4f61-a651-4b8ef18aaea3", - "timestamp": "2021-03-01T22:55:54.771Z", - "type": "page", - "userId": "user 1" - }, - "destination": { - "Config": { - "apiKey": "abcde", - "environment": "production", - "trafficType": "user" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "statusCode": 400, - "error": "eventTypeId does not match with ideal format /^[\\dA-Za-z][\\w.-]{0,79}$/", - "statTags": { - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "destType": "SPLITIO", - "module": "destination", - "implementation": "native", - "feature": "processor" - } - } - ] - } - } - }, - { - "name": "splitio", - "description": "Test 9", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "name": "1pplication accepted", - "messageId": "9b200548-5961-4448-9dbc-098b7ce85751", - "category": "food", - "properties": { - "eventTypeId": "page_load", - "trafficTypeName": "user", - "key": "key_user_0", - "timestamp": 1513357833000, - "value": "bc2", - "martin": 21.565, - "vertical": [ - "restaurant", - "mall" - ], - "GMV": true, - "abc": "new-val" - }, - "receivedAt": "2021-03-01T22:55:54.806Z", - "rudderId": "6886eb9e-215d-4f61-a651-4b8ef18aaea3", - "timestamp": "2021-03-01T22:55:54.771Z", - "type": "page", - "userId": "user 1" - }, - "destination": { - "Config": { - "apiKey": "abcde", - "environment": "production", - "trafficType": "user" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://events.split.io/api/events", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer abcde" - }, - "params": {}, - "body": { - "JSON": { - "eventTypeId": "Viewed_1pplication_accepted_page", - "key": "user 1", - "timestamp": 1614639354771, - "environmentName": "production", - "trafficTypeName": "user", - "properties": { - "martin": 21.565, - "vertical[0]": "restaurant", - "vertical[1]": "mall", - "GMV": true, - "abc": "new-val", - "category": "food" - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "splitio", - "description": "Test 10", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "message": { - "userId": "user123", - "messageId": "c73198a8-41d8-4426-9fd9-de167194d5f3", - "rudderId": "bda76e3e-87eb-4153-9d1e-e9c2ed48b7a5", - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "type": "identify", - "timestamp": "2020-01-21T00:21:34.208Z", - "writeKey": "1pe7u01A7rYOrvacE6WSgI6ESXh", - "receivedAt": "2021-04-19T14:53:18.215+05:30", - "requestIP": "[::1]" - }, - "destination": { - "Config": { - "apiKey": "abcde", - "environment": "staging", - "trafficType": "user" - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://events.split.io/api/events", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer abcde" - }, - "params": {}, - "body": { - "JSON": { - "eventTypeId": "identify", - "key": "user123", - "timestamp": 1579566094208, - "environmentName": "staging", - "trafficTypeName": "user", - "properties": {} - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - } -] \ No newline at end of file + { + name: 'splitio', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + traits: { + martin: 21.565, + trafficTypeName: 'user', + vertical: 'restaurant', + eventTypeId: 'page_load end to end', + timestamp: 1513357833000, + GMV: false, + }, + userId: 'user123', + messageId: 'c73198a8-41d8-4426-9fd9-de167194d5f3', + rudderId: 'bda76e3e-87eb-4153-9d1e-e9c2ed48b7a5', + context: { + ip: '14.5.67.21', + traits: { + abc: 'new-val', + key: 'key_user_0', + value: '0.93', + }, + library: { + name: 'http', + }, + }, + type: 'group', + groupId: 'group1', + timestamp: '2020-01-21T00:21:34.208Z', + writeKey: '1pe7u01A7rYOrvacE6WSgI6ESXh', + receivedAt: '2021-04-19T14:53:18.215+05:30', + requestIP: '[::1]', + }, + destination: { + Config: { + apiKey: 'abcde', + environment: 'staging', + trafficType: 'user', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://events.split.io/api/events', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer abcde', + }, + params: {}, + body: { + JSON: { + eventTypeId: 'group', + key: 'user123', + timestamp: 1579566094208, + environmentName: 'staging', + trafficTypeName: 'user', + properties: { + martin: 21.565, + vertical: 'restaurant', + GMV: false, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'splitio', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + traits: { + martin: 21.565, + trafficTypeName: 'user', + eventTypeId: 'page_load end to end', + timestamp: 1513357833000, + address: { + city: 'San Francisco', + state: 'CA', + country: 'USA', + }, + key1: { + a: 'a', + }, + key2: [1, 2, 3], + key3: { + key4: {}, + }, + key5: null, + }, + userId: 'user123', + messageId: 'c73198a8-41d8-4426-9fd9-de167194d5f3', + rudderId: 'bda76e3e-87eb-4153-9d1e-e9c2ed48b7a5', + context: { + ip: '14.5.67.21', + traits: { + abc: 'new-val', + key: 'key_user_0', + }, + library: { + name: 'http', + }, + }, + type: 'identify', + timestamp: '2020-01-21T00:21:34.208Z', + writeKey: '1pe7u01A7rYOrvacE6WSgI6ESXh', + receivedAt: '2021-04-19T14:53:18.215+05:30', + requestIP: '[::1]', + }, + destination: { + Config: { + apiKey: 'abcde', + environment: 'staging', + trafficType: 'user', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://events.split.io/api/events', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer abcde', + }, + params: {}, + body: { + JSON: { + eventTypeId: 'identify', + key: 'user123', + timestamp: 1579566094208, + environmentName: 'staging', + trafficTypeName: 'user', + properties: { + martin: 21.565, + 'address.city': 'San Francisco', + 'address.state': 'CA', + 'address.country': 'USA', + 'key1.a': 'a', + 'key2[0]': 1, + 'key2[1]': 2, + 'key2[2]': 3, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'splitio', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + event: 'splitio_test_1', + messageId: '9b200548-5961-4448-9dbc-098b7ce85751', + properties: { + eventTypeId: 'page_load', + trafficTypeName: 'user', + key: 'key_user_0', + timestamp: 1513357833000, + value: '0.93', + martin: 21.565, + vertical: 'restaurant', + GMV: true, + abc: 'new-val', + property1: { + property2: 1, + property3: 'test', + property4: { + subProp1: { + a: 'a', + b: 'b', + }, + subProp2: ['a', 'b'], + subProp3: { + prop: {}, + }, + }, + }, + properties5: null, + }, + receivedAt: '2021-03-01T22:55:54.806Z', + rudderId: '6886eb9e-215d-4f61-a651-4b8ef18aaea3', + timestamp: '2021-03-01T22:55:54.771Z', + type: 'track', + userId: 'user 1', + }, + destination: { + Config: { + apiKey: 'abcde', + environment: 'production', + trafficType: 'user', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://events.split.io/api/events', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer abcde', + }, + params: {}, + body: { + JSON: { + eventTypeId: 'splitio_test_1', + key: 'user 1', + timestamp: 1614639354771, + value: 0.93, + environmentName: 'production', + trafficTypeName: 'user', + properties: { + martin: 21.565, + vertical: 'restaurant', + GMV: true, + abc: 'new-val', + 'property1.property2': 1, + 'property1.property3': 'test', + 'property1.property4.subProp1.a': 'a', + 'property1.property4.subProp1.b': 'b', + 'property1.property4.subProp2[0]': 'a', + 'property1.property4.subProp2[1]': 'b', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'splitio', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + name: 'splitio_test_1', + messageId: '9b200548-5961-4448-9dbc-098b7ce85751', + properties: { + eventTypeId: 'page_load', + trafficTypeName: 'user', + key: 'key_user_0', + timestamp: 1513357833000, + value: '0.93', + martin: 21.565, + vertical: 'restaurant', + GMV: true, + abc: 'new-val', + }, + receivedAt: '2021-03-01T22:55:54.806Z', + rudderId: '6886eb9e-215d-4f61-a651-4b8ef18aaea3', + timestamp: '2021-03-01T22:55:54.771Z', + type: 'page', + userId: 'user 1', + }, + destination: { + Config: { + apiKey: 'abcde', + environment: 'production', + trafficType: 'user', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://events.split.io/api/events', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer abcde', + }, + params: {}, + body: { + JSON: { + eventTypeId: 'Viewed_splitio_test_1_page', + key: 'user 1', + timestamp: 1614639354771, + value: 0.93, + environmentName: 'production', + trafficTypeName: 'user', + properties: { + martin: 21.565, + vertical: 'restaurant', + GMV: true, + abc: 'new-val', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'splitio', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + name: 'splitio_test_1', + messageId: '9b200548-5961-4448-9dbc-098b7ce85751', + properties: { + eventTypeId: 'page_load', + trafficTypeName: 'user', + key: 'key_user_0', + timestamp: 1513357833000, + value: '0.93', + martin: 21.565, + vertical: 'restaurant', + GMV: true, + abc: 'new-val', + }, + receivedAt: '2021-03-01T22:55:54.806Z', + rudderId: '6886eb9e-215d-4f61-a651-4b8ef18aaea3', + timestamp: '2021-03-01T22:55:54.771Z', + type: 'screen', + userId: 'user 1', + }, + destination: { + Config: { + apiKey: 'abcde', + environment: 'staging', + trafficType: 'user', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://events.split.io/api/events', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer abcde', + }, + params: {}, + body: { + JSON: { + eventTypeId: 'Viewed_splitio_test_1_screen', + key: 'user 1', + timestamp: 1614639354771, + value: 0.93, + environmentName: 'staging', + trafficTypeName: 'user', + properties: { + martin: 21.565, + vertical: 'restaurant', + GMV: true, + abc: 'new-val', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'splitio', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'user123', + messageId: 'c73198a8-41d8-4426-9fd9-de167194d5f3', + rudderId: 'bda76e3e-87eb-4153-9d1e-e9c2ed48b7a5', + context: { + ip: '14.5.67.21', + traits: { + abc: 'new-val', + key: 'key_user_0', + newProperty: '1', + martin: 21.565, + vertical: 'restaurant', + GMV: false, + }, + library: { + name: 'http', + }, + }, + type: 'identify', + timestamp: '2020-01-21T00:21:34.208Z', + writeKey: '1pe7u01A7rYOrvacE6WSgI6ESXh', + receivedAt: '2021-04-19T14:53:18.215+05:30', + requestIP: '[::1]', + }, + destination: { + Config: { + apiKey: 'abcde', + environment: 'staging', + trafficType: 'user', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://events.split.io/api/events', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer abcde', + }, + params: {}, + body: { + JSON: { + eventTypeId: 'identify', + key: 'user123', + timestamp: 1579566094208, + environmentName: 'staging', + trafficTypeName: 'user', + properties: { + abc: 'new-val', + newProperty: '1', + martin: 21.565, + vertical: 'restaurant', + GMV: false, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'splitio', + description: 'Test 6', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'user123', + messageId: 'c73198a8-41d8-4426-9fd9-de167194d5f3', + rudderId: 'bda76e3e-87eb-4153-9d1e-e9c2ed48b7a5', + context: { + ip: '14.5.67.21', + traits: { + abc: 'new-val', + key: 'key_user_0', + newProperty: '1', + }, + library: { + name: 'http', + }, + }, + timestamp: '2020-01-21T00:21:34.208Z', + writeKey: '1pe7u01A7rYOrvacE6WSgI6ESXh', + receivedAt: '2021-04-19T14:53:18.215+05:30', + requestIP: '[::1]', + }, + destination: { + Config: { + apiKey: 'abcde', + environment: 'staging', + trafficType: 'user', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: 'Event type is required', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'SPLITIO', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'splitio', + description: 'Test 7', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'user123', + messageId: 'c73198a8-41d8-4426-9fd9-de167194d5f3', + rudderId: 'bda76e3e-87eb-4153-9d1e-e9c2ed48b7a5', + context: { + ip: '14.5.67.21', + traits: { + abc: 'new-val', + key: 'key_user_0', + newProperty: '1', + }, + library: { + name: 'http', + }, + }, + type: 'abc', + timestamp: '2020-01-21T00:21:34.208Z', + writeKey: '1pe7u01A7rYOrvacE6WSgI6ESXh', + receivedAt: '2021-04-19T14:53:18.215+05:30', + requestIP: '[::1]', + }, + destination: { + Config: { + apiKey: 'abcde', + environment: 'staging', + trafficType: 'user', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: 'Event type abc is not supported', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'SPLITIO', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'splitio', + description: 'Test 8', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + name: '@$%%^&', + messageId: '9b200548-5961-4448-9dbc-098b7ce85751', + properties: { + eventTypeId: 'page_load', + trafficTypeName: 'user', + key: 'key_user_0', + timestamp: 1513357833000, + value: '0.93', + martin: 21.565, + vertical: 'restaurant', + GMV: true, + abc: 'new-val', + }, + receivedAt: '2021-03-01T22:55:54.806Z', + rudderId: '6886eb9e-215d-4f61-a651-4b8ef18aaea3', + timestamp: '2021-03-01T22:55:54.771Z', + type: 'page', + userId: 'user 1', + }, + destination: { + Config: { + apiKey: 'abcde', + environment: 'production', + trafficType: 'user', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: 'eventTypeId does not match with ideal format /^[\\dA-Za-z][\\w.-]{0,79}$/', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'SPLITIO', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'splitio', + description: 'Test 9', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + name: '1pplication accepted', + messageId: '9b200548-5961-4448-9dbc-098b7ce85751', + category: 'food', + properties: { + eventTypeId: 'page_load', + trafficTypeName: 'user', + key: 'key_user_0', + timestamp: 1513357833000, + value: 'bc2', + martin: 21.565, + vertical: ['restaurant', 'mall'], + GMV: true, + abc: 'new-val', + }, + receivedAt: '2021-03-01T22:55:54.806Z', + rudderId: '6886eb9e-215d-4f61-a651-4b8ef18aaea3', + timestamp: '2021-03-01T22:55:54.771Z', + type: 'page', + userId: 'user 1', + }, + destination: { + Config: { + apiKey: 'abcde', + environment: 'production', + trafficType: 'user', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://events.split.io/api/events', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer abcde', + }, + params: {}, + body: { + JSON: { + eventTypeId: 'Viewed_1pplication_accepted_page', + key: 'user 1', + timestamp: 1614639354771, + environmentName: 'production', + trafficTypeName: 'user', + properties: { + martin: 21.565, + 'vertical[0]': 'restaurant', + 'vertical[1]': 'mall', + GMV: true, + abc: 'new-val', + category: 'food', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'splitio', + description: 'Test 10', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'user123', + messageId: 'c73198a8-41d8-4426-9fd9-de167194d5f3', + rudderId: 'bda76e3e-87eb-4153-9d1e-e9c2ed48b7a5', + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + type: 'identify', + timestamp: '2020-01-21T00:21:34.208Z', + writeKey: '1pe7u01A7rYOrvacE6WSgI6ESXh', + receivedAt: '2021-04-19T14:53:18.215+05:30', + requestIP: '[::1]', + }, + destination: { + Config: { + apiKey: 'abcde', + environment: 'staging', + trafficType: 'user', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://events.split.io/api/events', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer abcde', + }, + params: {}, + body: { + JSON: { + eventTypeId: 'identify', + key: 'user123', + timestamp: 1579566094208, + environmentName: 'staging', + trafficTypeName: 'user', + properties: {}, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/splitio/router/data.ts b/test/integrations/destinations/splitio/router/data.ts index 1004756812..47f8ad5cff 100644 --- a/test/integrations/destinations/splitio/router/data.ts +++ b/test/integrations/destinations/splitio/router/data.ts @@ -1,10 +1,8 @@ -import { FEATURES } from '../../../../../src/v0/util/tags'; - export const data = [ { name: 'splitio', description: 'Test 0', - feature: FEATURES.ROUTER, + feature: 'router', module: 'destination', version: 'v0', input: { @@ -14,7 +12,7 @@ export const data = [ { message: { traits: { - martin: 21.565000000000001, + martin: 21.565, trafficTypeName: 'user', vertical: 'restaurant', eventTypeId: 'page_load end to end', @@ -26,14 +24,8 @@ export const data = [ rudderId: 'bda76e3e-87eb-4153-9d1e-e9c2ed48b7a5', context: { ip: '14.5.67.21', - traits: { - abc: 'new-val', - key: 'key_user_0', - value: '0.93', - }, - library: { - name: 'http', - }, + traits: { abc: 'new-val', key: 'key_user_0', value: '0.93' }, + library: { name: 'http' }, }, type: 'group', groupId: 'group1', @@ -42,15 +34,9 @@ export const data = [ receivedAt: '2021-04-19T14:53:18.215+05:30', requestIP: '[::1]', }, - metadata: { - jobId: 1, - }, + metadata: { jobId: 1, userId: 'u1' }, destination: { - Config: { - apiKey: 'abcde', - environment: 'staging', - trafficType: 'user', - }, + Config: { apiKey: 'abcde', environment: 'staging', trafficType: 'user' }, }, }, ], @@ -70,10 +56,7 @@ export const data = [ type: 'REST', method: 'POST', endpoint: 'https://events.split.io/api/events', - headers: { - 'Content-Type': 'application/json', - Authorization: 'Bearer abcde', - }, + headers: { 'Content-Type': 'application/json', Authorization: 'Bearer abcde' }, params: {}, body: { JSON: { @@ -82,11 +65,7 @@ export const data = [ timestamp: 1579566094208, environmentName: 'staging', trafficTypeName: 'user', - properties: { - martin: 21.565, - vertical: 'restaurant', - GMV: false, - }, + properties: { martin: 21.565, vertical: 'restaurant', GMV: false }, }, XML: {}, JSON_ARRAY: {}, @@ -94,19 +73,11 @@ export const data = [ }, files: {}, }, - metadata: [ - { - jobId: 1, - }, - ], + metadata: [{ jobId: 1, userId: 'u1' }], batched: false, statusCode: 200, destination: { - Config: { - apiKey: 'abcde', - environment: 'staging', - trafficType: 'user', - }, + Config: { apiKey: 'abcde', environment: 'staging', trafficType: 'user' }, }, }, ], @@ -117,7 +88,7 @@ export const data = [ { name: 'splitio', description: 'Test 1', - feature: FEATURES.ROUTER, + feature: 'router', module: 'destination', version: 'v0', input: { @@ -127,7 +98,7 @@ export const data = [ { message: { traits: { - martin: 21.565000000000001, + martin: 21.565, trafficTypeName: 'user', eventTypeId: 'page_load end to end', timestamp: 1513357833000, @@ -137,13 +108,8 @@ export const data = [ rudderId: 'bda76e3e-87eb-4153-9d1e-e9c2ed48b7a5', context: { ip: '14.5.67.21', - traits: { - abc: 'new-val', - key: 'key_user_0', - }, - library: { - name: 'http', - }, + traits: { abc: 'new-val', key: 'key_user_0' }, + library: { name: 'http' }, }, type: 'identify', timestamp: '2020-01-21T00:21:34.208Z', @@ -151,15 +117,9 @@ export const data = [ receivedAt: '2021-04-19T14:53:18.215+05:30', requestIP: '[::1]', }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, destination: { - Config: { - apiKey: 'abcde', - environment: 'staging', - trafficType: 'user', - }, + Config: { apiKey: 'abcde', environment: 'staging', trafficType: 'user' }, }, }, ], @@ -179,10 +139,7 @@ export const data = [ type: 'REST', method: 'POST', endpoint: 'https://events.split.io/api/events', - headers: { - 'Content-Type': 'application/json', - Authorization: 'Bearer abcde', - }, + headers: { 'Content-Type': 'application/json', Authorization: 'Bearer abcde' }, params: {}, body: { JSON: { @@ -191,9 +148,7 @@ export const data = [ timestamp: 1579566094208, environmentName: 'staging', trafficTypeName: 'user', - properties: { - martin: 21.565, - }, + properties: { martin: 21.565 }, }, XML: {}, JSON_ARRAY: {}, @@ -201,19 +156,11 @@ export const data = [ }, files: {}, }, - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], batched: false, statusCode: 200, destination: { - Config: { - apiKey: 'abcde', - environment: 'staging', - trafficType: 'user', - }, + Config: { apiKey: 'abcde', environment: 'staging', trafficType: 'user' }, }, }, ], diff --git a/test/integrations/destinations/stormly/router/data.ts b/test/integrations/destinations/stormly/router/data.ts index efdae153e4..1973173795 100644 --- a/test/integrations/destinations/stormly/router/data.ts +++ b/test/integrations/destinations/stormly/router/data.ts @@ -1,10 +1,8 @@ -import { FEATURES } from '../../../../../src/v0/util/tags'; - export const data = [ { name: 'stormly', description: 'Test 0', - feature: FEATURES.ROUTER, + feature: 'router', module: 'destination', version: 'v0', input: { @@ -12,49 +10,29 @@ export const data = [ body: { input: [ { - destination: { - Config: { - apiKey: 'dummyApiKey', - }, - ID: 'stormly123', - }, - metadata: { - jobId: 1, - }, + destination: { Config: { apiKey: 'dummyApiKey' }, ID: 'stormly123' }, + metadata: { jobId: 1, userId: 'u1' }, message: { type: 'identify', sentAt: '2022-01-20T13:39:21.033Z', channel: 'web', userId: '5136633649', - context: { - traits: { - name: 'John Doe', - email: 'johndoe@gmail.com', - age: 25, - }, - }, + context: { traits: { name: 'John Doe', email: 'johndoe@gmail.com', age: 25 } }, rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', anonymousId: 'bf412108-0357-4330-b119-7305e767823c', originalTimestamp: '2022-01-20T13:39:21.032Z', }, }, { - destination: { - Config: { - apiKey: 'dummyApiKey', - }, - ID: 'stormly123', - }, - metadata: { - jobId: 2, - }, + destination: { Config: { apiKey: 'dummyApiKey' }, ID: 'stormly123' }, + metadata: { jobId: 2, userId: 'u1' }, message: { type: 'track', event: 'Product Reviewed', properties: { review_id: '12345', product_id: '123', - rating: 3.0, + rating: 3, review_body: 'Average product, expected much more.', groupId: '91Yb32830', }, @@ -82,11 +60,7 @@ export const data = [ FORM: {}, JSON: { timestamp: '2022-01-20T13:39:21.032Z', - traits: { - age: 25, - email: 'johndoe@gmail.com', - name: 'John Doe', - }, + traits: { age: 25, email: 'johndoe@gmail.com', name: 'John Doe' }, userId: '5136633649', }, JSON_ARRAY: {}, @@ -94,42 +68,21 @@ export const data = [ }, endpoint: 'https://rudderstack.t.stormly.com/webhook/rudderstack/identify', files: {}, - headers: { - Authorization: 'Basic dummyApiKey', - 'Content-Type': 'application/json', - }, + headers: { Authorization: 'Basic dummyApiKey', 'Content-Type': 'application/json' }, method: 'POST', params: {}, type: 'REST', version: '1', }, - destination: { - Config: { - apiKey: 'dummyApiKey', - }, - ID: 'stormly123', - }, - metadata: [ - { - jobId: 1, - }, - ], + destination: { Config: { apiKey: 'dummyApiKey' }, ID: 'stormly123' }, + metadata: [{ jobId: 1, userId: 'u1' }], statusCode: 200, }, { - destination: { - Config: { - apiKey: 'dummyApiKey', - }, - ID: 'stormly123', - }, + destination: { Config: { apiKey: 'dummyApiKey' }, ID: 'stormly123' }, batched: false, error: 'Missing required value from "userIdOnly"', - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], statTags: { destType: 'STORMLY', errorCategory: 'dataValidation', diff --git a/test/integrations/destinations/the_trade_desk/common.ts b/test/integrations/destinations/the_trade_desk/common.ts index d792c7faae..8deaf60034 100644 --- a/test/integrations/destinations/the_trade_desk/common.ts +++ b/test/integrations/destinations/the_trade_desk/common.ts @@ -3,6 +3,7 @@ const destTypeInUpperCase = 'THE_TRADE_DESK'; const advertiserId = 'test-advertiser-id'; const dataProviderId = 'rudderstack'; const segmentName = 'test-segment'; +const trackerId = 'test-trackerId'; const sampleDestination = { Config: { advertiserId, @@ -10,6 +11,7 @@ const sampleDestination = { dataServer: 'apac', ttlInDays: 30, audienceId: segmentName, + trackerId, }, DestinationDefinition: { Config: { cdkV2Enabled: true } }, }; @@ -33,12 +35,73 @@ const sampleContext = { sources: sampleSource, }; +const sampleContextForConversion = { + app: { + build: '1.0.0', + name: 'RudderLabs Android SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + device: { + adTrackingEnabled: true, + advertisingId: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + externalId: [ + { + type: 'daid', + id: 'test-daid', + }, + ], + ip: '0.0.0.0', + page: { + referrer: 'https://docs.rudderstack.com/destinations/trade_desk', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.5', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', +}; + +const integrationObject = { + All: true, + THE_TRADE_DESK: { + policies: ['LDU'], + region: 'US-CA', + privacy_settings: [ + { + privacy_type: 'GDPR', + is_applicable: 1, + consent_string: 'ok', + }, + ], + }, +}; + export { destType, destTypeInUpperCase, advertiserId, dataProviderId, segmentName, + trackerId, sampleDestination, sampleContext, + sampleContextForConversion, + integrationObject, }; diff --git a/test/integrations/destinations/the_trade_desk/delivery/data.ts b/test/integrations/destinations/the_trade_desk/delivery/data.ts index 320eb6dcfe..da8f60972e 100644 --- a/test/integrations/destinations/the_trade_desk/delivery/data.ts +++ b/test/integrations/destinations/the_trade_desk/delivery/data.ts @@ -5,6 +5,7 @@ import { dataProviderId, segmentName, sampleDestination, + trackerId, } from '../common'; beforeAll(() => { @@ -245,4 +246,169 @@ export const data = [ }, }, }, + { + name: destType, + description: 'Successful delivery of realtime conversion event to Trade Desk', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://insight.adsrvr.org/track/realtimeconversion', + headers: {}, + params: {}, + body: { + JSON: { + data: [ + { + tracker_id: trackerId, + adv: advertiserId, + currency: 'USD', + event_name: 'viewitem', + value: 249.95000000000002, + items: [ + { + item_code: '622c6f5d5cf86a4c77358033', + name: 'Cones of Dunshire', + qty: 5, + price: 49.99, + }, + ], + category: 'Games', + brand: 'Wyatt Games', + variant: 'exapansion pack', + coupon: 'PREORDER15', + position: 1, + url: 'https://www.website.com/product/path', + image_url: 'https://www.website.com/product/path.webp', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: { + destinationResponse: { + response: { + Message: null, + EventResponses: [], + }, + status: 200, + }, + message: 'Request Processed Successfully', + status: 200, + }, + }, + }, + }, + }, + { + name: destType, + description: + 'Error response from the Trade Desk due to invalid real time conversion event payload', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://insight.adsrvr.org/track/realtimeconversion', + headers: {}, + params: {}, + body: { + JSON: { + data: [ + { + tracker_id: trackerId, + adv: advertiserId, + currency: 'USD', + event_name: 'viewitem', + value: 249.95000000000002, + items: [ + { + item_code: '622c6f5d5cf86a4c77358033', + name: 'Cones of Dunshire', + qty: 5, + price: 49.99, + }, + ], + category: 'Games', + brand: 'Wyatt Games', + variant: 'exapansion pack', + coupon: 'PREORDER15', + position: 1, + url: 'https://www.website.com/product/path', + image_url: 'https://www.website.com/product/path.webp', + privacy_settings: [{}], + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 400, + body: { + output: { + destinationResponse: { + response: { + Message: null, + EventResponses: [ + { + EventIndex: 0, + EventErrors: [ + { + Error: 'InvalidPrivacySetting', + ErrorMessage: 'The request has an invalid privacy setting.', + }, + ], + EventWarnings: [], + Successful: false, + }, + ], + }, + status: 400, + }, + message: + 'Request failed with status: 400 due to {"Message":null,"EventResponses":[{"EventIndex":0,"EventErrors":[{"Error":"InvalidPrivacySetting","ErrorMessage":"The request has an invalid privacy setting."}],"EventWarnings":[],"Successful":false}]}', + statTags: { + destType: destTypeInUpperCase, + destinationId: 'Non-determininable', + errorCategory: 'network', + errorType: 'aborted', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + workspaceId: 'Non-determininable', + }, + status: 400, + }, + }, + }, + }, + }, ]; diff --git a/test/integrations/destinations/the_trade_desk/network.ts b/test/integrations/destinations/the_trade_desk/network.ts index ed6bdf4c7d..5908cbf8f5 100644 --- a/test/integrations/destinations/the_trade_desk/network.ts +++ b/test/integrations/destinations/the_trade_desk/network.ts @@ -1,4 +1,4 @@ -import { destType, advertiserId, dataProviderId, segmentName } from './common'; +import { destType, advertiserId, dataProviderId, segmentName, trackerId } from './common'; export const networkCallsData = [ { @@ -103,4 +103,107 @@ export const networkCallsData = [ statusText: 'Ok', }, }, + { + httpReq: { + url: 'https://insight.adsrvr.org/track/realtimeconversion', + data: { + data: [ + { + tracker_id: trackerId, + adv: advertiserId, + currency: 'USD', + event_name: 'viewitem', + value: 249.95000000000002, + items: [ + { + item_code: '622c6f5d5cf86a4c77358033', + name: 'Cones of Dunshire', + qty: 5, + price: 49.99, + }, + ], + category: 'Games', + brand: 'Wyatt Games', + variant: 'exapansion pack', + coupon: 'PREORDER15', + position: 1, + url: 'https://www.website.com/product/path', + image_url: 'https://www.website.com/product/path.webp', + }, + ], + }, + params: { destination: destType }, + headers: { + 'Content-Type': 'application/json', + 'User-Agent': 'RudderLabs', + }, + method: 'POST', + }, + httpRes: { + data: { + Message: null, + EventResponses: [], + }, + status: 200, + statusText: 'OK', + }, + }, + { + httpReq: { + url: 'https://insight.adsrvr.org/track/realtimeconversion', + data: { + data: [ + { + tracker_id: trackerId, + adv: advertiserId, + currency: 'USD', + event_name: 'viewitem', + value: 249.95000000000002, + items: [ + { + item_code: '622c6f5d5cf86a4c77358033', + name: 'Cones of Dunshire', + qty: 5, + price: 49.99, + }, + ], + category: 'Games', + brand: 'Wyatt Games', + variant: 'exapansion pack', + coupon: 'PREORDER15', + position: 1, + url: 'https://www.website.com/product/path', + image_url: 'https://www.website.com/product/path.webp', + privacy_settings: [{}], + }, + ], + }, + params: { destination: destType }, + headers: { + 'Content-Type': 'application/json', + 'User-Agent': 'RudderLabs', + }, + method: 'POST', + }, + httpRes: { + data: { + Message: null, + EventResponses: [ + { + EventIndex: 0, + EventErrors: [ + { + Error: 'InvalidPrivacySetting', + ErrorMessage: 'The request has an invalid privacy setting.', + }, + ], + EventWarnings: [], + Successful: false, + }, + ], + }, + status: 400, + statusText: 'Bad Request', + }, + }, ]; diff --git a/test/integrations/destinations/the_trade_desk/router/data.ts b/test/integrations/destinations/the_trade_desk/router/data.ts index 8aa16612fc..691ec703b9 100644 --- a/test/integrations/destinations/the_trade_desk/router/data.ts +++ b/test/integrations/destinations/the_trade_desk/router/data.ts @@ -6,8 +6,11 @@ import { advertiserId, dataProviderId, segmentName, + trackerId, sampleDestination, sampleContext, + sampleContextForConversion, + integrationObject, } from '../common'; export const data = [ @@ -36,6 +39,7 @@ export const data = [ destination: sampleDestination, metadata: { jobId: 1, + userId: 'u1', }, }, { @@ -53,6 +57,7 @@ export const data = [ destination: sampleDestination, metadata: { jobId: 2, + userId: 'u1', }, }, ], @@ -119,9 +124,11 @@ export const data = [ metadata: [ { jobId: 1, + userId: 'u1', }, { jobId: 2, + userId: 'u1', }, ], batched: true, @@ -160,6 +167,7 @@ export const data = [ destination: sampleDestination, metadata: { jobId: 1, + userId: 'u1', }, }, { @@ -177,6 +185,7 @@ export const data = [ destination: sampleDestination, metadata: { jobId: 2, + userId: 'u1', }, }, ], @@ -272,9 +281,11 @@ export const data = [ metadata: [ { jobId: 1, + userId: 'u1', }, { jobId: 2, + userId: 'u1', }, ], batched: true, @@ -313,6 +324,7 @@ export const data = [ destination: overrideDestination(sampleDestination, { audienceId: '' }), metadata: { jobId: 1, + userId: 'u1', }, }, { @@ -330,6 +342,7 @@ export const data = [ destination: overrideDestination(sampleDestination, { audienceId: '' }), metadata: { jobId: 2, + userId: 'u1', }, }, ], @@ -345,9 +358,12 @@ export const data = [ output: [ { batched: false, - metadata: [{ jobId: 1 }, { jobId: 2 }], + metadata: [ + { jobId: 1, userId: 'u1' }, + { jobId: 2, userId: 'u1' }, + ], statusCode: 400, - error: 'Segment name is not present. Aborting', + error: 'Segment name/Audience ID is not present. Aborting', statTags: { destType: destTypeInUpperCase, implementation: 'cdkV2', @@ -387,6 +403,25 @@ export const data = [ destination: overrideDestination(sampleDestination, { advertiserId: '' }), metadata: { jobId: 1, + userId: 'u1', + }, + }, + { + message: { + type: 'record', + action: 'insert', + fields: { + DAID: 'test-daid-2', + UID2: 'test-uid2-2', + }, + channel: 'sources', + context: sampleContext, + recordId: '1', + }, + destination: overrideDestination(sampleDestination, { advertiserId: '' }), + metadata: { + jobId: 2, + userId: 'u1', }, }, ], @@ -402,7 +437,10 @@ export const data = [ output: [ { batched: false, - metadata: [{ jobId: 1 }], + metadata: [ + { jobId: 1, userId: 'u1' }, + { jobId: 2, userId: 'u1' }, + ], statusCode: 400, error: 'Advertiser ID is not present. Aborting', statTags: { @@ -444,6 +482,7 @@ export const data = [ destination: overrideDestination(sampleDestination, { advertiserSecretKey: '' }), metadata: { jobId: 1, + userId: 'u1', }, }, ], @@ -459,7 +498,7 @@ export const data = [ output: [ { batched: false, - metadata: [{ jobId: 1 }], + metadata: [{ jobId: 1, userId: 'u1' }], statusCode: 400, error: 'Advertiser Secret Key is not present. Aborting', statTags: { @@ -501,6 +540,7 @@ export const data = [ destination: overrideDestination(sampleDestination, { ttlInDays: 190 }), metadata: { jobId: 1, + userId: 'u1', }, }, ], @@ -516,7 +556,7 @@ export const data = [ output: [ { batched: false, - metadata: [{ jobId: 1 }], + metadata: [{ jobId: 1, userId: 'u1' }], statusCode: 400, error: 'TTL is out of range. Allowed values are 0 to 180 days', statTags: { @@ -642,7 +682,8 @@ export const data = [ batched: false, metadata: [{ jobId: 2 }], statusCode: 400, - error: 'Invalid action type', + error: + 'Invalid action type. You can only add or remove IDs from the audience/segment', statTags: { destType: destTypeInUpperCase, implementation: 'cdkV2', @@ -755,7 +796,7 @@ export const data = [ batched: false, metadata: [{ jobId: 1 }], statusCode: 400, - error: 'Fields cannot be empty', + error: '`fields` cannot be empty', statTags: { destType: destTypeInUpperCase, implementation: 'cdkV2', @@ -810,7 +851,7 @@ export const data = [ batched: false, metadata: [{ jobId: 1 }], statusCode: 400, - error: 'Fields cannot be empty', + error: '`fields` cannot be empty', statTags: { destType: destTypeInUpperCase, implementation: 'cdkV2', @@ -827,4 +868,1082 @@ export const data = [ }, mockFns: defaultMockFns, }, + { + name: destType, + description: + 'Mapped Ecommerce events (product added, product viewed, product added to wishlist, cart viewed, checkout started, order completed)', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + type: 'track', + event: 'Product Added', + messageId: 'messageId123', + context: sampleContextForConversion, + properties: { + product_id: '622c6f5d5cf86a4c77358033', + sku: '8472-998-0112', + category: 'Games', + name: 'Cones of Dunshire', + brand: 'Wyatt Games', + variant: 'exapansion pack', + price: 49.99, + quantity: 5, + coupon: 'PREORDER15', + position: 1, + url: 'https://www.website.com/product/path', + image_url: 'https://www.website.com/product/path.webp', + key1: 'value1', + }, + integrations: integrationObject, + }, + destination: overrideDestination(sampleDestination, { + customProperties: [ + { + rudderProperty: 'properties.key1', + tradeDeskProperty: 'td1', + }, + { + rudderProperty: 'properties.key2', + tradeDeskProperty: 'td2', + }, + ], + }), + metadata: { + jobId: 1, + }, + }, + { + message: { + type: 'track', + event: 'Product Viewed', + properties: { + product_id: '622c6f5d5cf86a4c77358033', + sku: '8472-998-0112', + category: 'Games', + name: 'Cones of Dunshire', + brand: 'Wyatt Games', + variant: 'exapansion pack', + price: 49.99, + quantity: 5, + coupon: 'PREORDER15', + currency: 'USD', + position: 1, + url: 'https://www.website.com/product/path', + image_url: 'https://www.website.com/product/path.webp', + }, + }, + destination: sampleDestination, + metadata: { + jobId: 2, + }, + }, + { + message: { + type: 'track', + event: 'Product Added to Wishlist', + properties: { + wishlist_id: '74fkdjfl0jfdkdj29j030', + wishlist_name: 'New Games', + product_id: '622c6f5d5cf86a4c77358033', + sku: '8472-998-0112', + category: 'Games', + name: 'Cones of Dunshire', + brand: 'Wyatt Games', + variant: 'exapansion pack', + price: 49.99, + quantity: 1, + coupon: 'PREORDER15', + position: 1, + url: 'https://www.site.com/product/path', + image_url: 'https://www.site.com/product/path.jpg', + }, + }, + destination: sampleDestination, + metadata: { + jobId: 3, + }, + }, + { + message: { + type: 'track', + event: 'Cart Viewed', + properties: { + cart_id: '6b2c6f5aecf86a4ae77358ae3', + products: [ + { + product_id: '622c6f5d5cf86a4c77358033', + sku: '8472-998-0112', + name: 'Cones of Dunshire', + price: 49.99, + position: 5, + category: 'Games', + url: 'https://www.website.com/product/path', + image_url: 'https://www.website.com/product/path.jpg', + }, + { + product_id: '577c6f5d5cf86a4c7735ba03', + sku: '3309-483-2201', + name: 'Five Crowns', + price: 5.99, + position: 2, + category: 'Games', + }, + ], + }, + }, + destination: sampleDestination, + metadata: { + jobId: 4, + }, + }, + { + message: { + type: 'track', + event: 'Checkout Started', + properties: { + order_id: '40684e8f0eaf000000000000', + affiliation: 'Vandelay Games', + value: 52, + revenue: 50.0, + shipping: 4, + tax: 3, + discount: 5, + coupon: 'NEWCUST5', + currency: 'USD', + products: [ + { + product_id: '622c6f5d5cf86a4c77358033', + sku: '8472-998-0112', + name: 'Cones of Dunshire', + price: 40, + position: 1, + category: 'Games', + url: 'https://www.website.com/product/path', + image_url: 'https://www.website.com/product/path.jpg', + }, + { + product_id: '577c6f5d5cf86a4c7735ba03', + sku: '3309-483-2201', + name: 'Five Crowns', + price: 5, + position: 2, + category: 'Games', + }, + ], + }, + }, + destination: sampleDestination, + metadata: { + jobId: 5, + }, + }, + { + message: { + type: 'track', + event: 'Order Completed', + properties: { + checkout_id: '70324a1f0eaf000000000000', + order_id: '40684e8f0eaf000000000000', + affiliation: 'Vandelay Games', + total: 52.0, + subtotal: 45.0, + revenue: 50.0, + shipping: 4.0, + tax: 3.0, + discount: 5.0, + coupon: 'NEWCUST5', + currency: 'USD', + products: [ + { + product_id: '622c6f5d5cf86a4c77358033', + sku: '8472-998-0112', + name: 'Cones of Dunshire', + price: 40, + position: 1, + category: 'Games', + url: 'https://www.website.com/product/path', + image_url: 'https://www.website.com/product/path.jpg', + }, + { + product_id: '577c6f5d5cf86a4c7735ba03', + sku: '3309-483-2201', + name: 'Five Crowns', + price: 5, + position: 2, + category: 'Games', + }, + ], + }, + }, + destination: sampleDestination, + metadata: { + jobId: 6, + }, + }, + ], + destType, + }, + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://insight.adsrvr.org/track/realtimeconversion', + headers: {}, + params: {}, + body: { + JSON: { + data: [ + { + tracker_id: trackerId, + adv: advertiserId, + event_name: 'addtocart', + value: 249.95000000000002, + adid: 'test-daid', + adid_type: 'DAID', + client_ip: '0.0.0.0', + referrer_url: 'https://docs.rudderstack.com/destinations/trade_desk', + imp: 'messageId123', + items: [ + { + item_code: '622c6f5d5cf86a4c77358033', + name: 'Cones of Dunshire', + qty: 5, + price: 49.99, + }, + ], + td1: 'value1', + category: 'Games', + brand: 'Wyatt Games', + variant: 'exapansion pack', + coupon: 'PREORDER15', + position: 1, + url: 'https://www.website.com/product/path', + image_url: 'https://www.website.com/product/path.webp', + data_processing_option: { + policies: ['LDU'], + region: 'US-CA', + }, + privacy_settings: [ + { + privacy_type: 'GDPR', + is_applicable: 1, + consent_string: 'ok', + }, + ], + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + jobId: 1, + }, + ], + batched: false, + statusCode: 200, + destination: overrideDestination(sampleDestination, { + customProperties: [ + { + rudderProperty: 'properties.key1', + tradeDeskProperty: 'td1', + }, + { + rudderProperty: 'properties.key2', + tradeDeskProperty: 'td2', + }, + ], + }), + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://insight.adsrvr.org/track/realtimeconversion', + headers: {}, + params: {}, + body: { + JSON: { + data: [ + { + tracker_id: trackerId, + adv: advertiserId, + currency: 'USD', + event_name: 'viewitem', + value: 249.95000000000002, + items: [ + { + item_code: '622c6f5d5cf86a4c77358033', + name: 'Cones of Dunshire', + qty: 5, + price: 49.99, + }, + ], + category: 'Games', + brand: 'Wyatt Games', + variant: 'exapansion pack', + coupon: 'PREORDER15', + position: 1, + url: 'https://www.website.com/product/path', + image_url: 'https://www.website.com/product/path.webp', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + jobId: 2, + }, + ], + batched: false, + statusCode: 200, + destination: sampleDestination, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://insight.adsrvr.org/track/realtimeconversion', + headers: {}, + params: {}, + body: { + JSON: { + data: [ + { + tracker_id: trackerId, + adv: advertiserId, + event_name: 'wishlistitem', + value: 49.99, + items: [ + { + item_code: '622c6f5d5cf86a4c77358033', + name: 'Cones of Dunshire', + qty: 1, + price: 49.99, + }, + ], + wishlist_id: '74fkdjfl0jfdkdj29j030', + wishlist_name: 'New Games', + category: 'Games', + brand: 'Wyatt Games', + variant: 'exapansion pack', + coupon: 'PREORDER15', + position: 1, + url: 'https://www.site.com/product/path', + image_url: 'https://www.site.com/product/path.jpg', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + jobId: 3, + }, + ], + batched: false, + statusCode: 200, + destination: sampleDestination, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://insight.adsrvr.org/track/realtimeconversion', + headers: {}, + params: {}, + body: { + JSON: { + data: [ + { + tracker_id: trackerId, + adv: advertiserId, + event_name: 'viewcart', + items: [ + { + item_code: '622c6f5d5cf86a4c77358033', + name: 'Cones of Dunshire', + price: 49.99, + position: 5, + category: 'Games', + url: 'https://www.website.com/product/path', + image_url: 'https://www.website.com/product/path.jpg', + }, + { + item_code: '577c6f5d5cf86a4c7735ba03', + name: 'Five Crowns', + price: 5.99, + position: 2, + category: 'Games', + }, + ], + cart_id: '6b2c6f5aecf86a4ae77358ae3', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + jobId: 4, + }, + ], + batched: false, + statusCode: 200, + destination: sampleDestination, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://insight.adsrvr.org/track/realtimeconversion', + headers: {}, + params: {}, + body: { + JSON: { + data: [ + { + tracker_id: trackerId, + adv: advertiserId, + currency: 'USD', + order_id: '40684e8f0eaf000000000000', + event_name: 'startcheckout', + value: 50, + items: [ + { + item_code: '622c6f5d5cf86a4c77358033', + name: 'Cones of Dunshire', + price: 40, + position: 1, + category: 'Games', + url: 'https://www.website.com/product/path', + image_url: 'https://www.website.com/product/path.jpg', + }, + { + item_code: '577c6f5d5cf86a4c7735ba03', + name: 'Five Crowns', + price: 5, + position: 2, + category: 'Games', + }, + ], + affiliation: 'Vandelay Games', + shipping: 4, + tax: 3, + discount: 5, + coupon: 'NEWCUST5', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + jobId: 5, + }, + ], + batched: false, + statusCode: 200, + destination: sampleDestination, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://insight.adsrvr.org/track/realtimeconversion', + headers: {}, + params: {}, + body: { + JSON: { + data: [ + { + tracker_id: trackerId, + adv: advertiserId, + currency: 'USD', + order_id: '40684e8f0eaf000000000000', + event_name: 'purchase', + value: 50, + items: [ + { + item_code: '622c6f5d5cf86a4c77358033', + name: 'Cones of Dunshire', + price: 40, + position: 1, + category: 'Games', + url: 'https://www.website.com/product/path', + image_url: 'https://www.website.com/product/path.jpg', + }, + { + item_code: '577c6f5d5cf86a4c7735ba03', + name: 'Five Crowns', + price: 5, + position: 2, + category: 'Games', + }, + ], + checkout_id: '70324a1f0eaf000000000000', + affiliation: 'Vandelay Games', + total: 52.0, + subtotal: 45.0, + shipping: 4.0, + tax: 3.0, + discount: 5.0, + coupon: 'NEWCUST5', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + jobId: 6, + }, + ], + batched: false, + statusCode: 200, + destination: sampleDestination, + }, + ], + }, + }, + }, + }, + { + name: destType, + description: 'Custom event', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + type: 'track', + event: 'custom event abc', + properties: { + key1: 'value1', + value: 25, + product_id: 'prd123', + key2: true, + test: 'test123', + }, + }, + destination: overrideDestination(sampleDestination, { + customProperties: [ + { + rudderProperty: 'properties.key1', + tradeDeskProperty: 'td1', + }, + { + rudderProperty: 'properties.key2', + tradeDeskProperty: 'td2', + }, + ], + }), + metadata: { + jobId: 1, + }, + }, + ], + destType, + }, + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://insight.adsrvr.org/track/realtimeconversion', + headers: {}, + params: {}, + body: { + JSON: { + data: [ + { + tracker_id: trackerId, + adv: advertiserId, + event_name: 'custom event abc', + value: 25, + product_id: 'prd123', + test: 'test123', + td1: 'value1', + td2: true, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + jobId: 1, + }, + ], + batched: false, + statusCode: 200, + destination: overrideDestination(sampleDestination, { + customProperties: [ + { + rudderProperty: 'properties.key1', + tradeDeskProperty: 'td1', + }, + { + rudderProperty: 'properties.key2', + tradeDeskProperty: 'td2', + }, + ], + }), + }, + ], + }, + }, + }, + }, + { + name: destType, + description: 'Mapped standard trade desk event', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + type: 'track', + event: 'custom event abc', + properties: { + key1: 'value1', + value: 25, + product_id: 'prd123', + key2: true, + test: 'test123', + }, + }, + destination: overrideDestination(sampleDestination, { + eventsMapping: [ + { + from: 'custom event abc', + to: 'direction', + }, + ], + }), + metadata: { + jobId: 1, + }, + }, + ], + destType, + }, + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://insight.adsrvr.org/track/realtimeconversion', + headers: {}, + params: {}, + body: { + JSON: { + data: [ + { + tracker_id: trackerId, + adv: advertiserId, + event_name: 'direction', + value: 25, + product_id: 'prd123', + test: 'test123', + key1: 'value1', + key2: true, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + jobId: 1, + }, + ], + batched: false, + statusCode: 200, + destination: overrideDestination(sampleDestination, { + eventsMapping: [ + { + from: 'custom event abc', + to: 'direction', + }, + ], + }), + }, + ], + }, + }, + }, + }, + { + name: destType, + description: 'Batch call with different event types', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + type: 'record', + action: 'insert', + fields: { + DAID: 'test-daid-1', + }, + channel: 'sources', + context: sampleContext, + recordId: '1', + }, + destination: sampleDestination, + metadata: { + jobId: 1, + }, + }, + { + message: { + type: 'track', + event: 'custom event abc', + properties: { + key1: 'value1', + value: 25, + revenue: 10, + product_id: 'prd123', + key2: true, + test: 'test123', + products: [ + { + product_id: 'prd123', + test: 'test', + }, + ], + }, + }, + destination: sampleDestination, + metadata: { + jobId: 2, + }, + }, + { + message: { + type: 'identify', + context: { + traits: { + name: 'John Doe', + email: 'johndoe@gmail.com', + age: 25, + }, + }, + }, + destination: sampleDestination, + metadata: { + jobId: 3, + }, + }, + ], + destType, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://sin-data.adsrvr.org/data/advertiser', + headers: {}, + params: {}, + body: { + JSON: { + DataProviderId: dataProviderId, + AdvertiserId: advertiserId, + Items: [ + { + DAID: 'test-daid-1', + Data: [ + { + Name: segmentName, + TTLInMinutes: 43200, + }, + ], + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + ], + metadata: [ + { + jobId: 1, + }, + ], + batched: true, + statusCode: 200, + destination: sampleDestination, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://insight.adsrvr.org/track/realtimeconversion', + headers: {}, + params: {}, + body: { + JSON: { + data: [ + { + tracker_id: trackerId, + adv: advertiserId, + event_name: 'custom event abc', + value: 25, + product_id: 'prd123', + test: 'test123', + key1: 'value1', + key2: true, + revenue: 10, + products: [ + { + product_id: 'prd123', + test: 'test', + }, + ], + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + jobId: 2, + }, + ], + batched: false, + statusCode: 200, + destination: sampleDestination, + }, + { + batched: false, + metadata: [{ jobId: 3 }], + statusCode: 400, + error: 'Event type identify is not supported', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'THE_TRADE_DESK', + module: 'destination', + implementation: 'cdkV2', + feature: 'router', + }, + destination: sampleDestination, + }, + ], + }, + }, + }, + }, + { + name: destType, + description: 'Tracker id is not present', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + type: 'record', + action: 'insert', + fields: { + DAID: 'test-daid-1', + }, + channel: 'sources', + context: sampleContext, + recordId: '1', + }, + destination: overrideDestination(sampleDestination, { trackerId: '' }), + metadata: { + jobId: 1, + }, + }, + { + message: { + type: 'track', + event: 'custom event abc', + properties: { + key1: 'value1', + value: 25, + product_id: 'prd123', + key2: true, + test: 'test123', + }, + }, + destination: overrideDestination(sampleDestination, { trackerId: '' }), + metadata: { + jobId: 2, + }, + }, + ], + destType, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://sin-data.adsrvr.org/data/advertiser', + headers: {}, + params: {}, + body: { + JSON: { + DataProviderId: dataProviderId, + AdvertiserId: advertiserId, + Items: [ + { + DAID: 'test-daid-1', + Data: [ + { + Name: segmentName, + TTLInMinutes: 43200, + }, + ], + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + ], + metadata: [ + { + jobId: 1, + }, + ], + batched: true, + statusCode: 200, + destination: overrideDestination(sampleDestination, { trackerId: '' }), + }, + { + batched: false, + metadata: [{ jobId: 2 }], + statusCode: 400, + error: 'Tracking Tag ID is not present. Aborting', + statTags: { + errorCategory: 'dataValidation', + errorType: 'configuration', + destType: 'THE_TRADE_DESK', + module: 'destination', + implementation: 'cdkV2', + feature: 'router', + }, + destination: overrideDestination(sampleDestination, { trackerId: '' }), + }, + ], + }, + }, + }, + }, ]; diff --git a/test/integrations/destinations/tiktok_ads/router/data.ts b/test/integrations/destinations/tiktok_ads/router/data.ts index 0298979212..7246b8c04a 100644 --- a/test/integrations/destinations/tiktok_ads/router/data.ts +++ b/test/integrations/destinations/tiktok_ads/router/data.ts @@ -69,7 +69,8 @@ export const data = [ sentAt: '2019-10-14T09:03:22.563Z', }, metadata: { - jobId: 5, + jobId: 1, + userId: 'u1', }, destination: { Config: { @@ -136,7 +137,8 @@ export const data = [ sentAt: '2019-10-14T09:03:22.563Z', }, metadata: { - jobId: 1, + jobId: 2, + userId: 'u1', }, destination: { Config: { @@ -206,7 +208,8 @@ export const data = [ sentAt: '2019-10-14T09:03:22.563Z', }, metadata: { - jobId: 2, + jobId: 3, + userId: 'u1', }, destination: { Config: { @@ -277,6 +280,7 @@ export const data = [ }, metadata: { jobId: 4, + userId: 'u1', }, destination: { Config: { @@ -467,17 +471,21 @@ export const data = [ files: {}, }, metadata: [ - { - jobId: 5, - }, { jobId: 1, + userId: 'u1', }, { jobId: 2, + userId: 'u1', + }, + { + jobId: 3, + userId: 'u1', }, { jobId: 4, + userId: 'u1', }, ], batched: true, @@ -558,6 +566,7 @@ export const data = [ }, metadata: { jobId: 3, + userId: 'u1', }, destination: { Config: { @@ -641,6 +650,7 @@ export const data = [ metadata: [ { jobId: 3, + userId: 'u1', }, ], statusCode: 200, @@ -700,7 +710,8 @@ export const data = [ sentAt: '2019-10-14T09:03:22.563Z', }, metadata: { - jobId: 5, + jobId: 1, + userId: 'u1', }, destination: { Config: { @@ -751,7 +762,8 @@ export const data = [ sentAt: '2019-10-14T09:03:22.563Z', }, metadata: { - jobId: 1, + jobId: 2, + userId: 'u1', }, destination: { Config: { @@ -802,7 +814,8 @@ export const data = [ sentAt: '2019-10-14T09:03:22.563Z', }, metadata: { - jobId: 2, + jobId: 3, + userId: 'u1', }, destination: { Config: { @@ -850,6 +863,7 @@ export const data = [ }, metadata: { jobId: 4, + userId: 'u1', }, destination: { Config: { @@ -988,10 +1002,12 @@ export const data = [ }, metadata: [ { - jobId: 5, + jobId: 1, + userId: 'u1', }, { - jobId: 1, + jobId: 2, + userId: 'u1', }, ], batched: true, @@ -1094,10 +1110,12 @@ export const data = [ }, metadata: [ { - jobId: 2, + jobId: 3, + userId: 'u1', }, { jobId: 4, + userId: 'u1', }, ], batched: true, @@ -1171,7 +1189,8 @@ export const data = [ sentAt: '2019-10-14T09:03:22.563Z', }, metadata: { - jobId: 5, + jobId: 1, + userId: 'u1', }, destination: { Config: { @@ -1218,7 +1237,8 @@ export const data = [ sentAt: '2019-10-14T09:03:22.563Z', }, metadata: { - jobId: 1, + jobId: 2, + userId: 'u1', }, destination: { Config: { @@ -1265,7 +1285,8 @@ export const data = [ sentAt: '2019-10-14T09:03:22.563Z', }, metadata: { - jobId: 2, + jobId: 3, + userId: 'u1', }, destination: { Config: { @@ -1313,6 +1334,7 @@ export const data = [ }, metadata: { jobId: 4, + userId: 'u1', }, destination: { Config: { @@ -1450,14 +1472,17 @@ export const data = [ files: {}, }, metadata: [ - { - jobId: 5, - }, { jobId: 1, + userId: 'u1', }, { jobId: 2, + userId: 'u1', + }, + { + jobId: 3, + userId: 'u1', }, ], batched: true, @@ -1528,6 +1553,7 @@ export const data = [ metadata: [ { jobId: 4, + userId: 'u1', }, ], batched: true, @@ -1596,7 +1622,8 @@ export const data = [ sentAt: '2019-10-14T09:03:22.563Z', }, metadata: { - jobId: 5, + jobId: 1, + userId: 'u1', }, destination: { Config: { @@ -1647,7 +1674,8 @@ export const data = [ sentAt: '2019-10-14T09:03:22.563Z', }, metadata: { - jobId: 1, + jobId: 2, + userId: 'u1', }, destination: { Config: { @@ -1698,7 +1726,8 @@ export const data = [ sentAt: '2019-10-14T09:03:22.563Z', }, metadata: { - jobId: 2, + jobId: 3, + userId: 'u1', }, destination: { Config: { @@ -1746,6 +1775,7 @@ export const data = [ }, metadata: { jobId: 4, + userId: 'u1', }, destination: { Config: { @@ -1884,13 +1914,16 @@ export const data = [ }, metadata: [ { - jobId: 5, + jobId: 1, + userId: 'u1', }, { - jobId: 2, + jobId: 3, + userId: 'u1', }, { jobId: 4, + userId: 'u1', }, ], batched: true, @@ -1925,7 +1958,8 @@ export const data = [ error: 'Event name (abc) is not valid, must be mapped to one of standard events', metadata: [ { - jobId: 1, + jobId: 2, + userId: 'u1', }, ], statTags: { @@ -1993,7 +2027,8 @@ export const data = [ sentAt: '2019-10-14T09:03:22.563Z', }, metadata: { - jobId: 5, + jobId: 1, + userId: 'u1', }, destination: { Config: { @@ -2044,7 +2079,8 @@ export const data = [ sentAt: '2019-10-14T09:03:22.563Z', }, metadata: { - jobId: 1, + jobId: 2, + userId: 'u1', }, destination: { Config: { @@ -2096,7 +2132,8 @@ export const data = [ sentAt: '2019-10-14T09:03:22.563Z', }, metadata: { - jobId: 2, + jobId: 3, + userId: 'u1', }, destination: { Config: { @@ -2144,6 +2181,7 @@ export const data = [ }, metadata: { jobId: 4, + userId: 'u1', }, destination: { Config: { @@ -2282,10 +2320,12 @@ export const data = [ }, metadata: [ { - jobId: 5, + jobId: 1, + userId: 'u1', }, { - jobId: 1, + jobId: 2, + userId: 'u1', }, ], batched: true, @@ -2360,6 +2400,7 @@ export const data = [ metadata: [ { jobId: 4, + userId: 'u1', }, ], batched: true, @@ -2443,7 +2484,8 @@ export const data = [ ], metadata: [ { - jobId: 2, + jobId: 3, + userId: 'u1', }, ], batched: false, @@ -2510,7 +2552,8 @@ export const data = [ sentAt: '2019-10-14T09:03:22.563Z', }, metadata: { - jobId: 5, + jobId: 1, + userId: 'u1', }, destination: { Config: { @@ -2563,6 +2606,7 @@ export const data = [ }, metadata: { jobId: 2, + userId: 'u1', }, destination: { Config: { @@ -2650,7 +2694,8 @@ export const data = [ ], metadata: [ { - jobId: 5, + jobId: 1, + userId: 'u1', }, ], batched: false, @@ -2735,6 +2780,7 @@ export const data = [ metadata: [ { jobId: 2, + userId: 'u1', }, ], batched: false, diff --git a/test/integrations/destinations/tiktok_ads_offline_events/processor/data.ts b/test/integrations/destinations/tiktok_ads_offline_events/processor/data.ts index a4ff796f37..2b9341b851 100644 --- a/test/integrations/destinations/tiktok_ads_offline_events/processor/data.ts +++ b/test/integrations/destinations/tiktok_ads_offline_events/processor/data.ts @@ -1,618 +1,617 @@ export const data = [ - { - "name": "tiktok_ads_offline_events", - "description": "Test 0", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "accessToken": "dummyAccessToken", - "hashUserProperties": true - } - }, - "message": { - "type": "Identify", - "userId": "yash001", - "originalTimestamp": "2019-10-14T09:03:17.562Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "statusCode": 400, - "error": "Event type identify is not supported", - "statTags": { - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "destType": "TIKTOK_ADS_OFFLINE_EVENTS", - "module": "destination", - "implementation": "native", - "feature": "processor" - } - } - ] - } - } - }, - { - "name": "tiktok_ads_offline_events", - "description": "Test 1", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "accessToken": "dummyAccessToken", - "hashUserProperties": false - } - }, - "message": { - "event": "subscribe", - "context": { - "traits": { - "phone": "c775e7b757ede630cd0aa1113bd102661ab38829ca52a6422ab782862f268646" - }, - "channel": "web" - }, - "properties": { - "eventSetId": "7181537436256731137", - "eventId": "1616318632825_352", - "order_id": "abc_xyz", - "shop_id": "123abc", - "currency": "USD", - "value": 46, - "price": 8, - "quantity": 2, - "content_type": "product1234", - "product_id": "1077218", - "name": "socks", - "category": "Men's cloth" - }, - "type": "track", - "userId": "eventIdn01", - "timestamp": "2023-01-03" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://business-api.tiktok.com/open_api/v1.3/offline/track/", - "headers": { - "Access-Token": "dummyAccessToken", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "event_set_id": "7181537436256731137", - "event_id": "1616318632825_352", - "timestamp": "2023-01-03", - "properties": { - "order_id": "abc_xyz", - "shop_id": "123abc", - "currency": "USD", - "value": 46, - "event_channel": "web", - "contents": [ - { - "content_name": "socks", - "content_type": "product1234", - "content_category": "Men's cloth", - "content_id": "1077218", - "price": 8, - "quantity": 2 - } - ] - }, - "event": "Subscribe", - "partner_name": "RudderStack", - "context": { - "user": { - "phone_numbers": [ - "c775e7b757ede630cd0aa1113bd102661ab38829ca52a6422ab782862f268646" - ] - } - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "event_set_id": "7181537436256731137", - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "tiktok_ads_offline_events", - "description": "Test 2", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "accessToken": "dummyAccessToken", - "hashUserProperties": true - } - }, - "message": { - "event": "subscribe", - "context": { - "traits": { - "phone": "1234567890" - }, - "channel": "web" - }, - "properties": { - "eventSetId": "7181537436256731137", - "eventId": "1616318632825_352", - "prop1": "val1" - }, - "type": "track", - "userId": "eventIdn01", - "timestamp": "2023-01-03" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://business-api.tiktok.com/open_api/v1.3/offline/track/", - "headers": { - "Access-Token": "dummyAccessToken", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "event_set_id": "7181537436256731137", - "event_id": "1616318632825_352", - "timestamp": "2023-01-03", - "properties": { - "event_channel": "web" - }, - "event": "Subscribe", - "partner_name": "RudderStack", - "context": { - "user": { - "phone_numbers": [ - "c775e7b757ede630cd0aa1113bd102661ab38829ca52a6422ab782862f268646" - ] - } - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "event_set_id": "7181537436256731137", - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "tiktok_ads_offline_events", - "description": "Test 3", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "accessToken": "dummyAccessToken", - "hashUserProperties": true, - "eventsToStandard": [ - { - "from": "RandomEvent", - "to": "SubmitForm" - } - ] - } - }, - "message": { - "event": "RandomEvent", - "context": { - "traits": { - "phone": "1234567890" - }, - "channel": "web" - }, - "properties": { - "eventSetId": "7185009018564395009", - "eventId": "1616318632003_004", - "prop1": "val1" - }, - "userId": "eventIdn01", - "timestamp": "2023-01-03", - "type": "track" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://business-api.tiktok.com/open_api/v1.3/offline/track/", - "headers": { - "Access-Token": "dummyAccessToken", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "event_set_id": "7185009018564395009", - "event_id": "1616318632003_004", - "timestamp": "2023-01-03", - "properties": { - "event_channel": "web" - }, - "event": "SubmitForm", - "partner_name": "RudderStack", - "context": { - "user": { - "phone_numbers": [ - "c775e7b757ede630cd0aa1113bd102661ab38829ca52a6422ab782862f268646" - ] - } - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "event_set_id": "7185009018564395009", - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "tiktok_ads_offline_events", - "description": "Test 4", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "hashUserProperties": true - } - }, - "message": { - "type": "track", - "userId": "yash001", - "originalTimestamp": "2019-10-14T09:03:17.562Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "statusCode": 400, - "error": "Access Token not found", - "statTags": { - "errorCategory": "dataValidation", - "errorType": "configuration", - "destType": "TIKTOK_ADS_OFFLINE_EVENTS", - "module": "destination", - "implementation": "native", - "feature": "processor" - } - } - ] - } - } - }, - { - "name": "tiktok_ads_offline_events", - "description": "Test 5", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "accessToken": "dummyAccessToken", - "hashUserProperties": true - } - }, - "message": { - "event": "subscribe", - "context": { - "traits": { - "phone": "1234567890", - "email": "random@mail.com" - }, - "channel": "web" - }, - "properties": { - "eventSetId": "7181537436256731137", - "eventId": "1616318632825_352", - "products": [ - { - "price": 8, - "quantity": 2, - "content_type": "product1", - "product_id": "1077218", - "name": "socks", - "category": "Men's cloth" - }, - { - "price": 18, - "quantity": 12, - "content_type": "product2", - "product_id": "1077219", - "name": "socks1", - "category": "Men's cloth1" - } - ] - }, - "type": "track", - "userId": "eventIdn01", - "timestamp": "2023-01-03" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://business-api.tiktok.com/open_api/v1.3/offline/track/", - "headers": { - "Access-Token": "dummyAccessToken", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "event_set_id": "7181537436256731137", - "event_id": "1616318632825_352", - "timestamp": "2023-01-03", - "properties": { - "event_channel": "web", - "contents": [ - { - "content_name": "socks", - "content_type": "product1", - "content_category": "Men's cloth", - "content_id": "1077218", - "price": 8, - "quantity": 2 - }, - { - "content_name": "socks1", - "content_type": "product2", - "content_category": "Men's cloth1", - "content_id": "1077219", - "price": 18, - "quantity": 12 - } - ] - }, - "event": "Subscribe", - "partner_name": "RudderStack", - "context": { - "user": { - "emails": [ - "d9fcca64ec1b250da4261a3f89a8e0f7749c4e0f5a1a918e5397194c8b5a9f16" - ], - "phone_numbers": [ - "c775e7b757ede630cd0aa1113bd102661ab38829ca52a6422ab782862f268646" - ] - } - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "event_set_id": "7181537436256731137", - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "tiktok_ads_offline_events", - "description": "Test 6", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "accessToken": "dummyAccessToken", - "hashUserProperties": true, - "eventsToStandard": [ - { - "from": "CompletePayment", - "to": "Purchase" - } - ] - } - }, - "message": { - "type": "track", - "event": "CompletePayment", - "sentAt": "2023-03-22T00:02:33.802Z", - "traits": { - "email": [ - "efaaf5c8803af4fbf305d7a110c832673d89ed40983770329092fd04b0ba7900", - "078d6c8e19f24093368d1712d7801970467f59216f7ccc087bf81b91e0e1f68f" - ], - "phone": [ - "c4994d14e724936f1169147dddf1673a09af69b55cc54bc695dbe246bd093b05", - "078d6c8e19f24093368d1712d7801970467f59216f7ccc087bf81b91e0e1f68f" - ] - }, - "userId": "60241286212", - "channel": "sources", - "context": { - "sources": { - "job_id": "2N4WuoNQpGYmCPASUvnV86QyhY4/Syncher", - "version": "v1.20.0", - "job_run_id": "cgd4a063b2fn2e1j0q90", - "task_run_id": "cgd4a063b2fn2e1j0qa0" - } - }, - "recordId": "16322", - "rudderId": "5b4ed73f-69aa-4198-88d1-3d4d509acbf1", - "messageId": "cgd4b663b2fn2e1j8th0", - "timestamp": "2023-03-22T00:02:33.170Z", - "properties": { - "phone": "c4994d14e724936f1169147dddf1673a09af69b55cc54bc695dbe246bd093b05", - "value": 32.839999999999996, - "emails": "[\"efaaf5c8803af4fbf305d7a110c832673d89ed40983770329092fd04b0ba7900\",\"078d6c8e19f24093368d1712d7801970467f59216f7ccc087bf81b91e0e1f68f\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\"]", - "eventId": "8965fb56-090f-47a5-aa7f-bbab22d9ec90", - "currency": "USD", - "order_id": 60241286212, - "eventSetId": "7211223771099742210", - "event_name": "CompletePayment" - }, - "receivedAt": "2023-03-22T00:02:33.171Z", - "request_ip": "10.7.78.187", - "anonymousId": "60241286212", - "originalTimestamp": "2023-03-22T00:02:33.802Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://business-api.tiktok.com/open_api/v1.3/offline/track/", - "headers": { - "Access-Token": "dummyAccessToken", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "event_set_id": "7211223771099742210", - "event_id": "8965fb56-090f-47a5-aa7f-bbab22d9ec90", - "timestamp": "2023-03-22T00:02:33.170Z", - "properties": { - "order_id": 60241286212, - "currency": "USD", - "value": 32.839999999999996 - }, - "event": "Purchase", - "partner_name": "RudderStack", - "context": { - "user": { - "emails": [ - "4dc75b075057df6f6b729e74a9feed1244dcf8ceb7903eaba13203f3268ae4b9", - "77b639edeb3cd6c801ea05176b8acbfa38d5f38490b764cd0c80756d0cf9ec68" - ], - "phone_numbers": [ - "28b7b205c2936d2ded022d2587fb2677a76e560e921b3ad615b739b0238baa5d", - "77b639edeb3cd6c801ea05176b8acbfa38d5f38490b764cd0c80756d0cf9ec68" - ] - } - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "event_set_id": "7211223771099742210", - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - } -] \ No newline at end of file + { + name: 'tiktok_ads_offline_events', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + accessToken: 'dummyAccessToken', + hashUserProperties: true, + }, + }, + message: { + type: 'Identify', + userId: 'yash001', + originalTimestamp: '2019-10-14T09:03:17.562Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: 'Event type identify is not supported', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'TIKTOK_ADS_OFFLINE_EVENTS', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'tiktok_ads_offline_events', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + accessToken: 'dummyAccessToken', + hashUserProperties: false, + }, + }, + message: { + event: 'subscribe', + context: { + traits: { + phone: 'c775e7b757ede630cd0aa1113bd102661ab38829ca52a6422ab782862f268646', + }, + channel: 'web', + }, + properties: { + eventSetId: '7181537436256731137', + eventId: '1616318632825_352', + order_id: 'abc_xyz', + shop_id: '123abc', + currency: 'USD', + value: 46, + price: 8, + quantity: 2, + content_type: 'product1234', + product_id: '1077218', + name: 'socks', + category: "Men's cloth", + }, + type: 'track', + userId: 'eventIdn01', + timestamp: '2023-01-03', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/offline/track/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + event_set_id: '7181537436256731137', + event_id: '1616318632825_352', + timestamp: '2023-01-03', + properties: { + order_id: 'abc_xyz', + shop_id: '123abc', + currency: 'USD', + value: 46, + event_channel: 'web', + contents: [ + { + content_name: 'socks', + content_type: 'product1234', + content_category: "Men's cloth", + content_id: '1077218', + price: 8, + quantity: 2, + }, + ], + }, + event: 'Subscribe', + partner_name: 'RudderStack', + context: { + user: { + phone_numbers: [ + 'c775e7b757ede630cd0aa1113bd102661ab38829ca52a6422ab782862f268646', + ], + }, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + event_set_id: '7181537436256731137', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'tiktok_ads_offline_events', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + accessToken: 'dummyAccessToken', + hashUserProperties: true, + }, + }, + message: { + event: 'subscribe', + context: { + traits: { + phone: '1234567890', + }, + channel: 'web', + }, + properties: { + eventSetId: '7181537436256731137', + eventId: '1616318632825_352', + prop1: 'val1', + }, + type: 'track', + userId: 'eventIdn01', + timestamp: '2023-01-03', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/offline/track/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + event_set_id: '7181537436256731137', + event_id: '1616318632825_352', + timestamp: '2023-01-03', + properties: { + event_channel: 'web', + }, + event: 'Subscribe', + partner_name: 'RudderStack', + context: { + user: { + phone_numbers: [ + 'c775e7b757ede630cd0aa1113bd102661ab38829ca52a6422ab782862f268646', + ], + }, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + event_set_id: '7181537436256731137', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'tiktok_ads_offline_events', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + accessToken: 'dummyAccessToken', + hashUserProperties: true, + eventsToStandard: [ + { + from: 'RandomEvent', + to: 'SubmitForm', + }, + ], + }, + }, + message: { + event: 'RandomEvent', + context: { + traits: { + phone: '1234567890', + }, + channel: 'web', + }, + properties: { + eventSetId: '7185009018564395009', + eventId: '1616318632003_004', + prop1: 'val1', + }, + userId: 'eventIdn01', + timestamp: '2023-01-03', + type: 'track', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/offline/track/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + event_set_id: '7185009018564395009', + event_id: '1616318632003_004', + timestamp: '2023-01-03', + properties: { + event_channel: 'web', + }, + event: 'SubmitForm', + partner_name: 'RudderStack', + context: { + user: { + phone_numbers: [ + 'c775e7b757ede630cd0aa1113bd102661ab38829ca52a6422ab782862f268646', + ], + }, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + event_set_id: '7185009018564395009', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'tiktok_ads_offline_events', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + hashUserProperties: true, + }, + }, + message: { + type: 'track', + userId: 'yash001', + originalTimestamp: '2019-10-14T09:03:17.562Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: 'Access Token not found', + statTags: { + errorCategory: 'dataValidation', + errorType: 'configuration', + destType: 'TIKTOK_ADS_OFFLINE_EVENTS', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'tiktok_ads_offline_events', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + accessToken: 'dummyAccessToken', + hashUserProperties: true, + }, + }, + message: { + event: 'subscribe', + context: { + traits: { + phone: '1234567890', + email: 'random@mail.com', + }, + channel: 'web', + }, + properties: { + eventSetId: '7181537436256731137', + eventId: '1616318632825_352', + products: [ + { + price: 8, + quantity: 2, + content_type: 'product1', + product_id: '1077218', + name: 'socks', + category: "Men's cloth", + }, + { + price: 18, + quantity: 12, + content_type: 'product2', + product_id: '1077219', + name: 'socks1', + category: "Men's cloth1", + }, + ], + }, + type: 'track', + userId: 'eventIdn01', + timestamp: '2023-01-03', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/offline/track/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + event_set_id: '7181537436256731137', + event_id: '1616318632825_352', + timestamp: '2023-01-03', + properties: { + event_channel: 'web', + contents: [ + { + content_name: 'socks', + content_type: 'product1', + content_category: "Men's cloth", + content_id: '1077218', + price: 8, + quantity: 2, + }, + { + content_name: 'socks1', + content_type: 'product2', + content_category: "Men's cloth1", + content_id: '1077219', + price: 18, + quantity: 12, + }, + ], + }, + event: 'Subscribe', + partner_name: 'RudderStack', + context: { + user: { + emails: ['d9fcca64ec1b250da4261a3f89a8e0f7749c4e0f5a1a918e5397194c8b5a9f16'], + phone_numbers: [ + 'c775e7b757ede630cd0aa1113bd102661ab38829ca52a6422ab782862f268646', + ], + }, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + event_set_id: '7181537436256731137', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'tiktok_ads_offline_events', + description: 'Test 6', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + accessToken: 'dummyAccessToken', + hashUserProperties: true, + eventsToStandard: [ + { + from: 'CompletePayment', + to: 'Purchase', + }, + ], + }, + }, + message: { + type: 'track', + event: 'CompletePayment', + sentAt: '2023-03-22T00:02:33.802Z', + traits: { + email: [ + 'efaaf5c8803af4fbf305d7a110c832673d89ed40983770329092fd04b0ba7900', + '078d6c8e19f24093368d1712d7801970467f59216f7ccc087bf81b91e0e1f68f', + ], + phone: [ + 'c4994d14e724936f1169147dddf1673a09af69b55cc54bc695dbe246bd093b05', + '078d6c8e19f24093368d1712d7801970467f59216f7ccc087bf81b91e0e1f68f', + ], + }, + userId: '60241286212', + channel: 'sources', + context: { + sources: { + job_id: '2N4WuoNQpGYmCPASUvnV86QyhY4/Syncher', + version: 'v1.20.0', + job_run_id: 'cgd4a063b2fn2e1j0q90', + task_run_id: 'cgd4a063b2fn2e1j0qa0', + }, + }, + recordId: '16322', + rudderId: '5b4ed73f-69aa-4198-88d1-3d4d509acbf1', + messageId: 'cgd4b663b2fn2e1j8th0', + timestamp: '2023-03-22T00:02:33.170Z', + properties: { + phone: 'c4994d14e724936f1169147dddf1673a09af69b55cc54bc695dbe246bd093b05', + value: 32.839999999999996, + emails: + '["efaaf5c8803af4fbf305d7a110c832673d89ed40983770329092fd04b0ba7900","078d6c8e19f24093368d1712d7801970467f59216f7ccc087bf81b91e0e1f68f","","","","","","","",""]', + eventId: '8965fb56-090f-47a5-aa7f-bbab22d9ec90', + currency: 'USD', + order_id: 60241286212, + eventSetId: '7211223771099742210', + event_name: 'CompletePayment', + }, + receivedAt: '2023-03-22T00:02:33.171Z', + request_ip: '10.7.78.187', + anonymousId: '60241286212', + originalTimestamp: '2023-03-22T00:02:33.802Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/offline/track/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + event_set_id: '7211223771099742210', + event_id: '8965fb56-090f-47a5-aa7f-bbab22d9ec90', + timestamp: '2023-03-22T00:02:33.170Z', + properties: { + order_id: 60241286212, + currency: 'USD', + value: 32.839999999999996, + }, + event: 'Purchase', + partner_name: 'RudderStack', + context: { + user: { + emails: [ + '4dc75b075057df6f6b729e74a9feed1244dcf8ceb7903eaba13203f3268ae4b9', + '77b639edeb3cd6c801ea05176b8acbfa38d5f38490b764cd0c80756d0cf9ec68', + ], + phone_numbers: [ + '28b7b205c2936d2ded022d2587fb2677a76e560e921b3ad615b739b0238baa5d', + '77b639edeb3cd6c801ea05176b8acbfa38d5f38490b764cd0c80756d0cf9ec68', + ], + }, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + event_set_id: '7211223771099742210', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/tiktok_ads_offline_events/router/data.ts b/test/integrations/destinations/tiktok_ads_offline_events/router/data.ts index c479da741b..15b5f6674d 100644 --- a/test/integrations/destinations/tiktok_ads_offline_events/router/data.ts +++ b/test/integrations/destinations/tiktok_ads_offline_events/router/data.ts @@ -1,10 +1,8 @@ -import { FEATURES } from '../../../../../src/v0/util/tags'; - export const data = [ { name: 'tiktok_ads_offline_events', description: 'Test 0', - feature: FEATURES.ROUTER, + feature: 'router', module: 'destination', version: 'v0', input: { @@ -12,30 +10,20 @@ export const data = [ body: { input: [ { - metadata: { - jobId: 1, - }, + metadata: { jobId: 1, userId: 'u1' }, destination: { - Config: { - accessToken: 'dummyAccessToken', - hashUserProperties: true, - }, + Config: { accessToken: 'dummyAccessToken', hashUserProperties: true }, }, message: { event: 'subscribe', - context: { - traits: { - phone: '1234567890', - }, - channel: 'web', - }, + context: { traits: { phone: '1234567890' }, channel: 'web' }, properties: { eventSetId: '7181537436256731137', eventId: '1616318632825_352', order_id: 'abc_xyz', shop_id: '123abc', currency: 'USD', - value: 46.0, + value: 46, price: 8, quantity: 2, content_type: 'product1234', @@ -49,22 +37,14 @@ export const data = [ }, }, { - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, destination: { - Config: { - accessToken: 'dummyAccessToken', - hashUserProperties: true, - }, + Config: { accessToken: 'dummyAccessToken', hashUserProperties: true }, }, message: { event: 'subscribe', context: { - traits: { - phone: '1234567890', - email: 'random@mail.com', - }, + traits: { phone: '1234567890', email: 'random@mail.com' }, channel: 'web', }, properties: { @@ -111,10 +91,7 @@ export const data = [ type: 'REST', method: 'POST', endpoint: 'https://business-api.tiktok.com/open_api/v1.3/offline/batch/', - headers: { - 'Access-Token': 'dummyAccessToken', - 'Content-Type': 'application/json', - }, + headers: { 'Access-Token': 'dummyAccessToken', 'Content-Type': 'application/json' }, params: {}, body: { JSON: { @@ -149,7 +126,7 @@ export const data = [ ], event_channel: 'web', currency: 'USD', - value: 46.0, + value: 46, }, }, { @@ -199,18 +176,11 @@ export const data = [ files: {}, }, destination: { - Config: { - accessToken: 'dummyAccessToken', - hashUserProperties: true, - }, + Config: { accessToken: 'dummyAccessToken', hashUserProperties: true }, }, metadata: [ - { - jobId: 1, - }, - { - jobId: 2, - }, + { jobId: 1, userId: 'u1' }, + { jobId: 2, userId: 'u1' }, ], statusCode: 200, }, @@ -222,7 +192,7 @@ export const data = [ { name: 'tiktok_ads_offline_events', description: 'Test 1', - feature: FEATURES.ROUTER, + feature: 'router', module: 'destination', version: 'v0', input: { @@ -230,28 +200,18 @@ export const data = [ body: { input: [ { - metadata: { - jobId: 3, - }, + metadata: { jobId: 3, userId: 'u1' }, destination: { - Config: { - accessToken: 'dummyAccessToken', - hashUserProperties: true, - }, + Config: { accessToken: 'dummyAccessToken', hashUserProperties: true }, }, message: { event: 'subscribe', - context: { - traits: { - phone: '1234567890', - }, - channel: 'web', - }, + context: { traits: { phone: '1234567890' }, channel: 'web' }, properties: { eventSetId: '6071537445256731123', eventId: '1616318632825_352', currency: 'USD', - value: 46.0, + value: 46, price: 8, content_type: 'product1234', }, @@ -277,10 +237,7 @@ export const data = [ type: 'REST', method: 'POST', endpoint: 'https://business-api.tiktok.com/open_api/v1.3/offline/batch/', - headers: { - 'Access-Token': 'dummyAccessToken', - 'Content-Type': 'application/json', - }, + headers: { 'Access-Token': 'dummyAccessToken', 'Content-Type': 'application/json' }, params: {}, body: { JSON: { @@ -301,15 +258,10 @@ export const data = [ }, }, properties: { - contents: [ - { - price: 8, - content_type: 'product1234', - }, - ], + contents: [{ price: 8, content_type: 'product1234' }], event_channel: 'web', currency: 'USD', - value: 46.0, + value: 46, }, }, ], @@ -321,16 +273,9 @@ export const data = [ files: {}, }, destination: { - Config: { - accessToken: 'dummyAccessToken', - hashUserProperties: true, - }, + Config: { accessToken: 'dummyAccessToken', hashUserProperties: true }, }, - metadata: [ - { - jobId: 3, - }, - ], + metadata: [{ jobId: 3, userId: 'u1' }], statusCode: 200, }, ], @@ -341,7 +286,7 @@ export const data = [ { name: 'tiktok_ads_offline_events', description: 'Test 2', - feature: FEATURES.ROUTER, + feature: 'router', module: 'destination', version: 'v0', input: { @@ -349,26 +294,13 @@ export const data = [ body: { input: [ { - metadata: { - jobId: 4, - }, + metadata: { jobId: 4, userId: 'u1' }, destination: { - Config: { - accessToken: 'dummyAccessToken', - hashUserProperties: true, - }, + Config: { accessToken: 'dummyAccessToken', hashUserProperties: true }, }, message: { - context: { - traits: { - phone: '1234567890', - }, - channel: 'web', - }, - properties: { - eventSetId: '2345676543', - eventId: '1616318632825_352', - }, + context: { traits: { phone: '1234567890' }, channel: 'web' }, + properties: { eventSetId: '2345676543', eventId: '1616318632825_352' }, type: 'track', userId: 'eventIdn01', timestamp: '2023-01-03', @@ -386,18 +318,11 @@ export const data = [ output: [ { destination: { - Config: { - accessToken: 'dummyAccessToken', - hashUserProperties: true, - }, + Config: { accessToken: 'dummyAccessToken', hashUserProperties: true }, }, batched: false, error: 'Event name is required', - metadata: [ - { - jobId: 4, - }, - ], + metadata: [{ jobId: 4, userId: 'u1' }], statTags: { errorCategory: 'dataValidation', errorType: 'instrumentation', diff --git a/test/integrations/destinations/tiktok_audience/processor/data.ts b/test/integrations/destinations/tiktok_audience/processor/data.ts index a715aa2f72..0395ff48e0 100644 --- a/test/integrations/destinations/tiktok_audience/processor/data.ts +++ b/test/integrations/destinations/tiktok_audience/processor/data.ts @@ -1,854 +1,746 @@ export const data = [ - { - "name": "tiktok_audience", - "description": "Test 1: Containing SHA256 traits only", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ + { + name: 'tiktok_audience', + description: 'Test 1: Containing SHA256 traits only', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'user 1', + type: 'audiencelist', + properties: { + listData: { + add: [ { - "message": { - "userId": "user 1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [ - { - "EMAIL_SHA256": "alex@email.com" - }, - { - "EMAIL_SHA256": "amy@abc.com" - }, - { - "EMAIL_SHA256": "van@abc.com" - } - ], - "remove": [ - { - "EMAIL_SHA256": "alex@email.com" - }, - { - "EMAIL_SHA256": "amy@abc.com" - }, - { - "EMAIL_SHA256": "van@abc.com" - } - ] - } - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - }, - "externalId": [ - { - "type": "TIKTOK_AUDIENCE-23856594064540489", - "identifierType": "EMAIL_SHA256" - } - ], - "destinationFields": "EMAIL_SHA256" - }, - "timestamp": "2020-02-02T00:23:09.544Z" - }, - "metadata": { - "jobId": 1, - "secret": { - "accessToken": "dummyAccessToken", - "advertiserIds": [ - "dummyAdverTiserID" - ] - } - }, - "destination": { - "DestinationDefinition": { - "Config": { - "cdkV2Enabled": true - } - }, - "Config": { - "isHashRequired": true, - "registerDeviceOrBrowserApiKey": true, - "apiKey": "intercomApiKey", - "appId": "9e9cdea1-78fa-4829-a9b2-5d7f7e96d1a0", - "collectContext": false - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ + EMAIL_SHA256: 'alex@email.com', + }, + { + EMAIL_SHA256: 'amy@abc.com', + }, + { + EMAIL_SHA256: 'van@abc.com', + }, + ], + remove: [ + { + EMAIL_SHA256: 'alex@email.com', + }, { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://business-api.tiktok.com/open_api/v1.3/segment/mapping/", - "headers": { - "Access-Token": "dummyAccessToken", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "batch_data": [ - [ - { - "id": "ac0f1baec38a9ef3cfcb56db981df7d9bab2568c7f53ef3776d1c059ec58e72b", - "audience_ids": [ - "23856594064540489" - ] - } - ], - [ - { - "id": "49eaeca26c878f268ad33af8cfa8194ca5b8b8e448b1c775bf9153a2de734579", - "audience_ids": [ - "23856594064540489" - ] - } - ], - [ - { - "id": "2048acfa84a01121060ca2fc8a673a76d427176dc37224d4408c21973bd90e5c", - "audience_ids": [ - "23856594064540489" - ] - } - ] - ], - "id_schema": [ - "EMAIL_SHA256" - ], - "advertiser_ids": [ - "dummyAdverTiserID" - ], - "action": "add" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "metadata": { - "jobId": 1, - "secret": { - "accessToken": "dummyAccessToken", - "advertiserIds": [ - "dummyAdverTiserID" - ] - } - }, - "statusCode": 200 + EMAIL_SHA256: 'amy@abc.com', }, { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://business-api.tiktok.com/open_api/v1.3/segment/mapping/", - "headers": { - "Access-Token": "dummyAccessToken", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "batch_data": [ - [ - { - "id": "ac0f1baec38a9ef3cfcb56db981df7d9bab2568c7f53ef3776d1c059ec58e72b", - "audience_ids": [ - "23856594064540489" - ] - } - ], - [ - { - "id": "49eaeca26c878f268ad33af8cfa8194ca5b8b8e448b1c775bf9153a2de734579", - "audience_ids": [ - "23856594064540489" - ] - } - ], - [ - { - "id": "2048acfa84a01121060ca2fc8a673a76d427176dc37224d4408c21973bd90e5c", - "audience_ids": [ - "23856594064540489" - ] - } - ] - ], - "id_schema": [ - "EMAIL_SHA256" - ], - "advertiser_ids": [ - "dummyAdverTiserID" - ], - "action": "delete" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "metadata": { - "jobId": 1, - "secret": { - "accessToken": "dummyAccessToken", - "advertiserIds": [ - "dummyAdverTiserID" - ] - } - }, - "statusCode": 200 - } - ] - } - } + EMAIL_SHA256: 'van@abc.com', + }, + ], + }, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + externalId: [ + { + type: 'TIKTOK_AUDIENCE-23856594064540489', + identifierType: 'EMAIL_SHA256', + }, + ], + destinationFields: 'EMAIL_SHA256', + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + metadata: { + jobId: 1, + secret: { + accessToken: 'dummyAccessToken', + advertiserIds: ['dummyAdverTiserID'], + }, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + isHashRequired: true, + registerDeviceOrBrowserApiKey: true, + apiKey: 'intercomApiKey', + appId: '9e9cdea1-78fa-4829-a9b2-5d7f7e96d1a0', + collectContext: false, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/segment/mapping/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + batch_data: [ + [ + { + id: 'ac0f1baec38a9ef3cfcb56db981df7d9bab2568c7f53ef3776d1c059ec58e72b', + audience_ids: ['23856594064540489'], + }, + ], + [ + { + id: '49eaeca26c878f268ad33af8cfa8194ca5b8b8e448b1c775bf9153a2de734579', + audience_ids: ['23856594064540489'], + }, + ], + [ + { + id: '2048acfa84a01121060ca2fc8a673a76d427176dc37224d4408c21973bd90e5c', + audience_ids: ['23856594064540489'], + }, + ], + ], + id_schema: ['EMAIL_SHA256'], + advertiser_ids: ['dummyAdverTiserID'], + action: 'add', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + jobId: 1, + secret: { + accessToken: 'dummyAccessToken', + advertiserIds: ['dummyAdverTiserID'], + }, + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/segment/mapping/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + batch_data: [ + [ + { + id: 'ac0f1baec38a9ef3cfcb56db981df7d9bab2568c7f53ef3776d1c059ec58e72b', + audience_ids: ['23856594064540489'], + }, + ], + [ + { + id: '49eaeca26c878f268ad33af8cfa8194ca5b8b8e448b1c775bf9153a2de734579', + audience_ids: ['23856594064540489'], + }, + ], + [ + { + id: '2048acfa84a01121060ca2fc8a673a76d427176dc37224d4408c21973bd90e5c', + audience_ids: ['23856594064540489'], + }, + ], + ], + id_schema: ['EMAIL_SHA256'], + advertiser_ids: ['dummyAdverTiserID'], + action: 'delete', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + jobId: 1, + secret: { + accessToken: 'dummyAccessToken', + advertiserIds: ['dummyAdverTiserID'], + }, + }, + statusCode: 200, + }, + ], + }, }, - { - "name": "tiktok_audience", - "description": "Test 2: Containing SHA256 and MD5 traits", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ + }, + { + name: 'tiktok_audience', + description: 'Test 2: Containing SHA256 and MD5 traits', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'user 1', + type: 'audiencelist', + properties: { + listData: { + add: [ + { + EMAIL_SHA256: 'alex@email.com', + AAID_MD5: '1234567', + }, { - "message": { - "userId": "user 1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [ - { - "EMAIL_SHA256": "alex@email.com", - "AAID_MD5": "1234567" - }, - { - "EMAIL_SHA256": "amy@abc.com", - "AAID_MD5": "1234568" - }, - { - "EMAIL_SHA256": "van@abc.com", - "AAID_MD5": "1234569" - } - ], - "remove": [ - { - "EMAIL_SHA256": "alex@email.com", - "AAID_MD5": "1234570" - }, - { - "EMAIL_SHA256": "amy@abc.com", - "AAID_MD5": "1234571" - }, - { - "EMAIL_SHA256": "van@abc.com", - "AAID_MD5": "1234572" - } - ] - } - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - }, - "externalId": [ - { - "type": "TIKTOK_AUDIENCE-23856594064540489", - "identifierType": "EMAIL_SHA256" - } - ], - "destinationFields": "EMAIL_SHA256, AAID_MD5" - }, - "timestamp": "2020-02-02T00:23:09.544Z" - }, - "metadata": { - "jobId": 1, - "secret": { - "accessToken": "dummyAccessToken", - "advertiserIds": [ - "dummyAdverTiserID" - ] - } - }, - "destination": { - "DestinationDefinition": { - "Config": { - "cdkV2Enabled": true - } - }, - "Config": { - "isHashRequired": true, - "registerDeviceOrBrowserApiKey": true, - "apiKey": "intercomApiKey", - "appId": "9e9cdea1-78fa-4829-a9b2-5d7f7e96d1a0", - "collectContext": false - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ + EMAIL_SHA256: 'amy@abc.com', + AAID_MD5: '1234568', + }, { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://business-api.tiktok.com/open_api/v1.3/segment/mapping/", - "headers": { - "Access-Token": "dummyAccessToken", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "batch_data": [ - [ - { - "id": "ac0f1baec38a9ef3cfcb56db981df7d9bab2568c7f53ef3776d1c059ec58e72b", - "audience_ids": [ - "23856594064540489" - ] - }, - { - "id": "fcea920f7412b5da7be0cf42b8c93759", - "audience_ids": [ - "23856594064540489" - ] - } - ], - [ - { - "id": "49eaeca26c878f268ad33af8cfa8194ca5b8b8e448b1c775bf9153a2de734579", - "audience_ids": [ - "23856594064540489" - ] - }, - { - "id": "fe743d8d97aa7dfc6c93ccdc2e749513", - "audience_ids": [ - "23856594064540489" - ] - } - ], - [ - { - "id": "2048acfa84a01121060ca2fc8a673a76d427176dc37224d4408c21973bd90e5c", - "audience_ids": [ - "23856594064540489" - ] - }, - { - "id": "e36a2f90240e9e84483504fd4a704452", - "audience_ids": [ - "23856594064540489" - ] - } - ] - ], - "id_schema": [ - "EMAIL_SHA256", - "AAID_MD5" - ], - "advertiser_ids": [ - "dummyAdverTiserID" - ], - "action": "add" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "metadata": { - "jobId": 1, - "secret": { - "accessToken": "dummyAccessToken", - "advertiserIds": [ - "dummyAdverTiserID" - ] - } - }, - "statusCode": 200 + EMAIL_SHA256: 'van@abc.com', + AAID_MD5: '1234569', }, + ], + remove: [ { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://business-api.tiktok.com/open_api/v1.3/segment/mapping/", - "headers": { - "Access-Token": "dummyAccessToken", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "batch_data": [ - [ - { - "id": "ac0f1baec38a9ef3cfcb56db981df7d9bab2568c7f53ef3776d1c059ec58e72b", - "audience_ids": [ - "23856594064540489" - ] - }, - { - "id": "c1abd65fea29d573ddef1bce925e3276", - "audience_ids": [ - "23856594064540489" - ] - } - ], - [ - { - "id": "49eaeca26c878f268ad33af8cfa8194ca5b8b8e448b1c775bf9153a2de734579", - "audience_ids": [ - "23856594064540489" - ] - }, - { - "id": "7298110702a080dfc6903f13333eb04a", - "audience_ids": [ - "23856594064540489" - ] - } - ], - [ - { - "id": "2048acfa84a01121060ca2fc8a673a76d427176dc37224d4408c21973bd90e5c", - "audience_ids": [ - "23856594064540489" - ] - }, - { - "id": "d9cb68b1fd3b9d32abc5f4cab8b42b68", - "audience_ids": [ - "23856594064540489" - ] - } - ] - ], - "id_schema": [ - "EMAIL_SHA256", - "AAID_MD5" - ], - "advertiser_ids": [ - "dummyAdverTiserID" - ], - "action": "delete" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "metadata": { - "jobId": 1, - "secret": { - "accessToken": "dummyAccessToken", - "advertiserIds": [ - "dummyAdverTiserID" - ] - } - }, - "statusCode": 200 - } - ] - } - } + EMAIL_SHA256: 'alex@email.com', + AAID_MD5: '1234570', + }, + { + EMAIL_SHA256: 'amy@abc.com', + AAID_MD5: '1234571', + }, + { + EMAIL_SHA256: 'van@abc.com', + AAID_MD5: '1234572', + }, + ], + }, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + externalId: [ + { + type: 'TIKTOK_AUDIENCE-23856594064540489', + identifierType: 'EMAIL_SHA256', + }, + ], + destinationFields: 'EMAIL_SHA256, AAID_MD5', + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + metadata: { + jobId: 1, + secret: { + accessToken: 'dummyAccessToken', + advertiserIds: ['dummyAdverTiserID'], + }, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + isHashRequired: true, + registerDeviceOrBrowserApiKey: true, + apiKey: 'intercomApiKey', + appId: '9e9cdea1-78fa-4829-a9b2-5d7f7e96d1a0', + collectContext: false, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/segment/mapping/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + batch_data: [ + [ + { + id: 'ac0f1baec38a9ef3cfcb56db981df7d9bab2568c7f53ef3776d1c059ec58e72b', + audience_ids: ['23856594064540489'], + }, + { + id: 'fcea920f7412b5da7be0cf42b8c93759', + audience_ids: ['23856594064540489'], + }, + ], + [ + { + id: '49eaeca26c878f268ad33af8cfa8194ca5b8b8e448b1c775bf9153a2de734579', + audience_ids: ['23856594064540489'], + }, + { + id: 'fe743d8d97aa7dfc6c93ccdc2e749513', + audience_ids: ['23856594064540489'], + }, + ], + [ + { + id: '2048acfa84a01121060ca2fc8a673a76d427176dc37224d4408c21973bd90e5c', + audience_ids: ['23856594064540489'], + }, + { + id: 'e36a2f90240e9e84483504fd4a704452', + audience_ids: ['23856594064540489'], + }, + ], + ], + id_schema: ['EMAIL_SHA256', 'AAID_MD5'], + advertiser_ids: ['dummyAdverTiserID'], + action: 'add', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + jobId: 1, + secret: { + accessToken: 'dummyAccessToken', + advertiserIds: ['dummyAdverTiserID'], + }, + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/segment/mapping/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + batch_data: [ + [ + { + id: 'ac0f1baec38a9ef3cfcb56db981df7d9bab2568c7f53ef3776d1c059ec58e72b', + audience_ids: ['23856594064540489'], + }, + { + id: 'c1abd65fea29d573ddef1bce925e3276', + audience_ids: ['23856594064540489'], + }, + ], + [ + { + id: '49eaeca26c878f268ad33af8cfa8194ca5b8b8e448b1c775bf9153a2de734579', + audience_ids: ['23856594064540489'], + }, + { + id: '7298110702a080dfc6903f13333eb04a', + audience_ids: ['23856594064540489'], + }, + ], + [ + { + id: '2048acfa84a01121060ca2fc8a673a76d427176dc37224d4408c21973bd90e5c', + audience_ids: ['23856594064540489'], + }, + { + id: 'd9cb68b1fd3b9d32abc5f4cab8b42b68', + audience_ids: ['23856594064540489'], + }, + ], + ], + id_schema: ['EMAIL_SHA256', 'AAID_MD5'], + advertiser_ids: ['dummyAdverTiserID'], + action: 'delete', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + jobId: 1, + secret: { + accessToken: 'dummyAccessToken', + advertiserIds: ['dummyAdverTiserID'], + }, + }, + statusCode: 200, + }, + ], + }, }, - { - "name": "tiktok_audience", - "description": "Test 3: Containing all possible traits", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ + }, + { + name: 'tiktok_audience', + description: 'Test 3: Containing all possible traits', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'user 1', + type: 'audiencelist', + properties: { + listData: { + add: [ { - "message": { - "userId": "user 1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [ - { - "EMAIL_SHA256": "alex@email.com", - "PHONE_SHA256": "+129988776655", - "IDFA_SHA256": "1234lkasfjdalj12321", - "AAID_SHA256": "000999OOOQQQQ", - "AAID_MD5": "000999OOOQQQQ", - "IDFA_MD5": "1234lkasfjdalj12321" - }, - { - "EMAIL_SHA256": "amy@abc.com", - "PHONE_SHA256": "+129988776677", - "IDFA_SHA256": "1234lkasfjdalj114455", - "AAID_SHA256": "000999OOOPPPP", - "AAID_MD5": "000999OOOPPPP", - "IDFA_MD5": "1234lkasfjdalj114455" - } - ] - } - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - }, - "externalId": [ - { - "type": "TIKTOK_AUDIENCE-23856594064540489", - "identifierType": "EMAIL_SHA256" - } - ], - "destinationFields": "EMAIL_SHA256, PHONE_SHA256, IDFA_SHA256, AAID_SHA256, AAID_MD, IDFA_MD5" - }, - "timestamp": "2020-02-02T00:23:09.544Z" - }, - "metadata": { - "jobId": 1, - "secret": { - "accessToken": "dummyAccessToken", - "advertiserIds": [ - "dummyAdverTiserID" - ] - } - }, - "destination": { - "DestinationDefinition": { - "Config": { - "cdkV2Enabled": true - } - }, - "Config": { - "isHashRequired": true, - "registerDeviceOrBrowserApiKey": true, - "apiKey": "intercomApiKey", - "appId": "9e9cdea1-78fa-4829-a9b2-5d7f7e96d1a0", - "collectContext": false - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ + EMAIL_SHA256: 'alex@email.com', + PHONE_SHA256: '+129988776655', + IDFA_SHA256: '1234lkasfjdalj12321', + AAID_SHA256: '000999OOOQQQQ', + AAID_MD5: '000999OOOQQQQ', + IDFA_MD5: '1234lkasfjdalj12321', + }, { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://business-api.tiktok.com/open_api/v1.3/segment/mapping/", - "headers": { - "Access-Token": "dummyAccessToken", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "batch_data": [ - [ - { - "id": "ac0f1baec38a9ef3cfcb56db981df7d9bab2568c7f53ef3776d1c059ec58e72b", - "audience_ids": [ - "23856594064540489" - ] - }, - { - "id": "31e78a3bf9ce2b43316f64fe883a531d6266938091e94e2f2480272481163dee", - "audience_ids": [ - "23856594064540489" - ] - }, - { - "id": "0259f595f7172c8dd692a5c37b4d296939555f862aae8adb964391bdb65006ab", - "audience_ids": [ - "23856594064540489" - ] - }, - { - "id": "b06fbe7a29f33576a792ba3df3c9bf838cd26ea88cf574285fa60dc0234a8485", - "audience_ids": [ - "23856594064540489" - ] - }, - {}, - { - "id": "32ee3d063320815a13e0058c2498ff76", - "audience_ids": [ - "23856594064540489" - ] - } - ], - [ - { - "id": "49eaeca26c878f268ad33af8cfa8194ca5b8b8e448b1c775bf9153a2de734579", - "audience_ids": [ - "23856594064540489" - ] - }, - { - "id": "fb40adc7debbf40e7b45b0a4a91886785dff1a28809276f95f1c44f7045f9b4d", - "audience_ids": [ - "23856594064540489" - ] - }, - { - "id": "e6bbdf34c5f3472f31b2923a26811560a599233f3dea4c9971595c3bb7b1e8dc", - "audience_ids": [ - "23856594064540489" - ] - }, - { - "id": "661125f7d337811256c5b55996b22c89047804dcec494db72659e4be71e03091", - "audience_ids": [ - "23856594064540489" - ] - }, - {}, - { - "id": "94162773066d6ae88b2658dc58ca2317", - "audience_ids": [ - "23856594064540489" - ] - } - ] - ], - "id_schema": [ - "EMAIL_SHA256", - "PHONE_SHA256", - "IDFA_SHA256", - "AAID_SHA256", - "AAID_MD", - "IDFA_MD5" - ], - "advertiser_ids": [ - "dummyAdverTiserID" - ], - "action": "add" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "metadata": { - "jobId": 1, - "secret": { - "accessToken": "dummyAccessToken", - "advertiserIds": [ - "dummyAdverTiserID" - ] - } - }, - "statusCode": 200 - } - ] - } - } + EMAIL_SHA256: 'amy@abc.com', + PHONE_SHA256: '+129988776677', + IDFA_SHA256: '1234lkasfjdalj114455', + AAID_SHA256: '000999OOOPPPP', + AAID_MD5: '000999OOOPPPP', + IDFA_MD5: '1234lkasfjdalj114455', + }, + ], + }, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + externalId: [ + { + type: 'TIKTOK_AUDIENCE-23856594064540489', + identifierType: 'EMAIL_SHA256', + }, + ], + destinationFields: + 'EMAIL_SHA256, PHONE_SHA256, IDFA_SHA256, AAID_SHA256, AAID_MD, IDFA_MD5', + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + metadata: { + jobId: 1, + secret: { + accessToken: 'dummyAccessToken', + advertiserIds: ['dummyAdverTiserID'], + }, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + isHashRequired: true, + registerDeviceOrBrowserApiKey: true, + apiKey: 'intercomApiKey', + appId: '9e9cdea1-78fa-4829-a9b2-5d7f7e96d1a0', + collectContext: false, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/segment/mapping/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + batch_data: [ + [ + { + id: 'ac0f1baec38a9ef3cfcb56db981df7d9bab2568c7f53ef3776d1c059ec58e72b', + audience_ids: ['23856594064540489'], + }, + { + id: '31e78a3bf9ce2b43316f64fe883a531d6266938091e94e2f2480272481163dee', + audience_ids: ['23856594064540489'], + }, + { + id: '0259f595f7172c8dd692a5c37b4d296939555f862aae8adb964391bdb65006ab', + audience_ids: ['23856594064540489'], + }, + { + id: 'b06fbe7a29f33576a792ba3df3c9bf838cd26ea88cf574285fa60dc0234a8485', + audience_ids: ['23856594064540489'], + }, + {}, + { + id: '32ee3d063320815a13e0058c2498ff76', + audience_ids: ['23856594064540489'], + }, + ], + [ + { + id: '49eaeca26c878f268ad33af8cfa8194ca5b8b8e448b1c775bf9153a2de734579', + audience_ids: ['23856594064540489'], + }, + { + id: 'fb40adc7debbf40e7b45b0a4a91886785dff1a28809276f95f1c44f7045f9b4d', + audience_ids: ['23856594064540489'], + }, + { + id: 'e6bbdf34c5f3472f31b2923a26811560a599233f3dea4c9971595c3bb7b1e8dc', + audience_ids: ['23856594064540489'], + }, + { + id: '661125f7d337811256c5b55996b22c89047804dcec494db72659e4be71e03091', + audience_ids: ['23856594064540489'], + }, + {}, + { + id: '94162773066d6ae88b2658dc58ca2317', + audience_ids: ['23856594064540489'], + }, + ], + ], + id_schema: [ + 'EMAIL_SHA256', + 'PHONE_SHA256', + 'IDFA_SHA256', + 'AAID_SHA256', + 'AAID_MD', + 'IDFA_MD5', + ], + advertiser_ids: ['dummyAdverTiserID'], + action: 'add', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + jobId: 1, + secret: { + accessToken: 'dummyAccessToken', + advertiserIds: ['dummyAdverTiserID'], + }, + }, + statusCode: 200, + }, + ], + }, }, - { - "name": "tiktok_audience", - "description": "Test 4: Considering some null values", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ + }, + { + name: 'tiktok_audience', + description: 'Test 4: Considering some null values', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'user 1', + type: 'audiencelist', + properties: { + listData: { + add: [ { - "message": { - "userId": "user 1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [ - { - "EMAIL_SHA256": "alex@email.com", - "PHONE_SHA256": "+129988776655", - "AAID_MD5": "000999OOOQQQQ", - "IDFA_MD5": "1234lkasfjdalj12321" - }, - { - "EMAIL_SHA256": "amy@abc.com", - "AAID_SHA256": "000999OOOPPPP", - "AAID_MD5": "000999OOOPPPP", - "IDFA_MD5": "1234lkasfjdalj114455" - } - ] - } - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - }, - "externalId": [ - { - "type": "TIKTOK_AUDIENCE-23856594064540489", - "identifierType": "EMAIL_SHA256" - } - ], - "destinationFields": "EMAIL_SHA256, PHONE_SHA256, IDFA_SHA256, AAID_SHA256, AAID_MD, IDFA_MD5" - }, - "timestamp": "2020-02-02T00:23:09.544Z" - }, - "metadata": { - "jobId": 1, - "secret": { - "accessToken": "dummyAccessToken", - "advertiserIds": [ - "dummyAdverTiserID" - ] - } - }, - "destination": { - "DestinationDefinition": { - "Config": { - "cdkV2Enabled": true - } - }, - "Config": { - "isHashRequired": true, - "registerDeviceOrBrowserApiKey": true, - "apiKey": "intercomApiKey", - "appId": "9e9cdea1-78fa-4829-a9b2-5d7f7e96d1a0", - "collectContext": false - } - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ + EMAIL_SHA256: 'alex@email.com', + PHONE_SHA256: '+129988776655', + AAID_MD5: '000999OOOQQQQ', + IDFA_MD5: '1234lkasfjdalj12321', + }, { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://business-api.tiktok.com/open_api/v1.3/segment/mapping/", - "headers": { - "Access-Token": "dummyAccessToken", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "batch_data": [ - [ - { - "id": "ac0f1baec38a9ef3cfcb56db981df7d9bab2568c7f53ef3776d1c059ec58e72b", - "audience_ids": [ - "23856594064540489" - ] - }, - { - "id": "31e78a3bf9ce2b43316f64fe883a531d6266938091e94e2f2480272481163dee", - "audience_ids": [ - "23856594064540489" - ] - }, - {}, - {}, - {}, - { - "id": "32ee3d063320815a13e0058c2498ff76", - "audience_ids": [ - "23856594064540489" - ] - } - ], - [ - { - "id": "49eaeca26c878f268ad33af8cfa8194ca5b8b8e448b1c775bf9153a2de734579", - "audience_ids": [ - "23856594064540489" - ] - }, - {}, - {}, - { - "id": "661125f7d337811256c5b55996b22c89047804dcec494db72659e4be71e03091", - "audience_ids": [ - "23856594064540489" - ] - }, - {}, - { - "id": "94162773066d6ae88b2658dc58ca2317", - "audience_ids": [ - "23856594064540489" - ] - } - ] - ], - "id_schema": [ - "EMAIL_SHA256", - "PHONE_SHA256", - "IDFA_SHA256", - "AAID_SHA256", - "AAID_MD", - "IDFA_MD5" - ], - "advertiser_ids": [ - "dummyAdverTiserID" - ], - "action": "add" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "metadata": { - "jobId": 1, - "secret": { - "accessToken": "dummyAccessToken", - "advertiserIds": [ - "dummyAdverTiserID" - ] - } - }, - "statusCode": 200 - } - ] - } - } - } -] \ No newline at end of file + EMAIL_SHA256: 'amy@abc.com', + AAID_SHA256: '000999OOOPPPP', + AAID_MD5: '000999OOOPPPP', + IDFA_MD5: '1234lkasfjdalj114455', + }, + ], + }, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + externalId: [ + { + type: 'TIKTOK_AUDIENCE-23856594064540489', + identifierType: 'EMAIL_SHA256', + }, + ], + destinationFields: + 'EMAIL_SHA256, PHONE_SHA256, IDFA_SHA256, AAID_SHA256, AAID_MD, IDFA_MD5', + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + metadata: { + jobId: 1, + secret: { + accessToken: 'dummyAccessToken', + advertiserIds: ['dummyAdverTiserID'], + }, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + isHashRequired: true, + registerDeviceOrBrowserApiKey: true, + apiKey: 'intercomApiKey', + appId: '9e9cdea1-78fa-4829-a9b2-5d7f7e96d1a0', + collectContext: false, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/segment/mapping/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + batch_data: [ + [ + { + id: 'ac0f1baec38a9ef3cfcb56db981df7d9bab2568c7f53ef3776d1c059ec58e72b', + audience_ids: ['23856594064540489'], + }, + { + id: '31e78a3bf9ce2b43316f64fe883a531d6266938091e94e2f2480272481163dee', + audience_ids: ['23856594064540489'], + }, + {}, + {}, + {}, + { + id: '32ee3d063320815a13e0058c2498ff76', + audience_ids: ['23856594064540489'], + }, + ], + [ + { + id: '49eaeca26c878f268ad33af8cfa8194ca5b8b8e448b1c775bf9153a2de734579', + audience_ids: ['23856594064540489'], + }, + {}, + {}, + { + id: '661125f7d337811256c5b55996b22c89047804dcec494db72659e4be71e03091', + audience_ids: ['23856594064540489'], + }, + {}, + { + id: '94162773066d6ae88b2658dc58ca2317', + audience_ids: ['23856594064540489'], + }, + ], + ], + id_schema: [ + 'EMAIL_SHA256', + 'PHONE_SHA256', + 'IDFA_SHA256', + 'AAID_SHA256', + 'AAID_MD', + 'IDFA_MD5', + ], + advertiser_ids: ['dummyAdverTiserID'], + action: 'add', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + jobId: 1, + secret: { + accessToken: 'dummyAccessToken', + advertiserIds: ['dummyAdverTiserID'], + }, + }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/tiktok_audience/router/data.ts b/test/integrations/destinations/tiktok_audience/router/data.ts index c8a8b93d30..71e7038269 100644 --- a/test/integrations/destinations/tiktok_audience/router/data.ts +++ b/test/integrations/destinations/tiktok_audience/router/data.ts @@ -16,39 +16,22 @@ export const data = [ properties: { listData: { add: [ - { - EMAIL_SHA256: 'alex@email.com', - }, - { - EMAIL_SHA256: 'amy@abc.com', - }, - { - EMAIL_SHA256: 'van@abc.com', - }, + { EMAIL_SHA256: 'alex@email.com' }, + { EMAIL_SHA256: 'amy@abc.com' }, + { EMAIL_SHA256: 'van@abc.com' }, ], remove: [ - { - EMAIL_SHA256: 'alex@email.com', - }, - { - EMAIL_SHA256: 'amy@abc.com', - }, - { - EMAIL_SHA256: 'van@abc.com', - }, + { EMAIL_SHA256: 'alex@email.com' }, + { EMAIL_SHA256: 'amy@abc.com' }, + { EMAIL_SHA256: 'van@abc.com' }, ], }, }, context: { ip: '14.5.67.21', - library: { - name: 'http', - }, + library: { name: 'http' }, externalId: [ - { - type: 'TIKTOK_AUDIENCE-23856594064540489', - identifierType: 'EMAIL_SHA256', - }, + { type: 'TIKTOK_AUDIENCE-23856594064540489', identifierType: 'EMAIL_SHA256' }, ], destinationFields: 'EMAIL_SHA256', }, @@ -56,17 +39,11 @@ export const data = [ }, metadata: { jobId: 1, - secret: { - accessToken: 'dummyAccessToken', - advertiserIds: ['dummyAdverTiserID'], - }, + secret: { accessToken: 'dummyAccessToken', advertiserIds: ['dummyAdverTiserID'] }, + userId: 'u1', }, destination: { - DestinationDefinition: { - Config: { - cdkV2Enabled: true, - }, - }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, Config: { isHashRequired: true, registerDeviceOrBrowserApiKey: true, @@ -83,45 +60,22 @@ export const data = [ properties: { listData: { add: [ - { - EMAIL_SHA256: 'alex@email.com', - AAID_MD5: '1234567', - }, - { - EMAIL_SHA256: 'amy@abc.com', - AAID_MD5: '1234568', - }, - { - EMAIL_SHA256: 'van@abc.com', - AAID_MD5: '1234569', - }, + { EMAIL_SHA256: 'alex@email.com', AAID_MD5: '1234567' }, + { EMAIL_SHA256: 'amy@abc.com', AAID_MD5: '1234568' }, + { EMAIL_SHA256: 'van@abc.com', AAID_MD5: '1234569' }, ], remove: [ - { - EMAIL_SHA256: 'alex@email.com', - AAID_MD5: '1234570', - }, - { - EMAIL_SHA256: 'amy@abc.com', - AAID_MD5: '1234571', - }, - { - EMAIL_SHA256: 'van@abc.com', - AAID_MD5: '1234572', - }, + { EMAIL_SHA256: 'alex@email.com', AAID_MD5: '1234570' }, + { EMAIL_SHA256: 'amy@abc.com', AAID_MD5: '1234571' }, + { EMAIL_SHA256: 'van@abc.com', AAID_MD5: '1234572' }, ], }, }, context: { ip: '14.5.67.21', - library: { - name: 'http', - }, + library: { name: 'http' }, externalId: [ - { - type: 'TIKTOK_AUDIENCE-23856594064540489', - identifierType: 'EMAIL_SHA256', - }, + { type: 'TIKTOK_AUDIENCE-23856594064540489', identifierType: 'EMAIL_SHA256' }, ], destinationFields: 'EMAIL_SHA256, AAID_MD5', }, @@ -129,17 +83,11 @@ export const data = [ }, metadata: { jobId: 2, - secret: { - accessToken: 'dummyAccessToken', - advertiserIds: ['dummyAdverTiserID'], - }, + secret: { accessToken: 'dummyAccessToken', advertiserIds: ['dummyAdverTiserID'] }, + userId: 'u1', }, destination: { - DestinationDefinition: { - Config: { - cdkV2Enabled: true, - }, - }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, Config: { isHashRequired: true, registerDeviceOrBrowserApiKey: true, @@ -177,14 +125,9 @@ export const data = [ }, context: { ip: '14.5.67.21', - library: { - name: 'http', - }, + library: { name: 'http' }, externalId: [ - { - type: 'TIKTOK_AUDIENCE-23856594064540489', - identifierType: 'EMAIL_SHA256', - }, + { type: 'TIKTOK_AUDIENCE-23856594064540489', identifierType: 'EMAIL_SHA256' }, ], destinationFields: 'EMAIL_SHA256, PHONE_SHA256, IDFA_SHA256, AAID_SHA256, AAID_MD, IDFA_MD5', @@ -193,17 +136,11 @@ export const data = [ }, metadata: { jobId: 3, - secret: { - accessToken: 'dummyAccessToken', - advertiserIds: ['dummyAdverTiserID'], - }, + secret: { accessToken: 'dummyAccessToken', advertiserIds: ['dummyAdverTiserID'] }, + userId: 'u1', }, destination: { - DestinationDefinition: { - Config: { - cdkV2Enabled: true, - }, - }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, Config: { isHashRequired: true, registerDeviceOrBrowserApiKey: true, @@ -237,14 +174,9 @@ export const data = [ }, context: { ip: '14.5.67.21', - library: { - name: 'http', - }, + library: { name: 'http' }, externalId: [ - { - type: 'TIKTOK_AUDIENCE-23856594064540489', - identifierType: 'EMAIL_SHA256', - }, + { type: 'TIKTOK_AUDIENCE-23856594064540489', identifierType: 'EMAIL_SHA256' }, ], destinationFields: 'EMAIL_SHA256, PHONE_SHA256, IDFA_SHA256, AAID_SHA256, AAID_MD, IDFA_MD5', @@ -253,17 +185,11 @@ export const data = [ }, metadata: { jobId: 4, - secret: { - accessToken: 'dummyAccessToken', - advertiserIds: ['dummyAdverTiserID'], - }, + secret: { accessToken: 'dummyAccessToken', advertiserIds: ['dummyAdverTiserID'] }, + userId: 'u1', }, destination: { - DestinationDefinition: { - Config: { - cdkV2Enabled: true, - }, - }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, Config: { isHashRequired: true, registerDeviceOrBrowserApiKey: true, @@ -296,14 +222,9 @@ export const data = [ }, context: { ip: '14.5.67.21', - library: { - name: 'http', - }, + library: { name: 'http' }, externalId: [ - { - type: 'TIKTOK_AUDIENCE-23856594064540489', - identifierType: 'EMAIL_SHA256', - }, + { type: 'TIKTOK_AUDIENCE-23856594064540489', identifierType: 'EMAIL_SHA256' }, ], destinationFields: 'EMAIL_SHA256, PHONE_SHA256, IDFA_SHA256, AAID_SHA256, AAID_MD, IDFA_MD5', @@ -312,17 +233,11 @@ export const data = [ }, metadata: { jobId: 1524545, - secret: { - accessToken: 'dummyAccessToken', - advertiserIds: ['dummyAdverTiserID'], - }, + secret: { accessToken: 'dummyAccessToken', advertiserIds: ['dummyAdverTiserID'] }, + userId: 'u1', }, destination: { - DestinationDefinition: { - Config: { - cdkV2Enabled: true, - }, - }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, Config: { isHashRequired: true, registerDeviceOrBrowserApiKey: true, @@ -347,11 +262,7 @@ export const data = [ error: 'message Type is not present. Aborting message.', batched: false, destination: { - DestinationDefinition: { - Config: { - cdkV2Enabled: true, - }, - }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, Config: { isHashRequired: true, registerDeviceOrBrowserApiKey: true, @@ -363,10 +274,8 @@ export const data = [ metadata: [ { jobId: 1524545, - secret: { - accessToken: 'dummyAccessToken', - advertiserIds: ['dummyAdverTiserID'], - }, + secret: { accessToken: 'dummyAccessToken', advertiserIds: ['dummyAdverTiserID'] }, + userId: 'u1', }, ], statTags: { @@ -468,11 +377,7 @@ export const data = [ ], batched: true, destination: { - DestinationDefinition: { - Config: { - cdkV2Enabled: true, - }, - }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, Config: { isHashRequired: true, registerDeviceOrBrowserApiKey: true, @@ -484,10 +389,8 @@ export const data = [ metadata: [ { jobId: 1, - secret: { - accessToken: 'dummyAccessToken', - advertiserIds: ['dummyAdverTiserID'], - }, + secret: { accessToken: 'dummyAccessToken', advertiserIds: ['dummyAdverTiserID'] }, + userId: 'u1', }, ], statusCode: 200, @@ -605,11 +508,7 @@ export const data = [ ], batched: true, destination: { - DestinationDefinition: { - Config: { - cdkV2Enabled: true, - }, - }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, Config: { isHashRequired: true, registerDeviceOrBrowserApiKey: true, @@ -621,10 +520,8 @@ export const data = [ metadata: [ { jobId: 2, - secret: { - accessToken: 'dummyAccessToken', - advertiserIds: ['dummyAdverTiserID'], - }, + secret: { accessToken: 'dummyAccessToken', advertiserIds: ['dummyAdverTiserID'] }, + userId: 'u1', }, ], statusCode: 200, @@ -635,10 +532,7 @@ export const data = [ type: 'REST', method: 'POST', endpoint: 'https://business-api.tiktok.com/open_api/v1.3/segment/mapping/', - headers: { - 'Access-Token': 'dummyAccessToken', - 'Content-Type': 'application/json', - }, + headers: { 'Access-Token': 'dummyAccessToken', 'Content-Type': 'application/json' }, params: {}, body: { JSON: { @@ -709,11 +603,7 @@ export const data = [ }, batched: true, destination: { - DestinationDefinition: { - Config: { - cdkV2Enabled: true, - }, - }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, Config: { isHashRequired: true, registerDeviceOrBrowserApiKey: true, @@ -725,10 +615,8 @@ export const data = [ metadata: [ { jobId: 3, - secret: { - accessToken: 'dummyAccessToken', - advertiserIds: ['dummyAdverTiserID'], - }, + secret: { accessToken: 'dummyAccessToken', advertiserIds: ['dummyAdverTiserID'] }, + userId: 'u1', }, ], statusCode: 200, @@ -739,10 +627,7 @@ export const data = [ type: 'REST', method: 'POST', endpoint: 'https://business-api.tiktok.com/open_api/v1.3/segment/mapping/', - headers: { - 'Access-Token': 'dummyAccessToken', - 'Content-Type': 'application/json', - }, + headers: { 'Access-Token': 'dummyAccessToken', 'Content-Type': 'application/json' }, params: {}, body: { JSON: { @@ -801,11 +686,7 @@ export const data = [ }, batched: true, destination: { - DestinationDefinition: { - Config: { - cdkV2Enabled: true, - }, - }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, Config: { isHashRequired: true, registerDeviceOrBrowserApiKey: true, @@ -817,10 +698,8 @@ export const data = [ metadata: [ { jobId: 4, - secret: { - accessToken: 'dummyAccessToken', - advertiserIds: ['dummyAdverTiserID'], - }, + secret: { accessToken: 'dummyAccessToken', advertiserIds: ['dummyAdverTiserID'] }, + userId: 'u1', }, ], statusCode: 200, diff --git a/test/integrations/destinations/trengo/router/data.ts b/test/integrations/destinations/trengo/router/data.ts index eeefb053a8..f7b5022036 100644 --- a/test/integrations/destinations/trengo/router/data.ts +++ b/test/integrations/destinations/trengo/router/data.ts @@ -27,49 +27,25 @@ export const data = [ name: 'generic_x86', type: 'android', }, - library: { - name: 'com.rudderstack.android.sdk.core', - version: '1.0.1-beta.1', - }, + library: { name: 'com.rudderstack.android.sdk.core', version: '1.0.1-beta.1' }, locale: 'en-US', - network: { - carrier: 'Android', - bluetooth: false, - cellular: true, - wifi: true, - }, - os: { - name: 'Android', - version: '8.1.0', - }, - screen: { - density: 420, - height: 1794, - width: 1080, - }, + network: { carrier: 'Android', bluetooth: false, cellular: true, wifi: true }, + os: { name: 'Android', version: '8.1.0' }, + screen: { density: 420, height: 1794, width: 1080 }, timezone: 'Asia/Kolkata', - traits: { - anonymousId: 'anon_id_success', - }, + traits: { anonymousId: 'anon_id_success' }, userAgent: 'Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)', }, event: 'Product Purchased', - integrations: { - All: true, - }, + integrations: { All: true }, messageId: 'id1', - properties: { - name: 'Test Product', - phone: '9830311521', - }, + properties: { name: 'Test Product', phone: '9830311521' }, originalTimestamp: '2020-12-17T21:00:59.176Z', type: 'track', sentAt: '2020-03-12T09:05:03.421Z', }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, destination: { Config: { apiToken: 'trengo_integration_test_api_token', @@ -77,29 +53,12 @@ export const data = [ channelIdentifier: 'phone', enableDedup: true, eventTemplateMap: [ - { - from: 'Product Purchased', - to: '{{event}} from Rudderstack', - }, - { - from: 'checkedOut', - to: 'Total cart value {{value}} shipped', - }, - { - from: 'Order Completed', - to: 'Completed Order', - }, - { - from: 'Stress Test', - }, - { - from: 'Stress test2', - to: '', - }, - { - from: 'Stress test3', - to: '{event} Stress test', - }, + { from: 'Product Purchased', to: '{{event}} from Rudderstack' }, + { from: 'checkedOut', to: 'Total cart value {{value}} shipped' }, + { from: 'Order Completed', to: 'Completed Order' }, + { from: 'Stress Test' }, + { from: 'Stress test2', to: '' }, + { from: 'Stress test3', to: '{event} Stress test' }, ], }, secretConfig: {}, @@ -170,21 +129,14 @@ export const data = [ }, params: {}, body: { - JSON: { - contact_id: 90002431001, - channel_id: 'trengo_phone_channel', - }, + JSON: { contact_id: 90002431001, channel_id: 'trengo_phone_channel' }, XML: {}, JSON_ARRAY: {}, FORM: {}, }, files: {}, }, - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], batched: false, statusCode: 200, destination: { @@ -194,29 +146,12 @@ export const data = [ channelIdentifier: 'phone', enableDedup: true, eventTemplateMap: [ - { - from: 'Product Purchased', - to: '{{event}} from Rudderstack', - }, - { - from: 'checkedOut', - to: 'Total cart value {{value}} shipped', - }, - { - from: 'Order Completed', - to: 'Completed Order', - }, - { - from: 'Stress Test', - }, - { - from: 'Stress test2', - to: '', - }, - { - from: 'Stress test3', - to: '{event} Stress test', - }, + { from: 'Product Purchased', to: '{{event}} from Rudderstack' }, + { from: 'checkedOut', to: 'Total cart value {{value}} shipped' }, + { from: 'Order Completed', to: 'Completed Order' }, + { from: 'Stress Test' }, + { from: 'Stress test2', to: '' }, + { from: 'Stress test3', to: '{event} Stress test' }, ], }, secretConfig: {}, @@ -283,10 +218,7 @@ export const data = [ userId: 'randomUserId', type: 'identify', context: { - traits: { - name: 'Jimothy Halpert', - email: 'j@d.com', - }, + traits: { name: 'Jimothy Halpert', email: 'j@d.com' }, ip: '14.5.67.21', app: { build: '1', @@ -301,33 +233,16 @@ export const data = [ name: 'generic_x86', type: 'android', }, - library: { - name: 'com.rudderstack.android.sdk.core', - version: '0.1.4', - }, + library: { name: 'com.rudderstack.android.sdk.core', version: '0.1.4' }, locale: 'en-US', - network: { - carrier: 'Android', - bluetooth: false, - cellular: true, - wifi: true, - }, - os: { - name: 'Android', - version: '9', - }, - screen: { - density: 420, - height: 1794, - width: 1080, - }, + network: { carrier: 'Android', bluetooth: false, cellular: true, wifi: true }, + os: { name: 'Android', version: '9' }, + screen: { density: 420, height: 1794, width: 1080 }, timezone: 'Asia/Kolkata', }, timestamp: '2020-02-02T00:23:09.544Z', }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, destination: { Config: { apiToken: 'trengo_integration_test_api_token', @@ -335,29 +250,12 @@ export const data = [ channelIdentifier: 'email', enableDedup: true, eventTemplateMap: [ - { - from: 'Product Purchased', - to: '{{event}} from Rudderstack', - }, - { - from: 'checkedOut', - to: 'Total cart value {{value}} shipped', - }, - { - from: 'Order Completed', - to: 'Completed Order', - }, - { - from: 'Stress Test', - }, - { - from: 'Stress test2', - to: '', - }, - { - from: 'Stress test3', - to: '{event} Stress test', - }, + { from: 'Product Purchased', to: '{{event}} from Rudderstack' }, + { from: 'checkedOut', to: 'Total cart value {{value}} shipped' }, + { from: 'Order Completed', to: 'Completed Order' }, + { from: 'Stress Test' }, + { from: 'Stress test2', to: '' }, + { from: 'Stress test3', to: '{event} Stress test' }, ], }, secretConfig: {}, @@ -439,11 +337,7 @@ export const data = [ }, files: {}, }, - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], batched: false, statusCode: 200, destination: { @@ -453,29 +347,12 @@ export const data = [ channelIdentifier: 'email', enableDedup: true, eventTemplateMap: [ - { - from: 'Product Purchased', - to: '{{event}} from Rudderstack', - }, - { - from: 'checkedOut', - to: 'Total cart value {{value}} shipped', - }, - { - from: 'Order Completed', - to: 'Completed Order', - }, - { - from: 'Stress Test', - }, - { - from: 'Stress test2', - to: '', - }, - { - from: 'Stress test3', - to: '{event} Stress test', - }, + { from: 'Product Purchased', to: '{{event}} from Rudderstack' }, + { from: 'checkedOut', to: 'Total cart value {{value}} shipped' }, + { from: 'Order Completed', to: 'Completed Order' }, + { from: 'Stress Test' }, + { from: 'Stress test2', to: '' }, + { from: 'Stress test3', to: '{event} Stress test' }, ], }, secretConfig: {}, diff --git a/test/integrations/destinations/user/router/data.ts b/test/integrations/destinations/user/router/data.ts index 30bcdf2688..acdb5c953e 100644 --- a/test/integrations/destinations/user/router/data.ts +++ b/test/integrations/destinations/user/router/data.ts @@ -16,9 +16,7 @@ export const data = [ userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36', }, - integrations: { - All: true, - }, + integrations: { All: true }, userId: 'user@123', groupId: 'group@795', messageId: '022bb90c-bbac-11e4-8dfc-aa07a5b093db', @@ -39,9 +37,7 @@ export const data = [ }, type: 'group', }, - metadata: { - jobId: 1, - }, + metadata: { jobId: 1, userId: 'u1' }, destination: { Config: { apiKey: 'dummyApiKey', @@ -77,10 +73,7 @@ export const data = [ body: { XML: {}, FORM: {}, - JSON: { - user_id: 52, - user_custom_id: 'user@123', - }, + JSON: { user_id: 52, user_custom_id: 'user@123' }, JSON_ARRAY: {}, }, type: 'REST', @@ -95,11 +88,7 @@ export const data = [ version: '1', endpoint: 'https://commander.user.com/api/public/companies/21/add_member/', }, - metadata: [ - { - jobId: 1, - }, - ], + metadata: [{ jobId: 1, userId: 'u1' }], batched: false, statusCode: 200, destination: { @@ -154,19 +143,10 @@ export const data = [ useroccupation: 'mechanical engineer', }, }, - traits: { - googleUrl: 'www.google.com', - }, - integrations: { - All: true, - user: { - lookup: 'email', - }, - }, - }, - metadata: { - jobId: 2, + traits: { googleUrl: 'www.google.com' }, + integrations: { All: true, user: { lookup: 'email' } }, }, + metadata: { jobId: 2, userId: 'u1' }, destination: { Config: { apiKey: 'dummyApiKey', @@ -229,11 +209,7 @@ export const data = [ version: '1', endpoint: 'https://commander.user.com/api/public/users/59/', }, - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], batched: false, statusCode: 200, destination: { diff --git a/test/integrations/destinations/vero/processor/data.ts b/test/integrations/destinations/vero/processor/data.ts index 7834f0a541..cf210f38be 100644 --- a/test/integrations/destinations/vero/processor/data.ts +++ b/test/integrations/destinations/vero/processor/data.ts @@ -1,818 +1,808 @@ export const data = [ - { - "name": "vero", - "description": "Test 0", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "authToken": "testAuthToken" - } - }, - "message": { - "context": { - "traits": { - "homwTown": "kanpur", - "age": "24" - } - }, - "type": "Identify", - "userId": "yash001", - "originalTimestamp": "2019-10-14T09:03:17.562Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.getvero.com/api/v2/users/track", - "headers": {}, - "params": {}, - "body": { - "JSON": { - "id": "yash001", - "data": { - "homwTown": "kanpur", - "age": "24" - }, - "auth_token": "testAuthToken" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "vero", - "description": "Test 1", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "authToken": "testAuthToken" - } - }, - "message": { - "context": { - "traits": { - "email": "user1001@tech.com" - } - }, - "type": "Identify", - "userId": "user1001" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.getvero.com/api/v2/users/track", - "headers": {}, - "params": {}, - "body": { - "JSON": { - "id": "user1001", - "email": "user1001@tech.com", - "data": {}, - "auth_token": "testAuthToken" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "vero", - "description": "Test 2", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "authToken": "testAuthToken" - } - }, - "message": { - "context": { - "traits": { - "email": "user1002@tech.com" - } - }, - "type": "Identify", - "anonymousId": "b4ffheww8eisndbdjgdewifewfgerwibderv" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.getvero.com/api/v2/users/track", - "headers": {}, - "params": {}, - "body": { - "JSON": { - "id": "b4ffheww8eisndbdjgdewifewfgerwibderv", - "email": "user1002@tech.com", - "data": {}, - "auth_token": "testAuthToken" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "vero", - "description": "Test 3", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "authToken": "testAuthToken" - } - }, - "message": { - "context": { - "traits": { - "address": "Caravela Beach Goa", - "homwTown": "Mawsynram", - "email": "user1005@tech.com" - } - }, - "integrations": { - "vero": { - "tags": { - "add": [ - "a", - "b" - ] - } - } - }, - "type": "Identify", - "userId": "fprediruser001" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.getvero.com/api/v2/users/track", - "headers": {}, - "params": {}, - "body": { - "JSON": { - "id": "fprediruser001", - "email": "user1005@tech.com", - "data": { - "address": "Caravela Beach Goa", - "homwTown": "Mawsynram" - }, - "auth_token": "testAuthToken" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - }, - { - "output": { - "version": "1", - "type": "REST", - "method": "PUT", - "endpoint": "https://api.getvero.com/api/v2/users/tags/edit", - "headers": {}, - "params": {}, - "body": { - "JSON": { - "id": "fprediruser001", - "auth_token": "testAuthToken", - "add": [ - "a", - "b" - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "vero", - "description": "Test 4", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "authToken": "testAuthToken" - } - }, - "message": { - "event": "Random event with nonexisting userId and email", - "properties": { - "movieWatched": 3, - "gamesPlayed": 4, - "email": "eventIdn01@sample.com" - }, - "type": "track", - "userId": "eventIdn01" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.getvero.com/api/v2/events/track", - "headers": {}, - "params": {}, - "body": { - "JSON": { - "identity": { - "id": "eventIdn01", - "email": "eventIdn01@sample.com" - }, - "event_name": "Random event with nonexisting userId and email", - "data": { - "movieWatched": 3, - "gamesPlayed": 4, - "email": "eventIdn01@sample.com" - }, - "auth_token": "testAuthToken" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "vero", - "description": "Test 5", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "authToken": "testAuthToken" - } - }, - "message": { - "event": "Random event with existing userId and some tags removed", - "properties": { - "movieWatched": 3, - "gamesPlayed": 4, - "email": "eventIdn01@sample.com" - }, - "integrations": { - "Vero": { - "tags": { - "remove": [ - "a" - ] - } - } - }, - "type": "track", - "userId": "fprediruser001" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.getvero.com/api/v2/events/track", - "headers": {}, - "params": {}, - "body": { - "JSON": { - "identity": { - "id": "fprediruser001", - "email": "eventIdn01@sample.com" - }, - "event_name": "Random event with existing userId and some tags removed", - "data": { - "movieWatched": 3, - "gamesPlayed": 4, - "email": "eventIdn01@sample.com" - }, - "auth_token": "testAuthToken" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - }, - { - "output": { - "version": "1", - "type": "REST", - "method": "PUT", - "endpoint": "https://api.getvero.com/api/v2/users/tags/edit", - "headers": {}, - "params": {}, - "body": { - "JSON": { - "id": "fprediruser001", - "auth_token": "testAuthToken", - "remove": [ - "a" - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "vero", - "description": "Test 6", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "authToken": "testAuthToken" - } - }, - "message": { - "type": "alias", - "userId": "sample101", - "previousId": "newsamplel01" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "PUT", - "endpoint": "https://api.getvero.com/api/v2/users/reidentify", - "headers": {}, - "params": {}, - "body": { - "JSON": { - "new_id": "sample101", - "id": "newsamplel01", - "auth_token": "testAuthToken" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "vero", - "description": "Test 7", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "authToken": "testAuthToken" - } - }, - "message": { - "context": { - "traits": { - "email": "user1001@tech.com" - }, - "os": { - "name": "android" - }, - "device": { - "token": "qwertyuioiuytrewwertyu", - "name": "Mi" - } - }, - "type": "Identify", - "userId": "user1001" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.getvero.com/api/v2/users/track", - "headers": {}, - "params": {}, - "body": { - "JSON": { - "id": "user1001", - "email": "user1001@tech.com", - "data": {}, - "channels": { - "platform": "android", - "address": "qwertyuioiuytrewwertyu", - "device": "Mi", - "type": "push" - }, - "auth_token": "testAuthToken" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "vero", - "description": "Test 8", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "authToken": "testAuthToken" - } - }, - "message": { - "context": { - "traits": { - "email": "user1001@tech.com" - }, - "device": { - "token": "qwertyuioiuytrewwertyu", - "name": "Mi" - } - }, - "type": "Identify", - "userId": "user1001" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.getvero.com/api/v2/users/track", - "headers": {}, - "params": {}, - "body": { - "JSON": { - "id": "user1001", - "email": "user1001@tech.com", - "data": {}, - "auth_token": "testAuthToken" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "vero", - "description": "Test 9", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "authToken": "testAuthToken" - } - }, - "message": { - "event": "unsubscribe", - "type": "track", - "userId": "eventIdn01" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.getvero.com/api/v2/users/unsubscribe", - "headers": {}, - "params": {}, - "body": { - "JSON": { - "id": "eventIdn01", - "auth_token": "testAuthToken" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "vero", - "description": "Test 10", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "authToken": "testAuthToken" - } - }, - "message": { - "name": "Rudderstack", - "properties": { - "title": "rudderstack", - "path": "/" - }, - "type": "page", - "userId": "eventIdn01" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.getvero.com/api/v2/events/track", - "headers": {}, - "params": {}, - "body": { - "JSON": { - "identity": { - "id": "eventIdn01" - }, - "event_name": "Viewed Rudderstack Page", - "data": { - "title": "rudderstack", - "path": "/" - }, - "auth_token": "testAuthToken" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "vero", - "description": "Test 11", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "authToken": "testAuthToken" - } - }, - "message": { - "groupId": "1234", - "traits": { - "name": "MyGroup", - "industry": "IT", - "employees": 450, - "plan": "basic" - }, - "type": "group", - "userId": "eventIdn01" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "statusCode": 400, - "error": "Event type group is not supported", - "statTags": { - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "destType": "VERO", - "module": "destination", - "implementation": "native", - "feature": "processor" - } - } - ] - } - } - } -] \ No newline at end of file + { + name: 'vero', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + authToken: 'testAuthToken', + }, + }, + message: { + context: { + traits: { + homwTown: 'kanpur', + age: '24', + }, + }, + type: 'Identify', + userId: 'yash001', + originalTimestamp: '2019-10-14T09:03:17.562Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.getvero.com/api/v2/users/track', + headers: {}, + params: {}, + body: { + JSON: { + id: 'yash001', + data: { + homwTown: 'kanpur', + age: '24', + }, + auth_token: 'testAuthToken', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'vero', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + authToken: 'testAuthToken', + }, + }, + message: { + context: { + traits: { + email: 'user1001@tech.com', + }, + }, + type: 'Identify', + userId: 'user1001', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.getvero.com/api/v2/users/track', + headers: {}, + params: {}, + body: { + JSON: { + id: 'user1001', + email: 'user1001@tech.com', + data: {}, + auth_token: 'testAuthToken', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'vero', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + authToken: 'testAuthToken', + }, + }, + message: { + context: { + traits: { + email: 'user1002@tech.com', + }, + }, + type: 'Identify', + anonymousId: 'b4ffheww8eisndbdjgdewifewfgerwibderv', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.getvero.com/api/v2/users/track', + headers: {}, + params: {}, + body: { + JSON: { + id: 'b4ffheww8eisndbdjgdewifewfgerwibderv', + email: 'user1002@tech.com', + data: {}, + auth_token: 'testAuthToken', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'vero', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + authToken: 'testAuthToken', + }, + }, + message: { + context: { + traits: { + address: 'Caravela Beach Goa', + homwTown: 'Mawsynram', + email: 'user1005@tech.com', + }, + }, + integrations: { + vero: { + tags: { + add: ['a', 'b'], + }, + }, + }, + type: 'Identify', + userId: 'fprediruser001', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.getvero.com/api/v2/users/track', + headers: {}, + params: {}, + body: { + JSON: { + id: 'fprediruser001', + email: 'user1005@tech.com', + data: { + address: 'Caravela Beach Goa', + homwTown: 'Mawsynram', + }, + auth_token: 'testAuthToken', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'PUT', + endpoint: 'https://api.getvero.com/api/v2/users/tags/edit', + headers: {}, + params: {}, + body: { + JSON: { + id: 'fprediruser001', + auth_token: 'testAuthToken', + add: ['a', 'b'], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'vero', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + authToken: 'testAuthToken', + }, + }, + message: { + event: 'Random event with nonexisting userId and email', + properties: { + movieWatched: 3, + gamesPlayed: 4, + email: 'eventIdn01@sample.com', + }, + type: 'track', + userId: 'eventIdn01', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.getvero.com/api/v2/events/track', + headers: {}, + params: {}, + body: { + JSON: { + identity: { + id: 'eventIdn01', + email: 'eventIdn01@sample.com', + }, + event_name: 'Random event with nonexisting userId and email', + data: { + movieWatched: 3, + gamesPlayed: 4, + email: 'eventIdn01@sample.com', + }, + auth_token: 'testAuthToken', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'vero', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + authToken: 'testAuthToken', + }, + }, + message: { + event: 'Random event with existing userId and some tags removed', + properties: { + movieWatched: 3, + gamesPlayed: 4, + email: 'eventIdn01@sample.com', + }, + integrations: { + Vero: { + tags: { + remove: ['a'], + }, + }, + }, + type: 'track', + userId: 'fprediruser001', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.getvero.com/api/v2/events/track', + headers: {}, + params: {}, + body: { + JSON: { + identity: { + id: 'fprediruser001', + email: 'eventIdn01@sample.com', + }, + event_name: 'Random event with existing userId and some tags removed', + data: { + movieWatched: 3, + gamesPlayed: 4, + email: 'eventIdn01@sample.com', + }, + auth_token: 'testAuthToken', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'PUT', + endpoint: 'https://api.getvero.com/api/v2/users/tags/edit', + headers: {}, + params: {}, + body: { + JSON: { + id: 'fprediruser001', + auth_token: 'testAuthToken', + remove: ['a'], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'vero', + description: 'Test 6', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + authToken: 'testAuthToken', + }, + }, + message: { + type: 'alias', + userId: 'sample101', + previousId: 'newsamplel01', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'PUT', + endpoint: 'https://api.getvero.com/api/v2/users/reidentify', + headers: {}, + params: {}, + body: { + JSON: { + new_id: 'sample101', + id: 'newsamplel01', + auth_token: 'testAuthToken', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'vero', + description: 'Test 7', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + authToken: 'testAuthToken', + }, + }, + message: { + context: { + traits: { + email: 'user1001@tech.com', + }, + os: { + name: 'android', + }, + device: { + token: 'qwertyuioiuytrewwertyu', + name: 'Mi', + }, + }, + type: 'Identify', + userId: 'user1001', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.getvero.com/api/v2/users/track', + headers: {}, + params: {}, + body: { + JSON: { + id: 'user1001', + email: 'user1001@tech.com', + data: {}, + channels: { + platform: 'android', + address: 'qwertyuioiuytrewwertyu', + device: 'Mi', + type: 'push', + }, + auth_token: 'testAuthToken', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'vero', + description: 'Test 8', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + authToken: 'testAuthToken', + }, + }, + message: { + context: { + traits: { + email: 'user1001@tech.com', + }, + device: { + token: 'qwertyuioiuytrewwertyu', + name: 'Mi', + }, + }, + type: 'Identify', + userId: 'user1001', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.getvero.com/api/v2/users/track', + headers: {}, + params: {}, + body: { + JSON: { + id: 'user1001', + email: 'user1001@tech.com', + data: {}, + auth_token: 'testAuthToken', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'vero', + description: 'Test 9', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + authToken: 'testAuthToken', + }, + }, + message: { + event: 'unsubscribe', + type: 'track', + userId: 'eventIdn01', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.getvero.com/api/v2/users/unsubscribe', + headers: {}, + params: {}, + body: { + JSON: { + id: 'eventIdn01', + auth_token: 'testAuthToken', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'vero', + description: 'Test 10', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + authToken: 'testAuthToken', + }, + }, + message: { + name: 'Rudderstack', + properties: { + title: 'rudderstack', + path: '/', + }, + type: 'page', + userId: 'eventIdn01', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.getvero.com/api/v2/events/track', + headers: {}, + params: {}, + body: { + JSON: { + identity: { + id: 'eventIdn01', + }, + event_name: 'Viewed Rudderstack Page', + data: { + title: 'rudderstack', + path: '/', + }, + auth_token: 'testAuthToken', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'vero', + description: 'Test 11', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + authToken: 'testAuthToken', + }, + }, + message: { + groupId: '1234', + traits: { + name: 'MyGroup', + industry: 'IT', + employees: 450, + plan: 'basic', + }, + type: 'group', + userId: 'eventIdn01', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: 'Event type group is not supported', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'VERO', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/vero/router/data.ts b/test/integrations/destinations/vero/router/data.ts index 17aba359d1..ca23f22feb 100644 --- a/test/integrations/destinations/vero/router/data.ts +++ b/test/integrations/destinations/vero/router/data.ts @@ -1,10 +1,8 @@ -import { FEATURES } from '../../../../../src/v0/util/tags'; - export const data = [ { name: 'vero', description: 'Test 0', - feature: FEATURES.ROUTER, + feature: 'router', module: 'destination', version: 'v0', input: { @@ -12,20 +10,10 @@ export const data = [ body: { input: [ { - destination: { - Config: { - authToken: 'testAuthToken', - }, - }, - metadata: { - jobId: 1, - }, + destination: { Config: { authToken: 'testAuthToken' } }, + metadata: { jobId: 1, userId: 'u1' }, message: { - context: { - traits: { - email: 'user001@tech.com', - }, - }, + context: { traits: { email: 'user001@tech.com' } }, type: 'Identify', userId: 'user001', }, @@ -65,16 +53,8 @@ export const data = [ files: {}, }, ], - destination: { - Config: { - authToken: 'testAuthToken', - }, - }, - metadata: [ - { - jobId: 1, - }, - ], + destination: { Config: { authToken: 'testAuthToken' } }, + metadata: [{ jobId: 1, userId: 'u1' }], statusCode: 200, }, ], @@ -85,7 +65,7 @@ export const data = [ { name: 'vero', description: 'Test 1', - feature: FEATURES.ROUTER, + feature: 'router', module: 'destination', version: 'v0', input: { @@ -93,20 +73,10 @@ export const data = [ body: { input: [ { - destination: { - Config: { - authToken: 'testAuthToken', - }, - }, - metadata: { - jobId: 2, - }, + destination: { Config: { authToken: 'testAuthToken' } }, + metadata: { jobId: 2, userId: 'u1' }, message: { - context: { - traits: { - email: 'user002@tech.com', - }, - }, + context: { traits: { email: 'user002@tech.com' } }, type: 'Identify', anonymousId: 'b4ffheww8eisndbdjgdewifewfgerwibderv', }, @@ -146,16 +116,8 @@ export const data = [ files: {}, }, ], - destination: { - Config: { - authToken: 'testAuthToken', - }, - }, - metadata: [ - { - jobId: 2, - }, - ], + destination: { Config: { authToken: 'testAuthToken' } }, + metadata: [{ jobId: 2, userId: 'u1' }], statusCode: 200, }, ], @@ -166,7 +128,7 @@ export const data = [ { name: 'vero', description: 'Test 2', - feature: FEATURES.ROUTER, + feature: 'router', module: 'destination', version: 'v0', input: { @@ -174,14 +136,8 @@ export const data = [ body: { input: [ { - destination: { - Config: { - authToken: 'testAuthToken', - }, - }, - metadata: { - jobId: 3, - }, + destination: { Config: { authToken: 'testAuthToken' } }, + metadata: { jobId: 3, userId: 'u1' }, message: { context: { traits: { @@ -190,13 +146,7 @@ export const data = [ email: 'user005@tech.com', }, }, - integrations: { - vero: { - tags: { - add: ['a', 'b'], - }, - }, - }, + integrations: { vero: { tags: { add: ['a', 'b'] } } }, type: 'Identify', userId: 'fprediruser001', }, @@ -226,10 +176,7 @@ export const data = [ JSON: { id: 'fprediruser001', email: 'user005@tech.com', - data: { - address: 'Caravela Beach Goa', - homwTown: 'Mawsynram', - }, + data: { address: 'Caravela Beach Goa', homwTown: 'Mawsynram' }, auth_token: 'testAuthToken', }, JSON_ARRAY: {}, @@ -246,11 +193,7 @@ export const data = [ headers: {}, params: {}, body: { - JSON: { - auth_token: 'testAuthToken', - id: 'fprediruser001', - add: ['a', 'b'], - }, + JSON: { auth_token: 'testAuthToken', id: 'fprediruser001', add: ['a', 'b'] }, JSON_ARRAY: {}, XML: {}, FORM: {}, @@ -258,16 +201,8 @@ export const data = [ files: {}, }, ], - destination: { - Config: { - authToken: 'testAuthToken', - }, - }, - metadata: [ - { - jobId: 3, - }, - ], + destination: { Config: { authToken: 'testAuthToken' } }, + metadata: [{ jobId: 3, userId: 'u1' }], statusCode: 200, }, ], @@ -278,7 +213,7 @@ export const data = [ { name: 'vero', description: 'Test 3', - feature: FEATURES.ROUTER, + feature: 'router', module: 'destination', version: 'v0', input: { @@ -286,21 +221,11 @@ export const data = [ body: { input: [ { - destination: { - Config: { - authToken: 'testAuthToken', - }, - }, - metadata: { - jobId: 4, - }, + destination: { Config: { authToken: 'testAuthToken' } }, + metadata: { jobId: 4, userId: 'u1' }, message: { event: 'Random event with nonexisting userId and email', - properties: { - movieWatched: 3, - gamesPlayed: 4, - email: 'eventIdn02@sample.com', - }, + properties: { movieWatched: 3, gamesPlayed: 4, email: 'eventIdn02@sample.com' }, type: 'track', userId: 'eventIdn01', }, @@ -328,16 +253,9 @@ export const data = [ params: {}, body: { JSON: { - identity: { - id: 'eventIdn01', - email: 'eventIdn02@sample.com', - }, + identity: { id: 'eventIdn01', email: 'eventIdn02@sample.com' }, event_name: 'Random event with nonexisting userId and email', - data: { - movieWatched: 3, - gamesPlayed: 4, - email: 'eventIdn02@sample.com', - }, + data: { movieWatched: 3, gamesPlayed: 4, email: 'eventIdn02@sample.com' }, auth_token: 'testAuthToken', }, JSON_ARRAY: {}, @@ -347,16 +265,8 @@ export const data = [ files: {}, }, ], - destination: { - Config: { - authToken: 'testAuthToken', - }, - }, - metadata: [ - { - jobId: 4, - }, - ], + destination: { Config: { authToken: 'testAuthToken' } }, + metadata: [{ jobId: 4, userId: 'u1' }], statusCode: 200, }, ], diff --git a/test/integrations/destinations/webhook/router/data.ts b/test/integrations/destinations/webhook/router/data.ts index 291fc5ffba..a082eb12f1 100644 --- a/test/integrations/destinations/webhook/router/data.ts +++ b/test/integrations/destinations/webhook/router/data.ts @@ -19,25 +19,15 @@ export const data = [ model: 'Redmi 6', name: 'xiaomi', }, - network: { - carrier: 'Banglalink', - }, - os: { - name: 'android', - version: '8.1.0', - }, + network: { carrier: 'Banglalink' }, + os: { name: 'android', version: '8.1.0' }, traits: { - address: { - city: 'Dhaka', - country: 'Bangladesh', - }, + address: { city: 'Dhaka', country: 'Bangladesh' }, anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', }, }, event: 'spin_result', - integrations: { - All: true, - }, + integrations: { All: true }, message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', properties: { additional_bet_index: 0, @@ -100,28 +90,16 @@ export const data = [ versionSessionCount: 2, }, }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, destination: { Config: { webhookUrl: 'http://6b0e6a60.ngrok.io', headers: [ - { - from: '', - to: '', - }, - { - from: 'test2', - to: 'value2', - }, + { from: '', to: '' }, + { from: 'test2', to: 'value2' }, ], }, - DestinationDefinition: { - Config: { - cdkV2Enabled: true, - }, - }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, }, }, { @@ -134,25 +112,15 @@ export const data = [ model: 'Redmi 6', name: 'xiaomi', }, - network: { - carrier: 'Banglalink', - }, - os: { - name: 'android', - version: '8.1.0', - }, + network: { carrier: 'Banglalink' }, + os: { name: 'android', version: '8.1.0' }, traits: { - address: { - city: 'Dhaka', - country: 'Bangladesh', - }, + address: { city: 'Dhaka', country: 'Bangladesh' }, anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', }, }, event: 'spin_result', - integrations: { - All: true, - }, + integrations: { All: true }, message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', properties: { additional_bet_index: 0, @@ -215,18 +183,10 @@ export const data = [ versionSessionCount: 2, }, }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 3, userId: 'u1' }, destination: { - Config: { - webhookUrl: 'https://6b0e6a60.ngrok.io/n', - }, - DestinationDefinition: { - Config: { - cdkV2Enabled: true, - }, - }, + Config: { webhookUrl: 'https://6b0e6a60.ngrok.io/n' }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, }, }, ], @@ -267,9 +227,7 @@ export const data = [ versionSessionCount: 2, game_name: 'FireEagleSlots', }, - integrations: { - All: true, - }, + integrations: { All: true }, event: 'spin_result', message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', @@ -282,18 +240,10 @@ export const data = [ }, traits: { anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', - address: { - city: 'Dhaka', - country: 'Bangladesh', - }, - }, - os: { - version: '8.1.0', - name: 'android', - }, - network: { - carrier: 'Banglalink', + address: { city: 'Dhaka', country: 'Bangladesh' }, }, + os: { version: '8.1.0', name: 'android' }, + network: { carrier: 'Banglalink' }, }, type: 'track', properties: { @@ -340,41 +290,24 @@ export const data = [ files: {}, endpoint: 'http://6b0e6a60.ngrok.io', userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', - headers: { - 'content-type': 'application/json', - test2: 'value2', - }, + headers: { 'content-type': 'application/json', test2: 'value2' }, version: '1', params: {}, type: 'REST', method: 'POST', }, - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], batched: false, statusCode: 200, destination: { Config: { webhookUrl: 'http://6b0e6a60.ngrok.io', headers: [ - { - from: '', - to: '', - }, - { - from: 'test2', - to: 'value2', - }, + { from: '', to: '' }, + { from: 'test2', to: 'value2' }, ], }, - DestinationDefinition: { - Config: { - cdkV2Enabled: true, - }, - }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, }, }, { @@ -404,9 +337,7 @@ export const data = [ versionSessionCount: 2, game_name: 'FireEagleSlots', }, - integrations: { - All: true, - }, + integrations: { All: true }, event: 'spin_result', message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', @@ -419,18 +350,10 @@ export const data = [ }, traits: { anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', - address: { - city: 'Dhaka', - country: 'Bangladesh', - }, - }, - os: { - version: '8.1.0', - name: 'android', - }, - network: { - carrier: 'Banglalink', + address: { city: 'Dhaka', country: 'Bangladesh' }, }, + os: { version: '8.1.0', name: 'android' }, + network: { carrier: 'Banglalink' }, }, type: 'track', properties: { @@ -477,30 +400,18 @@ export const data = [ files: {}, endpoint: 'https://6b0e6a60.ngrok.io/n', userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', - headers: { - 'content-type': 'application/json', - }, + headers: { 'content-type': 'application/json' }, version: '1', params: {}, type: 'REST', method: 'POST', }, - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 3, userId: 'u1' }], batched: false, statusCode: 200, destination: { - Config: { - webhookUrl: 'https://6b0e6a60.ngrok.io/n', - }, - DestinationDefinition: { - Config: { - cdkV2Enabled: true, - }, - }, + Config: { webhookUrl: 'https://6b0e6a60.ngrok.io/n' }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, }, }, ], diff --git a/test/integrations/destinations/woopra/router/data.ts b/test/integrations/destinations/woopra/router/data.ts index 5a3b20bea6..941f69c2fe 100644 --- a/test/integrations/destinations/woopra/router/data.ts +++ b/test/integrations/destinations/woopra/router/data.ts @@ -13,30 +13,15 @@ export const data = [ message: { anonymousId: '21e13f4bc7ceddad', context: { - app: { - build: '4', - name: 'RuddCDN', - }, - device: { - id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', - name: 'generic_x86_arm', - }, - os: { - name: 'Android', - version: '9', - }, + app: { build: '4', name: 'RuddCDN' }, + device: { id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', name: 'generic_x86_arm' }, + os: { name: 'Android', version: '9' }, timezone: 'Asia/Kolkata', - traits: { - anonymousId: '21e13f4bc7ceddad', - }, + traits: { anonymousId: '21e13f4bc7ceddad' }, userAgent: 'Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)', }, - integrations: { - woopra: { - projectName: 'abc.com', - }, - }, + integrations: { woopra: { projectName: 'abc.com' } }, messageId: '1601322811899-d9c7dd00-50dc-4364-95c8-e89423eb3cfb', originalTimestamp: '2020-09-28T19:53:31.900Z', traits: { @@ -52,14 +37,8 @@ export const data = [ timestamp: '2020-09-29T14:50:29.907+05:30', type: 'identify', }, - destination: { - Config: { - projectName: 'int.com', - }, - }, - metadata: { - jobId: 1, - }, + destination: { Config: { projectName: 'int.com' } }, + metadata: { jobId: 1, userId: 'u1' }, }, ], destType: 'woopra', @@ -74,12 +53,7 @@ export const data = [ output: [ { batchedRequest: { - body: { - XML: {}, - FORM: {}, - JSON: {}, - JSON_ARRAY: {}, - }, + body: { XML: {}, FORM: {}, JSON: {}, JSON_ARRAY: {} }, type: 'REST', files: {}, method: 'GET', @@ -100,16 +74,8 @@ export const data = [ version: '1', endpoint: 'https://www.woopra.com/track/identify', }, - destination: { - Config: { - projectName: 'int.com', - }, - }, - metadata: [ - { - jobId: 1, - }, - ], + destination: { Config: { projectName: 'int.com' } }, + metadata: [{ jobId: 1, userId: 'u1' }], batched: false, statusCode: 200, }, @@ -133,49 +99,26 @@ export const data = [ anonymousId: '21e13f4bc7ceddad', channel: 'mobile', context: { - app: { - build: '4', - name: 'RuddCDN', - }, - device: { - id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', - name: 'generic_x86_arm', - }, - library: { - name: 'com.rudderstack.android.sdk.core', - version: '1.0.6', - }, - os: { - name: 'Android', - version: '9', - }, + app: { build: '4', name: 'RuddCDN' }, + device: { id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', name: 'generic_x86_arm' }, + library: { name: 'com.rudderstack.android.sdk.core', version: '1.0.6' }, + os: { name: 'Android', version: '9' }, timezone: 'Asia/Kolkata', userAgent: 'Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)', }, event: 'First Investment', - integrations: { - woopra: 'int.com', - }, + integrations: { woopra: 'int.com' }, messageId: '1601322811899-d9c7dd00-50dc-4364-95c8-e89423eb3cfb', originalTimestamp: '2020-09-28T19:53:31.900Z', - properties: { - currency: 'EUR', - revenue: 20.37566, - }, + properties: { currency: 'EUR', revenue: 20.37566 }, receivedAt: '2020-09-29T14:50:43.005+05:30', sentAt: '2020-09-28T19:53:44.998Z', timestamp: '2020-09-29T14:50:29.907+05:30', type: 'track', }, - destination: { - Config: { - projectName: 'int.com', - }, - }, - metadata: { - jobId: 2, - }, + destination: { Config: { projectName: 'int.com' } }, + metadata: { jobId: 2, userId: 'u1' }, }, ], destType: 'woopra', @@ -190,12 +133,7 @@ export const data = [ output: [ { batchedRequest: { - body: { - XML: {}, - FORM: {}, - JSON: {}, - JSON_ARRAY: {}, - }, + body: { XML: {}, FORM: {}, JSON: {}, JSON_ARRAY: {} }, type: 'REST', files: {}, method: 'GET', @@ -213,16 +151,8 @@ export const data = [ version: '1', endpoint: 'https://www.woopra.com/track/ce', }, - destination: { - Config: { - projectName: 'int.com', - }, - }, - metadata: [ - { - jobId: 2, - }, - ], + destination: { Config: { projectName: 'int.com' } }, + metadata: [{ jobId: 2, userId: 'u1' }], batched: false, statusCode: 200, }, @@ -246,19 +176,11 @@ export const data = [ anonymousId: '21e13f4bc7ceddad', channel: 'mobile', event: 'First Investment', - integrations: { - woopra: 'int.com', - }, + integrations: { woopra: 'int.com' }, type: 'group', }, - destination: { - Config: { - projectName: 'int.com', - }, - }, - metadata: { - jobId: 3, - }, + destination: { Config: { projectName: 'int.com' } }, + metadata: { jobId: 3, userId: 'u1' }, }, ], destType: 'woopra', @@ -272,16 +194,8 @@ export const data = [ body: { output: [ { - destination: { - Config: { - projectName: 'int.com', - }, - }, - metadata: [ - { - jobId: 3, - }, - ], + destination: { Config: { projectName: 'int.com' } }, + metadata: [{ jobId: 3, userId: 'u1' }], statTags: { errorCategory: 'dataValidation', implementation: 'native', diff --git a/test/integrations/destinations/wootric/processor/data.ts b/test/integrations/destinations/wootric/processor/data.ts index cdff2f1079..ae747e982d 100644 --- a/test/integrations/destinations/wootric/processor/data.ts +++ b/test/integrations/destinations/wootric/processor/data.ts @@ -1,1825 +1,1852 @@ export const data = [ - { - "name": "wootric", - "description": "Wrong Account Token Passed", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "username": "wootricfakeuser@example.com", - "password": "password@123", - "accountToken": "NPS-dummyToken12" - }, - "ID": "wootric-1234" - }, - "message": { - "type": "identify", - "sentAt": "2022-01-20T13:39:21.033Z", - "userId": "dummyId2", - "channel": "web", - "context": {}, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "integrations": { - "All": true - }, - "originalTimestamp": "2022-01-20T13:39:21.032Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "{\"message\":\"Access token could not be generated due to {\\\"error\\\":\\\"Not found\\\",\\\"status\\\":404}\",\"destinationResponse\":{\"response\":{\"error\":\"Not found\",\"status\":404},\"status\":500}}", - "statTags": { - "destType": "WOOTRIC", - "errorCategory": "network", - "errorType": "retryable", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 500 - } - ] - } - } - }, - { - "name": "wootric", - "description": "Identify call for creating user", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "username": "wootricfakeuser@example.com", - "password": "password@123", - "accountToken": "NPS-dummyToken" - }, - "ID": "wootric-1234" - }, - "message": { - "type": "identify", - "sentAt": "2022-01-20T13:39:21.033Z", - "userId": "dummyId2", - "channel": "web", - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.2.20", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "path": "/Testing/App_for_LaunchDarkly/ourSdk.html", - "title": "Document", - "search": "", - "tab_url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "referrer": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/", - "initial_referrer": "$direct", - "referring_domain": "127.0.0.1:7307", - "initial_referring_domain": "" - }, - "locale": "en-US", - "screen": { - "width": 1440, - "height": 900, - "density": 2, - "innerWidth": 536, - "innerHeight": 689 - }, - "traits": { - "city": "Bangalore", - "name": "Dummy User 2", - "email": "dummyUser2@gmail.com", - "phone": "+19123456777", - "title": "SDE", - "gender": "Male", - "company": "Rudderstack", - "createdAt": "2021-01-20T13:39:21.032Z" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.2.20" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36" - }, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "integrations": { - "All": true - }, - "originalTimestamp": "2022-01-20T13:39:21.032Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.wootric.com/v1/end_users", - "headers": { - "Content-Type": "application/x-www-form-urlencoded", - "Authorization": "Bearer 2fe581c1c72851e73d60f4191f720be93e5d3e8a6147e37c4e8e852b1a8f506c" - }, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": { - "email": "dummyUser2@gmail.com", - "phone_number": "+19123456777", - "last_surveyed": "1642685961", - "external_created_at": "1611149961", - "external_id": "dummyId2", - "properties[city]": "Bangalore", - "properties[name]": "Dummy User 2", - "properties[title]": "SDE", - "properties[gender]": "Male", - "properties[company]": "Rudderstack" - } - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "wootric", - "description": "Identify call for creating user without-sending email and sending phone number", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "username": "wootricfakeuser@example.com", - "password": "password@123", - "accountToken": "NPS-dummyToken" - }, - "ID": "wootric-1234" - }, - "message": { - "type": "identify", - "sentAt": "2022-01-20T13:39:21.033Z", - "userId": "dummyId2", - "channel": "web", - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.2.20", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "path": "/Testing/App_for_LaunchDarkly/ourSdk.html", - "title": "Document", - "search": "", - "tab_url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "referrer": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/", - "initial_referrer": "$direct", - "referring_domain": "127.0.0.1:7307", - "initial_referring_domain": "" - }, - "locale": "en-US", - "screen": { - "width": 1440, - "height": 900, - "density": 2, - "innerWidth": 536, - "innerHeight": 689 - }, - "traits": { - "city": "Bangalore", - "name": "Dummy User 2", - "phone": "+19123456777", - "title": "SDE", - "gender": "Male", - "company": "Rudderstack", - "createdAt": "2021-01-20T13:39:21.032Z" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.2.20" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36" - }, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "integrations": { - "All": true - }, - "originalTimestamp": "2022-01-20T13:39:21.032Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.wootric.com/v1/end_users", - "headers": { - "Content-Type": "application/x-www-form-urlencoded", - "Authorization": "Bearer 2fe581c1c72851e73d60f4191f720be93e5d3e8a6147e37c4e8e852b1a8f506c" - }, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": { - "phone_number": "+19123456777", - "last_surveyed": "1642685961", - "external_created_at": "1611149961", - "external_id": "dummyId2", - "properties[city]": "Bangalore", - "properties[name]": "Dummy User 2", - "properties[title]": "SDE", - "properties[gender]": "Male", - "properties[company]": "Rudderstack" - } - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "wootric", - "description": "Identify call for creating user without-sending phone number and sending email", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "username": "wootricfakeuser@example.com", - "password": "password@123", - "accountToken": "NPS-dummyToken" - }, - "ID": "wootric-1234" - }, - "message": { - "type": "identify", - "sentAt": "2022-01-20T13:39:21.033Z", - "userId": "dummyId2", - "channel": "web", - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.2.20", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "path": "/Testing/App_for_LaunchDarkly/ourSdk.html", - "title": "Document", - "search": "", - "tab_url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "referrer": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/", - "initial_referrer": "$direct", - "referring_domain": "127.0.0.1:7307", - "initial_referring_domain": "" - }, - "locale": "en-US", - "screen": { - "width": 1440, - "height": 900, - "density": 2, - "innerWidth": 536, - "innerHeight": 689 - }, - "traits": { - "email": "dummyUser2@gmail.com", - "city": "Bangalore", - "name": "Dummy User 2", - "title": "SDE", - "gender": "Male", - "company": "Rudderstack", - "createdAt": "2021-01-20T13:39:21.032Z" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.2.20" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36" - }, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "integrations": { - "All": true - }, - "originalTimestamp": "2022-01-20T13:39:21.032Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.wootric.com/v1/end_users", - "headers": { - "Content-Type": "application/x-www-form-urlencoded", - "Authorization": "Bearer 2fe581c1c72851e73d60f4191f720be93e5d3e8a6147e37c4e8e852b1a8f506c" - }, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": { - "email": "dummyUser2@gmail.com", - "last_surveyed": "1642685961", - "external_created_at": "1611149961", - "external_id": "dummyId2", - "properties[city]": "Bangalore", - "properties[name]": "Dummy User 2", - "properties[title]": "SDE", - "properties[gender]": "Male", - "properties[company]": "Rudderstack" - } - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "wootric", - "description": "Identify call for creating user without sending traits", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "username": "wootricfakeuser@example.com", - "password": "password@123", - "accountToken": "NPS-dummyToken" - }, - "ID": "wootric-1234" - }, - "message": { - "type": "identify", - "sentAt": "2022-01-20T13:39:21.033Z", - "userId": "dummyId2", - "channel": "web", - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.2.20", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "path": "/Testing/App_for_LaunchDarkly/ourSdk.html", - "title": "Document", - "search": "", - "tab_url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "referrer": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/", - "initial_referrer": "$direct", - "referring_domain": "127.0.0.1:7307", - "initial_referring_domain": "" - }, - "locale": "en-US", - "screen": { - "width": 1440, - "height": 900, - "density": 2, - "innerWidth": 536, - "innerHeight": 689 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.2.20" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36" - }, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "integrations": { - "All": true - }, - "originalTimestamp": "2022-01-20T13:39:21.032Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "email/phone number are missing. At least one parameter must be provided", - "statTags": { - "destType": "WOOTRIC", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "wootric", - "description": "Identify call for creating user without-sending (email and phone number)", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "username": "wootricfakeuser@example.com", - "password": "password@123", - "accountToken": "NPS-dummyToken" - }, - "ID": "wootric-1234" - }, - "message": { - "type": "identify", - "sentAt": "2022-01-20T13:39:21.033Z", - "userId": "dummyId2", - "channel": "web", - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.2.20", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "path": "/Testing/App_for_LaunchDarkly/ourSdk.html", - "title": "Document", - "search": "", - "tab_url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "referrer": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/", - "initial_referrer": "$direct", - "referring_domain": "127.0.0.1:7307", - "initial_referring_domain": "" - }, - "locale": "en-US", - "screen": { - "width": 1440, - "height": 900, - "density": 2, - "innerWidth": 536, - "innerHeight": 689 - }, - "traits": { - "city": "Mumbai", - "name": "Dummy User 1", - "title": "SDE", - "gender": "Male", - "company": "Rudderstack", - "createdAt": "2021-01-20T13:39:21.032Z" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.2.20" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36" - }, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "integrations": { - "All": true - }, - "originalTimestamp": "2022-01-20T13:39:21.032Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "email/phone number are missing. At least one parameter must be provided", - "statTags": { - "destType": "WOOTRIC", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "wootric", - "description": "Identify call for updating existing user with wootric end user id", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "username": "wootricfakeuser@example.com", - "password": "password@123", - "accountToken": "NPS-dummyToken" - }, - "ID": "wootric-1234" - }, - "message": { - "type": "identify", - "sentAt": "2022-01-20T13:39:21.033Z", - "userId": "dummyId1", - "channel": "web", - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.2.20", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "path": "/Testing/App_for_LaunchDarkly/ourSdk.html", - "title": "Document", - "search": "", - "tab_url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "referrer": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/", - "initial_referrer": "$direct", - "referring_domain": "127.0.0.1:7307", - "initial_referring_domain": "" - }, - "locale": "en-US", - "screen": { - "width": 1440, - "height": 900, - "density": 2, - "innerWidth": 536, - "innerHeight": 689 - }, - "traits": { - "title": "VP", - "gender": "Male" - }, - "externalId": [ - { - "type": "wootricEndUserId", - "id": "490635419" - } - ], - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.2.20" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36" - }, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "integrations": { - "All": true - }, - "originalTimestamp": "2022-01-20T13:39:21.032Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "PUT", - "endpoint": "https://api.wootric.com/v1/end_users/490635419", - "headers": { - "Content-Type": "application/x-www-form-urlencoded", - "Authorization": "Bearer 2fe581c1c72851e73d60f4191f720be93e5d3e8a6147e37c4e8e852b1a8f506c" - }, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": { - "last_surveyed": "1642685961", - "properties[Department]": "Marketing", - "properties[product_plan]": "Web", - "properties[revenue amount]": "5000", - "properties[title]": "VP", - "properties[gender]": "Male" - } - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "wootric", - "description": "Identify call for updating existing user with (wootric externalId/ rudderstack userId)", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "username": "wootricfakeuser@example.com", - "password": "password@123", - "accountToken": "NPS-dummyToken" - }, - "ID": "wootric-1234" - }, - "message": { - "type": "identify", - "sentAt": "2022-01-20T13:39:21.033Z", - "userId": "dummyId1", - "channel": "web", - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.2.20", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "path": "/Testing/App_for_LaunchDarkly/ourSdk.html", - "title": "Document", - "search": "", - "tab_url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "referrer": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/", - "initial_referrer": "$direct", - "referring_domain": "127.0.0.1:7307", - "initial_referring_domain": "" - }, - "locale": "en-US", - "screen": { - "width": 1440, - "height": 900, - "density": 2, - "innerWidth": 536, - "innerHeight": 689 - }, - "traits": { - "title": "VP", - "gender": "Male" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.2.20" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36" - }, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "integrations": { - "All": true - }, - "originalTimestamp": "2022-01-20T13:39:21.032Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "PUT", - "endpoint": "https://api.wootric.com/v1/end_users/486438462", - "headers": { - "Content-Type": "application/x-www-form-urlencoded", - "Authorization": "Bearer 2fe581c1c72851e73d60f4191f720be93e5d3e8a6147e37c4e8e852b1a8f506c" - }, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": { - "last_surveyed": "1642685961", - "properties[title]": "VP", - "properties[gender]": "Male", - "properties[city]": "Mumbai", - "properties[name]": "Dummy User 1", - "properties[company]": "Rudderstack" - } - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "wootric", - "description": "Identify call for updating user traits/properties", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "username": "wootricfakeuser@example.com", - "password": "password@123", - "accountToken": "NPS-dummyToken" - }, - "ID": "wootric-1234" - }, - "message": { - "type": "identify", - "sentAt": "2022-01-20T13:39:21.033Z", - "userId": "dummyId1", - "channel": "web", - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.2.20", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "path": "/Testing/App_for_LaunchDarkly/ourSdk.html", - "title": "Document", - "search": "", - "tab_url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "referrer": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/", - "initial_referrer": "$direct", - "referring_domain": "127.0.0.1:7307", - "initial_referring_domain": "" - }, - "locale": "en-US", - "screen": { - "width": 1440, - "height": 900, - "density": 2, - "innerWidth": 536, - "innerHeight": 689 - }, - "traits": { - "city": "Udaipur", - "name": "Dummy User 1 New", - "title": "SDE-2", - "gender": "Male", - "company": "Rudderstack" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.2.20" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36" - }, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "integrations": { - "All": true - }, - "originalTimestamp": "2022-01-20T13:39:21.032Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "PUT", - "endpoint": "https://api.wootric.com/v1/end_users/486438462", - "headers": { - "Content-Type": "application/x-www-form-urlencoded", - "Authorization": "Bearer 2fe581c1c72851e73d60f4191f720be93e5d3e8a6147e37c4e8e852b1a8f506c" - }, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": { - "last_surveyed": "1642685961", - "properties[city]": "Udaipur", - "properties[name]": "Dummy User 1 New", - "properties[title]": "SDE-2", - "properties[gender]": "Male", - "properties[company]": "Rudderstack" - } - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "wootric", - "description": "Track call with existing userId and event type as create response", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "username": "wootricfakeuser@example.com", - "password": "password@123", - "accountToken": "NPS-dummyToken" - }, - "ID": "wootric-1234" - }, - "message": { - "type": "track", - "sentAt": "2022-01-20T13:39:21.033Z", - "userId": "dummyId1", - "channel": "web", - "properties": { - "feedbackScore": 7, - "feedbackText": "Simple, Easy to use, Reliable, Affordable Product" - }, - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.2.20", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "path": "/Testing/App_for_LaunchDarkly/ourSdk.html", - "title": "Document", - "search": "", - "tab_url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "referrer": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/", - "initial_referrer": "$direct", - "referring_domain": "127.0.0.1:7307", - "initial_referring_domain": "" - }, - "locale": "en-US", - "ip": "0.0.0.0", - "screen": { - "width": 1440, - "height": 900, - "density": 2, - "innerWidth": 536, - "innerHeight": 689 - }, - "traits": { - "city": "Mumbai", - "name": "Dummy User 1", - "email": "dummyUser1@gmail.com", - "title": "SDE", - "gender": "Male", - "company": "Rudderstack", - "createdAt": "2021-01-20T13:39:21.032Z" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.2.20" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36" - }, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "integrations": { - "All": true, - "Wootric": { - "eventType": "create response" - } - }, - "originalTimestamp": "2022-01-20T13:39:21.032Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.wootric.com/v1/end_users/486438462/responses", - "headers": { - "Content-Type": "application/x-www-form-urlencoded", - "Authorization": "Bearer 2fe581c1c72851e73d60f4191f720be93e5d3e8a6147e37c4e8e852b1a8f506c" - }, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": { - "score": 7, - "ip_address": "0.0.0.0", - "origin_url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "text": "Simple, Easy to use, Reliable, Affordable Product", - "created_at": "1611149961", - "end_user[properties][city]": "Mumbai", - "end_user[properties][name]": "Dummy User 1", - "end_user[properties][title]": "SDE", - "end_user[properties][gender]": "Male", - "end_user[properties][company]": "Rudderstack" - } - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "wootric", - "description": "Track call with non-existing userId", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "username": "wootricfakeuser@example.com", - "password": "password@123", - "accountToken": "NPS-dummyToken" - }, - "ID": "wootric-1234" - }, - "message": { - "type": "track", - "sentAt": "2022-01-20T13:39:21.033Z", - "userId": "dummyId2", - "channel": "web", - "properties": { - "feedbackScore": 7, - "feedbackText": "Simple, Easy to use, Reliable, Affordable Product" - }, - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.2.20", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "path": "/Testing/App_for_LaunchDarkly/ourSdk.html", - "title": "Document", - "search": "", - "tab_url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "referrer": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/", - "initial_referrer": "$direct", - "referring_domain": "127.0.0.1:7307", - "initial_referring_domain": "" - }, - "locale": "en-US", - "ip": "0.0.0.0", - "screen": { - "width": 1440, - "height": 900, - "density": 2, - "innerWidth": 536, - "innerHeight": 689 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.2.20" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36" - }, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "integrations": { - "All": true, - "Wootric": { - "eventType": "create response" - } - }, - "originalTimestamp": "2022-01-20T13:39:21.032Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "No user found with userId : dummyId2", - "statTags": { - "destType": "WOOTRIC", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "wootric", - "description": "Track call with non-existing wootricEndUserId", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "username": "wootricfakeuser@example.com", - "password": "password@123", - "accountToken": "NPS-dummyToken" - }, - "ID": "wootric-1234" - }, - "message": { - "type": "track", - "sentAt": "2022-01-20T13:39:21.033Z", - "channel": "web", - "properties": { - "feedbackScore": 7, - "feedbackText": "Simple, Easy to use, Reliable, Affordable Product" - }, - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.2.20", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "path": "/Testing/App_for_LaunchDarkly/ourSdk.html", - "title": "Document", - "search": "", - "tab_url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "referrer": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/", - "initial_referrer": "$direct", - "referring_domain": "127.0.0.1:7307", - "initial_referring_domain": "" - }, - "locale": "en-US", - "ip": "0.0.0.0", - "screen": { - "width": 1440, - "height": 900, - "density": 2, - "innerWidth": 536, - "innerHeight": 689 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.2.20" - }, - "externalId": [ - { - "type": "wootricEndUserId", - "id": "12345" - } - ], - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36" - }, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "integrations": { - "All": true, - "Wootric": { - "eventType": "create response" - } - }, - "originalTimestamp": "2022-01-20T13:39:21.032Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "No user found with wootric end user Id : 12345", - "statTags": { - "destType": "WOOTRIC", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "wootric", - "description": "Track call with existing userId and event type as create response and score out of bound", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "username": "wootricfakeuser@example.com", - "password": "password@123", - "accountToken": "NPS-dummyToken" - }, - "ID": "wootric-1234" - }, - "message": { - "type": "track", - "sentAt": "2022-01-20T13:39:21.033Z", - "userId": "dummyId1", - "channel": "web", - "properties": { - "feedbackScore": 12, - "feedbackText": "Simple, Easy to use, Reliable, Affordable Product" - }, - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.2.20", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "path": "/Testing/App_for_LaunchDarkly/ourSdk.html", - "title": "Document", - "search": "", - "tab_url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "referrer": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/", - "initial_referrer": "$direct", - "referring_domain": "127.0.0.1:7307", - "initial_referring_domain": "" - }, - "locale": "en-US", - "ip": "0.0.0.0", - "screen": { - "width": 1440, - "height": 900, - "density": 2, - "innerWidth": 536, - "innerHeight": 689 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.2.20" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36" - }, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "integrations": { - "All": true, - "Wootric": { - "eventType": "create response" - } - }, - "originalTimestamp": "2022-01-20T13:39:21.032Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "Invalid Score", - "statTags": { - "destType": "WOOTRIC", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "wootric", - "description": "Track call with existing userId and event type as create decline", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "username": "wootricfakeuser@example.com", - "password": "password@123", - "accountToken": "NPS-dummyToken" - }, - "ID": "wootric-1234" - }, - "message": { - "type": "track", - "sentAt": "2022-01-20T13:39:21.033Z", - "userId": "dummyId1", - "channel": "web", - "properties": { - "feedbackScore": 9, - "feedbackText": "Simple, Easy to use, Reliable, Affordable Product" - }, - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.2.20", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "path": "/Testing/App_for_LaunchDarkly/ourSdk.html", - "title": "Document", - "search": "", - "tab_url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "referrer": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/", - "initial_referrer": "$direct", - "referring_domain": "127.0.0.1:7307", - "initial_referring_domain": "" - }, - "locale": "en-US", - "screen": { - "width": 1440, - "height": 900, - "density": 2, - "innerWidth": 536, - "innerHeight": 689 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.2.20" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36" - }, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "integrations": { - "All": true, - "Wootric": { - "eventType": "create decline" - } - }, - "originalTimestamp": "2022-01-20T13:39:21.032Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.wootric.com/v1/end_users/486438462/declines", - "headers": { - "Content-Type": "application/x-www-form-urlencoded", - "Authorization": "Bearer 2fe581c1c72851e73d60f4191f720be93e5d3e8a6147e37c4e8e852b1a8f506c" - }, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": { - "origin_url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html" - } - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "wootric", - "description": "Track call with non-existing userId and event type as create decline", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "username": "wootricfakeuser@example.com", - "password": "password@123", - "accountToken": "NPS-dummyToken" - }, - "ID": "wootric-1234" - }, - "message": { - "type": "track", - "sentAt": "2022-01-20T13:39:21.033Z", - "userId": "dummyId2", - "channel": "web", - "properties": { - "feedbackScore": 9, - "feedbackText": "Simple, Easy to use, Reliable, Affordable Product" - }, - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.2.20", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "path": "/Testing/App_for_LaunchDarkly/ourSdk.html", - "title": "Document", - "search": "", - "tab_url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "referrer": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/", - "initial_referrer": "$direct", - "referring_domain": "127.0.0.1:7307", - "initial_referring_domain": "" - }, - "locale": "en-US", - "screen": { - "width": 1440, - "height": 900, - "density": 2, - "innerWidth": 536, - "innerHeight": 689 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.2.20" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36" - }, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "integrations": { - "All": true, - "Wootric": { - "eventType": "create decline" - } - }, - "originalTimestamp": "2022-01-20T13:39:21.032Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "No user found with userId : dummyId2", - "statTags": { - "destType": "WOOTRIC", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "wootric", - "description": "Track call with event type other than create response or decline", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "username": "wootricfakeuser@example.com", - "password": "password@123", - "accountToken": "NPS-dummyToken" - }, - "ID": "wootric-1234" - }, - "message": { - "type": "track", - "sentAt": "2022-01-20T13:39:21.033Z", - "userId": "dummyId1", - "channel": "web", - "properties": { - "feedbackScore": 7, - "feedbackText": "Simple, Easy to use, Reliable, Affordable Product" - }, - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.2.20", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "path": "/Testing/App_for_LaunchDarkly/ourSdk.html", - "title": "Document", - "search": "", - "tab_url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "referrer": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/", - "initial_referrer": "$direct", - "referring_domain": "127.0.0.1:7307", - "initial_referring_domain": "" - }, - "locale": "en-US", - "ip": "0.0.0.0", - "screen": { - "width": 1440, - "height": 900, - "density": 2, - "innerWidth": 536, - "innerHeight": 689 - }, - "traits": { - "city": "Mumbai", - "name": "Dummy User 1", - "email": "dummyUser1@gmail.com", - "phone": "+19123456789", - "title": "SDE", - "gender": "Male", - "company": "Rudderstack", - "createdAt": "2021-01-20T13:39:21.032Z" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.2.20" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36" - }, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "integrations": { - "All": true, - "Wootric": { - "eventType": "random" - } - }, - "originalTimestamp": "2022-01-20T13:39:21.032Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "Event Type not supported", - "statTags": { - "destType": "WOOTRIC", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "wootric", - "description": "Track call with missing event type in integration object", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "username": "wootricfakeuser@example.com", - "password": "password@123", - "accountToken": "NPS-dummyToken" - }, - "ID": "wootric-1234" - }, - "message": { - "type": "track", - "sentAt": "2022-01-20T13:39:21.033Z", - "userId": "dummyId1", - "channel": "web", - "properties": { - "feedbackScore": 3, - "feedbackText": "Too Slow!!!" - }, - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.2.20", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "path": "/Testing/App_for_LaunchDarkly/ourSdk.html", - "title": "Document", - "search": "", - "tab_url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "referrer": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/", - "initial_referrer": "$direct", - "referring_domain": "127.0.0.1:7307", - "initial_referring_domain": "" - }, - "locale": "en-US", - "ip": "0.0.0.0", - "screen": { - "width": 1440, - "height": 900, - "density": 2, - "innerWidth": 536, - "innerHeight": 689 - }, - "traits": { - "city": "Mumbai", - "name": "Dummy User 1", - "email": "dummyUser1@gmail.com", - "phone": "+19123456789", - "title": "SDE", - "gender": "Male", - "company": "Rudderstack", - "createdAt": "2021-01-20T13:39:21.032Z" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.2.20" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36" - }, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "integrations": { - "All": true - }, - "originalTimestamp": "2022-01-20T13:39:21.032Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "Event Type is missing from Integration object", - "statTags": { - "destType": "WOOTRIC", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - } -] \ No newline at end of file + { + name: 'wootric', + description: 'Wrong Account Token Passed', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + username: 'wootricfakeuser@example.com', + password: 'password@123', + accountToken: 'NPS-dummyToken12', + }, + ID: 'wootric-1234', + }, + message: { + type: 'identify', + sentAt: '2022-01-20T13:39:21.033Z', + userId: 'dummyId2', + channel: 'web', + context: {}, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + integrations: { + All: true, + }, + originalTimestamp: '2022-01-20T13:39:21.032Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + '{"message":"Access token could not be generated due to {\\"error\\":\\"Not found\\",\\"status\\":404}","destinationResponse":{"response":{"error":"Not found","status":404},"status":500}}', + statTags: { + destType: 'WOOTRIC', + errorCategory: 'network', + errorType: 'retryable', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 500, + }, + ], + }, + }, + }, + { + name: 'wootric', + description: 'Identify call for creating user', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + username: 'wootricfakeuser@example.com', + password: 'password@123', + accountToken: 'NPS-dummyToken', + }, + ID: 'wootric-1234', + }, + message: { + type: 'identify', + sentAt: '2022-01-20T13:39:21.033Z', + userId: 'dummyId2', + channel: 'web', + context: { + os: { + name: '', + version: '', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.2.20', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + path: '/Testing/App_for_LaunchDarkly/ourSdk.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + referrer: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/', + initial_referrer: '$direct', + referring_domain: '127.0.0.1:7307', + initial_referring_domain: '', + }, + locale: 'en-US', + screen: { + width: 1440, + height: 900, + density: 2, + innerWidth: 536, + innerHeight: 689, + }, + traits: { + city: 'Bangalore', + name: 'Dummy User 2', + email: 'dummyUser2@gmail.com', + phone: '+19123456777', + title: 'SDE', + gender: 'Male', + company: 'Rudderstack', + createdAt: '2021-01-20T13:39:21.032Z', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.2.20', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + integrations: { + All: true, + }, + originalTimestamp: '2022-01-20T13:39:21.032Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.wootric.com/v1/end_users', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + Authorization: + 'Bearer 2fe581c1c72851e73d60f4191f720be93e5d3e8a6147e37c4e8e852b1a8f506c', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + email: 'dummyUser2@gmail.com', + phone_number: '+19123456777', + last_surveyed: '1642685961', + external_created_at: '1611149961', + external_id: 'dummyId2', + 'properties[city]': 'Bangalore', + 'properties[name]': 'Dummy User 2', + 'properties[title]': 'SDE', + 'properties[gender]': 'Male', + 'properties[company]': 'Rudderstack', + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'wootric', + description: 'Identify call for creating user without-sending email and sending phone number', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + username: 'wootricfakeuser@example.com', + password: 'password@123', + accountToken: 'NPS-dummyToken', + }, + ID: 'wootric-1234', + }, + message: { + type: 'identify', + sentAt: '2022-01-20T13:39:21.033Z', + userId: 'dummyId2', + channel: 'web', + context: { + os: { + name: '', + version: '', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.2.20', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + path: '/Testing/App_for_LaunchDarkly/ourSdk.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + referrer: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/', + initial_referrer: '$direct', + referring_domain: '127.0.0.1:7307', + initial_referring_domain: '', + }, + locale: 'en-US', + screen: { + width: 1440, + height: 900, + density: 2, + innerWidth: 536, + innerHeight: 689, + }, + traits: { + city: 'Bangalore', + name: 'Dummy User 2', + phone: '+19123456777', + title: 'SDE', + gender: 'Male', + company: 'Rudderstack', + createdAt: '2021-01-20T13:39:21.032Z', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.2.20', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + integrations: { + All: true, + }, + originalTimestamp: '2022-01-20T13:39:21.032Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.wootric.com/v1/end_users', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + Authorization: + 'Bearer 2fe581c1c72851e73d60f4191f720be93e5d3e8a6147e37c4e8e852b1a8f506c', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + phone_number: '+19123456777', + last_surveyed: '1642685961', + external_created_at: '1611149961', + external_id: 'dummyId2', + 'properties[city]': 'Bangalore', + 'properties[name]': 'Dummy User 2', + 'properties[title]': 'SDE', + 'properties[gender]': 'Male', + 'properties[company]': 'Rudderstack', + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'wootric', + description: 'Identify call for creating user without-sending phone number and sending email', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + username: 'wootricfakeuser@example.com', + password: 'password@123', + accountToken: 'NPS-dummyToken', + }, + ID: 'wootric-1234', + }, + message: { + type: 'identify', + sentAt: '2022-01-20T13:39:21.033Z', + userId: 'dummyId2', + channel: 'web', + context: { + os: { + name: '', + version: '', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.2.20', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + path: '/Testing/App_for_LaunchDarkly/ourSdk.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + referrer: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/', + initial_referrer: '$direct', + referring_domain: '127.0.0.1:7307', + initial_referring_domain: '', + }, + locale: 'en-US', + screen: { + width: 1440, + height: 900, + density: 2, + innerWidth: 536, + innerHeight: 689, + }, + traits: { + email: 'dummyUser2@gmail.com', + city: 'Bangalore', + name: 'Dummy User 2', + title: 'SDE', + gender: 'Male', + company: 'Rudderstack', + createdAt: '2021-01-20T13:39:21.032Z', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.2.20', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + integrations: { + All: true, + }, + originalTimestamp: '2022-01-20T13:39:21.032Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.wootric.com/v1/end_users', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + Authorization: + 'Bearer 2fe581c1c72851e73d60f4191f720be93e5d3e8a6147e37c4e8e852b1a8f506c', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + email: 'dummyUser2@gmail.com', + last_surveyed: '1642685961', + external_created_at: '1611149961', + external_id: 'dummyId2', + 'properties[city]': 'Bangalore', + 'properties[name]': 'Dummy User 2', + 'properties[title]': 'SDE', + 'properties[gender]': 'Male', + 'properties[company]': 'Rudderstack', + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'wootric', + description: 'Identify call for creating user without sending traits', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + username: 'wootricfakeuser@example.com', + password: 'password@123', + accountToken: 'NPS-dummyToken', + }, + ID: 'wootric-1234', + }, + message: { + type: 'identify', + sentAt: '2022-01-20T13:39:21.033Z', + userId: 'dummyId2', + channel: 'web', + context: { + os: { + name: '', + version: '', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.2.20', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + path: '/Testing/App_for_LaunchDarkly/ourSdk.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + referrer: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/', + initial_referrer: '$direct', + referring_domain: '127.0.0.1:7307', + initial_referring_domain: '', + }, + locale: 'en-US', + screen: { + width: 1440, + height: 900, + density: 2, + innerWidth: 536, + innerHeight: 689, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.2.20', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + integrations: { + All: true, + }, + originalTimestamp: '2022-01-20T13:39:21.032Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'email/phone number are missing. At least one parameter must be provided', + statTags: { + destType: 'WOOTRIC', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'wootric', + description: 'Identify call for creating user without-sending (email and phone number)', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + username: 'wootricfakeuser@example.com', + password: 'password@123', + accountToken: 'NPS-dummyToken', + }, + ID: 'wootric-1234', + }, + message: { + type: 'identify', + sentAt: '2022-01-20T13:39:21.033Z', + userId: 'dummyId2', + channel: 'web', + context: { + os: { + name: '', + version: '', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.2.20', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + path: '/Testing/App_for_LaunchDarkly/ourSdk.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + referrer: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/', + initial_referrer: '$direct', + referring_domain: '127.0.0.1:7307', + initial_referring_domain: '', + }, + locale: 'en-US', + screen: { + width: 1440, + height: 900, + density: 2, + innerWidth: 536, + innerHeight: 689, + }, + traits: { + city: 'Mumbai', + name: 'Dummy User 1', + title: 'SDE', + gender: 'Male', + company: 'Rudderstack', + createdAt: '2021-01-20T13:39:21.032Z', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.2.20', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + integrations: { + All: true, + }, + originalTimestamp: '2022-01-20T13:39:21.032Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'email/phone number are missing. At least one parameter must be provided', + statTags: { + destType: 'WOOTRIC', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'wootric', + description: 'Identify call for updating existing user with wootric end user id', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + username: 'wootricfakeuser@example.com', + password: 'password@123', + accountToken: 'NPS-dummyToken', + }, + ID: 'wootric-1234', + }, + message: { + type: 'identify', + sentAt: '2022-01-20T13:39:21.033Z', + userId: 'dummyId1', + channel: 'web', + context: { + os: { + name: '', + version: '', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.2.20', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + path: '/Testing/App_for_LaunchDarkly/ourSdk.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + referrer: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/', + initial_referrer: '$direct', + referring_domain: '127.0.0.1:7307', + initial_referring_domain: '', + }, + locale: 'en-US', + screen: { + width: 1440, + height: 900, + density: 2, + innerWidth: 536, + innerHeight: 689, + }, + traits: { + title: 'VP', + gender: 'Male', + }, + externalId: [ + { + type: 'wootricEndUserId', + id: '490635419', + }, + ], + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.2.20', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + integrations: { + All: true, + }, + originalTimestamp: '2022-01-20T13:39:21.032Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'PUT', + endpoint: 'https://api.wootric.com/v1/end_users/490635419', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + Authorization: + 'Bearer 2fe581c1c72851e73d60f4191f720be93e5d3e8a6147e37c4e8e852b1a8f506c', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + last_surveyed: '1642685961', + 'properties[Department]': 'Marketing', + 'properties[product_plan]': 'Web', + 'properties[revenue amount]': '5000', + 'properties[title]': 'VP', + 'properties[gender]': 'Male', + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'wootric', + description: + 'Identify call for updating existing user with (wootric externalId/ rudderstack userId)', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + username: 'wootricfakeuser@example.com', + password: 'password@123', + accountToken: 'NPS-dummyToken', + }, + ID: 'wootric-1234', + }, + message: { + type: 'identify', + sentAt: '2022-01-20T13:39:21.033Z', + userId: 'dummyId1', + channel: 'web', + context: { + os: { + name: '', + version: '', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.2.20', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + path: '/Testing/App_for_LaunchDarkly/ourSdk.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + referrer: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/', + initial_referrer: '$direct', + referring_domain: '127.0.0.1:7307', + initial_referring_domain: '', + }, + locale: 'en-US', + screen: { + width: 1440, + height: 900, + density: 2, + innerWidth: 536, + innerHeight: 689, + }, + traits: { + title: 'VP', + gender: 'Male', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.2.20', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + integrations: { + All: true, + }, + originalTimestamp: '2022-01-20T13:39:21.032Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'PUT', + endpoint: 'https://api.wootric.com/v1/end_users/486438462', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + Authorization: + 'Bearer 2fe581c1c72851e73d60f4191f720be93e5d3e8a6147e37c4e8e852b1a8f506c', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + last_surveyed: '1642685961', + 'properties[title]': 'VP', + 'properties[gender]': 'Male', + 'properties[city]': 'Mumbai', + 'properties[name]': 'Dummy User 1', + 'properties[company]': 'Rudderstack', + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'wootric', + description: 'Identify call for updating user traits/properties', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + username: 'wootricfakeuser@example.com', + password: 'password@123', + accountToken: 'NPS-dummyToken', + }, + ID: 'wootric-1234', + }, + message: { + type: 'identify', + sentAt: '2022-01-20T13:39:21.033Z', + userId: 'dummyId1', + channel: 'web', + context: { + os: { + name: '', + version: '', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.2.20', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + path: '/Testing/App_for_LaunchDarkly/ourSdk.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + referrer: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/', + initial_referrer: '$direct', + referring_domain: '127.0.0.1:7307', + initial_referring_domain: '', + }, + locale: 'en-US', + screen: { + width: 1440, + height: 900, + density: 2, + innerWidth: 536, + innerHeight: 689, + }, + traits: { + city: 'Udaipur', + name: 'Dummy User 1 New', + title: 'SDE-2', + gender: 'Male', + company: 'Rudderstack', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.2.20', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + integrations: { + All: true, + }, + originalTimestamp: '2022-01-20T13:39:21.032Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'PUT', + endpoint: 'https://api.wootric.com/v1/end_users/486438462', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + Authorization: + 'Bearer 2fe581c1c72851e73d60f4191f720be93e5d3e8a6147e37c4e8e852b1a8f506c', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + last_surveyed: '1642685961', + 'properties[city]': 'Udaipur', + 'properties[name]': 'Dummy User 1 New', + 'properties[title]': 'SDE-2', + 'properties[gender]': 'Male', + 'properties[company]': 'Rudderstack', + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'wootric', + description: 'Track call with existing userId and event type as create response', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + username: 'wootricfakeuser@example.com', + password: 'password@123', + accountToken: 'NPS-dummyToken', + }, + ID: 'wootric-1234', + }, + message: { + type: 'track', + sentAt: '2022-01-20T13:39:21.033Z', + userId: 'dummyId1', + channel: 'web', + properties: { + feedbackScore: 7, + feedbackText: 'Simple, Easy to use, Reliable, Affordable Product', + }, + context: { + os: { + name: '', + version: '', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.2.20', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + path: '/Testing/App_for_LaunchDarkly/ourSdk.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + referrer: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/', + initial_referrer: '$direct', + referring_domain: '127.0.0.1:7307', + initial_referring_domain: '', + }, + locale: 'en-US', + ip: '0.0.0.0', + screen: { + width: 1440, + height: 900, + density: 2, + innerWidth: 536, + innerHeight: 689, + }, + traits: { + city: 'Mumbai', + name: 'Dummy User 1', + email: 'dummyUser1@gmail.com', + title: 'SDE', + gender: 'Male', + company: 'Rudderstack', + createdAt: '2021-01-20T13:39:21.032Z', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.2.20', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + integrations: { + All: true, + Wootric: { + eventType: 'create response', + }, + }, + originalTimestamp: '2022-01-20T13:39:21.032Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.wootric.com/v1/end_users/486438462/responses', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + Authorization: + 'Bearer 2fe581c1c72851e73d60f4191f720be93e5d3e8a6147e37c4e8e852b1a8f506c', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + score: 7, + ip_address: '0.0.0.0', + origin_url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + text: 'Simple, Easy to use, Reliable, Affordable Product', + created_at: '1611149961', + 'end_user[properties][city]': 'Mumbai', + 'end_user[properties][name]': 'Dummy User 1', + 'end_user[properties][title]': 'SDE', + 'end_user[properties][gender]': 'Male', + 'end_user[properties][company]': 'Rudderstack', + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'wootric', + description: 'Track call with non-existing userId', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + username: 'wootricfakeuser@example.com', + password: 'password@123', + accountToken: 'NPS-dummyToken', + }, + ID: 'wootric-1234', + }, + message: { + type: 'track', + sentAt: '2022-01-20T13:39:21.033Z', + userId: 'dummyId2', + channel: 'web', + properties: { + feedbackScore: 7, + feedbackText: 'Simple, Easy to use, Reliable, Affordable Product', + }, + context: { + os: { + name: '', + version: '', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.2.20', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + path: '/Testing/App_for_LaunchDarkly/ourSdk.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + referrer: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/', + initial_referrer: '$direct', + referring_domain: '127.0.0.1:7307', + initial_referring_domain: '', + }, + locale: 'en-US', + ip: '0.0.0.0', + screen: { + width: 1440, + height: 900, + density: 2, + innerWidth: 536, + innerHeight: 689, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.2.20', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + integrations: { + All: true, + Wootric: { + eventType: 'create response', + }, + }, + originalTimestamp: '2022-01-20T13:39:21.032Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'No user found with userId : dummyId2', + statTags: { + destType: 'WOOTRIC', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'wootric', + description: 'Track call with non-existing wootricEndUserId', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + username: 'wootricfakeuser@example.com', + password: 'password@123', + accountToken: 'NPS-dummyToken', + }, + ID: 'wootric-1234', + }, + message: { + type: 'track', + sentAt: '2022-01-20T13:39:21.033Z', + channel: 'web', + properties: { + feedbackScore: 7, + feedbackText: 'Simple, Easy to use, Reliable, Affordable Product', + }, + context: { + os: { + name: '', + version: '', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.2.20', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + path: '/Testing/App_for_LaunchDarkly/ourSdk.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + referrer: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/', + initial_referrer: '$direct', + referring_domain: '127.0.0.1:7307', + initial_referring_domain: '', + }, + locale: 'en-US', + ip: '0.0.0.0', + screen: { + width: 1440, + height: 900, + density: 2, + innerWidth: 536, + innerHeight: 689, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.2.20', + }, + externalId: [ + { + type: 'wootricEndUserId', + id: '12345', + }, + ], + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + integrations: { + All: true, + Wootric: { + eventType: 'create response', + }, + }, + originalTimestamp: '2022-01-20T13:39:21.032Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'No user found with wootric end user Id : 12345', + statTags: { + destType: 'WOOTRIC', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'wootric', + description: + 'Track call with existing userId and event type as create response and score out of bound', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + username: 'wootricfakeuser@example.com', + password: 'password@123', + accountToken: 'NPS-dummyToken', + }, + ID: 'wootric-1234', + }, + message: { + type: 'track', + sentAt: '2022-01-20T13:39:21.033Z', + userId: 'dummyId1', + channel: 'web', + properties: { + feedbackScore: 12, + feedbackText: 'Simple, Easy to use, Reliable, Affordable Product', + }, + context: { + os: { + name: '', + version: '', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.2.20', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + path: '/Testing/App_for_LaunchDarkly/ourSdk.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + referrer: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/', + initial_referrer: '$direct', + referring_domain: '127.0.0.1:7307', + initial_referring_domain: '', + }, + locale: 'en-US', + ip: '0.0.0.0', + screen: { + width: 1440, + height: 900, + density: 2, + innerWidth: 536, + innerHeight: 689, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.2.20', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + integrations: { + All: true, + Wootric: { + eventType: 'create response', + }, + }, + originalTimestamp: '2022-01-20T13:39:21.032Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Invalid Score', + statTags: { + destType: 'WOOTRIC', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'wootric', + description: 'Track call with existing userId and event type as create decline', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + username: 'wootricfakeuser@example.com', + password: 'password@123', + accountToken: 'NPS-dummyToken', + }, + ID: 'wootric-1234', + }, + message: { + type: 'track', + sentAt: '2022-01-20T13:39:21.033Z', + userId: 'dummyId1', + channel: 'web', + properties: { + feedbackScore: 9, + feedbackText: 'Simple, Easy to use, Reliable, Affordable Product', + }, + context: { + os: { + name: '', + version: '', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.2.20', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + path: '/Testing/App_for_LaunchDarkly/ourSdk.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + referrer: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/', + initial_referrer: '$direct', + referring_domain: '127.0.0.1:7307', + initial_referring_domain: '', + }, + locale: 'en-US', + screen: { + width: 1440, + height: 900, + density: 2, + innerWidth: 536, + innerHeight: 689, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.2.20', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + integrations: { + All: true, + Wootric: { + eventType: 'create decline', + }, + }, + originalTimestamp: '2022-01-20T13:39:21.032Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.wootric.com/v1/end_users/486438462/declines', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + Authorization: + 'Bearer 2fe581c1c72851e73d60f4191f720be93e5d3e8a6147e37c4e8e852b1a8f506c', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + origin_url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'wootric', + description: 'Track call with non-existing userId and event type as create decline', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + username: 'wootricfakeuser@example.com', + password: 'password@123', + accountToken: 'NPS-dummyToken', + }, + ID: 'wootric-1234', + }, + message: { + type: 'track', + sentAt: '2022-01-20T13:39:21.033Z', + userId: 'dummyId2', + channel: 'web', + properties: { + feedbackScore: 9, + feedbackText: 'Simple, Easy to use, Reliable, Affordable Product', + }, + context: { + os: { + name: '', + version: '', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.2.20', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + path: '/Testing/App_for_LaunchDarkly/ourSdk.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + referrer: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/', + initial_referrer: '$direct', + referring_domain: '127.0.0.1:7307', + initial_referring_domain: '', + }, + locale: 'en-US', + screen: { + width: 1440, + height: 900, + density: 2, + innerWidth: 536, + innerHeight: 689, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.2.20', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + integrations: { + All: true, + Wootric: { + eventType: 'create decline', + }, + }, + originalTimestamp: '2022-01-20T13:39:21.032Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'No user found with userId : dummyId2', + statTags: { + destType: 'WOOTRIC', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'wootric', + description: 'Track call with event type other than create response or decline', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + username: 'wootricfakeuser@example.com', + password: 'password@123', + accountToken: 'NPS-dummyToken', + }, + ID: 'wootric-1234', + }, + message: { + type: 'track', + sentAt: '2022-01-20T13:39:21.033Z', + userId: 'dummyId1', + channel: 'web', + properties: { + feedbackScore: 7, + feedbackText: 'Simple, Easy to use, Reliable, Affordable Product', + }, + context: { + os: { + name: '', + version: '', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.2.20', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + path: '/Testing/App_for_LaunchDarkly/ourSdk.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + referrer: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/', + initial_referrer: '$direct', + referring_domain: '127.0.0.1:7307', + initial_referring_domain: '', + }, + locale: 'en-US', + ip: '0.0.0.0', + screen: { + width: 1440, + height: 900, + density: 2, + innerWidth: 536, + innerHeight: 689, + }, + traits: { + city: 'Mumbai', + name: 'Dummy User 1', + email: 'dummyUser1@gmail.com', + phone: '+19123456789', + title: 'SDE', + gender: 'Male', + company: 'Rudderstack', + createdAt: '2021-01-20T13:39:21.032Z', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.2.20', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + integrations: { + All: true, + Wootric: { + eventType: 'random', + }, + }, + originalTimestamp: '2022-01-20T13:39:21.032Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Event Type not supported', + statTags: { + destType: 'WOOTRIC', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'wootric', + description: 'Track call with missing event type in integration object', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + username: 'wootricfakeuser@example.com', + password: 'password@123', + accountToken: 'NPS-dummyToken', + }, + ID: 'wootric-1234', + }, + message: { + type: 'track', + sentAt: '2022-01-20T13:39:21.033Z', + userId: 'dummyId1', + channel: 'web', + properties: { + feedbackScore: 3, + feedbackText: 'Too Slow!!!', + }, + context: { + os: { + name: '', + version: '', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.2.20', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + path: '/Testing/App_for_LaunchDarkly/ourSdk.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + referrer: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/', + initial_referrer: '$direct', + referring_domain: '127.0.0.1:7307', + initial_referring_domain: '', + }, + locale: 'en-US', + ip: '0.0.0.0', + screen: { + width: 1440, + height: 900, + density: 2, + innerWidth: 536, + innerHeight: 689, + }, + traits: { + city: 'Mumbai', + name: 'Dummy User 1', + email: 'dummyUser1@gmail.com', + phone: '+19123456789', + title: 'SDE', + gender: 'Male', + company: 'Rudderstack', + createdAt: '2021-01-20T13:39:21.032Z', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.2.20', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + integrations: { + All: true, + }, + originalTimestamp: '2022-01-20T13:39:21.032Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Event Type is missing from Integration object', + statTags: { + destType: 'WOOTRIC', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/wootric/router/data.ts b/test/integrations/destinations/wootric/router/data.ts index 724ba176f2..9af28f4f48 100644 --- a/test/integrations/destinations/wootric/router/data.ts +++ b/test/integrations/destinations/wootric/router/data.ts @@ -1,1622 +1,1403 @@ export const data = [ - { - name: 'wootric', - description: 'Succesfull Idenitfy Call', - feature: 'router', - module: 'destination', - version: 'v0', - input: { - request: { + { + name: 'wootric', + description: 'Succesfull Idenitfy Call', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + destination: { + Config: { + username: 'wootricfakeuser@example.com', + password: 'password@123', + accountToken: 'NPS-dummyToken', + }, + ID: '2D7TqLto9tnkBuR1ciMrbiA4cbG', + }, + metadata: { jobId: 1, userId: 'u1' }, + message: { + type: 'identify', + sentAt: '2022-01-20T13:39:21.033Z', + userId: 'dummyId2', + channel: 'web', + context: { + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.2.20', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + path: '/Testing/App_for_LaunchDarkly/ourSdk.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + referrer: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/', + initial_referrer: '$direct', + referring_domain: '127.0.0.1:7307', + initial_referring_domain: '', + }, + locale: 'en-US', + screen: { + width: 1440, + height: 900, + density: 2, + innerWidth: 536, + innerHeight: 689, + }, + traits: { + city: 'Bangalore', + name: 'Dummy User 2', + email: 'dummyUser2@gmail.com', + phone: '+19123456777', + title: 'SDE', + gender: 'Male', + company: 'Rudderstack', + createdAt: '2021-01-20T13:39:21.032Z', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.2.20' }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + integrations: { All: true }, + originalTimestamp: '2022-01-20T13:39:21.032Z', + }, + }, + { + destination: { + Config: { + username: 'wootricfakeuser@example.com', + password: 'password@123', + accountToken: 'NPS-dummyToken', + }, + ID: '2D7TqLto9tnkBuR1ciMrbiA4cbG', + }, + metadata: { jobId: 2, userId: 'u1' }, + message: { + type: 'identify', + sentAt: '2022-01-20T13:39:21.033Z', + userId: 'dummyId2', + channel: 'web', + context: { + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.2.20', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + path: '/Testing/App_for_LaunchDarkly/ourSdk.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + referrer: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/', + initial_referrer: '$direct', + referring_domain: '127.0.0.1:7307', + initial_referring_domain: '', + }, + locale: 'en-US', + screen: { + width: 1440, + height: 900, + density: 2, + innerWidth: 536, + innerHeight: 689, + }, + traits: { + city: 'Bangalore', + name: 'Dummy User 2', + phone: '+19123456777', + title: 'SDE', + gender: 'Male', + company: 'Rudderstack', + createdAt: '2021-01-20T13:39:21.032Z', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.2.20' }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + integrations: { All: true }, + originalTimestamp: '2022-01-20T13:39:21.032Z', + }, + }, + { + destination: { + Config: { + username: 'wootricfakeuser@example.com', + password: 'password@123', + accountToken: 'NPS-dummyToken', + }, + ID: '2D7TqLto9tnkBuR1ciMrbiA4cbG', + }, + metadata: { jobId: 3, userId: 'u1' }, + message: { + type: 'identify', + sentAt: '2022-01-20T13:39:21.033Z', + userId: 'dummyId2', + channel: 'web', + context: { + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.2.20', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + path: '/Testing/App_for_LaunchDarkly/ourSdk.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + referrer: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/', + initial_referrer: '$direct', + referring_domain: '127.0.0.1:7307', + initial_referring_domain: '', + }, + locale: 'en-US', + screen: { + width: 1440, + height: 900, + density: 2, + innerWidth: 536, + innerHeight: 689, + }, + traits: { + email: 'dummyUser2@gmail.com', + city: 'Bangalore', + name: 'Dummy User 2', + title: 'SDE', + gender: 'Male', + company: 'Rudderstack', + createdAt: '2021-01-20T13:39:21.032Z', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.2.20' }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + integrations: { All: true }, + originalTimestamp: '2022-01-20T13:39:21.032Z', + }, + }, + { + destination: { + Config: { + username: 'wootricfakeuser@example.com', + password: 'password@123', + accountToken: 'NPS-dummyToken', + }, + ID: '2D7TqLto9tnkBuR1ciMrbiA4cbG', + }, + metadata: { jobId: 5, userId: 'u1' }, + message: { + type: 'identify', + sentAt: '2022-01-20T13:39:21.033Z', + userId: 'dummyId2', + channel: 'web', + context: { + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.2.20', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + path: '/Testing/App_for_LaunchDarkly/ourSdk.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + referrer: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/', + initial_referrer: '$direct', + referring_domain: '127.0.0.1:7307', + initial_referring_domain: '', + }, + locale: 'en-US', + screen: { + width: 1440, + height: 900, + density: 2, + innerWidth: 536, + innerHeight: 689, + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.2.20' }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + integrations: { All: true }, + originalTimestamp: '2022-01-20T13:39:21.032Z', + }, + }, + { + destination: { + Config: { + username: 'wootricfakeuser@example.com', + password: 'password@123', + accountToken: 'NPS-dummyToken', + }, + ID: '2D7TqLto9tnkBuR1ciMrbiA4cbG', + }, + metadata: { jobId: 6, userId: 'u1' }, + message: { + type: 'identify', + sentAt: '2022-01-20T13:39:21.033Z', + userId: 'dummyId2', + channel: 'web', + context: { + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.2.20', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + path: '/Testing/App_for_LaunchDarkly/ourSdk.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + referrer: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/', + initial_referrer: '$direct', + referring_domain: '127.0.0.1:7307', + initial_referring_domain: '', + }, + locale: 'en-US', + screen: { + width: 1440, + height: 900, + density: 2, + innerWidth: 536, + innerHeight: 689, + }, + traits: { + city: 'Mumbai', + name: 'Dummy User 1', + title: 'SDE', + gender: 'Male', + company: 'Rudderstack', + createdAt: '2021-01-20T13:39:21.032Z', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.2.20' }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + integrations: { All: true }, + originalTimestamp: '2022-01-20T13:39:21.032Z', + }, + }, + { + destination: { + Config: { + username: 'wootricfakeuser@example.com', + password: 'password@123', + accountToken: 'NPS-dummyToken', + }, + ID: '2D7TqLto9tnkBuR1ciMrbiA4cbG', + }, + metadata: { jobId: 7, userId: 'u1' }, + message: { + type: 'identify', + sentAt: '2022-01-20T13:39:21.033Z', + userId: 'dummyId1', + channel: 'web', + context: { + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.2.20', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + path: '/Testing/App_for_LaunchDarkly/ourSdk.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + referrer: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/', + initial_referrer: '$direct', + referring_domain: '127.0.0.1:7307', + initial_referring_domain: '', + }, + locale: 'en-US', + screen: { + width: 1440, + height: 900, + density: 2, + innerWidth: 536, + innerHeight: 689, + }, + traits: { email: 'dummyuser1_01@gmail.com' }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.2.20' }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + integrations: { All: true }, + originalTimestamp: '2022-01-20T13:39:21.032Z', + }, + }, + { + destination: { + Config: { + username: 'wootricfakeuser@example.com', + password: 'password@123', + accountToken: 'NPS-dummyToken', + }, + ID: '2D7TqLto9tnkBuR1ciMrbiA4cbG', + }, + metadata: { jobId: 8, userId: 'u1' }, + message: { + type: 'identify', + sentAt: '2022-01-20T13:39:21.033Z', + userId: 'dummyId1', + channel: 'web', + context: { + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.2.20', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + path: '/Testing/App_for_LaunchDarkly/ourSdk.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + referrer: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/', + initial_referrer: '$direct', + referring_domain: '127.0.0.1:7307', + initial_referring_domain: '', + }, + locale: 'en-US', + screen: { + width: 1440, + height: 900, + density: 2, + innerWidth: 536, + innerHeight: 689, + }, + traits: { phone: '+19777777778' }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.2.20' }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + integrations: { All: true }, + originalTimestamp: '2022-01-20T13:39:21.032Z', + }, + }, + { + destination: { + Config: { + username: 'wootricfakeuser@example.com', + password: 'password@123', + accountToken: 'NPS-dummyToken', + }, + ID: '2D7TqLto9tnkBuR1ciMrbiA4cbG', + }, + metadata: { jobId: 9, userId: 'u1' }, + message: { + type: 'identify', + sentAt: '2022-01-20T13:39:21.033Z', + userId: 'dummyId1', + channel: 'web', + context: { + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.2.20', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + path: '/Testing/App_for_LaunchDarkly/ourSdk.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + referrer: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/', + initial_referrer: '$direct', + referring_domain: '127.0.0.1:7307', + initial_referring_domain: '', + }, + locale: 'en-US', + screen: { + width: 1440, + height: 900, + density: 2, + innerWidth: 536, + innerHeight: 689, + }, + traits: { + city: 'Udaipur', + name: 'Dummy User 1 New', + title: 'SDE-2', + gender: 'Male', + company: 'Rudderstack', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.2.20' }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + integrations: { All: true }, + originalTimestamp: '2022-01-20T13:39:21.032Z', + }, + }, + { + destination: { + Config: { + username: 'wootricfakeuser@example.com', + password: 'password@123', + accountToken: 'NPS-dummyToken', + }, + ID: '2D7TqLto9tnkBuR1ciMrbiA4cbG', + }, + metadata: { jobId: 10, userId: 'u1' }, + message: { + type: 'track', + sentAt: '2022-01-20T13:39:21.033Z', + userId: 'dummyId1', + channel: 'web', + properties: { + feedbackScore: 7, + feedbackText: 'Simple, Easy to use, Reliable, Affordable Product', + }, + context: { + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.2.20', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + path: '/Testing/App_for_LaunchDarkly/ourSdk.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + referrer: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/', + initial_referrer: '$direct', + referring_domain: '127.0.0.1:7307', + initial_referring_domain: '', + }, + locale: 'en-US', + ip: '0.0.0.0', + screen: { + width: 1440, + height: 900, + density: 2, + innerWidth: 536, + innerHeight: 689, + }, + traits: { + city: 'Mumbai', + name: 'Dummy User 1', + email: 'dummyUser1@gmail.com', + title: 'SDE', + gender: 'Male', + company: 'Rudderstack', + createdAt: '2021-01-20T13:39:21.032Z', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.2.20' }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + integrations: { All: true, Wootric: { eventType: 'create response' } }, + originalTimestamp: '2022-01-20T13:39:21.032Z', + }, + }, + { + destination: { + Config: { + username: 'wootricfakeuser@example.com', + password: 'password@123', + accountToken: 'NPS-dummyToken', + }, + ID: '2D7TqLto9tnkBuR1ciMrbiA4cbG', + }, + metadata: { jobId: 11, userId: 'u1' }, + message: { + type: 'track', + sentAt: '2022-01-20T13:39:21.033Z', + userId: 'dummyId2', + channel: 'web', + properties: { + feedbackScore: 7, + feedbackText: 'Simple, Easy to use, Reliable, Affordable Product', + }, + context: { + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.2.20', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + path: '/Testing/App_for_LaunchDarkly/ourSdk.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + referrer: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/', + initial_referrer: '$direct', + referring_domain: '127.0.0.1:7307', + initial_referring_domain: '', + }, + locale: 'en-US', + ip: '0.0.0.0', + screen: { + width: 1440, + height: 900, + density: 2, + innerWidth: 536, + innerHeight: 689, + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.2.20' }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + integrations: { All: true, Wootric: { eventType: 'create response' } }, + originalTimestamp: '2022-01-20T13:39:21.032Z', + }, + }, + { + destination: { + Config: { + username: 'wootricfakeuser@example.com', + password: 'password@123', + accountToken: 'NPS-dummyToken', + }, + ID: '2D7TqLto9tnkBuR1ciMrbiA4cbG', + }, + metadata: { jobId: 12, userId: 'u1' }, + message: { + type: 'track', + sentAt: '2022-01-20T13:39:21.033Z', + userId: 'dummyId1', + channel: 'web', + properties: { + feedbackScore: 12, + feedbackText: 'Simple, Easy to use, Reliable, Affordable Product', + }, + context: { + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.2.20', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + path: '/Testing/App_for_LaunchDarkly/ourSdk.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + referrer: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/', + initial_referrer: '$direct', + referring_domain: '127.0.0.1:7307', + initial_referring_domain: '', + }, + locale: 'en-US', + ip: '0.0.0.0', + screen: { + width: 1440, + height: 900, + density: 2, + innerWidth: 536, + innerHeight: 689, + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.2.20' }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + integrations: { All: true, Wootric: { eventType: 'create response' } }, + originalTimestamp: '2022-01-20T13:39:21.032Z', + }, + }, + { + destination: { + Config: { + username: 'wootricfakeuser@example.com', + password: 'password@123', + accountToken: 'NPS-dummyToken', + }, + ID: '2D7TqLto9tnkBuR1ciMrbiA4cbG', + }, + metadata: { jobId: 13, userId: 'u1' }, + message: { + type: 'track', + sentAt: '2022-01-20T13:39:21.033Z', + userId: 'dummyId1', + channel: 'web', + properties: { + feedbackScore: 9, + feedbackText: 'Simple, Easy to use, Reliable, Affordable Product', + }, + context: { + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.2.20', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + path: '/Testing/App_for_LaunchDarkly/ourSdk.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + referrer: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/', + initial_referrer: '$direct', + referring_domain: '127.0.0.1:7307', + initial_referring_domain: '', + }, + locale: 'en-US', + screen: { + width: 1440, + height: 900, + density: 2, + innerWidth: 536, + innerHeight: 689, + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.2.20' }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + integrations: { All: true, Wootric: { eventType: 'create decline' } }, + originalTimestamp: '2022-01-20T13:39:21.032Z', + }, + }, + { + destination: { + Config: { + username: 'wootricfakeuser@example.com', + password: 'password@123', + accountToken: 'NPS-dummyToken', + }, + ID: '2D7TqLto9tnkBuR1ciMrbiA4cbG', + }, + metadata: { jobId: 14, userId: 'u1' }, + message: { + type: 'track', + sentAt: '2022-01-20T13:39:21.033Z', + userId: 'dummyId2', + channel: 'web', + properties: { + feedbackScore: 9, + feedbackText: 'Simple, Easy to use, Reliable, Affordable Product', + }, + context: { + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.2.20', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + path: '/Testing/App_for_LaunchDarkly/ourSdk.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + referrer: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/', + initial_referrer: '$direct', + referring_domain: '127.0.0.1:7307', + initial_referring_domain: '', + }, + locale: 'en-US', + screen: { + width: 1440, + height: 900, + density: 2, + innerWidth: 536, + innerHeight: 689, + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.2.20' }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + integrations: { All: true, Wootric: { eventType: 'create decline' } }, + originalTimestamp: '2022-01-20T13:39:21.032Z', + }, + }, + { + destination: { + Config: { + username: 'wootricfakeuser@example.com', + password: 'password@123', + accountToken: 'NPS-dummyToken', + }, + ID: '2D7TqLto9tnkBuR1ciMrbiA4cbG', + }, + metadata: { jobId: 15, userId: 'u1' }, + message: { + type: 'track', + sentAt: '2022-01-20T13:39:21.033Z', + userId: 'dummyId1', + channel: 'web', + properties: { + feedbackScore: 7, + feedbackText: 'Simple, Easy to use, Reliable, Affordable Product', + }, + context: { + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.2.20', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + path: '/Testing/App_for_LaunchDarkly/ourSdk.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + referrer: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/', + initial_referrer: '$direct', + referring_domain: '127.0.0.1:7307', + initial_referring_domain: '', + }, + locale: 'en-US', + ip: '0.0.0.0', + screen: { + width: 1440, + height: 900, + density: 2, + innerWidth: 536, + innerHeight: 689, + }, + traits: { + city: 'Mumbai', + name: 'Dummy User 1', + email: 'dummyUser1@gmail.com', + phone: '+19123456789', + title: 'SDE', + gender: 'Male', + company: 'Rudderstack', + createdAt: '2021-01-20T13:39:21.032Z', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.2.20' }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + integrations: { All: true, Wootric: { eventType: 'random' } }, + originalTimestamp: '2022-01-20T13:39:21.032Z', + }, + }, + { + destination: { + Config: { + username: 'wootricfakeuser@example.com', + password: 'password@123', + accountToken: 'NPS-dummyToken', + }, + ID: '2D7TqLto9tnkBuR1ciMrbiA4cbG', + }, + metadata: { jobId: 16, userId: 'u1' }, + message: { + type: 'track', + sentAt: '2022-01-20T13:39:21.033Z', + userId: 'dummyId1', + channel: 'web', + properties: { feedbackScore: 3, feedbackText: 'Too Slow!!!' }, + context: { + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.2.20', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + path: '/Testing/App_for_LaunchDarkly/ourSdk.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + referrer: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/', + initial_referrer: '$direct', + referring_domain: '127.0.0.1:7307', + initial_referring_domain: '', + }, + locale: 'en-US', + ip: '0.0.0.0', + screen: { + width: 1440, + height: 900, + density: 2, + innerWidth: 536, + innerHeight: 689, + }, + traits: { + city: 'Mumbai', + name: 'Dummy User 1', + email: 'dummyUser1@gmail.com', + phone: '+19123456789', + title: 'SDE', + gender: 'Male', + company: 'Rudderstack', + createdAt: '2021-01-20T13:39:21.032Z', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.2.20' }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + integrations: { All: true }, + originalTimestamp: '2022-01-20T13:39:21.032Z', + }, + }, + ], + destType: 'wootric', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.wootric.com/v1/end_users', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + Authorization: + 'Bearer 2fe581c1c72851e73d60f4191f720be93e5d3e8a6147e37c4e8e852b1a8f506c', + }, + params: {}, body: { - input: [ - { - "destination": { - "Config": { - "username": "wootricfakeuser@example.com", - "password": "password@123", - "accountToken": "NPS-dummyToken" - }, - "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG" - }, - "metadata": { - "jobId": 1 - }, - "message": { - "type": "identify", - "sentAt": "2022-01-20T13:39:21.033Z", - "userId": "dummyId2", - "channel": "web", - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.2.20", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "path": "/Testing/App_for_LaunchDarkly/ourSdk.html", - "title": "Document", - "search": "", - "tab_url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "referrer": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/", - "initial_referrer": "$direct", - "referring_domain": "127.0.0.1:7307", - "initial_referring_domain": "" - }, - "locale": "en-US", - "screen": { - "width": 1440, - "height": 900, - "density": 2, - "innerWidth": 536, - "innerHeight": 689 - }, - "traits": { - "city": "Bangalore", - "name": "Dummy User 2", - "email": "dummyUser2@gmail.com", - "phone": "+19123456777", - "title": "SDE", - "gender": "Male", - "company": "Rudderstack", - "createdAt": "2021-01-20T13:39:21.032Z" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.2.20" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36" - }, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "integrations": { - "All": true - }, - "originalTimestamp": "2022-01-20T13:39:21.032Z" - } - }, - { - "destination": { - "Config": { - "username": "wootricfakeuser@example.com", - "password": "password@123", - "accountToken": "NPS-dummyToken" - }, - "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG" - }, - "metadata": { - "jobId": 2 - }, - "message": { - "type": "identify", - "sentAt": "2022-01-20T13:39:21.033Z", - "userId": "dummyId2", - "channel": "web", - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.2.20", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "path": "/Testing/App_for_LaunchDarkly/ourSdk.html", - "title": "Document", - "search": "", - "tab_url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "referrer": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/", - "initial_referrer": "$direct", - "referring_domain": "127.0.0.1:7307", - "initial_referring_domain": "" - }, - "locale": "en-US", - "screen": { - "width": 1440, - "height": 900, - "density": 2, - "innerWidth": 536, - "innerHeight": 689 - }, - "traits": { - "city": "Bangalore", - "name": "Dummy User 2", - "phone": "+19123456777", - "title": "SDE", - "gender": "Male", - "company": "Rudderstack", - "createdAt": "2021-01-20T13:39:21.032Z" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.2.20" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36" - }, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "integrations": { - "All": true - }, - "originalTimestamp": "2022-01-20T13:39:21.032Z" - } - }, - { - "destination": { - "Config": { - "username": "wootricfakeuser@example.com", - "password": "password@123", - "accountToken": "NPS-dummyToken" - }, - "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG" - }, - "metadata": { - "jobId": 3 - }, - "message": { - "type": "identify", - "sentAt": "2022-01-20T13:39:21.033Z", - "userId": "dummyId2", - "channel": "web", - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.2.20", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "path": "/Testing/App_for_LaunchDarkly/ourSdk.html", - "title": "Document", - "search": "", - "tab_url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "referrer": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/", - "initial_referrer": "$direct", - "referring_domain": "127.0.0.1:7307", - "initial_referring_domain": "" - }, - "locale": "en-US", - "screen": { - "width": 1440, - "height": 900, - "density": 2, - "innerWidth": 536, - "innerHeight": 689 - }, - "traits": { - "email": "dummyUser2@gmail.com", - "city": "Bangalore", - "name": "Dummy User 2", - "title": "SDE", - "gender": "Male", - "company": "Rudderstack", - "createdAt": "2021-01-20T13:39:21.032Z" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.2.20" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36" - }, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "integrations": { - "All": true - }, - "originalTimestamp": "2022-01-20T13:39:21.032Z" - } - }, - { - "destination": { - "Config": { - "username": "wootricfakeuser@example.com", - "password": "password@123", - "accountToken": "NPS-dummyToken" - }, - "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG" - }, - "metadata": { - "jobId": 5 - }, - "message": { - "type": "identify", - "sentAt": "2022-01-20T13:39:21.033Z", - "userId": "dummyId2", - "channel": "web", - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.2.20", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "path": "/Testing/App_for_LaunchDarkly/ourSdk.html", - "title": "Document", - "search": "", - "tab_url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "referrer": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/", - "initial_referrer": "$direct", - "referring_domain": "127.0.0.1:7307", - "initial_referring_domain": "" - }, - "locale": "en-US", - "screen": { - "width": 1440, - "height": 900, - "density": 2, - "innerWidth": 536, - "innerHeight": 689 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.2.20" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36" - }, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "integrations": { - "All": true - }, - "originalTimestamp": "2022-01-20T13:39:21.032Z" - } - }, - { - "destination": { - "Config": { - "username": "wootricfakeuser@example.com", - "password": "password@123", - "accountToken": "NPS-dummyToken" - }, - "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG" - }, - "metadata": { - "jobId": 6 - }, - "message": { - "type": "identify", - "sentAt": "2022-01-20T13:39:21.033Z", - "userId": "dummyId2", - "channel": "web", - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.2.20", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "path": "/Testing/App_for_LaunchDarkly/ourSdk.html", - "title": "Document", - "search": "", - "tab_url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "referrer": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/", - "initial_referrer": "$direct", - "referring_domain": "127.0.0.1:7307", - "initial_referring_domain": "" - }, - "locale": "en-US", - "screen": { - "width": 1440, - "height": 900, - "density": 2, - "innerWidth": 536, - "innerHeight": 689 - }, - "traits": { - "city": "Mumbai", - "name": "Dummy User 1", - "title": "SDE", - "gender": "Male", - "company": "Rudderstack", - "createdAt": "2021-01-20T13:39:21.032Z" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.2.20" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36" - }, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "integrations": { - "All": true - }, - "originalTimestamp": "2022-01-20T13:39:21.032Z" - } - }, - { - "destination": { - "Config": { - "username": "wootricfakeuser@example.com", - "password": "password@123", - "accountToken": "NPS-dummyToken" - }, - "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG" - }, - "metadata": { - "jobId": 7 - }, - "message": { - "type": "identify", - "sentAt": "2022-01-20T13:39:21.033Z", - "userId": "dummyId1", - "channel": "web", - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.2.20", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "path": "/Testing/App_for_LaunchDarkly/ourSdk.html", - "title": "Document", - "search": "", - "tab_url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "referrer": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/", - "initial_referrer": "$direct", - "referring_domain": "127.0.0.1:7307", - "initial_referring_domain": "" - }, - "locale": "en-US", - "screen": { - "width": 1440, - "height": 900, - "density": 2, - "innerWidth": 536, - "innerHeight": 689 - }, - "traits": { - "email": "dummyuser1_01@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.2.20" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36" - }, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "integrations": { - "All": true - }, - "originalTimestamp": "2022-01-20T13:39:21.032Z" - } - }, - { - "destination": { - "Config": { - "username": "wootricfakeuser@example.com", - "password": "password@123", - "accountToken": "NPS-dummyToken" - }, - "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG" - }, - "metadata": { - "jobId": 8 - }, - "message": { - "type": "identify", - "sentAt": "2022-01-20T13:39:21.033Z", - "userId": "dummyId1", - "channel": "web", - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.2.20", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "path": "/Testing/App_for_LaunchDarkly/ourSdk.html", - "title": "Document", - "search": "", - "tab_url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "referrer": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/", - "initial_referrer": "$direct", - "referring_domain": "127.0.0.1:7307", - "initial_referring_domain": "" - }, - "locale": "en-US", - "screen": { - "width": 1440, - "height": 900, - "density": 2, - "innerWidth": 536, - "innerHeight": 689 - }, - "traits": { - "phone": "+19777777778" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.2.20" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36" - }, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "integrations": { - "All": true - }, - "originalTimestamp": "2022-01-20T13:39:21.032Z" - } - }, - { - "destination": { - "Config": { - "username": "wootricfakeuser@example.com", - "password": "password@123", - "accountToken": "NPS-dummyToken" - }, - "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG" - }, - "metadata": { - "jobId": 9 - }, - "message": { - "type": "identify", - "sentAt": "2022-01-20T13:39:21.033Z", - "userId": "dummyId1", - "channel": "web", - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.2.20", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "path": "/Testing/App_for_LaunchDarkly/ourSdk.html", - "title": "Document", - "search": "", - "tab_url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "referrer": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/", - "initial_referrer": "$direct", - "referring_domain": "127.0.0.1:7307", - "initial_referring_domain": "" - }, - "locale": "en-US", - "screen": { - "width": 1440, - "height": 900, - "density": 2, - "innerWidth": 536, - "innerHeight": 689 - }, - "traits": { - "city": "Udaipur", - "name": "Dummy User 1 New", - "title": "SDE-2", - "gender": "Male", - "company": "Rudderstack" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.2.20" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36" - }, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "integrations": { - "All": true - }, - "originalTimestamp": "2022-01-20T13:39:21.032Z" - } - }, - { - "destination": { - "Config": { - "username": "wootricfakeuser@example.com", - "password": "password@123", - "accountToken": "NPS-dummyToken" - }, - "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG" - }, - "metadata": { - "jobId": 10 - }, - "message": { - "type": "track", - "sentAt": "2022-01-20T13:39:21.033Z", - "userId": "dummyId1", - "channel": "web", - "properties": { - "feedbackScore": 7, - "feedbackText": "Simple, Easy to use, Reliable, Affordable Product" - }, - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.2.20", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "path": "/Testing/App_for_LaunchDarkly/ourSdk.html", - "title": "Document", - "search": "", - "tab_url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "referrer": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/", - "initial_referrer": "$direct", - "referring_domain": "127.0.0.1:7307", - "initial_referring_domain": "" - }, - "locale": "en-US", - "ip": "0.0.0.0", - "screen": { - "width": 1440, - "height": 900, - "density": 2, - "innerWidth": 536, - "innerHeight": 689 - }, - "traits": { - "city": "Mumbai", - "name": "Dummy User 1", - "email": "dummyUser1@gmail.com", - "title": "SDE", - "gender": "Male", - "company": "Rudderstack", - "createdAt": "2021-01-20T13:39:21.032Z" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.2.20" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36" - }, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "integrations": { - "All": true, - "Wootric": { - "eventType": "create response" - } - }, - "originalTimestamp": "2022-01-20T13:39:21.032Z" - } - }, - { - "destination": { - "Config": { - "username": "wootricfakeuser@example.com", - "password": "password@123", - "accountToken": "NPS-dummyToken" - }, - "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG" - }, - "metadata": { - "jobId": 11 - }, - "message": { - "type": "track", - "sentAt": "2022-01-20T13:39:21.033Z", - "userId": "dummyId2", - "channel": "web", - "properties": { - "feedbackScore": 7, - "feedbackText": "Simple, Easy to use, Reliable, Affordable Product" - }, - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.2.20", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "path": "/Testing/App_for_LaunchDarkly/ourSdk.html", - "title": "Document", - "search": "", - "tab_url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "referrer": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/", - "initial_referrer": "$direct", - "referring_domain": "127.0.0.1:7307", - "initial_referring_domain": "" - }, - "locale": "en-US", - "ip": "0.0.0.0", - "screen": { - "width": 1440, - "height": 900, - "density": 2, - "innerWidth": 536, - "innerHeight": 689 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.2.20" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36" - }, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "integrations": { - "All": true, - "Wootric": { - "eventType": "create response" - } - }, - "originalTimestamp": "2022-01-20T13:39:21.032Z" - } - }, - { - "destination": { - "Config": { - "username": "wootricfakeuser@example.com", - "password": "password@123", - "accountToken": "NPS-dummyToken" - }, - "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG" - }, - "metadata": { - "jobId": 12 - }, - "message": { - "type": "track", - "sentAt": "2022-01-20T13:39:21.033Z", - "userId": "dummyId1", - "channel": "web", - "properties": { - "feedbackScore": 12, - "feedbackText": "Simple, Easy to use, Reliable, Affordable Product" - }, - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.2.20", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "path": "/Testing/App_for_LaunchDarkly/ourSdk.html", - "title": "Document", - "search": "", - "tab_url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "referrer": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/", - "initial_referrer": "$direct", - "referring_domain": "127.0.0.1:7307", - "initial_referring_domain": "" - }, - "locale": "en-US", - "ip": "0.0.0.0", - "screen": { - "width": 1440, - "height": 900, - "density": 2, - "innerWidth": 536, - "innerHeight": 689 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.2.20" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36" - }, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "integrations": { - "All": true, - "Wootric": { - "eventType": "create response" - } - }, - "originalTimestamp": "2022-01-20T13:39:21.032Z" - } - }, - { - "destination": { - "Config": { - "username": "wootricfakeuser@example.com", - "password": "password@123", - "accountToken": "NPS-dummyToken" - }, - "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG" - }, - "metadata": { - "jobId": 13 - }, - "message": { - "type": "track", - "sentAt": "2022-01-20T13:39:21.033Z", - "userId": "dummyId1", - "channel": "web", - "properties": { - "feedbackScore": 9, - "feedbackText": "Simple, Easy to use, Reliable, Affordable Product" - }, - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.2.20", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "path": "/Testing/App_for_LaunchDarkly/ourSdk.html", - "title": "Document", - "search": "", - "tab_url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "referrer": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/", - "initial_referrer": "$direct", - "referring_domain": "127.0.0.1:7307", - "initial_referring_domain": "" - }, - "locale": "en-US", - "screen": { - "width": 1440, - "height": 900, - "density": 2, - "innerWidth": 536, - "innerHeight": 689 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.2.20" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36" - }, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "integrations": { - "All": true, - "Wootric": { - "eventType": "create decline" - } - }, - "originalTimestamp": "2022-01-20T13:39:21.032Z" - } - }, - { - "destination": { - "Config": { - "username": "wootricfakeuser@example.com", - "password": "password@123", - "accountToken": "NPS-dummyToken" - }, - "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG" - }, - "metadata": { - "jobId": 14 - }, - "message": { - "type": "track", - "sentAt": "2022-01-20T13:39:21.033Z", - "userId": "dummyId2", - "channel": "web", - "properties": { - "feedbackScore": 9, - "feedbackText": "Simple, Easy to use, Reliable, Affordable Product" - }, - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.2.20", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "path": "/Testing/App_for_LaunchDarkly/ourSdk.html", - "title": "Document", - "search": "", - "tab_url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "referrer": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/", - "initial_referrer": "$direct", - "referring_domain": "127.0.0.1:7307", - "initial_referring_domain": "" - }, - "locale": "en-US", - "screen": { - "width": 1440, - "height": 900, - "density": 2, - "innerWidth": 536, - "innerHeight": 689 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.2.20" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36" - }, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "integrations": { - "All": true, - "Wootric": { - "eventType": "create decline" - } - }, - "originalTimestamp": "2022-01-20T13:39:21.032Z" - } - }, - { - "destination": { - "Config": { - "username": "wootricfakeuser@example.com", - "password": "password@123", - "accountToken": "NPS-dummyToken" - }, - "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG" - }, - "metadata": { - "jobId": 15 - }, - "message": { - "type": "track", - "sentAt": "2022-01-20T13:39:21.033Z", - "userId": "dummyId1", - "channel": "web", - "properties": { - "feedbackScore": 7, - "feedbackText": "Simple, Easy to use, Reliable, Affordable Product" - }, - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.2.20", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "path": "/Testing/App_for_LaunchDarkly/ourSdk.html", - "title": "Document", - "search": "", - "tab_url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "referrer": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/", - "initial_referrer": "$direct", - "referring_domain": "127.0.0.1:7307", - "initial_referring_domain": "" - }, - "locale": "en-US", - "ip": "0.0.0.0", - "screen": { - "width": 1440, - "height": 900, - "density": 2, - "innerWidth": 536, - "innerHeight": 689 - }, - "traits": { - "city": "Mumbai", - "name": "Dummy User 1", - "email": "dummyUser1@gmail.com", - "phone": "+19123456789", - "title": "SDE", - "gender": "Male", - "company": "Rudderstack", - "createdAt": "2021-01-20T13:39:21.032Z" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.2.20" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36" - }, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "integrations": { - "All": true, - "Wootric": { - "eventType": "random" - } - }, - "originalTimestamp": "2022-01-20T13:39:21.032Z" - } - }, - { - "destination": { - "Config": { - "username": "wootricfakeuser@example.com", - "password": "password@123", - "accountToken": "NPS-dummyToken" - }, - "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG" - }, - "metadata": { - "jobId": 16 - }, - "message": { - "type": "track", - "sentAt": "2022-01-20T13:39:21.033Z", - "userId": "dummyId1", - "channel": "web", - "properties": { - "feedbackScore": 3, - "feedbackText": "Too Slow!!!" - }, - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.2.20", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "path": "/Testing/App_for_LaunchDarkly/ourSdk.html", - "title": "Document", - "search": "", - "tab_url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "referrer": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/", - "initial_referrer": "$direct", - "referring_domain": "127.0.0.1:7307", - "initial_referring_domain": "" - }, - "locale": "en-US", - "ip": "0.0.0.0", - "screen": { - "width": 1440, - "height": 900, - "density": 2, - "innerWidth": 536, - "innerHeight": 689 - }, - "traits": { - "city": "Mumbai", - "name": "Dummy User 1", - "email": "dummyUser1@gmail.com", - "phone": "+19123456789", - "title": "SDE", - "gender": "Male", - "company": "Rudderstack", - "createdAt": "2021-01-20T13:39:21.032Z" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.2.20" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36" - }, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "integrations": { - "All": true - }, - "originalTimestamp": "2022-01-20T13:39:21.032Z" - } - } - ] - , - destType: 'wootric', + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + email: 'dummyUser2@gmail.com', + phone_number: '+19123456777', + last_surveyed: '1642685961', + external_created_at: '1611149961', + external_id: 'dummyId2', + 'properties[city]': 'Bangalore', + 'properties[name]': 'Dummy User 2', + 'properties[title]': 'SDE', + 'properties[gender]': 'Male', + 'properties[company]': 'Rudderstack', + }, + }, + files: {}, + }, + metadata: [{ jobId: 1, userId: 'u1' }], + batched: false, + statusCode: 200, + destination: { + ID: '2D7TqLto9tnkBuR1ciMrbiA4cbG', + Config: { + username: 'wootricfakeuser@example.com', + password: 'password@123', + accountToken: 'NPS-dummyToken', }, + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', method: 'POST', + endpoint: 'https://api.wootric.com/v1/end_users', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + Authorization: + 'Bearer 2fe581c1c72851e73d60f4191f720be93e5d3e8a6147e37c4e8e852b1a8f506c', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + phone_number: '+19123456777', + last_surveyed: '1642685961', + external_created_at: '1611149961', + external_id: 'dummyId2', + 'properties[city]': 'Bangalore', + 'properties[name]': 'Dummy User 2', + 'properties[title]': 'SDE', + 'properties[gender]': 'Male', + 'properties[company]': 'Rudderstack', + }, + }, + files: {}, + }, + metadata: [{ jobId: 2, userId: 'u1' }], + batched: false, + statusCode: 200, + destination: { + ID: '2D7TqLto9tnkBuR1ciMrbiA4cbG', + Config: { + username: 'wootricfakeuser@example.com', + password: 'password@123', + accountToken: 'NPS-dummyToken', + }, + }, }, - }, - output: { - response: { - status: 200, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.wootric.com/v1/end_users', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + Authorization: + 'Bearer 2fe581c1c72851e73d60f4191f720be93e5d3e8a6147e37c4e8e852b1a8f506c', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + email: 'dummyUser2@gmail.com', + last_surveyed: '1642685961', + external_created_at: '1611149961', + external_id: 'dummyId2', + 'properties[city]': 'Bangalore', + 'properties[name]': 'Dummy User 2', + 'properties[title]': 'SDE', + 'properties[gender]': 'Male', + 'properties[company]': 'Rudderstack', + }, + }, + files: {}, + }, + metadata: [{ jobId: 3, userId: 'u1' }], + batched: false, + statusCode: 200, + destination: { + ID: '2D7TqLto9tnkBuR1ciMrbiA4cbG', + Config: { + username: 'wootricfakeuser@example.com', + password: 'password@123', + accountToken: 'NPS-dummyToken', + }, + }, + }, + { + destination: { + Config: { + username: 'wootricfakeuser@example.com', + password: 'password@123', + accountToken: 'NPS-dummyToken', + }, + ID: '2D7TqLto9tnkBuR1ciMrbiA4cbG', + }, + metadata: [{ jobId: 5, userId: 'u1' }], + batched: false, + statusCode: 400, + error: 'email/phone number are missing. At least one parameter must be provided', + statTags: { + destType: 'WOOTRIC', + feature: 'router', + implementation: 'native', + module: 'destination', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + }, + }, + { + destination: { + Config: { + username: 'wootricfakeuser@example.com', + password: 'password@123', + accountToken: 'NPS-dummyToken', + }, + ID: '2D7TqLto9tnkBuR1ciMrbiA4cbG', + }, + metadata: [{ jobId: 6, userId: 'u1' }], + batched: false, + statusCode: 400, + error: 'email/phone number are missing. At least one parameter must be provided', + statTags: { + destType: 'WOOTRIC', + feature: 'router', + implementation: 'native', + module: 'destination', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'PUT', + endpoint: 'https://api.wootric.com/v1/end_users/486438462', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + Authorization: + 'Bearer 2fe581c1c72851e73d60f4191f720be93e5d3e8a6147e37c4e8e852b1a8f506c', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { email: 'dummyuser1_01@gmail.com', last_surveyed: '1642685961' }, + }, + files: {}, + }, + metadata: [{ jobId: 7, userId: 'u1' }], + batched: false, + statusCode: 200, + destination: { + ID: '2D7TqLto9tnkBuR1ciMrbiA4cbG', + Config: { + username: 'wootricfakeuser@example.com', + password: 'password@123', + accountToken: 'NPS-dummyToken', + }, + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'PUT', + endpoint: 'https://api.wootric.com/v1/end_users/486438462', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + Authorization: + 'Bearer 2fe581c1c72851e73d60f4191f720be93e5d3e8a6147e37c4e8e852b1a8f506c', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { phone_number: '+19777777778', last_surveyed: '1642685961' }, + }, + files: {}, + }, + metadata: [{ jobId: 8, userId: 'u1' }], + batched: false, + statusCode: 200, + destination: { + ID: '2D7TqLto9tnkBuR1ciMrbiA4cbG', + Config: { + username: 'wootricfakeuser@example.com', + password: 'password@123', + accountToken: 'NPS-dummyToken', + }, + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'PUT', + endpoint: 'https://api.wootric.com/v1/end_users/486438462', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + Authorization: + 'Bearer 2fe581c1c72851e73d60f4191f720be93e5d3e8a6147e37c4e8e852b1a8f506c', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + last_surveyed: '1642685961', + 'properties[city]': 'Udaipur', + 'properties[name]': 'Dummy User 1 New', + 'properties[title]': 'SDE-2', + 'properties[gender]': 'Male', + 'properties[company]': 'Rudderstack', + }, + }, + files: {}, + }, + metadata: [{ jobId: 9, userId: 'u1' }], + batched: false, + statusCode: 200, + destination: { + ID: '2D7TqLto9tnkBuR1ciMrbiA4cbG', + Config: { + username: 'wootricfakeuser@example.com', + password: 'password@123', + accountToken: 'NPS-dummyToken', + }, + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.wootric.com/v1/end_users/486438462/responses', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + Authorization: + 'Bearer 2fe581c1c72851e73d60f4191f720be93e5d3e8a6147e37c4e8e852b1a8f506c', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + score: 7, + ip_address: '0.0.0.0', + origin_url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + text: 'Simple, Easy to use, Reliable, Affordable Product', + created_at: '1611149961', + 'end_user[properties][city]': 'Mumbai', + 'end_user[properties][name]': 'Dummy User 1', + 'end_user[properties][title]': 'SDE', + 'end_user[properties][gender]': 'Male', + 'end_user[properties][company]': 'Rudderstack', + }, + }, + files: {}, + }, + metadata: [{ jobId: 10, userId: 'u1' }], + batched: false, + statusCode: 200, + destination: { + ID: '2D7TqLto9tnkBuR1ciMrbiA4cbG', + Config: { + username: 'wootricfakeuser@example.com', + password: 'password@123', + accountToken: 'NPS-dummyToken', + }, + }, + }, + { + metadata: [{ jobId: 11, userId: 'u1' }], + destination: { + Config: { + username: 'wootricfakeuser@example.com', + password: 'password@123', + accountToken: 'NPS-dummyToken', + }, + ID: '2D7TqLto9tnkBuR1ciMrbiA4cbG', + }, + batched: false, + statusCode: 400, + error: 'No user found with userId : dummyId2', + statTags: { + destType: 'WOOTRIC', + feature: 'router', + implementation: 'native', + module: 'destination', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + }, + }, + { + destination: { + Config: { + username: 'wootricfakeuser@example.com', + password: 'password@123', + accountToken: 'NPS-dummyToken', + }, + ID: '2D7TqLto9tnkBuR1ciMrbiA4cbG', + }, + metadata: [{ jobId: 12, userId: 'u1' }], + batched: false, + statusCode: 400, + error: 'Invalid Score', + statTags: { + destType: 'WOOTRIC', + feature: 'router', + implementation: 'native', + module: 'destination', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.wootric.com/v1/end_users/486438462/declines', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + Authorization: + 'Bearer 2fe581c1c72851e73d60f4191f720be93e5d3e8a6147e37c4e8e852b1a8f506c', + }, + params: {}, body: { - output: [ - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.wootric.com/v1/end_users", - "headers": { - "Content-Type": "application/x-www-form-urlencoded", - "Authorization": "Bearer 2fe581c1c72851e73d60f4191f720be93e5d3e8a6147e37c4e8e852b1a8f506c" - }, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": { - "email": "dummyUser2@gmail.com", - "phone_number": "+19123456777", - "last_surveyed": "1642685961", - "external_created_at": "1611149961", - "external_id": "dummyId2", - "properties[city]": "Bangalore", - "properties[name]": "Dummy User 2", - "properties[title]": "SDE", - "properties[gender]": "Male", - "properties[company]": "Rudderstack" - } - }, - "files": {} - }, - "metadata": [ - { - "jobId": 1 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG", - "Config": { - "username": "wootricfakeuser@example.com", - "password": "password@123", - "accountToken": "NPS-dummyToken" - } - } - }, - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.wootric.com/v1/end_users", - "headers": { - "Content-Type": "application/x-www-form-urlencoded", - "Authorization": "Bearer 2fe581c1c72851e73d60f4191f720be93e5d3e8a6147e37c4e8e852b1a8f506c" - }, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": { - "phone_number": "+19123456777", - "last_surveyed": "1642685961", - "external_created_at": "1611149961", - "external_id": "dummyId2", - "properties[city]": "Bangalore", - "properties[name]": "Dummy User 2", - "properties[title]": "SDE", - "properties[gender]": "Male", - "properties[company]": "Rudderstack" - } - }, - "files": {} - }, - "metadata": [ - { - "jobId": 2 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG", - "Config": { - "username": "wootricfakeuser@example.com", - "password": "password@123", - "accountToken": "NPS-dummyToken" - } - } - }, - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.wootric.com/v1/end_users", - "headers": { - "Content-Type": "application/x-www-form-urlencoded", - "Authorization": "Bearer 2fe581c1c72851e73d60f4191f720be93e5d3e8a6147e37c4e8e852b1a8f506c" - }, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": { - "email": "dummyUser2@gmail.com", - "last_surveyed": "1642685961", - "external_created_at": "1611149961", - "external_id": "dummyId2", - "properties[city]": "Bangalore", - "properties[name]": "Dummy User 2", - "properties[title]": "SDE", - "properties[gender]": "Male", - "properties[company]": "Rudderstack" - } - }, - "files": {} - }, - "metadata": [ - { - "jobId": 3 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG", - "Config": { - "username": "wootricfakeuser@example.com", - "password": "password@123", - "accountToken": "NPS-dummyToken" - } - } - }, - { - "destination": { - "Config": { - "username": "wootricfakeuser@example.com", - "password": "password@123", - "accountToken": "NPS-dummyToken" - }, - "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG" - }, - "metadata": [ - { - "jobId": 5 - } - ], - "batched": false, - "statusCode": 400, - "error": "email/phone number are missing. At least one parameter must be provided", - "statTags": { - "destType": "WOOTRIC", - "feature": "router", - "implementation": "native", - "module": "destination", - "errorCategory": "dataValidation", - "errorType": "instrumentation" - } - }, - { - "destination": { - "Config": { - "username": "wootricfakeuser@example.com", - "password": "password@123", - "accountToken": "NPS-dummyToken" - }, - "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG" - }, - "metadata": [ - { - "jobId": 6 - } - ], - "batched": false, - "statusCode": 400, - "error": "email/phone number are missing. At least one parameter must be provided", - "statTags": { - "destType": "WOOTRIC", - "feature": "router", - "implementation": "native", - "module": "destination", - "errorCategory": "dataValidation", - "errorType": "instrumentation" - } - }, - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "PUT", - "endpoint": "https://api.wootric.com/v1/end_users/486438462", - "headers": { - "Content-Type": "application/x-www-form-urlencoded", - "Authorization": "Bearer 2fe581c1c72851e73d60f4191f720be93e5d3e8a6147e37c4e8e852b1a8f506c" - }, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": { - "email": "dummyuser1_01@gmail.com", - "last_surveyed": "1642685961" - } - }, - "files": {} - }, - "metadata": [ - { - "jobId": 7 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG", - "Config": { - "username": "wootricfakeuser@example.com", - "password": "password@123", - "accountToken": "NPS-dummyToken" - } - } - }, - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "PUT", - "endpoint": "https://api.wootric.com/v1/end_users/486438462", - "headers": { - "Content-Type": "application/x-www-form-urlencoded", - "Authorization": "Bearer 2fe581c1c72851e73d60f4191f720be93e5d3e8a6147e37c4e8e852b1a8f506c" - }, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": { - "phone_number": "+19777777778", - "last_surveyed": "1642685961" - } - }, - "files": {} - }, - "metadata": [ - { - "jobId": 8 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG", - "Config": { - "username": "wootricfakeuser@example.com", - "password": "password@123", - "accountToken": "NPS-dummyToken" - } - } - }, - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "PUT", - "endpoint": "https://api.wootric.com/v1/end_users/486438462", - "headers": { - "Content-Type": "application/x-www-form-urlencoded", - "Authorization": "Bearer 2fe581c1c72851e73d60f4191f720be93e5d3e8a6147e37c4e8e852b1a8f506c" - }, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": { - "last_surveyed": "1642685961", - "properties[city]": "Udaipur", - "properties[name]": "Dummy User 1 New", - "properties[title]": "SDE-2", - "properties[gender]": "Male", - "properties[company]": "Rudderstack" - } - }, - "files": {} - }, - "metadata": [ - { - "jobId": 9 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG", - "Config": { - "username": "wootricfakeuser@example.com", - "password": "password@123", - "accountToken": "NPS-dummyToken" - } - } - }, - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.wootric.com/v1/end_users/486438462/responses", - "headers": { - "Content-Type": "application/x-www-form-urlencoded", - "Authorization": "Bearer 2fe581c1c72851e73d60f4191f720be93e5d3e8a6147e37c4e8e852b1a8f506c" - }, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": { - "score": 7, - "ip_address": "0.0.0.0", - "origin_url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "text": "Simple, Easy to use, Reliable, Affordable Product", - "created_at": "1611149961", - "end_user[properties][city]": "Mumbai", - "end_user[properties][name]": "Dummy User 1", - "end_user[properties][title]": "SDE", - "end_user[properties][gender]": "Male", - "end_user[properties][company]": "Rudderstack" - } - }, - "files": {} - }, - "metadata": [ - { - "jobId": 10 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG", - "Config": { - "username": "wootricfakeuser@example.com", - "password": "password@123", - "accountToken": "NPS-dummyToken" - } - } - }, - { - "metadata": [ - { - "jobId": 11 - } - ], - "destination": { - "Config": { - "username": "wootricfakeuser@example.com", - "password": "password@123", - "accountToken": "NPS-dummyToken" - }, - "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG" - }, - "batched": false, - "statusCode": 400, - "error": "No user found with userId : dummyId2", - "statTags": { - "destType": "WOOTRIC", - "feature": "router", - "implementation": "native", - "module": "destination", - "errorCategory": "dataValidation", - "errorType": "instrumentation" - } - }, - { - "destination": { - "Config": { - "username": "wootricfakeuser@example.com", - "password": "password@123", - "accountToken": "NPS-dummyToken" - }, - "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG" - }, - "metadata": [ - { - "jobId": 12 - } - ], - "batched": false, - "statusCode": 400, - "error": "Invalid Score", - "statTags": { - "destType": "WOOTRIC", - "feature": "router", - "implementation": "native", - "module": "destination", - "errorCategory": "dataValidation", - "errorType": "instrumentation" - } - }, - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.wootric.com/v1/end_users/486438462/declines", - "headers": { - "Content-Type": "application/x-www-form-urlencoded", - "Authorization": "Bearer 2fe581c1c72851e73d60f4191f720be93e5d3e8a6147e37c4e8e852b1a8f506c" - }, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": { - "origin_url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html" - } - }, - "files": {} - }, - "metadata": [ - { - "jobId": 13 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG", - "Config": { - "username": "wootricfakeuser@example.com", - "password": "password@123", - "accountToken": "NPS-dummyToken" - } - } - }, - { - "destination": { - "Config": { - "username": "wootricfakeuser@example.com", - "password": "password@123", - "accountToken": "NPS-dummyToken" - }, - "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG" - }, - "metadata": [ - { - "jobId": 14 - } - ], - "batched": false, - "statusCode": 400, - "error": "No user found with userId : dummyId2", - "statTags": { - "destType": "WOOTRIC", - "feature": "router", - "implementation": "native", - "module": "destination", - "errorCategory": "dataValidation", - "errorType": "instrumentation" - } - }, - { - "destination": { - "Config": { - "username": "wootricfakeuser@example.com", - "password": "password@123", - "accountToken": "NPS-dummyToken" - }, - "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG" - }, - "metadata": [ - { - "jobId": 15 - } - ], - "batched": false, - "statusCode": 400, - "error": "Event Type not supported", - "statTags": { - "destType": "WOOTRIC", - "feature": "router", - "implementation": "native", - "module": "destination", - "errorCategory": "dataValidation", - "errorType": "instrumentation" - } - }, - { - "metadata": [ - { - "jobId": 16 - } - ], - "destination": { - "Config": { - "username": "wootricfakeuser@example.com", - "password": "password@123", - "accountToken": "NPS-dummyToken" - }, - "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG" - }, - "batched": false, - "statusCode": 400, - "error": "Event Type is missing from Integration object", - "statTags": { - "destType": "WOOTRIC", - "feature": "router", - "implementation": "native", - "module": "destination", - "errorCategory": "dataValidation", - "errorType": "instrumentation" - } - } - ], + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + origin_url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + }, + }, + files: {}, + }, + metadata: [{ jobId: 13, userId: 'u1' }], + batched: false, + statusCode: 200, + destination: { + ID: '2D7TqLto9tnkBuR1ciMrbiA4cbG', + Config: { + username: 'wootricfakeuser@example.com', + password: 'password@123', + accountToken: 'NPS-dummyToken', + }, + }, + }, + { + destination: { + Config: { + username: 'wootricfakeuser@example.com', + password: 'password@123', + accountToken: 'NPS-dummyToken', + }, + ID: '2D7TqLto9tnkBuR1ciMrbiA4cbG', + }, + metadata: [{ jobId: 14, userId: 'u1' }], + batched: false, + statusCode: 400, + error: 'No user found with userId : dummyId2', + statTags: { + destType: 'WOOTRIC', + feature: 'router', + implementation: 'native', + module: 'destination', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + }, + }, + { + destination: { + Config: { + username: 'wootricfakeuser@example.com', + password: 'password@123', + accountToken: 'NPS-dummyToken', + }, + ID: '2D7TqLto9tnkBuR1ciMrbiA4cbG', + }, + metadata: [{ jobId: 15, userId: 'u1' }], + batched: false, + statusCode: 400, + error: 'Event Type not supported', + statTags: { + destType: 'WOOTRIC', + feature: 'router', + implementation: 'native', + module: 'destination', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + }, + }, + { + metadata: [{ jobId: 16, userId: 'u1' }], + destination: { + Config: { + username: 'wootricfakeuser@example.com', + password: 'password@123', + accountToken: 'NPS-dummyToken', }, + ID: '2D7TqLto9tnkBuR1ciMrbiA4cbG', + }, + batched: false, + statusCode: 400, + error: 'Event Type is missing from Integration object', + statTags: { + destType: 'WOOTRIC', + feature: 'router', + implementation: 'native', + module: 'destination', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + }, }, + ], }, - } + }, + }, + }, ]; diff --git a/test/integrations/destinations/yahoo_dsp/router/data.ts b/test/integrations/destinations/yahoo_dsp/router/data.ts index 59c71b300c..61b1b728a5 100644 --- a/test/integrations/destinations/yahoo_dsp/router/data.ts +++ b/test/integrations/destinations/yahoo_dsp/router/data.ts @@ -23,9 +23,7 @@ export const data = [ }, ID: 'iwehr83843', }, - metadata: { - jobId: 1, - }, + metadata: { jobId: 1, userId: 'u1' }, message: { userId: 'user 1', type: 'audiencelist', @@ -75,12 +73,7 @@ export const data = [ }, enablePartialFailure: true, }, - context: { - ip: '14.5.67.21', - library: { - name: 'http', - }, - }, + context: { ip: '14.5.67.21', library: { name: 'http' } }, timestamp: '2020-02-02T00:23:09.544Z', }, }, @@ -123,11 +116,7 @@ export const data = [ }, files: {}, }, - metadata: [ - { - jobId: 1, - }, - ], + metadata: [{ jobId: 1, userId: 'u1' }], batched: false, statusCode: 200, destination: { diff --git a/test/integrations/destinations/zendesk/router/data.ts b/test/integrations/destinations/zendesk/router/data.ts index d99ca6df03..4e7aacd1d1 100644 --- a/test/integrations/destinations/zendesk/router/data.ts +++ b/test/integrations/destinations/zendesk/router/data.ts @@ -30,9 +30,7 @@ export const data = [ Name: 'zendesk', Transformations: [], }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, message: { anonymousId: '297b0750-934b-4411-b66c-9b418cdbc0c9', channel: 'web', @@ -44,28 +42,15 @@ export const data = [ version: '1.1.0-beta.2', }, ip: '0.0.0.0', - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.1.0-beta.2', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.0-beta.2' }, locale: 'en-GB', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, - traits: { - email: 'example124@email.com', - name: 'abcd124', - }, + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: { email: 'example124@email.com', name: 'abcd124' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36', }, - integrations: { - All: true, - }, + integrations: { All: true }, messageId: '0bab70e8-bf2f-449a-a19b-ca6e3bfed9b7', originalTimestamp: '2020-03-23T18:27:28.98Z', receivedAt: '2020-03-23T23:57:29.022+05:30', @@ -108,9 +93,7 @@ export const data = [ email: 'example124@email.com', name: 'abcd124', external_id: 'abcd-124', - user_fields: { - id: 'abcd-124', - }, + user_fields: { id: 'abcd-124' }, verified: true, }, }, @@ -122,11 +105,7 @@ export const data = [ userId: '297b0750-934b-4411-b66c-9b418cdbc0c9', }, ], - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], batched: false, statusCode: 200, destination: { @@ -186,9 +165,7 @@ export const data = [ Name: 'zendesk', Transformations: [], }, - metadata: { - jobId: 2, - }, + metadata: { jobId: 2, userId: 'u1' }, message: { anonymousId: '297b0750-934b-4411-b66c-9b418cdbc0c9', channel: 'web', @@ -200,29 +177,16 @@ export const data = [ version: '1.1.0-beta.2', }, ip: '0.0.0.0', - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.1.0-beta.2', - }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.0-beta.2' }, locale: 'en-GB', - os: { - name: '', - version: '', - }, - screen: { - density: 2, - }, - traits: { - email: 'example124@email.com', - name: 'abcd124', - }, + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: { email: 'example124@email.com', name: 'abcd124' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36', }, groupId: 'group-124', - integrations: { - All: true, - }, + integrations: { All: true }, messageId: '2d54ba80-ce5f-4bcb-b1d7-7587e7a865fc', originalTimestamp: '2020-03-23T18:27:28.983Z', receivedAt: '2020-03-23T23:57:29.022+05:30', @@ -277,11 +241,7 @@ export const data = [ files: {}, userId: '297b0750-934b-4411-b66c-9b418cdbc0c9', }, - metadata: [ - { - jobId: 2, - }, - ], + metadata: [{ jobId: 2, userId: 'u1' }], batched: false, statusCode: 200, destination: { @@ -340,9 +300,7 @@ export const data = [ Name: 'zendesk', Transformations: [], }, - metadata: { - jobId: 3, - }, + metadata: { jobId: 3, userId: 'u1' }, message: { anonymousId: '223b5f40-9543-4456-a7aa-945c43048185', channel: 'web', @@ -393,11 +351,7 @@ export const data = [ module: 'destination', }, statusCode: 400, - metadata: [ - { - jobId: 3, - }, - ], + metadata: [{ jobId: 3, userId: 'u1' }], batched: false, destination: { Config: { diff --git a/test/integrations/testUtils.ts b/test/integrations/testUtils.ts index 09f3a82d40..1eb1f692aa 100644 --- a/test/integrations/testUtils.ts +++ b/test/integrations/testUtils.ts @@ -38,7 +38,7 @@ export const getAllTestMockDataFilePaths = (dirPath: string, destination: string }; export const addMock = (mock: MockAdapter, axiosMock: MockHttpCallsData) => { - const { url, method, data: reqData, ...opts } = axiosMock.httpReq; + const { url, method, data: reqData, params, ...opts } = axiosMock.httpReq; const { data, headers, status } = axiosMock.httpRes; const headersAsymMatch = { @@ -49,8 +49,10 @@ export const addMock = (mock: MockAdapter, axiosMock: MockHttpCallsData) => { switch (method.toLowerCase()) { case 'get': + // We are accepting parameters exclusively for mocking purposes and do not require a request body, + // particularly for GET requests where it is typically unnecessary // @ts-ignore - mock.onGet(url, reqData, headersAsymMatch).reply(status, data, headers); + mock.onGet(url, { params }, headersAsymMatch).reply(status, data, headers); break; case 'delete': // @ts-ignore diff --git a/test/testHelper.js b/test/testHelper.js index 5fe97fed67..f0297c0574 100644 --- a/test/testHelper.js +++ b/test/testHelper.js @@ -15,11 +15,71 @@ const setResponsesForMockAxiosAdapter = ({url, method, data, options}, {response if (data) { reqObj.data = data } - responses.push(`{httpReq: ${JSON.stringify(reqObj)},httpRes: ${JSON.stringify(response)}},`) + responses.push(`{httpReq: ${JSON.stringify(reqObj)},httpRes: ${JSON.stringify(response)}},`) } } + +const assertRouterOutput = (output, input) => { + if (!Array.isArray(output) || !Array.isArray(input)) { + return + } + + const returnedJobids = {}; + output.forEach((outEvent) => { + //Assert that metadata is present and is an array + const metadata = outEvent.metadata; + expect(Array.isArray(metadata)).toEqual(true); + + //Assert that statusCode is present and is a number between 200 and 600 + const statusCode = outEvent.statusCode; + expect(statusCode).toBeDefined(); + expect(typeof statusCode === 'number').toEqual(true); + const validStatusCode = statusCode >= 200 && statusCode < 600; + expect(validStatusCode).toEqual(true); + + //Assert that every job_id in the input is present in the output one and only one time. + metadata.forEach((meta) => { + const jobId = meta.jobId; + expect(returnedJobids[jobId]).toBeUndefined(); + returnedJobids[jobId] = true; + }); + }); + + const inputJobids = {}; + input.forEach((input) => { + const jobId = input.metadata.jobId; + inputJobids[jobId] = true; + }); + + expect(returnedJobids).toEqual(inputJobids); + + let userIdJobIdMap = {}; + output.forEach((outEvent) => { + //Events with statusCode 400-499 are skipped. They are not sent to the destination. + if (outEvent.statusCode < 400 || outEvent.statusCode > 499) { + const metadata = outEvent.metadata; + metadata.forEach((meta) => { + const jobId = meta.jobId; + const userId = meta.userId; + let arr = userIdJobIdMap[userId] || []; + arr.push(jobId); + userIdJobIdMap[userId] = arr; + }); + } + }); + + //The jobids for a user should be in order. If not, there is an issue. + Object.keys(userIdJobIdMap).forEach((userId) => { + const jobIds = userIdJobIdMap[userId]; + for (let i = 0; i < jobIds.length - 1; i++) { + expect(jobIds[i] < jobIds[i + 1]).toEqual(true); + } + }); +}; + module.exports = { getFuncTestData, responses, - setResponsesForMockAxiosAdapter + setResponsesForMockAxiosAdapter, + assertRouterOutput }; diff --git a/test/test_reporter/reporter.ts b/test/test_reporter/reporter.ts index 135f980398..5741b1cdf0 100644 --- a/test/test_reporter/reporter.ts +++ b/test/test_reporter/reporter.ts @@ -125,9 +125,9 @@ export const generateTestReport = (testData, output, result) => { export const initaliseReport = () => { const htmlTemplate = generateHTMLTemplate(); - if (!fs.existsSync('test_reports')){ + if (!fs.existsSync('test_reports')) { fs.mkdirSync('test_reports'); -} + } fs.writeFileSync('test_reports/test-report.html', htmlTemplate); console.log('Report initialised'); };