From da98a327ca63813d7bd8385c11b74424faf9dd74 Mon Sep 17 00:00:00 2001 From: Chloe Herd Date: Tue, 6 Jun 2023 14:19:09 -0400 Subject: [PATCH 01/13] Initial blocking out --- .../customer-review/customer-review.spec.js | 3 ++ .../customer-review/customer-review.vue | 38 +++++++++++++++++++ src/layouts/review/review.vue | 9 +++++ 3 files changed, 50 insertions(+) create mode 100644 src/layouts/review/review-sections/customer-review/customer-review.spec.js create mode 100644 src/layouts/review/review-sections/customer-review/customer-review.vue diff --git a/src/layouts/review/review-sections/customer-review/customer-review.spec.js b/src/layouts/review/review-sections/customer-review/customer-review.spec.js new file mode 100644 index 000000000..ea5ec2f2e --- /dev/null +++ b/src/layouts/review/review-sections/customer-review/customer-review.spec.js @@ -0,0 +1,3 @@ +describe("Customer review Block", () => { + test.todo("Add more tests as specific functionality is added."); +}); diff --git a/src/layouts/review/review-sections/customer-review/customer-review.vue b/src/layouts/review/review-sections/customer-review/customer-review.vue new file mode 100644 index 000000000..1f0b9e2d0 --- /dev/null +++ b/src/layouts/review/review-sections/customer-review/customer-review.vue @@ -0,0 +1,38 @@ + + + diff --git a/src/layouts/review/review.vue b/src/layouts/review/review.vue index 3f7e45639..8c6fbf411 100644 --- a/src/layouts/review/review.vue +++ b/src/layouts/review/review.vue @@ -41,6 +41,12 @@ cmsWidgetName="VehicleReviewWidget" :vehicle="vehicleInfo" @edit-clicked="editVehicle" /> + +
+ +
@@ -60,6 +66,7 @@ import vehicleBanner from "@/fmg-components/vehicle-banner/vehicle-banner"; import buttonMain from "@/ux-components/button-main/button-main"; import textBlock from "@/digital-components/text-block/text-block"; import vehicleReview from "@/layouts/review/review-sections/vehicle-review/vehicle-review"; +import customerReview from "@/layouts/review/review-sections/customer-review/customer-review"; import { fetchCmsContentForPage } from "@/helpers/cms-content-helper"; import { settleAllPromises } from "@/helpers/layout-helper"; @@ -99,6 +106,7 @@ export default { this.$route ); }, + editCustomerDetails() {}, }, computed: { subHeaderTitle() { @@ -121,6 +129,7 @@ export default { buttonMain, textBlock, vehicleReview, + customerReview, }, }; From 2ae0c0922bd93286a5b39150a84cbeab4dc7586f Mon Sep 17 00:00:00 2001 From: Chloe Herd Date: Thu, 10 Aug 2023 12:40:41 -0400 Subject: [PATCH 02/13] Hook into store info --- .../customer-review/customer-review.vue | 23 +++++++++++++++---- src/layouts/review/review.vue | 7 +++--- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/src/layouts/review/review-sections/customer-review/customer-review.vue b/src/layouts/review/review-sections/customer-review/customer-review.vue index 1f0b9e2d0..25c8f91dd 100644 --- a/src/layouts/review/review-sections/customer-review/customer-review.vue +++ b/src/layouts/review/review-sections/customer-review/customer-review.vue @@ -12,6 +12,7 @@ export default { name: "customer-review", props: { cmsWidgetName: String, + customer: Object, }, data() { return {}; @@ -24,12 +25,26 @@ export default { computed: { displayContent() { return [ - "Taylor Schliff", - "taylor.schliff@email.com", - "330-415-2879", - "Opted in to text message updates", + this.fullName, + this.email, + this.phoneNumber, + this.smsOptIn, ]; }, + fullName() { + return `${this.customer?.firstName} ${this.customer?.lastName}`; + }, + email() { + return this.customer?.emailAddress; + }, + phoneNumber() { + return this.customer?.phoneNumber; + }, + smsOptIn() { + return this.customer?.isSmsOptIn + ? "Opted in to text message updates" + : "Opted out of text message updates"; + } }, components: { reviewBlock, diff --git a/src/layouts/review/review.vue b/src/layouts/review/review.vue index 82057ffe4..72847998c 100644 --- a/src/layouts/review/review.vue +++ b/src/layouts/review/review.vue @@ -81,6 +81,7 @@ @@ -209,9 +210,9 @@ export default { appointmentType() { return this.$store.getters.order.serviceLocation.appointmentType; }, - exposeCms() { - return this.$root.cmsContentByWidget; - }, + customerInfo() { + return this.$store.getters.order.customer; + } }, components: { funnelHeader, From bc3b713e113d7d69faaba733ef0cc78941d1cd63 Mon Sep 17 00:00:00 2001 From: Chloe Herd Date: Thu, 10 Aug 2023 16:49:14 -0400 Subject: [PATCH 03/13] Use Cms defined text --- .../customer-review/customer-review.vue | 21 +++++++------------ 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/src/layouts/review/review-sections/customer-review/customer-review.vue b/src/layouts/review/review-sections/customer-review/customer-review.vue index 25c8f91dd..678dcf0b6 100644 --- a/src/layouts/review/review-sections/customer-review/customer-review.vue +++ b/src/layouts/review/review-sections/customer-review/customer-review.vue @@ -1,8 +1,5 @@ diff --git a/src/layouts/review/review.vue b/src/layouts/review/review.vue index 72847998c..d99ba1cda 100644 --- a/src/layouts/review/review.vue +++ b/src/layouts/review/review.vue @@ -89,6 +89,8 @@
+ + From 17f149af4300ba793d7f8eee5a58447aad4e210f Mon Sep 17 00:00:00 2001 From: Chloe Herd Date: Thu, 10 Aug 2023 17:13:38 -0400 Subject: [PATCH 05/13] Add sms opt-in and disclaimer --- .../customer-details-modal-question.vue | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/layouts/review/review-sections/customer-review/customer-details-modal-question/customer-details-modal-question.vue b/src/layouts/review/review-sections/customer-review/customer-details-modal-question/customer-details-modal-question.vue index 8133e7685..f02ecd3b4 100644 --- a/src/layouts/review/review-sections/customer-review/customer-details-modal-question/customer-details-modal-question.vue +++ b/src/layouts/review/review-sections/customer-review/customer-details-modal-question/customer-details-modal-question.vue @@ -38,6 +38,11 @@ ref="phoneNumber" isRequired validation-rules="" /> + + @@ -48,6 +53,8 @@ import modal from "@/digital-components/modal/modal"; import textboxQuestion from "@/digital-components/textbox-question/textbox-question"; import phoneNumberQuestion from "@/digital-components/phone-number-question/phone-number-question"; +import checkboxQuestion from "@/digital-components/checkbox-question/checkbox-question"; +import textBlock from "@/digital-components/text-block/text-block"; export default { name: "customer-details-modal-question", @@ -85,6 +92,8 @@ export default { modal, textboxQuestion, phoneNumberQuestion, + checkboxQuestion, + textBlock, }, }; From 54d155be4d5865950d19c6be846b44fd70119cbf Mon Sep 17 00:00:00 2001 From: Chloe Herd Date: Tue, 15 Aug 2023 10:15:20 -0400 Subject: [PATCH 06/13] Populate fields and detect changes on submit. --- .../customer-details-modal-question.vue | 29 +++++++++++++++++-- src/layouts/review/review.vue | 4 ++- 2 files changed, 29 insertions(+), 4 deletions(-) diff --git a/src/layouts/review/review-sections/customer-review/customer-details-modal-question/customer-details-modal-question.vue b/src/layouts/review/review-sections/customer-review/customer-details-modal-question/customer-details-modal-question.vue index f02ecd3b4..5e8feef9a 100644 --- a/src/layouts/review/review-sections/customer-review/customer-details-modal-question/customer-details-modal-question.vue +++ b/src/layouts/review/review-sections/customer-review/customer-details-modal-question/customer-details-modal-question.vue @@ -68,11 +68,22 @@ export default { isSmsOptIn: false, }; }, - props: {}, + props: { + previousCustomerValues: Object, + }, computed: { modal() { return this.$refs.CustomerDetailsModal; }, + haveCustomerDetailsChanged() { + return ( + this.firstName !== this.previousCustomerValues?.firstName || + this.lastName !== this.previousCustomerValues?.lastName || + this.emailAddress !== this.previousCustomerValues?.emailAddress || + this.phoneNumber !== this.previousCustomerValues?.phoneNumber || + this.isSmsOptIn !== this.previousCustomerValues?.isSmsOptIn + ); + }, }, methods: { openModal() { @@ -81,12 +92,24 @@ export default { closeModal() { this.modal.closeModal(); }, - onModalOpened() {}, + onModalOpened() { + this.firstName = this.previousCustomerValues?.firstName ?? ""; + this.lastName = this.previousCustomerValues?.lastName ?? ""; + this.emailAddress = this.previousCustomerValues?.emailAddress ?? ""; + this.phoneNumber = this.previousCustomerValues?.phoneNumber ?? ""; + this.isSmsOptIn = this.previousCustomerValues?.isSmsOptIn ?? false; + }, onModalClosed() {}, setModalStatus(isOpened) { this.isModalOpened = isOpened; }, - setContactDetails() {}, + async setContactDetails() { + if (this.haveCustomerDetailsChanged) { + console.log("change detected"); + } + + this.closeModal(); + }, }, components: { modal, diff --git a/src/layouts/review/review.vue b/src/layouts/review/review.vue index d99ba1cda..fe14e8f7e 100644 --- a/src/layouts/review/review.vue +++ b/src/layouts/review/review.vue @@ -89,7 +89,9 @@
- + Date: Tue, 15 Aug 2023 13:22:15 -0400 Subject: [PATCH 07/13] Commit changed values to store on submit. --- .../customer-details-modal-question.vue | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/layouts/review/review-sections/customer-review/customer-details-modal-question/customer-details-modal-question.vue b/src/layouts/review/review-sections/customer-review/customer-details-modal-question/customer-details-modal-question.vue index 5e8feef9a..3ce86e39b 100644 --- a/src/layouts/review/review-sections/customer-review/customer-details-modal-question/customer-details-modal-question.vue +++ b/src/layouts/review/review-sections/customer-review/customer-details-modal-question/customer-details-modal-question.vue @@ -105,7 +105,17 @@ export default { }, async setContactDetails() { if (this.haveCustomerDetailsChanged) { - console.log("change detected"); + await this.dispatchStoreAction( + this.storeActions.SAVE_CUSTOMER_DETAILS, + { + firstName: this.firstName, + lastName: this.lastName, + emailAddress: this.emailAddress, + phoneNumber: this.phoneNumber, + isSmsOptIn: this.isSmsOptIn, + }, + false + ); } this.closeModal(); From 4f53a1fa45f76aab0a3d700198d2800967b73dec Mon Sep 17 00:00:00 2001 From: Chloe Herd Date: Tue, 15 Aug 2023 13:22:48 -0400 Subject: [PATCH 08/13] Compute cms without reloading page. --- .../review-sections/customer-review/customer-review.vue | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/layouts/review/review-sections/customer-review/customer-review.vue b/src/layouts/review/review-sections/customer-review/customer-review.vue index 678dcf0b6..d8777d9e4 100644 --- a/src/layouts/review/review-sections/customer-review/customer-review.vue +++ b/src/layouts/review/review-sections/customer-review/customer-review.vue @@ -36,7 +36,10 @@ export default { return this.customer?.phoneNumber; }, smsOptIn() { - return this.getCmsContent(this.cmsWidgetName, "SubheaderText"); + const rawCmsText = this.getCmsContent(this.cmsWidgetName, "SubheaderText"); + const joinerText = this.customer?.isSmsOptIn ? "in to" : "out of"; + + return rawCmsText.replace("{custom:smsOptInJoiner}", joinerText); }, }, components: { From 24042ba11125e5052abfbb653f527c56c07f2a3b Mon Sep 17 00:00:00 2001 From: Chloe Herd Date: Tue, 15 Aug 2023 14:10:02 -0400 Subject: [PATCH 09/13] Add tests for customer-review --- .../customer-review/customer-review.spec.js | 160 +++++++++++++++++- 1 file changed, 158 insertions(+), 2 deletions(-) diff --git a/src/layouts/review/review-sections/customer-review/customer-review.spec.js b/src/layouts/review/review-sections/customer-review/customer-review.spec.js index ea5ec2f2e..1bcbbe83b 100644 --- a/src/layouts/review/review-sections/customer-review/customer-review.spec.js +++ b/src/layouts/review/review-sections/customer-review/customer-review.spec.js @@ -1,3 +1,159 @@ -describe("Customer review Block", () => { - test.todo("Add more tests as specific functionality is added."); +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"; + +const testConstants = { + cms: { + header: { + text: "Header", + }, + sms: { + template: "Test {custom:smsOptInJoiner}", + expected: { + ifTrue: "Test in to", + ifFalse: "Test out of", + }, + }, + }, + customer: { + firstName: "First", + lastName: "Last", + phoneNumber: "111-111-1111", + emailAddress: "builddigitaltest@safelite.com", + isSmsOptIn: false, + }, + displayContent: { + fullName: "First Last", + phoneNumber: "111-111-1111", + emailAddress: "builddigitaltest@safelite.com", + smsOptIn: "Test out of", + }, +}; + +let cmsContent; + +describe("Customer Review Block", () => { + beforeEach(() => { + cmsContent = { + CustomerWidget: { + HeaderText: testConstants.cms.header.text, + SubheaderText: testConstants.cms.sms.template, + }, + }; + }); + + test("Should display header text from cms", async () => { + // Arrange + let props = generateDefaultProps(); + + const { wrapper } = setupMocks({ + propsData: props, + }); + + // Act + await wrapper.vm.$nextTick(); + + // Assert + expect(wrapper.vm.header).toEqual(testConstants.cms.header.text); + }); + + describe("SMS Opt In Text", () => { + test("Should render correctly when opt in is true:", async () => { + // Arrange + let props = generateDefaultProps(); + props.customer.isSmsOptIn = true; + + const { wrapper } = setupMocks({ + propsData: props, + }); + + // Act + await wrapper.vm.$nextTick(); + + // Assert + expect(wrapper.vm.smsOptIn).toEqual(testConstants.cms.sms.expected.ifTrue); + }); + test("Should render correctly when opt in is false:", async () => { + // Arrange + let props = generateDefaultProps(); + props.customer.isSmsOptIn = false; + + const { wrapper } = setupMocks({ + propsData: props, + }); + + // Act + await wrapper.vm.$nextTick(); + + // Assert + expect(wrapper.vm.smsOptIn).toEqual(testConstants.cms.sms.expected.ifFalse); + }); + test("Should render correctly when opt in is null:", async () => { + // Arrange + let props = generateDefaultProps(); + props.customer.isSmsOptIn = null; + + const { wrapper } = setupMocks({ + propsData: props, + }); + + // Act + await wrapper.vm.$nextTick(); + + // Assert + expect(wrapper.vm.smsOptIn).toEqual(testConstants.cms.sms.expected.ifFalse); + }); + }); + + test("Should render correct display content", async () => { + // Arrange + let props = generateDefaultProps(); + + const { wrapper } = setupMocks({ + propsData: props, + }); + + // Act + await wrapper.vm.$nextTick(); + + // Assert + expect(wrapper.vm.displayContent).toEqual([ + testConstants.displayContent.fullName, + testConstants.displayContent.emailAddress, + testConstants.displayContent.phoneNumber, + testConstants.displayContent.smsOptIn, + ]); + }); }); + +function generateDefaultProps() { + return { + cmsWidgetName: "CustomerWidget", + customer: { + firstName: testConstants.customer.firstName, + lastName: testConstants.customer.lastName, + phoneNumber: testConstants.customer.phoneNumber, + emailAddress: testConstants.customer.emailAddress, + isSmsOptIn: testConstants.customer.isSmsOptIn, + }, + }; +} + +function setupMocks(customMountOptions) { + const mountOptions = getMountOptions(customMountOptions); + + const mockMixin = { + methods: { + getCmsContent: jest.fn((widgetName, cmsFieldName) => { + return cmsContent?.[widgetName]?.[cmsFieldName] ?? ""; + }), + }, + }; + + mountOptions.global.mixins = [mockMixin]; + + const wrapper = shallowMount(customerReview, mountOptions); + wrapper.vm.setCmsContent = jest.fn(); + return { wrapper }; +} From cba95f7e60181aae7e1f9784665b1ade4a00a5bb Mon Sep 17 00:00:00 2001 From: Chloe Herd Date: Tue, 15 Aug 2023 15:57:41 -0400 Subject: [PATCH 10/13] Add tests for modal --- .../customer-details-modal-question.spec.js | 148 ++++++++++++++++++ 1 file changed, 148 insertions(+) create mode 100644 src/layouts/review/review-sections/customer-review/customer-details-modal-question/customer-details-modal-question.spec.js diff --git a/src/layouts/review/review-sections/customer-review/customer-details-modal-question/customer-details-modal-question.spec.js b/src/layouts/review/review-sections/customer-review/customer-details-modal-question/customer-details-modal-question.spec.js new file mode 100644 index 000000000..b87653c73 --- /dev/null +++ b/src/layouts/review/review-sections/customer-review/customer-details-modal-question/customer-details-modal-question.spec.js @@ -0,0 +1,148 @@ +import { shallowMount } from "@vue/test-utils"; +import { getMountOptions } from "@/helpers/unit-test-helper.js"; + +import customerDetailsModalQuestion from "@/layouts/review/review-sections/customer-review/customer-details-modal-question/customer-details-modal-question"; + +const testConstants = { + previousCustomerValues: { + firstName: "First", + lastName: "Last", + emailAddress: "builddigitaltest@safelite.com", + phoneNumber: "111-111-1111", + isSmsOptIn: false, + }, + newValues: { + firstName: "New First", + lastName: "New Last", + emailAddress: "builddigitaltest@safelite.com - new", + phoneNumber: "222-222-2222", + isSmsOptIn: true, + }, +}; + +let cmsContent; + +describe("Customer Details Modal", () => { + beforeEach(() => { + cmsContent = {}; + }); + + describe("Submit", () => { + test("Should push to store if a field has changed", async () => { + // Arrange + let props = generateDefaultProps(); + + const { wrapper } = setupMocks({ + propsData: props, + }); + + // Act + wrapper.vm.onModalOpened(); + + wrapper.vm.firstName = testConstants.newValues.firstName; + + await wrapper.vm.setContactDetails(); + await wrapper.vm.$nextTick(); + + // Assert + expect(wrapper.vm.dispatchStoreAction).toHaveBeenCalled(); + }); + + test("Should not push to store if no fields have changed", async () => { + // Arrange + let props = generateDefaultProps(); + + const { wrapper } = setupMocks({ + propsData: props, + }); + + // Act + wrapper.vm.onModalOpened(); + + await wrapper.vm.setContactDetails(); + await wrapper.vm.$nextTick(); + + // Assert + expect(wrapper.vm.dispatchStoreAction).not.toHaveBeenCalled(); + }); + }); + + describe("Default values", () => { + test("Should populate on open", () => { + // Arrange + let props = generateDefaultProps(); + + const { wrapper } = setupMocks({ + propsData: props, + }); + + // Act + wrapper.vm.onModalOpened(); + + // Assert + expect(wrapper.vm.firstName).toBe(testConstants.previousCustomerValues.firstName); + expect(wrapper.vm.lastName).toBe(testConstants.previousCustomerValues.lastName); + expect(wrapper.vm.emailAddress).toBe(testConstants.previousCustomerValues.emailAddress); + expect(wrapper.vm.phoneNumber).toBe(testConstants.previousCustomerValues.phoneNumber); + expect(wrapper.vm.isSmsOptIn).toBe(testConstants.previousCustomerValues.isSmsOptIn); + }); + + test("Should replace old values on open", async () => { + // Arrange + let props = generateDefaultProps(); + + const { wrapper } = setupMocks({ + propsData: props, + }); + + // Act + wrapper.vm.firstName = testConstants.newValues.firstName; + wrapper.vm.lastName = testConstants.newValues.lastName; + wrapper.vm.emailAddress = testConstants.newValues.emailAddress; + wrapper.vm.phoneNumber = testConstants.newValues.phoneNumber; + wrapper.vm.isSmsOptIn = testConstants.newValues.isSmsOptIn; + + wrapper.vm.onModalOpened(); + + // Assert + expect(wrapper.vm.firstName).toBe(testConstants.previousCustomerValues.firstName); + expect(wrapper.vm.lastName).toBe(testConstants.previousCustomerValues.lastName); + expect(wrapper.vm.emailAddress).toBe(testConstants.previousCustomerValues.emailAddress); + expect(wrapper.vm.phoneNumber).toBe(testConstants.previousCustomerValues.phoneNumber); + expect(wrapper.vm.isSmsOptIn).toBe(testConstants.previousCustomerValues.isSmsOptIn); + }); + }); +}); + +function generateDefaultProps() { + return { + previousCustomerValues: { + firstName: testConstants.previousCustomerValues.firstName, + lastName: testConstants.previousCustomerValues.lastName, + emailAddress: testConstants.previousCustomerValues.emailAddress, + phoneNumber: testConstants.previousCustomerValues.phoneNumber, + isSmsOptIn: testConstants.previousCustomerValues.isSmsOptIn, + }, + }; +} + +function setupMocks(customMountOptions) { + const mountOptions = getMountOptions(customMountOptions); + + const mockMixin = { + methods: { + getCmsContent: jest.fn((widgetName, cmsFieldName) => { + return cmsContent?.[widgetName]?.[cmsFieldName] ?? ""; + }), + }, + }; + + mountOptions.global.mixins = [mockMixin]; + + const wrapper = shallowMount(customerDetailsModalQuestion, mountOptions); + wrapper.vm.setCmsContent = jest.fn(); + wrapper.vm.openModal = jest.fn(); + wrapper.vm.closeModal = jest.fn(); + wrapper.vm.dispatchStoreAction = jest.fn(); + return { wrapper }; +} From 985577202aa90c324032c2912ece343c411a61d1 Mon Sep 17 00:00:00 2001 From: Chloe Herd Date: Tue, 15 Aug 2023 15:59:22 -0400 Subject: [PATCH 11/13] Check for closing modal as well. --- .../customer-details-modal-question.spec.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/layouts/review/review-sections/customer-review/customer-details-modal-question/customer-details-modal-question.spec.js b/src/layouts/review/review-sections/customer-review/customer-details-modal-question/customer-details-modal-question.spec.js index b87653c73..0368effff 100644 --- a/src/layouts/review/review-sections/customer-review/customer-details-modal-question/customer-details-modal-question.spec.js +++ b/src/layouts/review/review-sections/customer-review/customer-details-modal-question/customer-details-modal-question.spec.js @@ -46,6 +46,7 @@ describe("Customer Details Modal", () => { // Assert expect(wrapper.vm.dispatchStoreAction).toHaveBeenCalled(); + expect(wrapper.vm.closeModal).toHaveBeenCalled(); }); test("Should not push to store if no fields have changed", async () => { @@ -64,6 +65,7 @@ describe("Customer Details Modal", () => { // Assert expect(wrapper.vm.dispatchStoreAction).not.toHaveBeenCalled(); + expect(wrapper.vm.closeModal).toHaveBeenCalled(); }); }); From 183e183987093317e0582acdb4cea6a25522990a Mon Sep 17 00:00:00 2001 From: Chloe Herd Date: Tue, 15 Aug 2023 16:40:45 -0400 Subject: [PATCH 12/13] Add form validation --- .../customer-details-modal-question.spec.js | 2 +- .../customer-details-modal-question.vue | 24 +++++++++++++++---- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/src/layouts/review/review-sections/customer-review/customer-details-modal-question/customer-details-modal-question.spec.js b/src/layouts/review/review-sections/customer-review/customer-details-modal-question/customer-details-modal-question.spec.js index 0368effff..a8e0a6f7b 100644 --- a/src/layouts/review/review-sections/customer-review/customer-details-modal-question/customer-details-modal-question.spec.js +++ b/src/layouts/review/review-sections/customer-review/customer-details-modal-question/customer-details-modal-question.spec.js @@ -14,7 +14,7 @@ const testConstants = { newValues: { firstName: "New First", lastName: "New Last", - emailAddress: "builddigitaltest@safelite.com - new", + emailAddress: "builddigitaltest2@safelite.com", phoneNumber: "222-222-2222", isSmsOptIn: true, }, diff --git a/src/layouts/review/review-sections/customer-review/customer-details-modal-question/customer-details-modal-question.vue b/src/layouts/review/review-sections/customer-review/customer-details-modal-question/customer-details-modal-question.vue index 3ce86e39b..0b08abee7 100644 --- a/src/layouts/review/review-sections/customer-review/customer-details-modal-question/customer-details-modal-question.vue +++ b/src/layouts/review/review-sections/customer-review/customer-details-modal-question/customer-details-modal-question.vue @@ -16,28 +16,28 @@ v-model="firstName" ref="firstName" customInputId="firstName" - validation-rules="" /> + validation-rules="first-name-required" /> + validation-rules="last-name-required" /> + validation-rules="email-address-required|email-address-format" /> + validation-rules="phone-number-required" /> Date: Tue, 15 Aug 2023 16:46:25 -0400 Subject: [PATCH 13/13] Removed test navigation scenario to fix url --- src/router/index.js | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/router/index.js b/src/router/index.js index 6d812f847..e8fbf4d26 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -31,11 +31,6 @@ import { applicationConfig } from "../constants/application-config"; import review from "@/layouts/review/review"; import paymentMethod from "@/layouts/payment-method/payment-method"; const routes = [ - { - path: "/review", // This is a temporary route for testing. - name: "review", - component: review, - }, { path: "/payment-method", // This is a temporary route for testing. name: "payment-method",