diff --git a/src/layouts/review/review-sections/damage-review/damage-review.spec.js b/src/layouts/review/review-sections/damage-review/damage-review.spec.js index ee5ec0816..a6dbe6f2d 100644 --- a/src/layouts/review/review-sections/damage-review/damage-review.spec.js +++ b/src/layouts/review/review-sections/damage-review/damage-review.spec.js @@ -1,3 +1,72 @@ +import { shallowMount } from "@vue/test-utils"; +import { getMountOptions } from "@/helpers/unit-test-helper.js"; +import damageReview from "@/layouts/review/review-sections/damage-review/damage-review"; + +jest.mock("@/helpers/cms-content-helper", () => ({ + fetchCmsContentForPage: () => Promise.resolve("content"), +})); + describe("Damage Review Block", () => { - test.todo("Add more tests as specific functionality is added."); + describe("Correctly assembles damage info into a display string", () => { + test("Basic Replace", async () => { + // Arrange + const { wrapper } = setupMocks({ + propsData: { + damage: { + isRepair: false, + }, + }, + }); + + // Act + await wrapper.vm.$nextTick(); + + // Assert + expect(wrapper.vm.displayContent).toStrictEqual(["Windshield crack"]); + }); + + test("Basic Repair", async () => { + // Arrange + const { wrapper } = setupMocks({ + propsData: { + damage: { + isRepair: true, + numberOfChips: 2, + }, + }, + }); + + // Act + await wrapper.vm.$nextTick(); + + // Assert + expect(wrapper.vm.displayContent).toStrictEqual(["Windshield repair - 2 chips"]); + }); + + test("Basic Repair - no s with 1 chip", async () => { + // Arrange + const { wrapper } = setupMocks({ + propsData: { + damage: { + isRepair: true, + numberOfChips: 1, + }, + }, + }); + + // Act + await wrapper.vm.$nextTick(); + + // Assert + expect(wrapper.vm.displayContent).toStrictEqual(["Windshield repair - 1 chip"]); + }); + }); }); + +function setupMocks(customMountOptions) { + const mountOptions = getMountOptions(customMountOptions); + + const wrapper = shallowMount(damageReview, mountOptions); + wrapper.vm.setCmsContent = jest.fn(); + return { wrapper }; +}