Merge branch 'release/2025.05.08' into feature/CASH-488

This commit is contained in:
scottkiener-at-safelite 2025-04-24 12:43:00 -04:00 committed by GitHub
commit 04ea26b372
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 92 additions and 5 deletions

View file

@ -0,0 +1,43 @@
import * as salesforceWebchatHelperdev from "./salesforce-helper-dev";
import * as salesforceWebchatHelperqa from "./salesforce-helper-qa";
import * as salesforceWebchatHelperprod from "./salesforce-helper-prod";
const mockEmbeddedSvc = {
settings: {},
init: jest.fn(),
testFlag: true,
};
describe("Salesforce Webchat Helper Tests", () => {
describe("Files and exposed methods exist", () => {
it("exposes initialization methods", () => {
expect(typeof salesforceWebchatHelperdev.initializeSalesforceWebchatForDev).toBe(
"function"
);
expect(typeof salesforceWebchatHelperqa.initializeSalesforceWebchatForQa).toBe(
"function"
);
expect(typeof salesforceWebchatHelperprod.initializeSalesforceWebchatForProd).toBe(
"function"
);
});
}),
describe("Custom code added correctly", () => {
it("defines a local variable 'embedded_svc' in the initESW method", () => {
mockEmbeddedSvc.testFlag = "dev";
window.embedded_svc = mockEmbeddedSvc;
salesforceWebchatHelperdev.initializeSalesforceWebchatForDev();
expect(embedded_svc.testFlag).toBe("dev");
mockEmbeddedSvc.testFlag = "qa";
window.embedded_svc = mockEmbeddedSvc;
salesforceWebchatHelperqa.initializeSalesforceWebchatForQa();
expect(embedded_svc.testFlag).toBe("qa");
mockEmbeddedSvc.testFlag = "prod";
window.embedded_svc = mockEmbeddedSvc;
salesforceWebchatHelperprod.initializeSalesforceWebchatForProd();
expect(embedded_svc.testFlag).toBe("prod");
});
});
});

View file

@ -0,0 +1,42 @@
import { shallowMount } from "@vue/test-utils";
import salesforceWebchat from "./salesforce-webchat.vue";
import * as devHelper from "./salesforce-helper-dev";
import * as qaHelper from "./salesforce-helper-qa";
import * as prodHelper from "./salesforce-helper-prod";
describe("salesforceWebchat.vue", () => {
it("renders correctly", () => {
const wrapper = shallowMount(salesforceWebchat);
expect(wrapper.exists()).toBe(true);
});
it("has the correct default data", () => {
const wrapper = shallowMount(salesforceWebchat);
expect(wrapper.vm.$data).toEqual({});
});
it("has the correct default props", () => {
const wrapper = shallowMount(salesforceWebchat);
expect(wrapper.props().hideSalesforceWebchatLaunchButton).toBe(false);
});
it("calls the correct initialization function based on environment", () => {
process.env.VUE_APP_CURRENT_ENVIRONMENT = "Prod";
let wrapper = shallowMount(salesforceWebchat);
mockProd = jest.spyOn(prodHelper, "initializeSalesforceWebchatForProd");
wrapper.vm.initializeSalesforceWebchat();
expect(mockProd).toHaveBeenCalled();
process.env.VUE_APP_CURRENT_ENVIRONMENT = "QA";
wrapper = shallowMount(salesforceWebchat);
mockQa = jest.spyOn(qaHelper, "initializeSalesforceWebchatForQa");
wrapper.vm.initializeSalesforceWebchat();
expect(mockQa).toHaveBeenCalled();
process.env.VUE_APP_CURRENT_ENVIRONMENT = "Dev";
wrapper = shallowMount(salesforceWebchat);
mockDev = jest.spyOn(devHelper, "initializeSalesforceWebchatForDev");
wrapper.vm.initializeSalesforceWebchat();
expect(mockDev).toHaveBeenCalled();
});
});

View file

@ -23,7 +23,11 @@ export default {
// Load in script from salesforce CDN
const script = document.createElement("script");
script.src = "https://service.force.com/embeddedservice/5.0/esw.min.js";
script.onload = () => {
script.onload = this.initializeSalesforceWebchat;
document.body.appendChild(script);
},
methods: {
initializeSalesforceWebchat() {
switch (process.env.VUE_APP_CURRENT_ENVIRONMENT) {
case "Prod":
initializeSalesforceWebchatForProd();
@ -37,10 +41,8 @@ export default {
initializeSalesforceWebchatForDev();
break;
}
};
document.body.appendChild(script);
},
},
methods: {},
computed: {},
components: {},
};

View file

@ -70,8 +70,8 @@ export default {
components: {
alert,
menuModal,
progressBar,
salesforceWebchat,
progressBar,
},
mounted() {
// Check if alert event is on the bus