File: cypress/integration/utm.js

Recommend this page to a friend!
  Classes of Arturs Sosins   Countly Web SDK   cypress/integration/utm.js   Download  
File: cypress/integration/utm.js
Role: Auxiliary script
Content type: text/plain
Description: Auxiliary script
Class: Countly Web SDK
Track site accesses and errors the Countly API
Author: By
Last change: [Fix] tracking errors async (#483)
Date: 2 months ago
Size: 10,457 bytes
 

Contents

Class file image Download
/* eslint-disable require-jsdoc */ var Countly = require("../../lib/countly"); var hp = require("../support/helper"); function initMulti(appKey, searchQuery, utmStuff) { Countly.init({ app_key: appKey, url: "https://your.domain.countly", test_mode: true, test_mode_eq: true, utm: utmStuff, getSearchQuery: function() { return searchQuery; } }); } describe("UTM tests ", () => { it("Checks if a single default utm tag works", () => { hp.haltAndClearStorage(() => { initMulti("YOUR_APP_KEY", "?utm_source=hehe", undefined); Countly.q.push(["track_errors"]); // adding this as calling it during init used to cause an error (at v23.12.5) cy.fetch_local_request_queue().then((rq) => { cy.log(rq); const custom = JSON.parse(rq[0].user_details).custom; hp.validateDefaultUtmTags(custom, "hehe", "", "", "", ""); }); }); }); it("Checks if default utm tags works", () => { hp.haltAndClearStorage(() => { initMulti("YOUR_APP_KEY", "?utm_source=hehe&utm_medium=hehe1&utm_campaign=hehe2&utm_term=hehe3&utm_content=hehe4", undefined); cy.fetch_local_request_queue().then((rq) => { cy.log(rq); const custom = JSON.parse(rq[0].user_details).custom; hp.validateDefaultUtmTags(custom, "hehe", "hehe1", "hehe2", "hehe3", "hehe4"); }); }); }); it("Checks if a single custom utm tag works", () => { hp.haltAndClearStorage(() => { initMulti("YOUR_APP_KEY", "utm_aa=hehe", { aa: true, bb: true }); cy.fetch_local_request_queue().then((rq) => { cy.log(rq); const custom = JSON.parse(rq[0].user_details).custom; hp.validateDefaultUtmTags(custom, undefined, undefined, undefined, undefined, undefined); expect(custom.utm_aa).to.eq("hehe"); expect(custom.utm_bb).to.eq(""); }); }); }); it("Checks if custom utm tags works", () => { hp.haltAndClearStorage(() => { initMulti("YOUR_APP_KEY", "utm_aa=hehe&utm_bb=hoho", { aa: true, bb: true }); cy.fetch_local_request_queue().then((rq) => { cy.log(rq); const custom = JSON.parse(rq[0].user_details).custom; hp.validateDefaultUtmTags(custom, undefined, undefined, undefined, undefined, undefined); expect(custom.utm_aa).to.eq("hehe"); expect(custom.utm_bb).to.eq("hoho"); }); }); }); it("Checks if utm tag works in multi instancing", () => { hp.haltAndClearStorage(() => { // utm object provided with appropriate query initMulti("Countly_2", "?utm_ss=hehe2", { ss: true }); // utm object provided with inappropriate query initMulti("Countly_4", "?utm_source=hehe4", { ss: true }); // utm object not provided with default query initMulti("Countly_3", "?utm_source=hehe3", undefined); // utm object not provided with inappropriate query initMulti("Countly_5", "utm_ss=hehe5", undefined); // default (original) init with no custom tags and default query initMulti("YOUR_APP_KEY", "?utm_source=hehe", undefined); // check original cy.fetch_local_request_queue().then((rq) => { const custom = JSON.parse(rq[0].user_details).custom; hp.validateDefaultUtmTags(custom, "hehe", "", "", "", ""); }); // check if custom utm tags works cy.fetch_local_request_queue("Countly_2").then((rq) => { const custom = JSON.parse(rq[0].user_details).custom; hp.validateDefaultUtmTags(custom, undefined, undefined, undefined, undefined, undefined); expect(custom.utm_ss).to.eq("hehe2"); }); // check if default utm tags works cy.fetch_local_request_queue("Countly_3").then((rq) => { const custom = JSON.parse(rq[0].user_details).custom; hp.validateDefaultUtmTags(custom, "hehe3", "", "", "", ""); }); // check if no utm tag in request queue if the query is wrong cy.fetch_local_request_queue("Countly_4").then((rq) => { expect(rq.length).to.eq(0); }); // check if no utm tag in request queue if the query is wrong cy.fetch_local_request_queue("Countly_5").then((rq) => { expect(rq.length).to.eq(0); }); }); }); it("Checks if multi instancing works plus", () => { hp.haltAndClearStorage(() => { // default (original) init with no custom tags and short default query for multi instance base initMulti("YOUR_APP_KEY", "?utm_source=hehe", undefined); // utm object not provided with full + weird query initMulti("Countly_multi_1", "?utm_source=hehe&utm_medium=hehe1&utm_campaign=hehe2&utm_term=hehe3&utm_content=hehe4&fdsjhflkjhsdlkfjhsdlkjfhksdjhfkj+dsf;jsdlkjflk+=skdjflksjd=fksdfl;sd=sdkfmk&&&", undefined); // utm object given that includes 2 default 1 custom, full plus custom query + gabledeboop initMulti("Countly_multi_2", "?utm_source=hehe&utm_medium=hehe1&utm_campaign=hehe2&utm_term=hehe3&utm_content=hehe4&utm_sthelse=hehe5&fdsjhflkjhsdlkfjhsdlkjfhksdjhfkj+dsf;jsdlkjflk+=skdjflksjd=fksdfl;sd=sdkfmk&&&", { source: true, term: true, sthelse: true }); // empty init, garbage query + 1 default initMulti("Countly_multi_3", "dasdashdjkhaslkjdhsakj=dasmndlask=asdkljska&&utm_source=hehe", undefined); // full default utm obj + custom 1, full query + 1 initMulti("Countly_multi_4", "?utm_source=hehe&utm_medium=hehe1&utm_campaign=hehe2&utm_term=hehe3&utm_content=hehe4&utm_next=hehe5", { source: true, medium: true, campaign: true, term: true, content: true, next: true }); // full default utm obj + custom 1, no query initMulti("Countly_multi_5", "", { source: true, medium: true, campaign: true, term: true, content: true, next: true }); // check original cy.fetch_local_request_queue().then((rq) => { const custom = JSON.parse(rq[0].user_details).custom; hp.validateDefaultUtmTags(custom, "hehe", "", "", "", ""); }); // check if custom utm tags works for multi 1 cy.fetch_local_request_queue("Countly_multi_1").then((rq) => { const custom = JSON.parse(rq[0].user_details).custom; hp.validateDefaultUtmTags(custom, "hehe", "hehe1", "hehe2", "hehe3", "hehe4"); }); // check if custom utm tags works for multi 2 cy.fetch_local_request_queue("Countly_multi_2").then((rq) => { const custom = JSON.parse(rq[0].user_details).custom; hp.validateDefaultUtmTags(custom, "hehe", undefined, undefined, "hehe3", undefined); expect(custom.utm_sthelse).to.eq("hehe5"); }); // check if custom utm tags works for multi 3 cy.fetch_local_request_queue("Countly_multi_3").then((rq) => { const custom = JSON.parse(rq[0].user_details).custom; hp.validateDefaultUtmTags(custom, "hehe", "", "", "", ""); }); // check if custom utm tags works for multi 4 cy.fetch_local_request_queue("Countly_multi_4").then((rq) => { const custom = JSON.parse(rq[0].user_details).custom; hp.validateDefaultUtmTags(custom, "hehe", "hehe1", "hehe2", "hehe3", "hehe4"); expect(custom.utm_next).to.eq("hehe5"); }); // check if custom utm tags works for multi 5 cy.fetch_local_request_queue("Countly_multi_5").then((rq) => { expect(rq.length).to.eq(0); }); }); }); it("Checks if multi instancing works plus plus", () => { hp.haltAndClearStorage(() => { // default (original) init with no custom tags and short default query for multi instance base initMulti("YOUR_APP_KEY", "?utm_source=hehe", undefined); // utm object empty, custom query + gabledeboop initMulti("Countly_multi_next_1", "?utm_sourcer=hehe&utm_mediumr=hehe1&utm_campaignr=hehe2&utm_rterm=hehe3&utm_corntent=hehe4&fdsjhflkjhsdlkfjhsdlkjfhksdjhfkj+dsf;jsdlkjflk+=skdjflksjd=fksdfl;sd=sdkfmk&&&", undefined); // utm object default, custom query + gabledeboop initMulti("Countly_multi_next_2", "?utm_sourcer=hehe&utm_mediumr=hehe1&utm_campaignr=hehe2&utm_rterm=hehe3&utm_corntent=hehe4&fdsjhflkjhsdlkfjhsdlkjfhksdjhfkj+dsf;jsdlkjflk+=skdjflksjd=fksdfl;sd=sdkfmk&&&", { source: true, medium: true, campaign: true, term: true, content: true }); // custom utm object, custom query + gabledeboop initMulti("Countly_multi_next_3", "?utm_sauce=hehe&utm_pan=hehe2&dasdashdjkhaslkjdhsakj=dasmndlask=asdkljska&&utm_source=hehe", { sauce: true, pan: true }); // check original cy.fetch_local_request_queue().then((rq) => { const custom = JSON.parse(rq[0].user_details).custom; hp.validateDefaultUtmTags(custom, "hehe", "", "", "", ""); }); // check if custom utm tags works for multi 1 cy.fetch_local_request_queue("Countly_multi_next_1").then((rq) => { expect(rq.length).to.eq(0); }); // check if custom utm tags works for multi 2 cy.fetch_local_request_queue("Countly_multi_next_2").then((rq) => { expect(rq.length).to.eq(0); }); // check if custom utm tags works for multi 3 cy.fetch_local_request_queue("Countly_multi_next_3").then((rq) => { const custom = JSON.parse(rq[0].user_details).custom; hp.validateDefaultUtmTags(custom, undefined, undefined, undefined, undefined, undefined); expect(custom.utm_sauce).to.eq("hehe"); expect(custom.utm_pan).to.eq("hehe2"); }); }); }); });