diff --git a/src/layouts/vehicle-damage/vehicle-damage.spec.js b/src/layouts/vehicle-damage/vehicle-damage.spec.js index e5dace28c..9ddedb366 100644 --- a/src/layouts/vehicle-damage/vehicle-damage.spec.js +++ b/src/layouts/vehicle-damage/vehicle-damage.spec.js @@ -1,122 +1,121 @@ -test.todo("some test to be written in the future"); -// import { shallowMount, flushPromises } from "@vue/test-utils"; -// import { getMountOptions } from "@/helpers/unit-test-helper.js"; -// import vehicleDamage from "@/layouts/vehicle-damage/vehicle-damage.vue"; -// import funnelHeader from "@/common-components/funnel-header/funnel-header"; -// import vehicleBanner from "@/common-components/vehicle-banner/vehicle-banner"; -// import funnelSubHeader from "@/common-components/funnel-sub-header/funnel-sub-header"; -// import { settleAllPromises } from "@/helpers/layout-helper.js"; -// import { nextTick } from "vue"; +import { shallowMount, flushPromises } from "@vue/test-utils"; +import { getMountOptions } from "@/helpers/unit-test-helper.js"; +import vehicleDamage from "@/layouts/vehicle-damage/vehicle-damage.vue"; +import funnelHeader from "@/common-components/funnel-header/funnel-header"; +import vehicleBanner from "@/common-components/vehicle-banner/vehicle-banner"; +import funnelSubHeader from "@/common-components/funnel-sub-header/funnel-sub-header"; +import { settleAllPromises } from "@/helpers/layout-helper.js"; +import { nextTick } from "vue"; -// // Mock our module for promises. -// jest.mock("@/helpers/layout-helper.js", () => ({ -// settleAllPromises: jest.fn(), -// })); +// Mock our module for promises. +jest.mock("@/helpers/layout-helper.js", () => ({ + settleAllPromises: jest.fn(), +})); -// describe("vehicle-damage.vue", () => { -// test("Page header is initailized with api data", async (done) => { +describe("vehicle-damage.vue", () => { + test("Page header is initailized with api data", async (done) => { -// //Arrange -// const pageHeaderWidgetHeaderText = "Select Damage"; -// const { wrapper, apiPromise } = setupMocks( { pageHeaderWidgetHeaderText: pageHeaderWidgetHeaderText }); + //Arrange + const pageHeaderWidgetHeaderText = "Select Damage"; + const { wrapper, apiPromise } = setupMocks( { pageHeaderWidgetHeaderText: pageHeaderWidgetHeaderText }); -// //Act -// vehicleDamage.beforeRouteEnter.call(wrapper.vm, { query: { fmgPage: "vehicle-damage" } }, undefined, (c) => c(wrapper.vm)); + //Act + vehicleDamage.beforeRouteEnter.call(wrapper.vm, { query: { fmgPage: "vehicle-damage" } }, undefined, (c) => c(wrapper.vm)); -// //Assert -// apiPromise.finally(() => { -// expect(funnelSubHeader.methods.initializeComponent).toHaveBeenCalledWith(pageHeaderWidgetHeaderText); -// done(); -// }); -// }); -// }); + //Assert + apiPromise.finally(() => { + expect(funnelSubHeader.methods.initializeComponent).toHaveBeenCalledWith(pageHeaderWidgetHeaderText); + done(); + }); + }); +}); -// describe("vehicle-damage.vue", () => { -// test("Page logo image is initailized with api data", async (done) => { +describe("vehicle-damage.vue", () => { + test("Page logo image is initailized with api data", async (done) => { -// //Arrange -// const SiteHeaderWidget = { -// LogoImage: -// "https://digitalconsumercms-dev.safelite.com/images/default-source/default-album/safelite-logo.svg?sfvrsn=45e7ed06_3", -// } -// const { wrapper, apiPromise } = setupMocks( { SiteHeaderWidget: SiteHeaderWidget}); + //Arrange + const SiteHeaderWidget = { + LogoImage: + "https://digitalconsumercms-dev.safelite.com/images/default-source/default-album/safelite-logo.svg?sfvrsn=45e7ed06_3", + } + const { wrapper, apiPromise } = setupMocks( { SiteHeaderWidget: SiteHeaderWidget}); -// //Act -// vehicleDamage.beforeRouteEnter.call(wrapper.vm, { query: { fmgPage: "vehicle-damage" } }, undefined, (c) => c(wrapper.vm)); + //Act + vehicleDamage.beforeRouteEnter.call(wrapper.vm, { query: { fmgPage: "vehicle-damage" } }, undefined, (c) => c(wrapper.vm)); -// //Assert -// apiPromise.finally(() => { -// expect(funnelHeader.methods.initializeComponent).toHaveBeenCalledWith(SiteHeaderWidget); -// done(); -// }); -// }); -// }); + //Assert + apiPromise.finally(() => { + expect(funnelHeader.methods.initializeComponent).toHaveBeenCalledWith(SiteHeaderWidget); + done(); + }); + }); + }); -// describe("vehicle-damage.vue", () => { -// test("Vehicle image is initailized with api data", async (done) => { + describe("vehicle-damage.vue", () => { + test("Vehicle image is initailized with api data", async (done) => { -// //Arrange -// const VehicleBannerWidget = { -// GenericVehicleImage: -// "https://digitalconsumercms-dev.safelite.com/images/default-source/default-album/blurred-image.jpg?sfvrsn=a6ce3034_3", -// } -// const { wrapper, apiPromise } = setupMocks( { VehicleBannerWidget: VehicleBannerWidget}); + //Arrange + const VehicleBannerWidget = { + GenericVehicleImage: + "https://digitalconsumercms-dev.safelite.com/images/default-source/default-album/blurred-image.jpg?sfvrsn=a6ce3034_3", + } + const { wrapper, apiPromise } = setupMocks( { VehicleBannerWidget: VehicleBannerWidget}); -// //Act -// vehicleDamage.beforeRouteEnter.call(wrapper.vm, { query: { fmgPage: "vehicle-damage" } }, undefined, (c) => c(wrapper.vm)); + //Act + vehicleDamage.beforeRouteEnter.call(wrapper.vm, { query: { fmgPage: "vehicle-damage" } }, undefined, (c) => c(wrapper.vm)); -// //Assert -// apiPromise.finally(() => { -// expect(vehicleBanner.methods.initializeComponent).toHaveBeenCalledWith(VehicleBannerWidget); -// done(); -// }); -// }); -// }); + //Assert + apiPromise.finally(() => { + expect(vehicleBanner.methods.initializeComponent).toHaveBeenCalledWith(VehicleBannerWidget); + done(); + }); + }); + }); -// function setupMocks({ -// radioQuestionCmsContent = {}, -// pageHeaderWidgetHeaderText = {}, -// mountOptionsMockData = {}, -// }) { +function setupMocks({ + radioQuestionCmsContent = {}, + pageHeaderWidgetHeaderText = {}, + mountOptionsMockData = {}, + }) { -// //Mock api responses -// const apiResponses = { -// cmsContent: { -// FunnelSubHeaderWidget: pageHeaderWidgetHeaderText, -// RadioQuestionWidget: radioQuestionCmsContent, -// VehicleBannerWidget: -// { -// GenericVehicleImage: -// "https://digitalconsumercms-dev.safelite.com/images/default-source/default-album/blurred-image.jpg?sfvrsn=a6ce3034_3", -// }, -// FunnelHeaderWidget: -// { -// LogoImage: -// "https://digitalconsumercms-dev.safelite.com/images/default-source/default-album/safelite-logo.svg?sfvrsn=45e7ed06_3", -// }, -// }, -// }; -// const apiPromise = Promise.resolve(apiResponses); -// settleAllPromises.mockImplementation(() => apiPromise); + //Mock api responses + const apiResponses = { + cmsContent: { + FunnelSubHeaderWidget: pageHeaderWidgetHeaderText, + RadioQuestionWidget: radioQuestionCmsContent, + VehicleBannerWidget: + { + GenericVehicleImage: + "https://digitalconsumercms-dev.safelite.com/images/default-source/default-album/blurred-image.jpg?sfvrsn=a6ce3034_3", + }, + FunnelHeaderWidget: + { + LogoImage: + "https://digitalconsumercms-dev.safelite.com/images/default-source/default-album/safelite-logo.svg?sfvrsn=45e7ed06_3", + }, + }, + }; + const apiPromise = Promise.resolve(apiResponses); + settleAllPromises.mockImplementation(() => apiPromise); -// //Mock style question methods -// funnelHeader.methods = { -// initializeComponent: jest.fn(), -// }; -// vehicleBanner.methods = { -// initializeComponent: jest.fn(), -// }; -// funnelSubHeader.methods = { -// initializeComponent: jest.fn(), -// }; -// const mountOptions = getMountOptions(mountOptionsMockData); -// const wrapper = shallowMount(vehicleDamage, mountOptions); -// const funnelHeaderWrapper = wrapper.findComponent({ name: "funnelHeader" }); -// funnelHeaderWrapper.vm.initializeComponent = funnelHeader.methods.initializeComponent; -// const vehicleBannerWrapper = wrapper.findComponent({ name: "vehicleBanner" }); -// vehicleBannerWrapper.vm.initializeComponent = vehicleBanner.methods.initializeComponent; -// const funnelSubHeaderWrapper = wrapper.findComponent({ name: "funnelSubHeader" }); -// funnelSubHeaderWrapper.vm.initializeComponent = funnelSubHeader.methods.initializeComponent; + //Mock style question methods + funnelHeader.methods = { + initializeComponent: jest.fn(), + }; + vehicleBanner.methods = { + initializeComponent: jest.fn(), + }; + funnelSubHeader.methods = { + initializeComponent: jest.fn(), + }; + const mountOptions = getMountOptions(mountOptionsMockData); + const wrapper = shallowMount(vehicleDamage, mountOptions); + const funnelHeaderWrapper = wrapper.findComponent({ name: "funnelHeader" }); + funnelHeaderWrapper.vm.initializeComponent = funnelHeader.methods.initializeComponent; + const vehicleBannerWrapper = wrapper.findComponent({ name: "vehicleBanner" }); + vehicleBannerWrapper.vm.initializeComponent = vehicleBanner.methods.initializeComponent; + const funnelSubHeaderWrapper = wrapper.findComponent({ name: "funnelSubHeader" }); + funnelSubHeaderWrapper.vm.initializeComponent = funnelSubHeader.methods.initializeComponent; -// return { wrapper, apiPromise }; -// } \ No newline at end of file + return { wrapper, apiPromise }; + } \ No newline at end of file