diff --git a/src/constants/endpoints.js b/src/constants/endpoints.js index ec8ab4c86..50dea494f 100644 --- a/src/constants/endpoints.js +++ b/src/constants/endpoints.js @@ -61,7 +61,7 @@ const endpoints = { method: "POST", }, GetWipers: { - url: "/parts/api/v1/parts/wipers", + url: "/parts/api/v2/parts/wipers", method: "GET", }, GetRainRepel: { diff --git a/src/fmg-components/cart/cart.vue b/src/fmg-components/cart/cart.vue index 8add7bb85..9a6f55576 100644 --- a/src/fmg-components/cart/cart.vue +++ b/src/fmg-components/cart/cart.vue @@ -970,8 +970,7 @@ export default { const msrFeeLineItem = this.getMsrFeeLineItem; const shouldCreateMsrFeeCartItem = this.isMSRFeeApplicable && - this.isInsurance && - !this.IsMSRFeeCoveredByInsurance && + (!this.isInsurance || !this.IsMSRFeeCoveredByInsurance) && msrFeeLineItem && this.msrFeeAmount > 0; @@ -980,7 +979,7 @@ export default { name: this.msrFeeCartItemName, category: cartItemCategories.SUPPORTING_ITEMS, cartItemType: cartItemTypes.MOBILE_FEE, - isDisplayed: this.isInsurance, + isDisplayed: true, isRemovable: true, subTotal: 0, salesTax: 0, @@ -1007,8 +1006,10 @@ export default { return this.getCmsContent("RecycleTextBlock", "Text"); }, msrToolTipBodyText() { - let cmsContentText = this.getCmsContent("MSRModal", "BodyText"); - if (cmsContentText) { + let cmsContentText = this.isInsurance + ? this.getCmsContent("MSRModal", "BodyText") + : this.getCmsContent("MSRModal", "BodyText2"); + if (this.isInsurance && cmsContentText) { cmsContentText = cmsContentText.replaceAll( "{custom:mobileFee}", formatToUSDollar(this.msrFeeAmount) diff --git a/src/layouts/confirmation/confirmation.vue b/src/layouts/confirmation/confirmation.vue index e26c5f9b1..70ef3b25d 100644 --- a/src/layouts/confirmation/confirmation.vue +++ b/src/layouts/confirmation/confirmation.vue @@ -169,8 +169,8 @@ export default { const wipersPromise = baseMixin.methods.dispatchStoreActionWithLogging( storeActions.GET_WIPERS, { - serviceZipCode: submittedOrder.serviceLocation.zipCode, carId: submittedOrder.vehicle.carId, + accountNumber: submittedOrder.payment?.parentAccountNumber, }, "confirmation" ); diff --git a/src/layouts/payment-adyen/payment-adyen.spec.js b/src/layouts/payment-adyen/payment-adyen.spec.js index 1a506b860..26d3a6aec 100644 --- a/src/layouts/payment-adyen/payment-adyen.spec.js +++ b/src/layouts/payment-adyen/payment-adyen.spec.js @@ -187,118 +187,6 @@ describe("payment-adyen.vue", () => { expect(result).toBe(true); }); }); - - describe("splitStreetAddress", () => { - const setInShopStreet = (streetAddress) => { - store.getters.order.serviceLocation.appointmentType = AppointmentTypeStrings.IN_SHOP; - store.getters.order.serviceLocation.provider.address.streetAddress = streetAddress; - }; - - test("splits typical address into first token as number and remainder as street", () => { - setInShopStreet("123 West Elm St"); - const wrapper = setupMocks({}); - - expect(wrapper.vm.splitStreetAddress).toEqual({ - number: "123", - street: "West Elm St", - }); - }); - - test("two tokens: number and single-word street", () => { - setInShopStreet("456 Oak"); - const wrapper = setupMocks({}); - - expect(wrapper.vm.splitStreetAddress).toEqual({ - number: "456", - street: "Oak", - }); - }); - - test("single token with no spaces: full string in number, empty street", () => { - setInShopStreet("123OakStreet"); - const wrapper = setupMocks({}); - - expect(wrapper.vm.splitStreetAddress).toEqual({ - number: "123OakStreet", - street: "", - }); - }); - - test("collapses multiple spaces between words", () => { - setInShopStreet("123 West Elm St"); - const wrapper = setupMocks({}); - - expect(wrapper.vm.splitStreetAddress).toEqual({ - number: "123", - street: "West Elm St", - }); - }); - - test("trims leading and trailing whitespace on full address", () => { - setInShopStreet(" 99 Maple Ave "); - const wrapper = setupMocks({}); - - expect(wrapper.vm.splitStreetAddress).toEqual({ - number: "99", - street: "Maple Ave", - }); - }); - - test("empty string yields empty number and street", () => { - setInShopStreet(""); - const wrapper = setupMocks({}); - - expect(wrapper.vm.splitStreetAddress).toEqual({ - number: "", - street: "", - }); - }); - - test("whitespace-only address yields empty number and street", () => { - setInShopStreet(" \t "); - const wrapper = setupMocks({}); - - expect(wrapper.vm.splitStreetAddress).toEqual({ - number: "", - street: "", - }); - }); - - test("null address yields empty number and street", () => { - setInShopStreet(null); - const wrapper = setupMocks({}); - - expect(wrapper.vm.splitStreetAddress).toEqual({ - number: "", - street: "", - }); - }); - - test("uses mobile service address when appointment is mobile", () => { - store.getters.order.serviceLocation.appointmentType = AppointmentTypeStrings.MOBILE; - store.getters.order.serviceLocation.address = "700 Broadway Blvd"; - store.getters.order.serviceLocation.city = "Columbus"; - store.getters.order.serviceLocation.state = "OH"; - store.getters.order.serviceLocation.zipCode = "43235"; - - const wrapper = setupMocks({}); - - expect(wrapper.vm.splitStreetAddress).toEqual({ - number: "700", - street: "Broadway Blvd", - }); - }); - - test("splits on tabs and other whitespace runs", () => { - setInShopStreet("10\tPine\tLane"); - const wrapper = setupMocks({}); - - expect(wrapper.vm.splitStreetAddress).toEqual({ - number: "10", - street: "Pine Lane", - }); - }); - }); }); function setupMocks({ customMountOptions } = {}) { diff --git a/src/layouts/payment-adyen/payment-adyen.vue b/src/layouts/payment-adyen/payment-adyen.vue index aa75487da..5b3a663ea 100644 --- a/src/layouts/payment-adyen/payment-adyen.vue +++ b/src/layouts/payment-adyen/payment-adyen.vue @@ -455,8 +455,8 @@ export default { zipCodeCtu: this.locationInfo.zipCodeCtu, amount: this.adyenPriceTotal, city: this.locationInfo.city, - houseNumberOrName: this.splitStreetAddress.number, - street: this.splitStreetAddress.street, + street: this.locationInfo.address ?? "", + houseNumberOrName: this.locationInfo.address2 ?? "", zipCode: this.locationInfo.zipCode, stateOrProvince: this.locationInfo.state, returnUrl: applicationConfig.PIA_ADYEN_RETURN_URL, @@ -515,18 +515,6 @@ export default { } }, - splitStreetAddress() { - const address = (this.locationInfo?.address ?? "").trim(); - const tokens = address.length ? address.split(/\s+/) : [""]; - const number = tokens[0] ?? ""; - const street = tokens.length > 1 ? tokens.slice(1).join(" ") : ""; - - return { - number, - street, - }; - }, - sourceSystem() { return "FMG-2.0"; }, diff --git a/src/layouts/payment-method/payment-method.vue b/src/layouts/payment-method/payment-method.vue index e5b08bdbc..da49aa039 100644 --- a/src/layouts/payment-method/payment-method.vue +++ b/src/layouts/payment-method/payment-method.vue @@ -226,8 +226,8 @@ export default { const wipersPromise = baseMixin.methods.dispatchStoreActionWithLogging( storeActions.GET_WIPERS, { - serviceZipCode: store.getters.order.serviceLocation.zipCode, carId: store.getters.vehicle.carId, + accountNumber: store.getters.order.payment?.parentAccountNumber, }, "payment-method" ); diff --git a/src/layouts/payment-method/review-dropdown/review-sections/service-package-review/service-package-review.vue b/src/layouts/payment-method/review-dropdown/review-sections/service-package-review/service-package-review.vue index 4cf6dae0b..51827a30d 100644 --- a/src/layouts/payment-method/review-dropdown/review-sections/service-package-review/service-package-review.vue +++ b/src/layouts/payment-method/review-dropdown/review-sections/service-package-review/service-package-review.vue @@ -35,8 +35,8 @@ export default { const wipersPromise = baseMixin.methods.dispatchStoreActionWithLogging( storeActions.GET_WIPERS, { - serviceZipCode: store.getters.order.serviceLocation.zipCode, carId: store.getters.vehicle.carId, + accountNumber: store.getters.order.payment?.parentAccountNumber, }, "review" ); diff --git a/src/layouts/quote/quote.vue b/src/layouts/quote/quote.vue index ab253627c..d9f238733 100644 --- a/src/layouts/quote/quote.vue +++ b/src/layouts/quote/quote.vue @@ -217,8 +217,10 @@ export default { const wipersPromise = baseMixin.methods.dispatchStoreActionWithLogging( storeActions.GET_WIPERS, { - serviceZipCode: store.getters.order.serviceLocation.zipCode, carId: store.getters.vehicle.carId, + accountNumber: + store.getters.order.payment?.parentAccountNumber ?? + applicationConfig.CASH_PARENT_ACCOUNT_NUMBER, }, "quote" ); diff --git a/src/store/index.js b/src/store/index.js index 5ee163b0b..47178b62d 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -1977,12 +1977,12 @@ export const actions = { async getWipers(context, { payload, pageNameToLog }) { const carId = payload.carId; - const serviceZipCode = payload.serviceZipCode; + const accountNumber = payload.accountNumber; const response = await globalMethods .callHttpClient({ method: endpoints.GetWipers.method, - endpoint: `${endpoints.GetWipers.url}/${carId}/${serviceZipCode}`, + endpoint: `${endpoints.GetWipers.url}/${carId}/${accountNumber}`, logApiCall: true, pageNameToLog: pageNameToLog, })