From b1e160310d04ee22024dd18ebbcd0c6f220e626e Mon Sep 17 00:00:00 2001 From: Sravan Gopathi Date: Mon, 10 Apr 2023 08:44:39 -0400 Subject: [PATCH 01/32] Implemented Front End changes as per the card#1204 --- .../service-location-helper.js | 2 +- .../service-location/service-location.spec.js | 1 + src/store/index.js | 14 ++++++++++++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/layouts/service-location/helpers/service-location-helper/service-location-helper.js b/src/layouts/service-location/helpers/service-location-helper/service-location-helper.js index 157c28f2b..24be20fc8 100644 --- a/src/layouts/service-location/helpers/service-location-helper/service-location-helper.js +++ b/src/layouts/service-location/helpers/service-location-helper/service-location-helper.js @@ -35,7 +35,7 @@ export async function getServiceabilityDetails(serviceZipCode, lineItems) { storeActions.GET_SERVICEABILITY_DETAILS, { serviceZipCode: serviceZipCode, - lineItems: lineItems, + lineItems: lineItems }, false ); diff --git a/src/layouts/service-location/service-location.spec.js b/src/layouts/service-location/service-location.spec.js index aad61b630..d7f5348b9 100644 --- a/src/layouts/service-location/service-location.spec.js +++ b/src/layouts/service-location/service-location.spec.js @@ -39,6 +39,7 @@ const mockGetServiceabilityDetails = (mockServiceZipCode) => { isRecalibrationServiceableInshop: true, isGlassServiceableMobile: true, isRecalibrationServiceableMobile: true, + IsServiceability:true, }; return Promise.resolve(serviceabilityDetails); diff --git a/src/store/index.js b/src/store/index.js index 6da7550a2..0549ed8c4 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -941,6 +941,20 @@ export const actions = { // const lineItems = context.getters.order.lineItems; // const lineItemsToSend = [...lineItems.supportingItems]; // const encodedLineItems = encodeURIComponent(JSON.stringify(lineItemsToSend)); + + //TODO: Restore this when CSR-1204 is 100% complete. Line# 958 to 961 should be removed Begin + // const vehicle = context.getters.vehicle; + // const carId = vehicle.carId; + // const damage = context.getters.damage; + // const glassArray = damage.glassToReplace; + // // create a new array to avoid mutating state + // const glassArrayForPayload = convertGlassPieceNamingForApi(glassArray); + // return globalMethods.callHttpClient({ + // method: endpoints.GetServiceabilityDetails.method, + // endpoint: `${endpoints.GetServiceabilityDetails.url}?zip=${serviceZipCode}&lineItems=${encodedLineItems}&carId=${carId}&glassPieces=${glassArrayForPayload}`, + // }); + //TODO: Restore this when CSR-1204 is 100% complete End + // return globalMethods.callHttpClient({ // method: endpoints.GetServiceabilityDetails.method, // endpoint: `${endpoints.GetServiceabilityDetails.url}?zip=${serviceZipCode}&lineItems=${encodedLineItems}`, From c5d317e4b7f7f978d000d4a7300876ffdbb0637d Mon Sep 17 00:00:00 2001 From: Leah Schumann Date: Wed, 3 May 2023 13:59:44 -0400 Subject: [PATCH 02/32] Added scrollToPageTop to menu-modal --- src/constants/endpoints.js | 2 +- src/constants/store-actions.js | 2 +- src/digital-components/button-question/button-question.vue | 1 - src/fmg-components/funnel-header/menu-modal/menu-modal.vue | 6 ++---- .../service-location/shop-question/shop-question.spec.js | 4 ++-- .../service-location/shop-question/shop-question.vue | 6 +++--- src/store/index.js | 7 ++++--- 7 files changed, 13 insertions(+), 15 deletions(-) diff --git a/src/constants/endpoints.js b/src/constants/endpoints.js index 08f429b5e..f8fe4ab89 100644 --- a/src/constants/endpoints.js +++ b/src/constants/endpoints.js @@ -90,7 +90,7 @@ const endpoints = { url: "/parts/api/v1/parts/supporting-items", method: "POST", }, - GetProviderLocations: { + GetProviders: { url: "/location/api/v1/location/providers", method: "GET", }, diff --git a/src/constants/store-actions.js b/src/constants/store-actions.js index db15e9854..1143a4dd9 100644 --- a/src/constants/store-actions.js +++ b/src/constants/store-actions.js @@ -31,7 +31,7 @@ const storeActions = { GET_MOLDING_QUESTIONS: "getMoldingQuestions", GET_MOBILE_FEE_PART: "getMobileFeePart", GET_SERVICEABILITY_DETAILS: "getServiceabilityDetails", - GET_PROVIDER_LOCATIONS: "getProviderLocations", + GET_PROVIDERS: "getProviders", SAVE_SESSION: "saveSession", LOAD_SESSION: "loadSession", UPDATE_STORE_WITH_SAVE_SESSION_RESPONSE: "updateStoreWithSaveSessionResponse", diff --git a/src/digital-components/button-question/button-question.vue b/src/digital-components/button-question/button-question.vue index e98ef2901..245543937 100644 --- a/src/digital-components/button-question/button-question.vue +++ b/src/digital-components/button-question/button-question.vue @@ -129,7 +129,6 @@ export default { valueToLogType: String, additionalButtonStyling: String, isSmallQuestionText: Boolean, - availability: String, customButtonQuestionId: String, logDisplayedValuesEvent: { type: Boolean, diff --git a/src/fmg-components/funnel-header/menu-modal/menu-modal.vue b/src/fmg-components/funnel-header/menu-modal/menu-modal.vue index ccf2c38e0..55ff95c48 100644 --- a/src/fmg-components/funnel-header/menu-modal/menu-modal.vue +++ b/src/fmg-components/funnel-header/menu-modal/menu-modal.vue @@ -66,6 +66,7 @@ diff --git a/src/store/index.js b/src/store/index.js index 1548dd702..a61df90d6 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -681,6 +681,15 @@ export const actions = { }); }, + // Location API Actions + getAlertReasonsByCtu(context, { ctu }) { + return globalMethods.callHttpClient({ + method: endpoints.GetAlertReasons.method, + endpoint: `${endpoints.GetAlertReasons.url}/${ctu}`, + payload: {}, + }); + }, + // Misc Actions updateStoreWithSaveSessionResponse( context, From 8a55e1dbdd52b21eb655393c355a544b10e21e2c Mon Sep 17 00:00:00 2001 From: Bill Richardson Date: Tue, 9 May 2023 14:09:50 -0400 Subject: [PATCH 11/32] more inline with other page patterns --- .../schedule/helpers/schedule-helper.js | 13 ++++++ src/layouts/schedule/schedule.vue | 45 ++++++++++++------- 2 files changed, 42 insertions(+), 16 deletions(-) create mode 100644 src/layouts/schedule/helpers/schedule-helper.js diff --git a/src/layouts/schedule/helpers/schedule-helper.js b/src/layouts/schedule/helpers/schedule-helper.js new file mode 100644 index 000000000..1b743d8ac --- /dev/null +++ b/src/layouts/schedule/helpers/schedule-helper.js @@ -0,0 +1,13 @@ +import { storeActions } from "@/constants/store-actions"; +import baseMixin from "@/mixins/base-mixin.js"; + +export async function getAlertReasons(ctu) { + const alertReasons = await baseMixin.methods.dispatchStoreAction( + storeActions.GET_ALERT_REASONS_BY_CTU, + { + ctu: ctu, + } + ) + + return Promise.resolve(alertReasons); +} \ No newline at end of file diff --git a/src/layouts/schedule/schedule.vue b/src/layouts/schedule/schedule.vue index e3eb56525..bc980553d 100644 --- a/src/layouts/schedule/schedule.vue +++ b/src/layouts/schedule/schedule.vue @@ -57,6 +57,9 @@ import datePicker from "@/digital-components/date-picker/date-picker"; import { fetchCmsContentForPage } from "@/helpers/cms-content-helper"; import { settleAllPromises } from "@/helpers/layout-helper"; import { navigateToHeritageFunnel } from "@/helpers/heritage-integration/navigation-helper"; +import { + getAlertReasons, +} from "@/layouts/schedule/helpers/schedule-helper"; import { doesCopyContainRouterLink, splitCopyOnCMSPlaceHolder, @@ -75,6 +78,7 @@ export default { data() { return { selectedDate: null, + alertReasons: [], weatherAlerts: [], mockSelectableDatesData: [ { year: 2023, month: 4, date: 13 }, @@ -94,19 +98,26 @@ export default { // Call APIs const cmsContentPromise = fetchCmsContentForPage(to.query.fmgPage); + const alertReasonsPromise = getAlertReasons(store.getters.order.serviceLocation.zipCodeCtu); + // Settle promises and get results const promiseResultMap = [ { resultKey: "cmsContent", promise: cmsContentPromise, }, + { + resultKey: "alertReasons", + promise: alertReasonsPromise, + }, ]; const resultMap = await settleAllPromises(promiseResultMap); - + // Call the "next" function to complete the transition to this page. next((vm) => { vm.setCmsContent(resultMap.cmsContent); + vm.setData(resultMap.alertReasons); }); }, computed: { @@ -130,25 +141,28 @@ export default { return true; // NEED TODO - WHAT ARE PAGE REQ'S FOR THIS PAGE? }, + setData(alertReasonsData) { + if (alertReasonsData) { + this.convertReasonsToCmsAlerts(alertReasonsData); + } + }, cmsHeadlineTextFound(widgetName) { return this.getCmsContent(widgetName, "HeadlineText") !== "" }, - async getAlertReasons(ctu) { - await this.dispatchStoreAction( - storeActions.GET_ALERT_REASONS_BY_CTU, - { - ctu: ctu, - } - ) + convertReasonsToCmsAlerts(data) { + this.weatherAlerts = data.reduce((newObj, alert) => { + newObj.push({ + cmsWidgetName: `LocationAlert-${alert}`, + alertReason: alert, + }); + return newObj; + }, []); + }, + async getWeatherAlertReasons(ctu) { + await getAlertReasons(ctu) .then((response) => { if (response.data) { - this.weatherAlerts = response.data.reduce((newObj, alert) => { - newObj.push({ - cmsWidgetName: `LocationAlert-${alert}`, - alertReason: alert, - }); - return newObj; - }, []); + this.convertReasonsToCmsAlerts(response.data); } }) .catch(() => { @@ -178,7 +192,6 @@ export default { datePicker, }, mounted() { - this.getAlertReasons(this.getServiceZipCtuCodeFromStore()); }, }; From 166d52467e22dc7d3082ed796becb5b532f35260 Mon Sep 17 00:00:00 2001 From: Bill Richardson Date: Tue, 9 May 2023 15:39:48 -0400 Subject: [PATCH 12/32] remove unused import --- src/layouts/schedule/schedule.vue | 1 - 1 file changed, 1 deletion(-) diff --git a/src/layouts/schedule/schedule.vue b/src/layouts/schedule/schedule.vue index bc980553d..c4aeff7eb 100644 --- a/src/layouts/schedule/schedule.vue +++ b/src/layouts/schedule/schedule.vue @@ -68,7 +68,6 @@ import { } from "@/helpers/cms-content-helper"; import { errorMessages } from "@/constants/error-messages"; import { required } from "@/helpers/validation-rules"; -import { storeActions } from "@/constants/store-actions"; import store from "@/store"; defineRule("date-required", required(errorMessages.DATE_REQUIRED)); From 0307ab1c0ac549cefe3f43139fa92b118ee884ff Mon Sep 17 00:00:00 2001 From: Bill Richardson Date: Wed, 10 May 2023 10:56:08 -0400 Subject: [PATCH 13/32] unneeded variable --- src/layouts/schedule/schedule.vue | 1 - 1 file changed, 1 deletion(-) diff --git a/src/layouts/schedule/schedule.vue b/src/layouts/schedule/schedule.vue index c4aeff7eb..b2e8b0a05 100644 --- a/src/layouts/schedule/schedule.vue +++ b/src/layouts/schedule/schedule.vue @@ -77,7 +77,6 @@ export default { data() { return { selectedDate: null, - alertReasons: [], weatherAlerts: [], mockSelectableDatesData: [ { year: 2023, month: 4, date: 13 }, From 78ec13b7febee20a0f4e1a140d7ad93ed6935711 Mon Sep 17 00:00:00 2001 From: Bill Richardson Date: Wed, 10 May 2023 11:07:49 -0400 Subject: [PATCH 14/32] prettier'd --- .../schedule/helpers/schedule-helper.js | 16 +++++------ src/layouts/schedule/schedule.vue | 27 +++++++++---------- 2 files changed, 20 insertions(+), 23 deletions(-) diff --git a/src/layouts/schedule/helpers/schedule-helper.js b/src/layouts/schedule/helpers/schedule-helper.js index 1b743d8ac..005bd4b19 100644 --- a/src/layouts/schedule/helpers/schedule-helper.js +++ b/src/layouts/schedule/helpers/schedule-helper.js @@ -2,12 +2,12 @@ import { storeActions } from "@/constants/store-actions"; import baseMixin from "@/mixins/base-mixin.js"; export async function getAlertReasons(ctu) { - const alertReasons = await baseMixin.methods.dispatchStoreAction( - storeActions.GET_ALERT_REASONS_BY_CTU, - { - ctu: ctu, - } - ) + const alertReasons = await baseMixin.methods.dispatchStoreAction( + storeActions.GET_ALERT_REASONS_BY_CTU, + { + ctu: ctu, + } + ); - return Promise.resolve(alertReasons); -} \ No newline at end of file + return Promise.resolve(alertReasons); +} diff --git a/src/layouts/schedule/schedule.vue b/src/layouts/schedule/schedule.vue index b2e8b0a05..83c3562bf 100644 --- a/src/layouts/schedule/schedule.vue +++ b/src/layouts/schedule/schedule.vue @@ -57,9 +57,7 @@ import datePicker from "@/digital-components/date-picker/date-picker"; import { fetchCmsContentForPage } from "@/helpers/cms-content-helper"; import { settleAllPromises } from "@/helpers/layout-helper"; import { navigateToHeritageFunnel } from "@/helpers/heritage-integration/navigation-helper"; -import { - getAlertReasons, -} from "@/layouts/schedule/helpers/schedule-helper"; +import { getAlertReasons } from "@/layouts/schedule/helpers/schedule-helper"; import { doesCopyContainRouterLink, splitCopyOnCMSPlaceHolder, @@ -111,7 +109,7 @@ export default { ]; const resultMap = await settleAllPromises(promiseResultMap); - + // Call the "next" function to complete the transition to this page. next((vm) => { vm.setCmsContent(resultMap.cmsContent); @@ -145,7 +143,7 @@ export default { } }, cmsHeadlineTextFound(widgetName) { - return this.getCmsContent(widgetName, "HeadlineText") !== "" + return this.getCmsContent(widgetName, "HeadlineText") !== ""; }, convertReasonsToCmsAlerts(data) { this.weatherAlerts = data.reduce((newObj, alert) => { @@ -158,14 +156,14 @@ export default { }, async getWeatherAlertReasons(ctu) { await getAlertReasons(ctu) - .then((response) => { - if (response.data) { - this.convertReasonsToCmsAlerts(response.data); - } - }) - .catch(() => { - console.log("error fetching alert reasons.."); - }); + .then((response) => { + if (response.data) { + this.convertReasonsToCmsAlerts(response.data); + } + }) + .catch(() => { + console.log("error fetching alert reasons.."); + }); }, getAvailableDates(startDate, endDate) { return this.mockSelectableDatesData; @@ -189,8 +187,7 @@ export default { loadingModal, datePicker, }, - mounted() { - }, + mounted() {}, }; From 8586d6d35ab2124614fd8252a60526ec57bed7fe Mon Sep 17 00:00:00 2001 From: Leah Schumann Date: Wed, 10 May 2023 13:58:30 -0400 Subject: [PATCH 15/32] WIP --- .../shop-question/shop-question.spec.js | 8 ++--- .../shop-question/shop-question.vue | 34 +++++++++---------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/src/layouts/service-location/shop-question/shop-question.spec.js b/src/layouts/service-location/shop-question/shop-question.spec.js index 3053834a9..92bb88f21 100644 --- a/src/layouts/service-location/shop-question/shop-question.spec.js +++ b/src/layouts/service-location/shop-question/shop-question.spec.js @@ -171,7 +171,7 @@ describe("shop-question.vue", () => { serviceZipCode: "43081", selectedAppointmentType: "Dropoff", cmsWidgetName: cmsWidgetName, - isDisplayed: true + isDisplayed: true, }, mountOptions: { attachTo: document.body, @@ -227,7 +227,7 @@ describe("shop-question.vue", () => { serviceZipCode: "43081", selectedAppointmentType: "Dropoff", cmsWidgetName: cmsWidgetName, - isDisplayed: true + isDisplayed: true, }, mountOptions: { attachTo: document.body, @@ -306,7 +306,7 @@ describe("shop-question.vue", () => { serviceZipCode: "43081", selectedAppointmentType: "Dropoff", cmsWidgetName: cmsWidgetName, - isDisplayed: true + isDisplayed: true, }, mountOptions: { attachTo: document.body, @@ -365,7 +365,7 @@ describe("shop-question.vue", () => { serviceZipCode: "43081", selectedAppointmentType: "Dropoff", cmsWidgetName: cmsWidgetName, - isDisplayed: true + isDisplayed: true, }, mountOptions: { attachTo: document.body, diff --git a/src/layouts/service-location/shop-question/shop-question.vue b/src/layouts/service-location/shop-question/shop-question.vue index 90efb7f26..434c46d2e 100644 --- a/src/layouts/service-location/shop-question/shop-question.vue +++ b/src/layouts/service-location/shop-question/shop-question.vue @@ -193,25 +193,25 @@ export default { } }, }, - shopProviders: { - async handler(newValue) { - this.resetAnswers(); - - await this.$nextTick(); + // shopProviders: { + // async handler(newValue) { + // this.resetAnswers(); - if (this.selectedAppointmentType) { - const selectedShopIndex = newValue.findIndex( - (provider) => provider.providerNumber == this.modelValue?.providerNumber - ); + // await this.$nextTick(); - if (selectedShopIndex >= 3) { - await this.getNextShopsFromList(selectedShopIndex + 1); - } else { - await this.getNextShopsFromList(); - } - } - }, - } + // if (this.selectedAppointmentType) { + // const selectedShopIndex = newValue.findIndex( + // (provider) => provider.providerNumber == this.modelValue?.providerNumber + // ); + + // if (selectedShopIndex >= 3) { + // await this.getNextShopsFromList(selectedShopIndex + 1); + // } else { + // await this.getNextShopsFromList(); + // } + // } + // }, + // }, }, components: { alert, From 7d6973107c2b52e9afba3f57a021185d0be00999 Mon Sep 17 00:00:00 2001 From: Leah Schumann Date: Thu, 11 May 2023 13:01:02 -0400 Subject: [PATCH 16/32] CSR-1112 with fix for serviceability call --- .../shop-question/shop-question.vue | 32 +++++++++---------- src/store/index.js | 17 ++++------ 2 files changed, 23 insertions(+), 26 deletions(-) diff --git a/src/layouts/service-location/shop-question/shop-question.vue b/src/layouts/service-location/shop-question/shop-question.vue index 434c46d2e..10c1595b2 100644 --- a/src/layouts/service-location/shop-question/shop-question.vue +++ b/src/layouts/service-location/shop-question/shop-question.vue @@ -193,25 +193,25 @@ export default { } }, }, - // shopProviders: { - // async handler(newValue) { - // this.resetAnswers(); + shopProviders: { + async handler(newValue) { + //this.resetAnswers(); - // await this.$nextTick(); + await this.$nextTick(); - // if (this.selectedAppointmentType) { - // const selectedShopIndex = newValue.findIndex( - // (provider) => provider.providerNumber == this.modelValue?.providerNumber - // ); + if (this.selectedAppointmentType) { + const selectedShopIndex = newValue.findIndex( + (provider) => provider.providerNumber == this.modelValue + ); - // if (selectedShopIndex >= 3) { - // await this.getNextShopsFromList(selectedShopIndex + 1); - // } else { - // await this.getNextShopsFromList(); - // } - // } - // }, - // }, + if (selectedShopIndex >= 3) { + await this.getNextShopsFromList(selectedShopIndex + 1); + } else { + await this.getNextShopsFromList(); + } + } + }, + }, }, components: { alert, diff --git a/src/store/index.js b/src/store/index.js index c1fbf0e82..d68cee329 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -970,24 +970,21 @@ export const actions = { partNumber: lineItem.partNumber, }) ); - const lineItemsToSend = buildQueryStringParameterFromArrayOfComplexObjects( + const lineItems = buildQueryStringParameterFromArrayOfComplexObjects( lineItemsWithOnlyPartNumbers, "lineItems" ); + const vehicle = context.getters.vehicle; const carId = vehicle.carId; const damage = context.getters.damage; - const glassArray = damage.glassToReplace; - const glassArrayForPayload = convertGlassPieceNamingForApi(glassArray); + const glassArray = convertGlassPieceNamingForApi(damage.glassToReplace); + + const glassPieces = buildQueryStringParameterFromArrayOfComplexObjects(glassArray, "glassPieces") + return globalMethods.callHttpClient({ method: endpoints.GetServiceabilityDetails.method, - endpoint: endpoints.GetServiceabilityDetails.url, - payload: { - zip: serviceZipCode, - lineItems: lineItemsToSend, - carId: carId, - glassPieces: glassArrayForPayload, - }, + endpoint: `${endpoints.GetServiceabilityDetails.url}?zip=${serviceZipCode}&carId=${carId}&${lineItems}&${glassPieces}`, }); }, From 1869d86973c39d2587cba3f716948be06c71805b Mon Sep 17 00:00:00 2001 From: Leah Schumann Date: Thu, 11 May 2023 14:53:49 -0400 Subject: [PATCH 17/32] Commented out broken unit test for now --- .../shop-question/shop-question.spec.js | 64 +++++++++---------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/src/layouts/service-location/shop-question/shop-question.spec.js b/src/layouts/service-location/shop-question/shop-question.spec.js index 92bb88f21..75ec50fc5 100644 --- a/src/layouts/service-location/shop-question/shop-question.spec.js +++ b/src/layouts/service-location/shop-question/shop-question.spec.js @@ -435,41 +435,41 @@ describe("shop-question.vue", () => { ]); }); - it("Should display the number of shops necessary to show a previously selected shop", async () => { - // Arrange - const { wrapper } = setupMocks({ - mixins: [mockMixin], - props: { - modelValue: { - address: { - city: "POWELL", - country: "US", - state: "OH", - streetAddress: "3938 POWELL RD", - zipCode: "43065", - }, - distanceInMiles: 16.2690495685233, - providerNumber: "003341", - }, - serviceZipCode: "43081", - selectedAppointmentType: "Dropoff", - cmsWidgetName: cmsWidgetName, - }, - mountOptions: { - attachTo: document.body, - }, - }); + // it("Should display the number of shops necessary to show a previously selected shop", async () => { + // // Arrange + // const { wrapper } = setupMocks({ + // mixins: [mockMixin], + // props: { + // modelValue: { + // address: { + // city: "POWELL", + // country: "US", + // state: "OH", + // streetAddress: "3938 POWELL RD", + // zipCode: "43065", + // }, + // distanceInMiles: 16.2690495685233, + // providerNumber: "003341", + // }, + // serviceZipCode: "43081", + // selectedAppointmentType: "Dropoff", + // cmsWidgetName: cmsWidgetName, + // }, + // mountOptions: { + // attachTo: document.body, + // }, + // }); - // Act - wrapper.vm.initializeComponent(shopQuestionInitialData); + // // Act + // wrapper.vm.initializeComponent(shopQuestionInitialData); - await wrapper.vm.$nextTick(); - await wrapper.vm.$nextTick(); - await wrapper.vm.$nextTick(); + // await wrapper.vm.$nextTick(); + // await wrapper.vm.$nextTick(); + // await wrapper.vm.$nextTick(); - // Assert - expect(wrapper.vm.answers.length).toEqual(5); - }); + // // Assert + // expect(wrapper.vm.answers.length).toEqual(5); + // }); it("Should reset the answers when the selected appointment type changes", async () => { // Arrange From e13739aeabfcdb5da3ae772a5ac6ec7530b3adbf Mon Sep 17 00:00:00 2001 From: Leah Schumann Date: Thu, 11 May 2023 15:03:25 -0400 Subject: [PATCH 18/32] Prettyfied --- src/store/index.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/store/index.js b/src/store/index.js index 222abe2ca..ea3521a3b 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -989,7 +989,10 @@ export const actions = { const damage = context.getters.damage; const glassArray = convertGlassPieceNamingForApi(damage.glassToReplace); - const glassPieces = buildQueryStringParameterFromArrayOfComplexObjects(glassArray, "glassPieces") + const glassPieces = buildQueryStringParameterFromArrayOfComplexObjects( + glassArray, + "glassPieces" + ); return globalMethods.callHttpClient({ method: endpoints.GetServiceabilityDetails.method, From 8a6dbe7b0cd0dd3dff7846115a47888d61a6dde3 Mon Sep 17 00:00:00 2001 From: Leah Schumann Date: Fri, 12 May 2023 07:33:17 -0400 Subject: [PATCH 19/32] Fixed validation issue when switching between appointment types and fixed broken unit test --- .../shop-question/shop-question.spec.js | 54 ++++++++----------- .../shop-question/shop-question.vue | 4 ++ 2 files changed, 26 insertions(+), 32 deletions(-) diff --git a/src/layouts/service-location/shop-question/shop-question.spec.js b/src/layouts/service-location/shop-question/shop-question.spec.js index 75ec50fc5..1a1e0af98 100644 --- a/src/layouts/service-location/shop-question/shop-question.spec.js +++ b/src/layouts/service-location/shop-question/shop-question.spec.js @@ -435,41 +435,31 @@ describe("shop-question.vue", () => { ]); }); - // it("Should display the number of shops necessary to show a previously selected shop", async () => { - // // Arrange - // const { wrapper } = setupMocks({ - // mixins: [mockMixin], - // props: { - // modelValue: { - // address: { - // city: "POWELL", - // country: "US", - // state: "OH", - // streetAddress: "3938 POWELL RD", - // zipCode: "43065", - // }, - // distanceInMiles: 16.2690495685233, - // providerNumber: "003341", - // }, - // serviceZipCode: "43081", - // selectedAppointmentType: "Dropoff", - // cmsWidgetName: cmsWidgetName, - // }, - // mountOptions: { - // attachTo: document.body, - // }, - // }); + it("Should display the number of shops necessary to show a previously selected shop", async () => { + // Arrange + const { wrapper } = setupMocks({ + mixins: [mockMixin], + props: { + modelValue: "003341", + serviceZipCode: "43081", + selectedAppointmentType: "Dropoff", + cmsWidgetName: cmsWidgetName, + }, + mountOptions: { + attachTo: document.body, + }, + }); - // // Act - // wrapper.vm.initializeComponent(shopQuestionInitialData); + // Act + wrapper.vm.initializeComponent(shopQuestionInitialData); - // await wrapper.vm.$nextTick(); - // await wrapper.vm.$nextTick(); - // await wrapper.vm.$nextTick(); + await wrapper.vm.$nextTick(); + await wrapper.vm.$nextTick(); + await wrapper.vm.$nextTick(); - // // Assert - // expect(wrapper.vm.answers.length).toEqual(5); - // }); + // Assert + expect(wrapper.vm.answers.length).toEqual(5); + }); it("Should reset the answers when the selected appointment type changes", async () => { // Arrange diff --git a/src/layouts/service-location/shop-question/shop-question.vue b/src/layouts/service-location/shop-question/shop-question.vue index 10c1595b2..d64a2e55e 100644 --- a/src/layouts/service-location/shop-question/shop-question.vue +++ b/src/layouts/service-location/shop-question/shop-question.vue @@ -170,6 +170,10 @@ export default { this.answers = []; this.shopIndex = 0; this.selectedValue = ""; + + if (this.$refs.buttonQuestion) { + this.$refs.buttonQuestion.resetField(); + } }, async reloadShopData(serviceZipCode) { const result = await this.loadData(serviceZipCode); From e115b2a5c11264e07479a057a4909adbb3ff5924 Mon Sep 17 00:00:00 2001 From: Leah Schumann Date: Fri, 12 May 2023 10:07:23 -0400 Subject: [PATCH 20/32] Added separate emit for the full provider object when a button is clicked --- .../service-location/service-location.vue | 31 ++++++++++++++++--- .../shop-question/shop-question.spec.js | 18 ++++------- .../shop-question/shop-question.vue | 3 +- 3 files changed, 35 insertions(+), 17 deletions(-) diff --git a/src/layouts/service-location/service-location.vue b/src/layouts/service-location/service-location.vue index 2f2d3a5a7..c5b7b0f3c 100644 --- a/src/layouts/service-location/service-location.vue +++ b/src/layouts/service-location/service-location.vue @@ -71,7 +71,8 @@ { return true; }); +const defaultProvider = { + providerNumber: null, + address: null, + city: null, + state: null, + zip: null, +}; + export default { name: "service-location", data() { @@ -148,7 +157,8 @@ export default { isGlassServiceableMobile: null, isRecalibrationServiceableMobile: null, selectedAppointmentType: null, - selectedProvider: null, + selectedProvider: this.getSelectedProvider(), + selectedProviderNumber: this.getSelectedProvider().providerNumber, mobileFeePart: null, zipContainsMilitaryBase: false, }; @@ -215,7 +225,7 @@ export default { if (newValue.zipCode !== this.zipCode) { this.resetMobileLocation(); this.selectedAppointmentType = null; - this.selectedProvider = null; + this.selectedProvider = defaultProvider; } this.state = newValue.state; @@ -250,7 +260,7 @@ export default { if (!this.selectedAppointmentType == "Mobile") { this.selectedAppointmentType = null; } - this.selectedProvider = null; + this.selectedProvider = defaultProvider; } }, }, @@ -340,6 +350,9 @@ export default { getServiceZipCodeFromStore() { return store.getters.order.serviceLocation.zipCode; }, + getSelectedProvider() { + return store.getters.order.serviceLocation.provider ?? defaultProvider; + }, setMobileFeePart(mobileFeePart) { this.mobileFeePart = mobileFeePart; }, @@ -373,6 +386,16 @@ export default { async reloadShopData() { await this.$refs.shopQuestion.reloadShopData(this.zipCode); }, + onProviderSelected(selectedProvider) { + this.selectedProvider = selectedProvider; + }, + }, + watch: { + selectedProvider: { + handler(newValue) { + console.log(newValue); + }, + }, }, components: { alert, diff --git a/src/layouts/service-location/shop-question/shop-question.spec.js b/src/layouts/service-location/shop-question/shop-question.spec.js index 1a1e0af98..70a158f0a 100644 --- a/src/layouts/service-location/shop-question/shop-question.spec.js +++ b/src/layouts/service-location/shop-question/shop-question.spec.js @@ -157,17 +157,7 @@ describe("shop-question.vue", () => { const { wrapper } = setupMocks({ mixins: [mockMixin], props: { - modelValue: { - address: { - city: "POWELL", - country: "US", - state: "OH", - streetAddress: "3938 POWELL RD", - zipCode: "43065", - }, - distanceInMiles: 16.2690495685233, - providerNumber: null, - }, + modelValue: null, serviceZipCode: "43081", selectedAppointmentType: "Dropoff", cmsWidgetName: cmsWidgetName, @@ -437,10 +427,14 @@ describe("shop-question.vue", () => { it("Should display the number of shops necessary to show a previously selected shop", async () => { // Arrange + const selectedProvider = { + providerNumber: "003341", + }; + const { wrapper } = setupMocks({ mixins: [mockMixin], props: { - modelValue: "003341", + modelValue: selectedProvider.providerNumber, serviceZipCode: "43081", selectedAppointmentType: "Dropoff", cmsWidgetName: cmsWidgetName, diff --git a/src/layouts/service-location/shop-question/shop-question.vue b/src/layouts/service-location/shop-question/shop-question.vue index d64a2e55e..f12319d8d 100644 --- a/src/layouts/service-location/shop-question/shop-question.vue +++ b/src/layouts/service-location/shop-question/shop-question.vue @@ -89,7 +89,8 @@ export default { (provider) => provider.providerNumber == newValue ); - this.$emit("update:modelValue", provider); + this.$emit("update:modelValue", newValue); + this.$emit("providerSelected", provider); }, }, displayDropoffInformation() { From 63fa093de933afc953d42c7d14c179b44843b8fc Mon Sep 17 00:00:00 2001 From: Leah Schumann Date: Fri, 12 May 2023 10:10:13 -0400 Subject: [PATCH 21/32] Removed testing watch --- src/layouts/service-location/service-location.vue | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/layouts/service-location/service-location.vue b/src/layouts/service-location/service-location.vue index c5b7b0f3c..69eef0d8b 100644 --- a/src/layouts/service-location/service-location.vue +++ b/src/layouts/service-location/service-location.vue @@ -390,13 +390,6 @@ export default { this.selectedProvider = selectedProvider; }, }, - watch: { - selectedProvider: { - handler(newValue) { - console.log(newValue); - }, - }, - }, components: { alert, serviceZipModalQuestion, From bb0dee96ff9bc052b778600dbe9f66906f2ffd34 Mon Sep 17 00:00:00 2001 From: Leah Schumann Date: Fri, 12 May 2023 10:33:53 -0400 Subject: [PATCH 22/32] renamed resetShopList in reloadShopData to resetAnswers --- src/layouts/service-location/shop-question/shop-question.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/layouts/service-location/shop-question/shop-question.vue b/src/layouts/service-location/shop-question/shop-question.vue index f12319d8d..2b7e41742 100644 --- a/src/layouts/service-location/shop-question/shop-question.vue +++ b/src/layouts/service-location/shop-question/shop-question.vue @@ -180,7 +180,7 @@ export default { const result = await this.loadData(serviceZipCode); this.initializeComponent(result.data); - this.resetShopList(); + this.resetAnswers(); await nextTick(); await this.getNextShopsFromList(); From 91d723b3eb5fb5cdbac588761d4dee06013bcdd8 Mon Sep 17 00:00:00 2001 From: Leah Schumann Date: Fri, 12 May 2023 13:08:03 -0400 Subject: [PATCH 23/32] Added getSelectedAppointmentType method --- src/layouts/service-location/service-location.vue | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/layouts/service-location/service-location.vue b/src/layouts/service-location/service-location.vue index 69eef0d8b..5ab45533e 100644 --- a/src/layouts/service-location/service-location.vue +++ b/src/layouts/service-location/service-location.vue @@ -156,7 +156,7 @@ export default { isRecalibrationServiceableInshop: null, isGlassServiceableMobile: null, isRecalibrationServiceableMobile: null, - selectedAppointmentType: null, + selectedAppointmentType: this.getSelectedAppointmentType(), selectedProvider: this.getSelectedProvider(), selectedProviderNumber: this.getSelectedProvider().providerNumber, mobileFeePart: null, @@ -350,6 +350,9 @@ export default { getServiceZipCodeFromStore() { return store.getters.order.serviceLocation.zipCode; }, + getSelectedAppointmentType() { + return store.getters.order.serviceLocation.appointmentType; + }, getSelectedProvider() { return store.getters.order.serviceLocation.provider ?? defaultProvider; }, From 7f634c4db8577ef567778ec057dd32c7af4f379d Mon Sep 17 00:00:00 2001 From: CarlNation Date: Fri, 12 May 2023 13:27:00 -0400 Subject: [PATCH 24/32] CSR-1115 --- .../service-location/service-location.vue | 28 ++++++++++- src/store/index.js | 48 ++++++++++++++++++- 2 files changed, 72 insertions(+), 4 deletions(-) diff --git a/src/layouts/service-location/service-location.vue b/src/layouts/service-location/service-location.vue index 5ab45533e..f8771c530 100644 --- a/src/layouts/service-location/service-location.vue +++ b/src/layouts/service-location/service-location.vue @@ -161,6 +161,7 @@ export default { selectedProviderNumber: this.getSelectedProvider().providerNumber, mobileFeePart: null, zipContainsMilitaryBase: false, + zipCodeCtu: null, }; }, async beforeRouteEnter(to, from, next) { @@ -323,6 +324,7 @@ export default { setData(zipCodeData, serviceabilityDetails, mobileFeePart) { if (zipCodeData) { this.zipContainsMilitaryBase = zipCodeData.containsMilitaryBase; + this.zipCodeCtu = zipCodeData.zipCodeCtu; } if (serviceabilityDetails) { @@ -377,8 +379,30 @@ export default { backButtonAction() { this.$router.navigateWithoutSaving(this.navigationScenarios.CLICKED_BACK, this.$route); }, - forwardButtonAction() { - this.$router.navigateWithoutSaving( + async forwardButtonAction() { + await this.dispatchStoreAction( + this.storeActions.SAVE_SERVICE_LOCATION, + { + address: this.streetAddress, + address2: this.apartmentNumberOrBusinessName, + city: this.city, + state: this.state, + zipCode: this.zipCode, + zipCodeCtu: this.zipCodeCtu, + appointmentType: this.selectedAppointmentType, + isVehicleProtected: this.isVehicleProtected, + provider: { + providerNumber: this.selectedProvider.providerNumber, + address: this.selectedProvider.address.streetAddress, + city: this.selectedProvider.address.city, + state: this.selectedProvider.address.state, + zip: this.selectedProvider.address.zipCode, + }, + }, + false + ); + + this.$router.navigateWithSaving( this.navigationScenarios.SELECTED_LOCATION, this.$route ); diff --git a/src/store/index.js b/src/store/index.js index ea3521a3b..0abab4727 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -44,6 +44,13 @@ const getDefaultState = () => { zipCode: null, zipCodeCtu: null, appointmentType: null, + provider: { + providerNumber: null, + address: null, + city: null, + state: null, + zip: null, + }, }, customer: { emailAddress: null, @@ -226,10 +233,22 @@ export const mutations = { }, updateServiceLocation(state, serviceLocationInfo) { state.order.serviceLocation.address = serviceLocationInfo.address; + state.order.serviceLocation.address2 = serviceLocationInfo.address2; state.order.serviceLocation.city = serviceLocationInfo.city; state.order.serviceLocation.state = serviceLocationInfo.state; state.order.serviceLocation.zipCode = serviceLocationInfo.zipCode; state.order.serviceLocation.zipCodeCtu = serviceLocationInfo.zipCodeCtu; + state.order.serviceLocation.appointmentType = serviceLocationInfo.appointmentType; + state.order.serviceLocation.isVehicleProtected = serviceLocationInfo.isVehicleProtected; + + if (serviceLocationInfo.provider) { + state.order.serviceLocation.provider.providerNumber = + serviceLocationInfo.provider?.providerNumber; + state.order.serviceLocation.provider.address = serviceLocationInfo.provider?.address; + state.order.serviceLocation.provider.city = serviceLocationInfo.provider?.city; + state.order.serviceLocation.provider.state = serviceLocationInfo.provider?.state; + state.order.serviceLocation.provider.zip = serviceLocationInfo.provider?.zip; + } }, // applicationUser MUTATIONS @@ -358,15 +377,31 @@ export const mutations = { state.order.lineItems.serverData = sessionInformation.order.lineItems.serverData; state.order.payment.parentAccountNumber = sessionInformation.order.payment.parentAccountNumber; - state.order.providerNumber = sessionInformation.order.providerNumber; (state.order.serviceLocation.address = sessionInformation.order.serviceLocation.streetAddress), + (state.order.serviceLocation.address2 = + sessionInformation.order.serviceLocation.address2), (state.order.serviceLocation.city = sessionInformation.order.serviceLocation.city), (state.order.serviceLocation.state = sessionInformation.order.serviceLocation.state), (state.order.serviceLocation.zipCode = sessionInformation.order.serviceLocation.zipCode), (state.order.serviceLocation.zipCodeCtu = sessionInformation.order.serviceLocation.zipCodeCtu); + state.order.serviceLocation.appointmentType = + sessionInformation.order.serviceLocation.appointmentType; + state.order.serviceLocation.isVehicleProtected = + sessionInformation.order.serviceLocation.isVehicleProtected; + + state.order.serviceLocation.provider.providerNumber = + sessionInformation.order.serviceLocation.provider?.providerNumber; + state.order.serviceLocation.provider.address = + sessionInformation.order.serviceLocation.provider?.address; + state.order.serviceLocation.provider.city = + sessionInformation.order.serviceLocation.provider?.city; + state.order.serviceLocation.provider.state = + sessionInformation.order.serviceLocation.provider?.state; + state.order.serviceLocation.provider.zip = + sessionInformation.order.serviceLocation.provider?.zip; state.order.payment.isInsurance = sessionInformation.order.payment.isInsurance; state.order.payment.insuranceCoverage.isVerified = @@ -1120,13 +1155,22 @@ export const actions = { isInsurance: order.payment.isInsurance ?? false, parentAccountNumber: order.payment.parentAccountNumber, }, - providerNumber: "", serviceLocation: { streetAddress: order.serviceLocation.address, + streetAddress2: order.serviceLocation.address2, city: order.serviceLocation.city, state: order.serviceLocation.state, zipCode: order.serviceLocation.zipCode, zipCodeCtu: order.serviceLocation.zipCodeCtu, + appointmentType: order.serviceLocation.appointmentType, + isVehicleProtected: order.serviceLocation.isVehicleProtected, + provider: { + providerNumber: order.serviceLocation.provider?.providerNumber, + address: order.serviceLocation.provider?.address, + city: order.serviceLocation.provider?.city, + state: order.serviceLocation.provider?.state, + zip: order.serviceLocation.provider?.zip, + }, }, existingPromoCode: null, referralCorrelationId: order.referralCorrelationId, From 76136bc311d3b2115b77ff14dd079bd82a083f23 Mon Sep 17 00:00:00 2001 From: CarlNation Date: Fri, 12 May 2023 13:59:09 -0400 Subject: [PATCH 25/32] CSR-1115 --- src/store/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/store/index.js b/src/store/index.js index 0abab4727..9e9587131 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -243,7 +243,7 @@ export const mutations = { if (serviceLocationInfo.provider) { state.order.serviceLocation.provider.providerNumber = - serviceLocationInfo.provider?.providerNumber; + serviceLocationInfo.provider.providerNumber; state.order.serviceLocation.provider.address = serviceLocationInfo.provider?.address; state.order.serviceLocation.provider.city = serviceLocationInfo.provider?.city; state.order.serviceLocation.provider.state = serviceLocationInfo.provider?.state; From de4568f9f3324f12203e7eb1e160bc03b3cc49eb Mon Sep 17 00:00:00 2001 From: CarlNation Date: Fri, 12 May 2023 14:26:09 -0400 Subject: [PATCH 26/32] CSR-1115 --- src/store/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/store/index.js b/src/store/index.js index 9e9587131..0abab4727 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -243,7 +243,7 @@ export const mutations = { if (serviceLocationInfo.provider) { state.order.serviceLocation.provider.providerNumber = - serviceLocationInfo.provider.providerNumber; + serviceLocationInfo.provider?.providerNumber; state.order.serviceLocation.provider.address = serviceLocationInfo.provider?.address; state.order.serviceLocation.provider.city = serviceLocationInfo.provider?.city; state.order.serviceLocation.provider.state = serviceLocationInfo.provider?.state; From d8c503fd8afbff624f1e41c4f5bb23053bf06549 Mon Sep 17 00:00:00 2001 From: CarlNation Date: Tue, 16 May 2023 16:16:14 -0400 Subject: [PATCH 27/32] CSR-1115 check for null provider. occurs on mobile currently --- src/layouts/service-location/service-location.vue | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/layouts/service-location/service-location.vue b/src/layouts/service-location/service-location.vue index f8771c530..e05d945a7 100644 --- a/src/layouts/service-location/service-location.vue +++ b/src/layouts/service-location/service-location.vue @@ -392,11 +392,11 @@ export default { appointmentType: this.selectedAppointmentType, isVehicleProtected: this.isVehicleProtected, provider: { - providerNumber: this.selectedProvider.providerNumber, - address: this.selectedProvider.address.streetAddress, - city: this.selectedProvider.address.city, - state: this.selectedProvider.address.state, - zip: this.selectedProvider.address.zipCode, + providerNumber: this.selectedProvider?.providerNumber, + address: this.selectedProvider?.address?.streetAddress, + city: this.selectedProvider?.address?.city, + state: this.selectedProvider?.address?.state, + zip: this.selectedProvider?.address?.zipCode, }, }, false From 8e63abd08d16d47e5eec7687040d2d4af8654bd4 Mon Sep 17 00:00:00 2001 From: Chloe Herd Date: Tue, 16 May 2023 17:39:30 -0400 Subject: [PATCH 28/32] Add initial iteration for review page --- src/layouts/review/review.spec.js | 0 src/layouts/review/review.vue | 104 ++++++++++++++++++++++++++++++ src/router/index.js | 6 ++ 3 files changed, 110 insertions(+) create mode 100644 src/layouts/review/review.spec.js create mode 100644 src/layouts/review/review.vue diff --git a/src/layouts/review/review.spec.js b/src/layouts/review/review.spec.js new file mode 100644 index 000000000..e69de29bb diff --git a/src/layouts/review/review.vue b/src/layouts/review/review.vue new file mode 100644 index 000000000..b2fbd5f21 --- /dev/null +++ b/src/layouts/review/review.vue @@ -0,0 +1,104 @@ + + + + + diff --git a/src/router/index.js b/src/router/index.js index 3abfa058d..86c402187 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -31,6 +31,7 @@ import { applicationConfig } from "../constants/application-config"; // Components import datePicker from "@/digital-components/date-picker/date-picker.vue"; import demoDatePicker from "@/layouts/demo-date-picker/demo-date-picker.vue"; +import review from "@/layouts/review/review"; const routes = [ { @@ -43,6 +44,11 @@ const routes = [ name: "date-picker", component: datePicker, }, + { + path: "/review", // This is a temporary route for testing. + name: "review", + component: review, + }, { path: "/", name: "root", From 548b7297453e27fef7a3c6645a7e6779a9c63aad Mon Sep 17 00:00:00 2001 From: Chloe Herd Date: Wed, 17 May 2023 08:20:57 -0400 Subject: [PATCH 29/32] Change to textblock implementation. --- src/layouts/review/review.vue | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/src/layouts/review/review.vue b/src/layouts/review/review.vue index b2fbd5f21..cc6d3c56b 100644 --- a/src/layouts/review/review.vue +++ b/src/layouts/review/review.vue @@ -7,21 +7,8 @@ cmsWidgetName="VehicleBannerWidget" :displayGenericVehicleImage="false" /> - - -
-
-
- -
-
-
-

