From a9d981f2003e41455034bab225326f98336b54cd Mon Sep 17 00:00:00 2001 From: Chloe Herd Date: Tue, 26 Dec 2023 16:03:16 -0500 Subject: [PATCH 1/5] Remove review page from flow --- src/router/router-constants/fmgPage-values.js | 1 - .../router-constants/navigation-scenarios.js | 8 ---- src/router/router-constants/routing-table.js | 39 +------------------ 3 files changed, 1 insertion(+), 47 deletions(-) diff --git a/src/router/router-constants/fmgPage-values.js b/src/router/router-constants/fmgPage-values.js index 7b840ce18..3bd994ad3 100644 --- a/src/router/router-constants/fmgPage-values.js +++ b/src/router/router-constants/fmgPage-values.js @@ -15,7 +15,6 @@ const fmgPageValues = { HERITAGE: "heritage", SCHEDULE: "schedule", CUSTOMER_DETAILS: "customer-details", - REVIEW: "review", PAYMENT_METHOD: "payment-method", PAYMENT: "payment", PAYMENT_PIA_RETURN: "payment-pia-return", diff --git a/src/router/router-constants/navigation-scenarios.js b/src/router/router-constants/navigation-scenarios.js index 01f8e503f..13906f755 100644 --- a/src/router/router-constants/navigation-scenarios.js +++ b/src/router/router-constants/navigation-scenarios.js @@ -44,14 +44,6 @@ const navigationScenarios = { // Schedule CLICKED_CHANGE_LOCATION: "CLICKED_CHANGE_LOCATION", - // Review - CLICKED_VEHICLE_EDIT: "CLICKED_VEHICLE_EDIT", - CLICKED_DAMAGE_EDIT: "CLICKED_DAMAGE_EDIT", - CLICKED_SERVICE_PACKAGE_EDIT: "CLICKED_SERVICE_PACKAGE_EDIT", - CLICKED_SERVICE_LOCATION_EDIT: "CLICKED_SERVICE_LOCATION_EDIT", - CLICKED_SCHEDULE_EDIT: "CLICKED_SCHEDULE_EDIT", - CLICKED_CUSTOMER_EDIT: "CLICKED_CUSTOMER_EDIT", - // Payment CLICKED_PAY_NOW: "CLICKED_PAY_NOW", PIA_ERROR: "PIA_ERROR", diff --git a/src/router/router-constants/routing-table.js b/src/router/router-constants/routing-table.js index 841d57fd8..052bda142 100644 --- a/src/router/router-constants/routing-table.js +++ b/src/router/router-constants/routing-table.js @@ -428,43 +428,6 @@ const routingTable = function (store) { scenario: navigationScenarios.CLICKED_BACK, destinationFmgPageValue: fmgPageValues.SCHEDULE, }, - { - scenario: navigationScenarios.CLICKED_FORWARD, - destinationFmgPageValue: fmgPageValues.REVIEW, - }, - ], - }, - { - fmgPageValue: fmgPageValues.REVIEW, - maps: [ - { - scenario: navigationScenarios.CLICKED_VEHICLE_EDIT, - destinationFmgPageValue: fmgPageValues.VEHICLE, - }, - { - scenario: navigationScenarios.CLICKED_DAMAGE_EDIT, - destinationFmgPageValue: fmgPageValues.VEHICLE_DAMAGE, - }, - { - scenario: navigationScenarios.CLICKED_SERVICE_PACKAGE_EDIT, - destinationFmgPageValue: fmgPageValues.QUOTE, - }, - { - scenario: navigationScenarios.CLICKED_BACK, - destinationFmgPageValue: fmgPageValues.CUSTOMER_DETAILS, - }, - { - scenario: navigationScenarios.CLICKED_SERVICE_LOCATION_EDIT, - destinationFmgPageValue: fmgPageValues.SERVICE_LOCATION, - }, - { - scenario: navigationScenarios.CLICKED_SCHEDULE_EDIT, - destinationFmgPageValue: fmgPageValues.SCHEDULE, - }, - { - scenario: navigationScenarios.CLICKED_CUSTOMER_EDIT, - destinationFmgPageValue: fmgPageValues.CUSTOMER_DETAILS, - }, { scenario: navigationScenarios.CLICKED_FORWARD, destinationFmgPageValue: fmgPageValues.PAYMENT_METHOD, @@ -476,7 +439,7 @@ const routingTable = function (store) { maps: [ { scenario: navigationScenarios.CLICKED_BACK, - destinationFmgPageValue: fmgPageValues.REVIEW, + destinationFmgPageValue: fmgPageValues.CUSTOMER_DETAILS, }, { scenario: navigationScenarios.CLICKED_FORWARD, From d9e0b0bc1ae559c4d56017d0629c954631ce6872 Mon Sep 17 00:00:00 2001 From: Chloe Herd Date: Tue, 26 Dec 2023 16:44:02 -0500 Subject: [PATCH 2/5] Big shuffle pt. 1 --- src/layouts/payment-method/payment-method.vue | 6 ++++ .../review-block/review-block.spec.js | 2 +- .../review-block/review-block.vue | 17 ----------- .../review-dropdown/review-dropdown.vue | 28 +++++++++++++++++++ .../customer-review/customer-review.spec.js | 2 +- .../customer-review/customer-review.vue | 8 ++---- .../damage-review/damage-review.spec.js | 2 +- .../damage-review/damage-review.vue | 3 +- .../schedule-review/schedule-review.vue | 3 +- .../service-location-review.spec.js | 2 +- .../service-location-review.vue | 3 +- .../service-package-review.spec.js | 2 +- .../service-package-review.vue | 3 +- .../vehicle-review/vehicle-review.spec.js | 2 +- .../vehicle-review/vehicle-review.vue | 3 +- .../{review.spec.js => review.spec.norun.js} | 0 .../review/{review.vue => reviewn.vuenorun} | 0 17 files changed, 47 insertions(+), 39 deletions(-) rename src/layouts/{review => payment-method/review-dropdown}/review-block/review-block.spec.js (91%) rename src/layouts/{review => payment-method/review-dropdown}/review-block/review-block.vue (64%) create mode 100644 src/layouts/payment-method/review-dropdown/review-dropdown.vue rename src/layouts/{review => payment-method/review-dropdown}/review-sections/customer-review/customer-review.spec.js (96%) rename src/layouts/{review => payment-method/review-dropdown}/review-sections/customer-review/customer-review.vue (78%) rename src/layouts/{review => payment-method/review-dropdown}/review-sections/damage-review/damage-review.spec.js (99%) rename src/layouts/{review => payment-method/review-dropdown}/review-sections/damage-review/damage-review.vue (97%) rename src/layouts/{review => payment-method/review-dropdown}/review-sections/schedule-review/schedule-review.vue (85%) rename src/layouts/{review => payment-method/review-dropdown}/review-sections/service-location-review/service-location-review.spec.js (96%) rename src/layouts/{review => payment-method/review-dropdown}/review-sections/service-location-review/service-location-review.vue (92%) rename src/layouts/{review => payment-method/review-dropdown}/review-sections/service-package-review/service-package-review.spec.js (99%) rename src/layouts/{review => payment-method/review-dropdown}/review-sections/service-package-review/service-package-review.vue (96%) rename src/layouts/{review => payment-method/review-dropdown}/review-sections/vehicle-review/vehicle-review.spec.js (90%) rename src/layouts/{review => payment-method/review-dropdown}/review-sections/vehicle-review/vehicle-review.vue (82%) rename src/layouts/review/{review.spec.js => review.spec.norun.js} (100%) rename src/layouts/review/{review.vue => reviewn.vuenorun} (100%) diff --git a/src/layouts/payment-method/payment-method.vue b/src/layouts/payment-method/payment-method.vue index 5311c2728..354700279 100644 --- a/src/layouts/payment-method/payment-method.vue +++ b/src/layouts/payment-method/payment-method.vue @@ -21,6 +21,10 @@
+ + +
+ diff --git a/src/layouts/review/review-block/review-block.spec.js b/src/layouts/payment-method/review-dropdown/review-block/review-block.spec.js similarity index 91% rename from src/layouts/review/review-block/review-block.spec.js rename to src/layouts/payment-method/review-dropdown/review-block/review-block.spec.js index 1a25e8bfd..bf0557d05 100644 --- a/src/layouts/review/review-block/review-block.spec.js +++ b/src/layouts/payment-method/review-dropdown/review-block/review-block.spec.js @@ -1,7 +1,7 @@ import { shallowMount } from "@vue/test-utils"; import { getMountOptions } from "@/helpers/unit-test-helper.js"; import store from "@/store"; -import reviewBlock from "@/layouts/review/review-block/review-block"; +import reviewBlock from "@/layouts/payment-method/review-dropdown/review-block/review-block"; jest.mock("@/helpers/cms-content-helper", () => ({ fetchCmsContentForPage: () => Promise.resolve("content"), diff --git a/src/layouts/review/review-block/review-block.vue b/src/layouts/payment-method/review-dropdown/review-block/review-block.vue similarity index 64% rename from src/layouts/review/review-block/review-block.vue rename to src/layouts/payment-method/review-dropdown/review-block/review-block.vue index f5819ca8c..5bf49809f 100644 --- a/src/layouts/review/review-block/review-block.vue +++ b/src/layouts/payment-method/review-dropdown/review-block/review-block.vue @@ -6,17 +6,6 @@ :customText="customHeaderText" typeStyle="body small bold dark" marginTopSizeOverride="0" /> - - -
+

review component added

+ + + diff --git a/src/layouts/review/review-sections/customer-review/customer-review.spec.js b/src/layouts/payment-method/review-dropdown/review-sections/customer-review/customer-review.spec.js similarity index 96% rename from src/layouts/review/review-sections/customer-review/customer-review.spec.js rename to src/layouts/payment-method/review-dropdown/review-sections/customer-review/customer-review.spec.js index 45627df2e..13138a182 100644 --- a/src/layouts/review/review-sections/customer-review/customer-review.spec.js +++ b/src/layouts/payment-method/review-dropdown/review-sections/customer-review/customer-review.spec.js @@ -1,7 +1,7 @@ import { shallowMount } from "@vue/test-utils"; import { getMountOptions } from "@/helpers/unit-test-helper.js"; -import customerReview from "@/layouts/review/review-sections/customer-review/customer-review"; +import customerReview from "@/layouts/payment-method/review-dropdown/review-sections/customer-review/customer-review"; const testConstants = { cms: { diff --git a/src/layouts/review/review-sections/customer-review/customer-review.vue b/src/layouts/payment-method/review-dropdown/review-sections/customer-review/customer-review.vue similarity index 78% rename from src/layouts/review/review-sections/customer-review/customer-review.vue rename to src/layouts/payment-method/review-dropdown/review-sections/customer-review/customer-review.vue index f3f664927..2fd82c716 100644 --- a/src/layouts/review/review-sections/customer-review/customer-review.vue +++ b/src/layouts/payment-method/review-dropdown/review-sections/customer-review/customer-review.vue @@ -1,13 +1,9 @@ + + From b9e11e7fd2e017ed93fb439cf46db864ee3d13a2 Mon Sep 17 00:00:00 2001 From: Chloe Herd Date: Wed, 27 Dec 2023 12:33:19 -0500 Subject: [PATCH 4/5] Big shuffle pt.2 --- src/layouts/review/review.spec.norun.js | 362 ------------------------ src/layouts/review/reviewn.vuenorun | 330 --------------------- 2 files changed, 692 deletions(-) delete mode 100644 src/layouts/review/review.spec.norun.js delete mode 100644 src/layouts/review/reviewn.vuenorun diff --git a/src/layouts/review/review.spec.norun.js b/src/layouts/review/review.spec.norun.js deleted file mode 100644 index a4f82451d..000000000 --- a/src/layouts/review/review.spec.norun.js +++ /dev/null @@ -1,362 +0,0 @@ -import { shallowMount } from "@vue/test-utils"; -import { getMountOptions } from "@/helpers/unit-test-helper.js"; -import store from "@/store"; - -import review from "@/layouts/review/review"; - -const testConstants = {}; - -jest.mock("@/store", () => ({ - commit: jest.fn(), - dispatch: jest.fn(), -})); - -describe("Review Page", () => { - beforeEach(() => { - store.getters = { - order: { - vehicle: { - year: "2020", - make: "Acura", - model: "MDX", - style: "4 door sedan", - }, - damage: { - isRepair: false, - numberOfChips: 2, - glassToReplace: ["dummy location value"], - }, - lineItems: { - glassParts: ["dummy part value"], - supportingItems: ["dummy supporting item"], - vaps: ["dummy vap"], - }, - serviceLocation: { - address: "address 1", - address2: "address 2", - city: "city", - state: "state", - zipCode: "zip code", - appointmentType: "Mobile", - provider: { - providerNumber: 1, - address: { - streetAddress: "provider address 1", - city: "provider city", - state: "provider state", - zipCode: "provider zip code", - }, - }, - }, - schedule: { - date: "date", - startTime: "start", - endTime: "end", - jobMinMinutes: "30", - jobMaxMinutes: "45", - }, - customer: { - firstName: "first name", - lastName: "last name", - emailAddress: "builddigitaltest@safelite.com", - phoneNumber: "555-555-5555", - isSmsOptIn: true, - }, - }, - }; - }); - describe("arePagePrerequisitesValid", () => { - test("Returns true for baseline valid state", () => { - // Arrange - const { wrapper } = setupMocks({}); - - // Act - const isValid = wrapper.vm.arePagePrerequisitesValid(); - - // Assert - expect(isValid).toBe(true); - }); - test("Returns false for empty state", () => { - // Arrange - store.getters.order = { - vehicle: { - year: null, - make: null, - model: null, - style: null, - carId: null, - category: null, - vin: null, - imageUrl: null, - imageVifNumber: null, - imageColor: null, - registration: { - licensePlate: null, - }, - }, - serviceLocation: { - address: null, - address2: null, - city: null, - state: null, - zipCode: null, - zipCodeCtu: null, - appointmentType: null, - isVehicleProtected: null, - provider: { - providerNumber: null, - address: { - streetAddress: null, - city: null, - state: null, - zipCode: null, - zipCodeCtu: null, - }, - }, - techNotes: null, - }, - customer: { - firstName: null, - lastName: null, - emailAddress: null, - phoneNumber: null, - isSmsOptIn: null, - }, - damage: { - isRepair: null, - numberOfChips: null, - glassToReplace: null, - partQuestionAnswers: null, - moldingQuestionAnswers: null, - capabilityQuestionAnswers: null, - }, - lineItems: { - glassParts: null, - supportingItems: null, - vaps: null, - serverData: null, - }, - payment: { - isInsurance: null, - insuranceCoverage: { - isVerified: null, - coverageStatus: null, - }, - parentAccountNumber: 0, - }, - schedule: { - date: null, - startTime: null, - endTime: null, - routeCode: null, - jobMaxMinutes: null, - jobMinMinutes: null, - }, - referralNumber: null, - referralSequenceNumber: null, - referralDate: null, - referralCorrelationId: null, - eon: null, - }; - - const { wrapper } = setupMocks({}); - - // Act - const isValid = wrapper.vm.arePagePrerequisitesValid(); - - // Assert - expect(isValid).toBe(false); - }); - describe("Damage requirements", () => { - test("Accepts null glassToReplace when is repair", () => { - // Arrange - store.getters.order.damage.isRepair = true; - store.getters.order.damage.glassToReplace = null; - store.getters.order.damage.numberOfChips = 1; - - const { wrapper } = setupMocks({}); - - // Act - const isValid = wrapper.vm.arePagePrerequisitesValid(); - - // Assert - expect(isValid).toBe(true); - }); - test("Rejects 0 chips when repair", () => { - // Arrange - store.getters.order.damage.isRepair = true; - store.getters.order.damage.numberOfChips = 0; - - const { wrapper } = setupMocks({}); - - // Act - const isValid = wrapper.vm.arePagePrerequisitesValid(); - - // Assert - expect(isValid).toBe(false); - }); - test("Rejects null chips when repair", () => { - // Arrange - store.getters.order.damage.isRepair = true; - store.getters.order.damage.numberOfChips = null; - - const { wrapper } = setupMocks({}); - - // Act - const isValid = wrapper.vm.arePagePrerequisitesValid(); - - // Assert - expect(isValid).toBe(false); - }); - test("Accepts null chips when not repair", () => { - // Arrange - store.getters.order.damage.isRepair = false; - store.getters.order.damage.numberOfChips = null; - - const { wrapper } = setupMocks({}); - - // Act - const isValid = wrapper.vm.arePagePrerequisitesValid(); - - // Assert - expect(isValid).toBe(true); - }); - test("Rejects empty glassToReplace when not repair", () => { - // Arrange - store.getters.order.damage.isRepair = false; - store.getters.order.damage.glassToReplace = null; - - const { wrapper } = setupMocks({}); - - // Act - const isValid = wrapper.vm.arePagePrerequisitesValid(); - - // Assert - expect(isValid).toBe(false); - }); - test("Rejects null glassToReplace when not repair", () => { - // Arrange - store.getters.order.damage.isRepair = false; - store.getters.order.damage.glassToReplace = []; - - const { wrapper } = setupMocks({}); - - // Act - const isValid = wrapper.vm.arePagePrerequisitesValid(); - - // Assert - expect(isValid).toBe(false); - }); - }); - describe("Package requirements", () => { - test("Accepts null glassParts when is repair", () => { - // Arrange - store.getters.order.damage.isRepair = true; - store.getters.order.lineItems.glassParts = null; - - const { wrapper } = setupMocks({}); - - // Act - const isValid = wrapper.vm.arePagePrerequisitesValid(); - - // Assert - expect(isValid).toBe(true); - }); - test("Rejects null glassParts when not repair", () => { - // Arrange - store.getters.order.damage.isRepair = false; - store.getters.order.lineItems.glassParts = null; - - const { wrapper } = setupMocks({}); - - // Act - const isValid = wrapper.vm.arePagePrerequisitesValid(); - - // Assert - expect(isValid).toBe(false); - }); - }); - describe("Service Location requirements", () => { - test("Accepts null provider address when mobile appointment", () => { - // Arrange - store.getters.order.serviceLocation.appointmentType = "Mobile"; - store.getters.order.serviceLocation.provider.address = {}; - - const { wrapper } = setupMocks({}); - - // Act - const isValid = wrapper.vm.arePagePrerequisitesValid(); - - // Assert - expect(isValid).toBe(true); - }); - test("Reject null provider address when non-mobile appointment", () => { - // Arrange - store.getters.order.serviceLocation.appointmentType = "Inshop"; - store.getters.order.serviceLocation.provider.address = {}; - - const { wrapper } = setupMocks({}); - - // Act - const isValid = wrapper.vm.arePagePrerequisitesValid(); - - // Assert - expect(isValid).toBe(false); - }); - test("Accepts null service location address when non-mobile appointment", () => { - // Arrange - store.getters.order.serviceLocation.appointmentType = "Inshop"; - store.getters.order.serviceLocation.address = null; - store.getters.order.serviceLocation.address2 = null; - store.getters.order.serviceLocation.zipCode = null; - store.getters.order.serviceLocation.city = null; - store.getters.order.serviceLocation.state = null; - - const { wrapper } = setupMocks({}); - - // Act - const isValid = wrapper.vm.arePagePrerequisitesValid(); - - // Assert - expect(isValid).toBe(true); - }); - test("Rejects null service location address when mobile appointment", () => { - // Arrange - store.getters.order.serviceLocation.appointmentType = "Mobile"; - store.getters.order.serviceLocation.address = null; - store.getters.order.serviceLocation.address2 = null; - store.getters.order.serviceLocation.zipCode = null; - store.getters.order.serviceLocation.city = null; - store.getters.order.serviceLocation.state = null; - - const { wrapper } = setupMocks({}); - - // Act - const isValid = wrapper.vm.arePagePrerequisitesValid(); - - // Assert - expect(isValid).toBe(false); - }); - }); - }); -}); - -function setupMocks(customMountOptions) { - customMountOptions.store = store; - - const mountOptions = getMountOptions(customMountOptions); - - const mockMixin = { - methods: { - getCmsContent: jest.fn((widgetName, cmsFieldName) => { - return `${widgetName} ${cmsFieldName}`; - }), - }, - }; - - mountOptions.global.mixins = [mockMixin]; - - const wrapper = shallowMount(review, mountOptions); - wrapper.vm.setCmsContent = jest.fn(); - return { wrapper }; -} diff --git a/src/layouts/review/reviewn.vuenorun b/src/layouts/review/reviewn.vuenorun deleted file mode 100644 index d6ad0aa82..000000000 --- a/src/layouts/review/reviewn.vuenorun +++ /dev/null @@ -1,330 +0,0 @@ - - - - - From 088800d45f0ca229682a9dbd98c070fdce5e9375 Mon Sep 17 00:00:00 2001 From: Chloe Herd Date: Thu, 28 Dec 2023 09:37:08 -0500 Subject: [PATCH 5/5] Expand toggle --- .../review-block/review-block.vue | 1 - .../review-dropdown/review-dropdown.vue | 75 ++++++++++++++++--- 2 files changed, 65 insertions(+), 11 deletions(-) diff --git a/src/layouts/payment-method/review-dropdown/review-block/review-block.vue b/src/layouts/payment-method/review-dropdown/review-block/review-block.vue index cdf751507..6afd393d5 100644 --- a/src/layouts/payment-method/review-dropdown/review-block/review-block.vue +++ b/src/layouts/payment-method/review-dropdown/review-block/review-block.vue @@ -34,7 +34,6 @@ export default { methods: {}, components: { textBlock, - textLink, }, }; diff --git a/src/layouts/payment-method/review-dropdown/review-dropdown.vue b/src/layouts/payment-method/review-dropdown/review-dropdown.vue index f63af4a8b..321599820 100644 --- a/src/layouts/payment-method/review-dropdown/review-dropdown.vue +++ b/src/layouts/payment-method/review-dropdown/review-dropdown.vue @@ -1,13 +1,17 @@