From badbece45ceb6be49d6bd366b4dba9883a0f332f Mon Sep 17 00:00:00 2001 From: Jason Wheeler Date: Tue, 1 Nov 2022 11:19:25 -0400 Subject: [PATCH] updated to match vehicle-year tests --- src/layouts/vehicle-make/vehicle-make.spec.js | 58 +++++++++++-------- src/layouts/vehicle-make/vehicle-make.vue | 2 +- 2 files changed, 36 insertions(+), 24 deletions(-) diff --git a/src/layouts/vehicle-make/vehicle-make.spec.js b/src/layouts/vehicle-make/vehicle-make.spec.js index d61297cd..0bc25d0c 100644 --- a/src/layouts/vehicle-make/vehicle-make.spec.js +++ b/src/layouts/vehicle-make/vehicle-make.spec.js @@ -1,24 +1,15 @@ // Supporting Files import { shallowMount } from "@vue/test-utils"; -import { getMountOptions } from "@/helpers/unit-test-helper.js"; import { settleAllPromises } from "@/helpers/layout-helper.js"; -import { nextTick } from "vue"; import { fetchCmsContentForPage } from "@/helpers/cms-content-helper"; - +import baseMixin from "@/mixins/base-mixin.js"; +import { getMountOptions } from "@/helpers/unit-test-helper.js"; +import { nextTick } from "vue"; // Components import vehicleMake from "@/layouts/vehicle-make/vehicle-make.vue"; import makeQuestion from "@/layouts/vehicle-make/make-question/make-question"; -jest.mock("@/store", () => ({ - getVehicleMakes: jest.fn(), - order: { - vehicle: { - year: 2019, - }, - }, -})); - // Mock fetchCmsContentForPage jest.mock("@/helpers/cms-content-helper", () => ({ fetchCmsContentForPage: jest.fn(), @@ -29,7 +20,6 @@ jest.mock("@/helpers/layout-helper.js", () => ({ settleAllPromises: jest.fn(), })); -/* describe("vehicle-make.vue", () => { test("Make question component is initized with api data", async (done) => { //Arrange @@ -51,14 +41,13 @@ describe("vehicle-make.vue", () => { expect(makeQuestion.methods.initializeComponent).toHaveBeenCalledWith( makeQuestionInitialData ); - //done(); }); }); }); -*/ - +/* describe("vehicle-make.vue", () => { - test("BackButtonAction triggers a router.navigate change", async (done) => { + test("BackButtonAction triggers a router.navigateWithoutSaving change", async (done) => { + //Arrange const { wrapper, apiPromise } = setupMocks({ pageHeaderWidgetHeaderText: "Select a make to get started", mountOptionsMockData: { @@ -68,6 +57,7 @@ describe("vehicle-make.vue", () => { }, }); + //Act vehicleMake.beforeRouteEnter.call( wrapper.vm, { query: { issPage: "vehicle-make" } }, @@ -77,14 +67,35 @@ describe("vehicle-make.vue", () => { wrapper.vm.backButtonAction(); await nextTick(); + //Assert apiPromise.finally(() => { expect(wrapper.vm.$router.navigate).toHaveBeenCalled(); - //done(); + done(); }); - }); }); +describe("vehicle-make.vue", () => { + test("Year set, arePagePrerequisitesValid should be true ", async () => { + //Arrange + const { wrapper } = setupMocks({}); + + //Act + vehicleMake.beforeRouteEnter.call( + wrapper.vm, + { query: { issPage: "vehicle-make" } }, + undefined, + (c) => c(wrapper.vm) + ); + + let arePagePrerequisitesValid = wrapper.vm.arePagePrerequisitesValid(); + + //Assert + expect(arePagePrerequisitesValid).toBe(true); + }); +}); +*/ + function setupMocks({ vehicleMakeQuestionCmsContent = {}, makeQuestionInitialData = {}, @@ -94,13 +105,13 @@ function setupMocks({ //Mock api responses const apiResponses = { cmsContent: { - FunnelSubHeaderWidget: pageHeaderWidgetHeaderText, + SiteSubHeaderWidget: pageHeaderWidgetHeaderText, VehicleMakeQuestion: vehicleMakeQuestionCmsContent, VehicleBannerWidget: { GenericVehicleImage: "https://digitalconsumercms-dev.safelite.com/images/default-source/default-album/blurred-image.jpg?sfvrsn=a6ce3034_3", }, - FunnelHeaderWidget: { + SiteHeaderWidget: { LogoImage: "https://digitalconsumercms-dev.safelite.com/images/default-source/default-album/safelite-logo.svg?sfvrsn=45e7ed06_3", }, @@ -110,8 +121,8 @@ function setupMocks({ const apiPromise = Promise.resolve(apiResponses); - fetchCmsContentForPage.mockImplementation(() => Promise.resolve()); settleAllPromises.mockImplementation(() => apiPromise); + fetchCmsContentForPage.mockImplementation(() => Promise.resolve()); //Mock make question methods makeQuestion.methods = { @@ -121,10 +132,11 @@ function setupMocks({ const mountOptions = getMountOptions(mountOptionsMockData); const wrapper = shallowMount(vehicleMake, mountOptions); + const makeQuestionWrapper = wrapper.findComponent({ name: "makeQuestion" }); makeQuestionWrapper.vm.initializeComponent = makeQuestion.methods.initializeComponent; - wrapper.vm.setCmsContent = jest.fn(); + wrapper.vm.setCmsContent = baseMixin.methods.setCmsContent; return { wrapper, apiPromise }; } diff --git a/src/layouts/vehicle-make/vehicle-make.vue b/src/layouts/vehicle-make/vehicle-make.vue index b3997b1b..cc10d326 100644 --- a/src/layouts/vehicle-make/vehicle-make.vue +++ b/src/layouts/vehicle-make/vehicle-make.vue @@ -83,5 +83,5 @@ siteSubHeader, vehicleBanner, }, - } + }; \ No newline at end of file