diff --git a/src/common-components/vehicle-banner/vehicle-banner.spec.js b/src/common-components/vehicle-banner/vehicle-banner.spec.js index 316c9225d..470410842 100644 --- a/src/common-components/vehicle-banner/vehicle-banner.spec.js +++ b/src/common-components/vehicle-banner/vehicle-banner.spec.js @@ -3,6 +3,12 @@ import vehicleBanner from './vehicle-banner'; import { getMountOptions } from "@/helpers/unit-test-helper.js"; import { storeActions } from "@/constants/store-actions"; import { nextTick } from 'vue'; +import { settleAllPromises } from "@/helpers/layout-helper"; + +// Mock our module for promises. +jest.mock("@/helpers/layout-helper.js", () => ({ + settleAllPromises: jest.fn() +})); describe('vehicleBanner', () => { const $store = { @@ -45,6 +51,17 @@ describe('vehicleBanner', () => { ] }; + // Our mock data for our call to settleAllPromises + const mockData = { + getPageContent: { + VehicleBannerWidget: [{ GenericVehicleImage: "testurl" }], + isCmsContentReady: true, + } + } + + // our mock implementation of settleAllPromises + settleAllPromises.mockImplementation(() => { return Promise.resolve(mockData);}); + test('renders the blurrycar image when vehicleImageSrc is not present', () => { // Arrange const mountOptions = getMountOptions(actionList); @@ -141,4 +158,23 @@ describe('vehicleBanner', () => { wrapper.unmount(); }); + test("vehicle-banner.vue should render data from CMS", async () => { + // Arrange + const mountOptions = getMountOptions(actionList); + mountOptions.global.mocks = { + ...mountOptions.global.mocks, + $store + } + // Act + const wrapper = shallowMount(vehicleBanner, { + ...mountOptions + }); + // Call method getGenericVehicleImage on the component. + await wrapper.vm.getGenericVehicleImage(); + // Wait for the DOM to update. + await nextTick(); + // Assert + expect(wrapper.vm.genericVehicleImageSrc).toEqual("testurl"); + }); + }); diff --git a/src/common-components/vehicle-banner/vehicle-banner.vue b/src/common-components/vehicle-banner/vehicle-banner.vue index 9d91beb74..c1376710b 100644 --- a/src/common-components/vehicle-banner/vehicle-banner.vue +++ b/src/common-components/vehicle-banner/vehicle-banner.vue @@ -8,7 +8,7 @@ /> @@ -16,6 +16,9 @@ diff --git a/src/constants/widget-names.js b/src/constants/widget-names.js index bad1390c6..ed8c1a8a6 100644 --- a/src/constants/widget-names.js +++ b/src/constants/widget-names.js @@ -1,6 +1,7 @@ const widgetNames = { PAGE_HEADER_WIDGET: "PageHeaderWidget", RADIO_QUESTION_WIDGET: "RadioQuestionWidget", + VEHICLE_BANNER_WIDGET: "VehicleBannerWidget", }; export { widgetNames };