diff --git a/src/mixins/analytics-mixin.spec.js b/src/mixins/analytics-mixin.spec.js index 9ad38f86d..8f63854a0 100644 --- a/src/mixins/analytics-mixin.spec.js +++ b/src/mixins/analytics-mixin.spec.js @@ -1,5 +1,4 @@ import analyticsMixin from "@/mixins/analytics-mixin"; -import baseMixin from "@/mixins/base-mixin"; import { setupMocksForJsFiles, setupCookies, @@ -853,13 +852,14 @@ describe("analyticsMixin.js", () => { }); }); describe("push product array and ecommerce cart to data layer", () => { + const mocks = setupMocksForJsFiles(); it("should push product array to data layer correctly", () => { // Mock the methods - baseMixin.methods.hasSubmittedOrder = jest.fn(); - baseMixin.methods.getSubmittedOrder = jest.fn(); - baseMixin.methods.getTotalPriceOfAllLineItemsAndChildParts = jest.fn(); - baseMixin.methods.hasSubmittedOrder.mockReturnValue(true); - baseMixin.methods.getSubmittedOrder.mockReturnValue({ + mocks.baseMixin.methods.hasSubmittedOrder = jest.fn(); + mocks.baseMixin.methods.getSubmittedOrder = jest.fn(); + mocks.baseMixin.methods.getTotalPriceOfAllLineItemsAndChildParts = jest.fn(); + mocks.baseMixin.methods.hasSubmittedOrder.mockReturnValue(true); + mocks.baseMixin.methods.getSubmittedOrder.mockReturnValue({ lineItems: { glassParts: [{ partNumber: "GP1", partType: "glass" }], supportingItems: [{ partNumber: "SI1", partType: "support" }], @@ -867,22 +867,24 @@ describe("analyticsMixin.js", () => { promos: [{ partNumber: "DISCOUNT", partType: "promo", promoCode: "PROMO4" }], }, }); - baseMixin.methods.getTotalPriceOfAllLineItemsAndChildParts.mockReturnValue(100); + mocks.baseMixin.methods.getTotalPriceOfAllLineItemsAndChildParts.mockReturnValue(100); // Call the function analyticsMixin.methods.pushProductArrayToDataLayer(); // Assertions - expect(baseMixin.methods.hasSubmittedOrder).toHaveBeenCalled(); - expect(baseMixin.methods.getSubmittedOrder).toHaveBeenCalled(); - expect(baseMixin.methods.getTotalPriceOfAllLineItemsAndChildParts).toHaveBeenCalled(); + expect(mocks.baseMixin.methods.hasSubmittedOrder).toHaveBeenCalled(); + expect(mocks.baseMixin.methods.getSubmittedOrder).toHaveBeenCalled(); + expect( + mocks.baseMixin.methods.getTotalPriceOfAllLineItemsAndChildParts + ).toHaveBeenCalled(); }); it("should push eCommerce cart to data layer correctly", () => { // Mock the methods - (baseMixin.methods.hasSubmittedOrder = jest.fn()), - (baseMixin.methods.getSubmittedOrder = jest.fn()), - baseMixin.methods.hasSubmittedOrder.mockReturnValue(true); - baseMixin.methods.getSubmittedOrder.mockReturnValue({ + mocks.baseMixin.methods.hasSubmittedOrder = jest.fn(); + mocks.baseMixin.methods.getSubmittedOrder = jest.fn(); + mocks.baseMixin.methods.hasSubmittedOrder.mockReturnValue(true); + mocks.baseMixin.methods.getSubmittedOrder.mockReturnValue({ lineItems: { supportingItems: [ { partType: "RECALIBRATION", partNumber: "R1" }, @@ -900,13 +902,16 @@ describe("analyticsMixin.js", () => { analyticsMixin.methods.pushECommerceCartToDataLayer(); // Assertions - expect(baseMixin.methods.hasSubmittedOrder).toHaveBeenCalled(); - expect(baseMixin.methods.getSubmittedOrder).toHaveBeenCalled(); - expect(baseMixin.methods.getTotalPriceOfAllLineItemsAndChildParts).toHaveBeenCalled(); + expect(mocks.baseMixin.methods.hasSubmittedOrder).toHaveBeenCalled(); + expect(mocks.baseMixin.methods.getSubmittedOrder).toHaveBeenCalled(); + expect( + mocks.baseMixin.methods.getTotalPriceOfAllLineItemsAndChildParts + ).toHaveBeenCalled(); }); }); describe("pushCommissionJunctionGtmDataToDataLayer", () => { + const mocks = setupMocksForJsFiles(); it("should handle empty affiliateCookies", () => { store.getters = { applicationUser: { @@ -914,17 +919,17 @@ describe("analyticsMixin.js", () => { }, }; - baseMixin.methods.hasSubmittedOrder = jest.fn(); - baseMixin.methods.hasSubmittedOrder.mockReturnValue(false); + mocks.baseMixin.methods.hasSubmittedOrder = jest.fn(); + mocks.baseMixin.methods.hasSubmittedOrder.mockReturnValue(false); const result = analyticsMixin.methods.pushCommissionJunctionGtmDataToDataLayer(); expect(result).toBeUndefined(); }); test("Pushes populated data to data layer", () => { - baseMixin.methods.hasSubmittedOrder = jest.fn(); - baseMixin.methods.hasSubmittedOrder.mockReturnValue(true); - baseMixin.methods.getSubmittedOrder = jest.fn(); - baseMixin.methods.getSubmittedOrder.mockReturnValue({ + mocks.baseMixin.methods.hasSubmittedOrder = jest.fn(); + mocks.baseMixin.methods.hasSubmittedOrder.mockReturnValue(true); + mocks.baseMixin.methods.getSubmittedOrder = jest.fn(); + mocks.baseMixin.methods.getSubmittedOrder.mockReturnValue({ vehicle: { year: "2020", make: "acura",