From f35a2f2cdf705fa506f103b6849feb815a52712e Mon Sep 17 00:00:00 2001 From: Minojhini Valaiyapathi Date: Wed, 28 May 2025 15:29:42 -0400 Subject: [PATCH 1/2] CASH-609 - Add dataevents for Sierra/Salesforce chat --- .../salesforce-webchat/salesforce-webchat.vue | 5 +++ .../sierra-webchat/sierra-webchat.spec.js | 21 +++++++++-- .../sierra-webchat/sierra-webchat.vue | 3 ++ src/mixins/analytics-mixin.js | 35 +++++++++++++------ src/mixins/analytics-mixin.spec.js | 14 ++++++-- src/store/index.js | 2 +- src/store/store.spec.js | 1 + 7 files changed, 65 insertions(+), 16 deletions(-) diff --git a/src/digital-components/salesforce-webchat/salesforce-webchat.vue b/src/digital-components/salesforce-webchat/salesforce-webchat.vue index 20ac8e44f..29c0906b9 100644 --- a/src/digital-components/salesforce-webchat/salesforce-webchat.vue +++ b/src/digital-components/salesforce-webchat/salesforce-webchat.vue @@ -9,9 +9,11 @@ import { initializeSalesforceWebchatForQa } from "./salesforce-helper-qa"; import { initializeSalesforceWebchatForProd } from "./salesforce-helper-prod"; import { applicationConfig } from "@/constants/application-config"; import { webchatHelper } from "@/helpers/webchat-helper"; +import analyticsMixin from "@/mixins/analytics-mixin"; export default { name: "salesforceWebchat", + mixins: [analyticsMixin], data() { return { isAgentAvailable: false, @@ -94,6 +96,9 @@ export default { window.embedded_svc.settings.prechatBackgroundImgURL = require("@/assets/img/salesforce-webchat/safelite_logo_webchat.png"); window.embedded_svc.settings.smallCompanyLogoImgURL = require("@/assets/img/salesforce-webchat/minimized_chat_bubble_webchat.png"); window.embedded_svc.settings.displayHelpButton = false; + window.embedded_svc.addEventHandler("onChatEstablished", () => { + this.pushEventForChatsToGA("support_chat", "chat_opened", "Live Agent", true); + }); }, finishedLoadingCallback(data) { this.isAgentAvailable = data.isAgentAvailable; diff --git a/src/digital-components/sierra-webchat/sierra-webchat.spec.js b/src/digital-components/sierra-webchat/sierra-webchat.spec.js index 5734eaab8..e4d819ffb 100644 --- a/src/digital-components/sierra-webchat/sierra-webchat.spec.js +++ b/src/digital-components/sierra-webchat/sierra-webchat.spec.js @@ -1,11 +1,28 @@ import { shallowMount } from "@vue/test-utils"; -import SierraWebchat from "./sierra-webchat.vue"; +import sierraWebchat from "./sierra-webchat.vue"; + +jest.mock("@/mixins/analytics-mixin"); +// Mock router for analytics-mixin +jest.mock("@/router", () => ({ + currentRoute: { + value: { + name: "mockedPageName", + }, + }, + default: { + currentRoute: { + value: { + name: "mockedPageName", + }, + }, + }, +})); describe("sierraWebchat.vue", () => { let wrapper; beforeEach(() => { - wrapper = shallowMount(SierraWebchat); + wrapper = shallowMount(sierraWebchat); // Mock global window properties window.sierraChat = { openChatModal: jest.fn(), closeChatModal: jest.fn() }; window.sierra = undefined; diff --git a/src/digital-components/sierra-webchat/sierra-webchat.vue b/src/digital-components/sierra-webchat/sierra-webchat.vue index e12ab053e..2a114616a 100644 --- a/src/digital-components/sierra-webchat/sierra-webchat.vue +++ b/src/digital-components/sierra-webchat/sierra-webchat.vue @@ -3,8 +3,10 @@