From 21914908a3a0db68a129ed758f2503fc828c3c6c Mon Sep 17 00:00:00 2001 From: Chloe Herd Date: Tue, 25 Jul 2023 16:39:40 -0400 Subject: [PATCH] Add new tests. --- .../damage-review/damage-review.spec.js | 178 ++++++++++++++++++ 1 file changed, 178 insertions(+) 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 2e4ef3e2a..e7aa69a67 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 @@ -57,6 +57,54 @@ const testConstants = { glassLocation: glassConstants.WINDSHIELD, glassName: glassConstants.SINGLE, }, + rear: { + glassLocation: glassConstants.REAR, + glassName: glassConstants.STATIONARY, + }, + passengerItems: { + vent: { + glassLocation: glassConstants.PASSENGER, + glassName: glassConstants.VENT, + }, + front: { + glassLocation: glassConstants.PASSENGER, + glassName: glassConstants.FRONT, + }, + back: { + glassLocation: glassConstants.PASSENGER, + glassName: glassConstants.BACK, + }, + quarter: { + glassLocation: glassConstants.PASSENGER, + glassName: glassConstants.QUARTER, + }, + side: { + glassLocation: glassConstants.PASSENGER, + glassName: glassConstants.SIDEDOOR, + }, + }, + driverItems: { + vent: { + glassLocation: glassConstants.DRIVER, + glassName: glassConstants.VENT, + }, + front: { + glassLocation: glassConstants.DRIVER, + glassName: glassConstants.FRONT, + }, + back: { + glassLocation: glassConstants.DRIVER, + glassName: glassConstants.BACK, + }, + quarter: { + glassLocation: glassConstants.DRIVER, + glassName: glassConstants.QUARTER, + }, + side: { + glassLocation: glassConstants.DRIVER, + glassName: glassConstants.SIDEDOOR, + }, + }, }, }; @@ -240,6 +288,136 @@ describe("Damage Review Block", () => { testConstants.cmsConstants.locationCopy.windshield, ]); }); + + test("Rear windshield copy shows when rear damage is present", async () => { + // Arrange + const { wrapper } = setupMocks({ + propsData: { + cmsWidgetName: testConstants.cmsConstants.widgetNames.header, + damageLocationsWidgetName: testConstants.cmsConstants.widgetNames.locations, + damage: { + isRepair: false, + numberOfChips: null, + glassToReplace: [testConstants.glassItems.rear], + }, + }, + }); + + // Act + await wrapper.vm.$nextTick(); + + // Assert + expect(wrapper.vm.displayContent).toStrictEqual([ + testConstants.cmsConstants.locationCopy.rear, + ]); + }); + + test("Driver side copy and items are shown when driver side damage is present", async () => { + // Arrange + const { wrapper } = setupMocks({ + propsData: { + cmsWidgetName: testConstants.cmsConstants.widgetNames.header, + damageLocationsWidgetName: testConstants.cmsConstants.widgetNames.locations, + damage: { + isRepair: false, + numberOfChips: null, + glassToReplace: [ + testConstants.glassItems.driverItems.back, + testConstants.glassItems.driverItems.front, + ], + }, + }, + }); + + // Act + await wrapper.vm.$nextTick(); + + // Assert + expect(wrapper.vm.displayContent).toStrictEqual([ + testConstants.cmsConstants.locationCopy.driver, + testConstants.makeBulletedList([ + testConstants.cmsConstants.damageCopy.front, + testConstants.cmsConstants.damageCopy.back, + ]), + ]); + }); + + test("Passenger side copy and items are shown when passenger side damage is present", async () => { + // Arrange + const { wrapper } = setupMocks({ + propsData: { + cmsWidgetName: testConstants.cmsConstants.widgetNames.header, + damageLocationsWidgetName: testConstants.cmsConstants.widgetNames.locations, + damage: { + isRepair: false, + numberOfChips: null, + glassToReplace: [ + testConstants.glassItems.passengerItems.quarter, + testConstants.glassItems.passengerItems.vent, + testConstants.glassItems.passengerItems.side, + ], + }, + }, + }); + + // Act + await wrapper.vm.$nextTick(); + + // Assert + expect(wrapper.vm.displayContent).toStrictEqual([ + testConstants.cmsConstants.locationCopy.passenger, + testConstants.makeBulletedList([ + testConstants.cmsConstants.damageCopy.vent, + testConstants.cmsConstants.damageCopy.quarter, + testConstants.cmsConstants.damageCopy.side, + ]), + ]); + }); + + test("All relevant sections are shown in order in multiglass scenario", async () => { + // Arrange + const { wrapper } = setupMocks({ + propsData: { + cmsWidgetName: testConstants.cmsConstants.widgetNames.header, + damageLocationsWidgetName: testConstants.cmsConstants.widgetNames.locations, + damage: { + isRepair: false, + numberOfChips: null, + glassToReplace: [ + testConstants.glassItems.windshield, + testConstants.glassItems.rear, + testConstants.glassItems.driverItems.vent, + testConstants.glassItems.driverItems.front, + testConstants.glassItems.driverItems.back, + testConstants.glassItems.passengerItems.quarter, + testConstants.glassItems.passengerItems.back, + testConstants.glassItems.passengerItems.side, + ], + }, + }, + }); + + // Act + await wrapper.vm.$nextTick(); + + // Assert + expect(wrapper.vm.displayContent).toStrictEqual([ + testConstants.cmsConstants.locationCopy.windshield, + testConstants.cmsConstants.locationCopy.driver, + testConstants.makeBulletedList([ + testConstants.cmsConstants.damageCopy.vent, + testConstants.cmsConstants.damageCopy.front, + testConstants.cmsConstants.damageCopy.back, + ]), + testConstants.cmsConstants.locationCopy.passenger, + testConstants.makeBulletedList([ + testConstants.cmsConstants.damageCopy.back, + testConstants.cmsConstants.damageCopy.quarter, + testConstants.cmsConstants.damageCopy.side, + ]), + testConstants.cmsConstants.locationCopy.rear, + ]); + }); }); });