diff --git a/src/helpers/damage-helper.js b/src/helpers/damage-helper.js index 443712991..a9b14b98d 100644 --- a/src/helpers/damage-helper.js +++ b/src/helpers/damage-helper.js @@ -23,6 +23,13 @@ export function getDamageString() { return returnString; } + export function getIsWindshieldOnly () { + const damageLocations = store.getters.damage.glassToReplace; + const returnString = damageLocations.length === 1 && damageLocations[0]?.location === "Windshield" ? "windshield" : "glass"; + console.log(damageLocations); + return returnString; + } + export async function isGlassAvailableForCarId(carId){ const newGlassOptions = await baseMixin.methods.dispatchStoreAction( storeActions.GET_DAMAGE_OPTIONS, diff --git a/src/layouts/license-plate-lookup/license-plate-lookup.spec.js b/src/layouts/license-plate-lookup/license-plate-lookup.spec.js index 71a9e2a28..9afd7e39a 100644 --- a/src/layouts/license-plate-lookup/license-plate-lookup.spec.js +++ b/src/layouts/license-plate-lookup/license-plate-lookup.spec.js @@ -3,6 +3,7 @@ import licensePlateLookup from "@/layouts/license-plate-lookup/license-plate-loo // Supporting Files import { settleAllPromises } from "@/helpers/layout-helper.js"; +import * as navigateToHeritage from "@/helpers/heritage-integration/navigation-helper"; import baseMixin from "@/mixins/base-mixin"; import { fetchCmsContentForPage } from "@/helpers/cms-content-helper"; import { shallowMount, flushPromises } from "@vue/test-utils"; @@ -380,16 +381,15 @@ describe("license-plate-lookup.vue", () => { //Act wrapper.vm.isCarIdDifferent = false; - wrapper.vm.$router.navigateAfterSaveToHeritageFunnel = jest.fn(); wrapper.vm.$refs.loadingModal.showModal = jest.fn(); wrapper.vm.getCmsContent = jest.fn().mockImplementation(() => { return ''; }); - + navigateToHeritage.navigateAfterSaveToHeritageFunnel = jest.fn(); await wrapper.vm.navigateForward(); //Assert - expect(wrapper.vm.$router.navigateAfterSaveToHeritageFunnel).toHaveBeenCalled(); + expect(navigateToHeritage.navigateAfterSaveToHeritageFunnel).toHaveBeenCalled(); }); }); diff --git a/src/layouts/license-plate-lookup/license-plate-lookup.vue b/src/layouts/license-plate-lookup/license-plate-lookup.vue index a027f5e8b..22eec59a3 100644 --- a/src/layouts/license-plate-lookup/license-plate-lookup.vue +++ b/src/layouts/license-plate-lookup/license-plate-lookup.vue @@ -70,6 +70,9 @@ import { import { errorMessages } from "@/constants/error-messages"; +import { + navigateAfterSaveToHeritageFunnel +} from "@/helpers/heritage-integration/navigation-helper"; import { getDamageString, isGlassAvailableForCarId, @@ -134,6 +137,7 @@ export default { previouslyEnteredCarId: "", customAlertData: {}, isSelectedGlassAvailableForVehicle: true, + zipToDisplay: this.getRegistrationZipFromStore(), }; }, mounted() { @@ -171,7 +175,7 @@ export default { let text = this.getCmsContent( "NoServiceZipWidget", "HeadlineText" - ).replaceAll("{custom:zip}", this.registrationZip); + ).replaceAll("{custom:zip}", this.zipToDisplay); return text; }, NoServiceZipBody() { @@ -223,6 +227,7 @@ export default { this.isVinValid = true; this.isRegistrationZipServicable = false; this.isCarIdDifferent = false; + this.zipToDisplay = this.serviceZip ? this.serviceZip : this.registrationZip; return; } const vinLookup = await this.lookupVin( @@ -273,7 +278,7 @@ export default { return; } else { this.$refs.loadingModal.showModal(); - this.$router.navigateAfterSaveToHeritageFunnel(this.$route); + navigateAfterSaveToHeritageFunnel(this.$route); return; } }, diff --git a/src/layouts/vin-lookup/vin-lookup.vue b/src/layouts/vin-lookup/vin-lookup.vue index f41f9a943..7fe982fdb 100644 --- a/src/layouts/vin-lookup/vin-lookup.vue +++ b/src/layouts/vin-lookup/vin-lookup.vue @@ -108,6 +108,14 @@ alertClass="alert-warning" cmsWidgetName="PerfectMatchNewVinAlert" /> + - @@ -176,7 +177,7 @@ import baseMixin from "@/mixins/base-mixin.js"; import { storeActions } from "@/constants/store-actions"; import { storeMutations } from "@/constants/store-mutations"; import { errorMessages } from "@/constants/error-messages"; -import { getDamageString, isGlassAvailableForCarId } from "@/helpers/damage-helper"; +import { getDamageString, getIsWindshieldOnly, isGlassAvailableForCarId } from "@/helpers/damage-helper"; import { required, regex } from "@/helpers/validation-rules"; import { Form, defineRule } from "vee-validate"; import { navigateAfterSaveToHeritageFunnel } from "@/helpers/heritage-integration/navigation-helper"; @@ -267,6 +268,13 @@ export default { return this.getCmsContent("PerfectMatchNewVinAlert", "BodyText").replaceAll("{custom:damage}", getDamageString()) }, + PerfectMatchNewVinAlertReadOnlyHeader () { + return this.getCmsContent("PerfectMatchNewVinAlertReadOnly", "HeadlineText"); + }, + PerfectMatchNewVinAlertReadOnlyBody () { + return this.getCmsContent("PerfectMatchNewVinAlertReadOnly", "BodyText").replaceAll("{custom:damage}", + getIsWindshieldOnly()) + }, isVinFieldReadOnly(){ return this.$store.getters.payment.insuranceCoverage.isVerified; }, diff --git a/src/store/index.js b/src/store/index.js index 75bd4807d..d570b5c4e 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -144,9 +144,9 @@ export const mutations = { updateRegistrationAddress(state, registrationAddress){ state.order.vehicle.registration.address = registrationAddress; }, - updateServiceLocationZip(state, serviceLocationZip){ + updateServiceLocationZipCode(state, serviceLocationZip){ state.order.vehicle.registration.zip = serviceLocationZip; - }, + }, updateRegistrationCity(state, serviceCity){ state.order.vehicle.registration.city = serviceCity; },