- -

-
-
+ + From eeb1ee50664cf24138aa87e5498b2b36afbc0a16 Mon Sep 17 00:00:00 2001 From: Chloe Herd Date: Wed, 17 May 2023 08:44:31 -0400 Subject: [PATCH 30/32] Fiddling with margins --- src/digital-components/text-block/text-block.vue | 9 +++++++-- src/layouts/review/review.vue | 13 +++++++++++-- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/digital-components/text-block/text-block.vue b/src/digital-components/text-block/text-block.vue index 9e7df6312..e93e2e6c4 100644 --- a/src/digital-components/text-block/text-block.vue +++ b/src/digital-components/text-block/text-block.vue @@ -1,7 +1,7 @@ @@ -11,6 +11,11 @@ export default { props: { customText: String, // used to allow the insert of token values into textblock justifyText: String, // left, right, center + margin: { + // bootstrap margin to apply to the block. + type: String, + default: "mt-2", + }, typeStyle: String, // h1-h6, body, small, label, caption (see Figma or Confluence documentation) fontWeight: String, // bold=500, default is 400 cmsWidgetName: String, diff --git a/src/layouts/review/review.vue b/src/layouts/review/review.vue index cc6d3c56b..7d059ac86 100644 --- a/src/layouts/review/review.vue +++ b/src/layouts/review/review.vue @@ -7,8 +7,17 @@ cmsWidgetName="VehicleBannerWidget" :displayGenericVehicleImage="false" /> - - + + Date: Wed, 17 May 2023 09:16:07 -0400 Subject: [PATCH 31/32] Very basic test stub. --- src/layouts/review/review.spec.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/layouts/review/review.spec.js b/src/layouts/review/review.spec.js index e69de29bb..674dc71f7 100644 --- a/src/layouts/review/review.spec.js +++ b/src/layouts/review/review.spec.js @@ -0,0 +1,3 @@ +describe("Review Page", () => { + test.todo("Add more tests as specific functionality is added."); +}); From f239631d050ab0cbfb20517455fd21201983b337 Mon Sep 17 00:00:00 2001 From: Chloe Herd Date: Wed, 17 May 2023 11:23:45 -0400 Subject: [PATCH 32/32] Clarify todo --- src/layouts/review/review.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/layouts/review/review.vue b/src/layouts/review/review.vue index 7d059ac86..9bccb2014 100644 --- a/src/layouts/review/review.vue +++ b/src/layouts/review/review.vue @@ -1,6 +1,6 @@