unit test case fixes
This commit is contained in:
hiteshkumar87 2024-09-19 20:43:12 +05:30
parent 7f58966fa5
commit 933434adff

View file

@ -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",