From 14be2c2409f148bd539e7b2f1d321eba81193ff7 Mon Sep 17 00:00:00 2001 From: Adam Caouette Date: Mon, 20 Nov 2023 11:27:19 -0500 Subject: [PATCH 1/3] CSR-1411: update store Get Wipers method to accept a Zip and CarId; update usages --- src/layouts/confirmation/confirmation.vue | 26 ++++++++++++++++++- src/layouts/payment-method/payment-method.vue | 5 +++- src/layouts/payment/payment.vue | 5 +++- src/layouts/quote/quote.vue | 5 +++- .../service-package-review.vue | 6 ++++- src/store/index.js | 7 ++--- 6 files changed, 46 insertions(+), 8 deletions(-) diff --git a/src/layouts/confirmation/confirmation.vue b/src/layouts/confirmation/confirmation.vue index 8f34feb23..27b639531 100644 --- a/src/layouts/confirmation/confirmation.vue +++ b/src/layouts/confirmation/confirmation.vue @@ -89,22 +89,46 @@ export default { // Call APIs const cmsContentPromise = fetchCmsContentForPage(to.query.fmgPage); + const wipersPromise = baseMixin.methods.dispatchStoreActionWithLogging( + storeActions.GET_WIPERS, + { + serviceZipCode: store.getters.submittedOrder.serviceLocation.zipCode, + carId: store.getters.submittedOrder.vehicle.carId, + }, + "confirmation" + ); + + const rainDefensePromise = baseMixin.methods.dispatchStoreActionWithLogging( + storeActions.GET_RAIN_DEFENSE, + null, + "confirmation" + ); + // Settle promises and get results const promiseResultMap = [ { resultKey: "cmsContent", promise: cmsContentPromise, }, + { + resultKey: "wipers", + promise: wipersPromise, + }, + { + resultKey: "rainDefense", + promise: rainDefensePromise, + }, ]; const resultMap = await settleAllPromises(promiseResultMap); + const availableVaps = [resultMap.rainDefense, ...resultMap.wipers]; const lineItemsFromSubmittedOrder = deepClone(store.getters.submittedOrder.lineItems); // Call the "next" function to complete the transition to this page. next((vm) => { vm.setCmsContent(resultMap.cmsContent); vm.lineItems = lineItemsFromSubmittedOrder; - vm.vaps = lineItemsFromSubmittedOrder.vaps; + vm.vaps = availableVaps; }); }, data() { diff --git a/src/layouts/payment-method/payment-method.vue b/src/layouts/payment-method/payment-method.vue index af0ec86fc..6fa1b02a6 100644 --- a/src/layouts/payment-method/payment-method.vue +++ b/src/layouts/payment-method/payment-method.vue @@ -123,7 +123,10 @@ export default { const wipersPromise = baseMixin.methods.dispatchStoreActionWithLogging( storeActions.GET_WIPERS, - null, + { + serviceZipCode: store.getters.order.serviceLocation.zipCode, + carId: store.getters.vehicle.carId, + }, "payment-method" ); diff --git a/src/layouts/payment/payment.vue b/src/layouts/payment/payment.vue index 0cd632dc6..3e52d1c6b 100644 --- a/src/layouts/payment/payment.vue +++ b/src/layouts/payment/payment.vue @@ -257,7 +257,10 @@ export default { const wipersPromise = baseMixin.methods.dispatchStoreActionWithLogging( storeActions.GET_WIPERS, - null, + { + serviceZipCode: store.getters.order.serviceLocation.zipCode, + carId: store.getters.vehicle.carId, + }, "payment" ); diff --git a/src/layouts/quote/quote.vue b/src/layouts/quote/quote.vue index 6f293c43b..1357e5acc 100644 --- a/src/layouts/quote/quote.vue +++ b/src/layouts/quote/quote.vue @@ -96,7 +96,10 @@ export default { const cmsContentPromise = fetchCmsContentForPage(to.query.fmgPage); const wipersPromise = baseMixin.methods.dispatchStoreActionWithLogging( storeActions.GET_WIPERS, - null, + { + serviceZipCode: store.getters.order.serviceLocation.zipCode, + carId: store.getters.vehicle.carId, + }, "quote" ); const rainDefensePromise = baseMixin.methods.dispatchStoreActionWithLogging( diff --git a/src/layouts/review/review-sections/service-package-review/service-package-review.vue b/src/layouts/review/review-sections/service-package-review/service-package-review.vue index 03efb6769..ac6c333ac 100644 --- a/src/layouts/review/review-sections/service-package-review/service-package-review.vue +++ b/src/layouts/review/review-sections/service-package-review/service-package-review.vue @@ -15,6 +15,7 @@ import { import { settleAllPromises } from "@/helpers/layout-helper"; import baseMixin from "@/mixins/base-mixin.js"; import { storeActions } from "@/constants/store-actions"; +import store from "@/store"; export default { name: "service-package-review", @@ -34,7 +35,10 @@ export default { loadInitialData() { const wipersPromise = baseMixin.methods.dispatchStoreActionWithLogging( storeActions.GET_WIPERS, - null, + { + serviceZipCode: store.getters.order.serviceLocation.zipCode, + carId: store.getters.vehicle.carId, + }, "review" ); const rainDefensePromise = baseMixin.methods.dispatchStoreActionWithLogging( diff --git a/src/store/index.js b/src/store/index.js index 11690798f..dd6d1b08c 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -1301,9 +1301,10 @@ export const actions = { return response; }, - async getWipers(context, { pageNameToLog }) { - const carId = context.getters.vehicle.carId; - const serviceZipCode = context.getters.order.serviceLocation.zipCode; + async getWipers(context, { payload, pageNameToLog }) { + const carId = payload.carId; + const serviceZipCode = payload.serviceZipCode; + const response = await globalMethods .callHttpClient({ method: endpoints.GetWipers.method, From 75a50c2223674802fb7321bde19cdde5af43a162 Mon Sep 17 00:00:00 2001 From: Adam Caouette Date: Mon, 20 Nov 2023 11:27:52 -0500 Subject: [PATCH 2/3] CSR-1411: fix missing damage info --- src/layouts/confirmation/confirmation.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/layouts/confirmation/confirmation.vue b/src/layouts/confirmation/confirmation.vue index 27b639531..51546a97e 100644 --- a/src/layouts/confirmation/confirmation.vue +++ b/src/layouts/confirmation/confirmation.vue @@ -255,7 +255,7 @@ export default { return store.getters.submittedOrder?.vehicle.imageUrl; }, damageInfo() { - return store.getters.damage; + return store.getters.submittedOrder.damage; }, isPia() { return store.getters.submittedOrder?.payment.isPia; From aee80dcd1a3b10b389ab415455fea71a58151b16 Mon Sep 17 00:00:00 2001 From: Adam Caouette Date: Mon, 20 Nov 2023 11:28:24 -0500 Subject: [PATCH 3/3] CSR-1411: update unit test for changes due to Get Wipers methods parameter update --- src/layouts/quote/quote.spec.js | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/layouts/quote/quote.spec.js b/src/layouts/quote/quote.spec.js index a41f73595..dc30985a5 100644 --- a/src/layouts/quote/quote.spec.js +++ b/src/layouts/quote/quote.spec.js @@ -266,6 +266,13 @@ describe("quote.vue", () => { glassParts: ["item", "item2"], }, payment: {}, + serviceLocation: { + zipCode: "12345", + zipCodeCtu: "value", + }, + }, + vehicle: { + cardId: "123", }, }; const { wrapper } = setupMocks({}); @@ -304,6 +311,9 @@ describe("quote.vue", () => { state: null, }, }, + vehicle: { + cardId: "123", + }, }; const { wrapper } = setupMocks({}); wrapper.vm.$route = { query: { isInsurance: "true" } }; @@ -336,6 +346,9 @@ describe("quote.vue", () => { state: null, }, }, + vehicle: { + cardId: "123", + }, }; const { wrapper } = setupMocks({}); wrapper.vm.$route = { query: { isInsurance: "false" } }; @@ -369,6 +382,9 @@ describe("quote.vue", () => { state: null, }, }, + vehicle: { + cardId: "123", + }, }; const { wrapper } = setupMocks({}); // Ensure that query param isn't overriding selection @@ -402,6 +418,9 @@ describe("quote.vue", () => { state: null, }, }, + vehicle: { + cardId: "123", + }, }; const { wrapper } = setupMocks({}); // Ensure that query param isn't overriding selection @@ -436,6 +455,9 @@ describe("quote.vue", () => { state: null, }, }, + vehicle: { + cardId: "123", + }, }; mockTierOnePrice = 200; const { wrapper } = setupMocks({}); @@ -472,6 +494,9 @@ describe("quote.vue", () => { state: null, }, }, + vehicle: { + cardId: "123", + }, }; mockTierOnePrice = 505; const { wrapper } = setupMocks({}); @@ -507,6 +532,9 @@ describe("quote.vue", () => { state: "AZ", }, }, + vehicle: { + cardId: "123", + }, }; const { wrapper } = setupMocks({}); wrapper.vm.$route = { query: null };