diff --git a/jest.config.js b/jest.config.js index d010bda25..dc59735c2 100644 --- a/jest.config.js +++ b/jest.config.js @@ -11,7 +11,6 @@ module.exports = { "!src/constants/*.js", "!src/router/**/*.js", "!src/helpers/unit-test-helper.js", - "!src/helpers/damage-helper.js", "!src/layouts/component-test/component-test.vue", "!src/layouts/form-test/form-test.vue", "!src/layouts/vin-lookup/vin-lookup.vue", diff --git a/src/helpers/damage-helper.js b/src/helpers/damage-helper.js index 453aadf69..49c7cd59c 100644 --- a/src/helpers/damage-helper.js +++ b/src/helpers/damage-helper.js @@ -3,7 +3,24 @@ import baseMixin from "@/mixins/base-mixin.js"; import { storeActions } from "@/constants/store-actions"; export function getDamageString() { - return store.getters.damage.glassToReplace.length > 1 ? "match" : store.getters.damage.glassToReplace[0].location; + const damageLocations = store.getters.damage.glassToReplace; + let returnString; + if(damageLocations.length > 1){ + returnString = "match" + } else { + switch(damageLocations[0].location) { + case "Windshield": + returnString = "windshield" + break; + case "Driver": + case "Passenger": + returnString = "side window" + break; + case "Rear": + returnString = "rear window" + } + } + return returnString; } export async function isGlassAvailableForCarId(carId){ diff --git a/src/helpers/damage-helper.spec.js b/src/helpers/damage-helper.spec.js index abc8defe2..e0a9f71cc 100644 --- a/src/helpers/damage-helper.spec.js +++ b/src/helpers/damage-helper.spec.js @@ -1,42 +1,47 @@ import {getDamageString, isGlassAvailableForCarId} from "./damage-helper"; -//import baseMixin from "@/mixins/base-mixin.js"; +import baseMixin from "@/mixins/base-mixin.js"; jest.mock("@/store", () => ({ getters: {damage: { glassToReplace: [{location: "Windshield", name: "windshield"}] } } - })); +})); describe("damage-helper.js", () => { it("Should return damage getter info", () => { const damage = getDamageString(); - expect(damage).toEqual("Windshield") + expect(damage).toEqual("windshield") }); }); - // describe("damage-helper.js", () => { - // it("Should return false if no mismatches between each array", async () => { - // const updatedOptions = { - // data: { - // windshieldOptions: {availableReplacementOptions: ["windshield"]} - // } - // } - // baseMixin.methods.dispatchNonBlockingStoreAction = jest.fn().mockImplementation(()=> { - // return updatedOptions; - // }); - // const misMatch = await isGlassAvailableForCarId(); - // expect(misMatch).toEqual(false); - // }); - // }); + describe("damage-helper.js", () => { + it("Should return true if no mismatches between each array exist", async () => { + const updatedOptions = { + data: { + windshieldOptions: {availableReplacementOptions: ["windshield"]} + } + } + baseMixin.methods.dispatchNonBlockingStoreAction = jest.fn().mockImplementation(()=> { + return updatedOptions; + }); + const misMatch = await isGlassAvailableForCarId(); + expect(misMatch).toEqual(true); + }); + }); + + describe("damage-helper.js", () => { + it("Should return false if any mismatches between each array exist", async () => { + const updatedOptions = { + data: { + windshieldOptions: {availableReplacementOptions: ["Crack"]} + } + } + baseMixin.methods.dispatchNonBlockingStoreAction = jest.fn().mockImplementation(()=> { + return updatedOptions; + }); + const misMatch = await isGlassAvailableForCarId(); + expect(misMatch).toEqual(false); + }); + }); - // describe("damage-helper.js", () => { - // it("Should return true if there are any mismatches between arrays", () => { - // const newOptions = { - // windshieldOptions: {availableReplacementOptions: ["window"]} - // } - // const currentOptions = [{location: "Windshield", name: "windshield"}]; - // const misMatch = compareGlassOptions(newOptions, currentOptions); - // expect(misMatch).toEqual(true); - // }); - // }); \ No newline at end of file diff --git a/src/layouts/license-plate-lookup/license-plate-lookup.vue b/src/layouts/license-plate-lookup/license-plate-lookup.vue index f9f0cb41c..da227d794 100644 --- a/src/layouts/license-plate-lookup/license-plate-lookup.vue +++ b/src/layouts/license-plate-lookup/license-plate-lookup.vue @@ -128,22 +128,22 @@ export default { }; }, computed: { - MatchedDifferentVehicleAlertHeader(){ + MatchedDifferentVehicleAlertHeader() { let text = this.getCmsContent("MatchedDifferentVehicleAlertWidget", "HeadlineText").replaceAll("{custom:damage}", getDamageString()); return text; }, - MatchedDifferentVehicleAlertBody(){ + MatchedDifferentVehicleAlertBody() { let text = this.getCmsContent("MatchedDifferentVehicleAlertWidget", "BodyText").replaceAll("{custom:damage}", getDamageString()).replaceAll("{custom:plateLookupYear}", this.customAlertData?.vehicleInfo?.year).replaceAll("{custom:plateLookupMake}", this.customAlertData?.vehicleInfo?.make).replaceAll("{custom:plateLookupModel}", this.customAlertData?.vehicleInfo?.model); return text; }, - NoServiceZipHeader(){ + NoServiceZipHeader() { let text = this.getCmsContent("NoServiceZipWidget", "HeadlineText").replaceAll("{custom:zip}", this.registrationZip); return text; }, - NoServiceZipBody(){ + NoServiceZipBody() { return this.getCmsContent("NoServiceZipWidget", "BodyText"); }, }, @@ -158,16 +158,16 @@ export default { store.commit(storeMutations.UPDATE_REGISTRATION_LAST_NAME, null); store.dispatch(storeActions.RESET_PARTS_STATE_AND_DEPENDENCIES); }, - getLicensePlateFromStore(){ + getLicensePlateFromStore() { return store.getters.vehicle.registration.licensePlate }, - getRegistrationZipFromStore(){ + getRegistrationZipFromStore() { return store.getters.vehicle.registration.zipCode }, - getEmailFromStore(){ + getEmailFromStore() { return store.getters.order.customer.emailAddress }, - getServiceZipFromStore(){ + getServiceZipFromStore() { return store.getters.order.serviceLocation.zip }, backButtonAction() { @@ -202,23 +202,13 @@ export default { return; } - this.updateCustomerInfo(vinLookup.data.vin, vinLookup.data.vehicle, zipValidation.data.state); + this.updateStoreInfo(vinLookup.data.vin, vinLookup.data.vehicle, zipValidation.data.state); - const partsData = await baseMixin.methods.dispatchNonBlockingStoreAction( - this.storeActions.GET_PARTS_OR_QUESTIONS, - { - carId: vinLookup.data.vehicle.carId, - glassArray: this.isCarIdDifferent && !this.isSelectedGlassAvailableForVehicle ? [] : store.getters.damage.glassToReplace, - zipCode: this.serviceZip ? this.serviceZip : this.registrationZip, - vin: vinLookup.data.vin - }, - false - ); - this.navigateForward(partsData); + this.navigateForward(); }, - navigateForward(partsData){ + navigateForward() { if(this.isCarIdDifferent && !this.isSelectedGlassAvailableForVehicle){ - this.$router.navigateAfterSave(this.navigationScenarios.CLICKED_FORWARD, this.$route, {}, { displayVehicleChangeAlert: true }, partsData.data); + this.$router.navigateAfterSave(this.navigationScenarios.CLICKED_FORWARD, this.$route, {}, { displayVehicleChangeAlert: true }, {}); return; } else { navigateAfterSaveToHeritageFunnel(this.$route); @@ -237,7 +227,7 @@ export default { { licensePlate: plate, licenseState: state } ); }, - updateCustomerInfo(vin, vehicleInfo, registrationState) { + updateStoreInfo(vin, vehicleInfo, registrationState) { if(this.isCarIdDifferent && !this.isSelectedGlassAvailableForVehicle){ store.dispatch(storeActions.RESET_DAMAGE_STATE_AND_DEPENDENCIES); } @@ -262,10 +252,10 @@ export default { licensePlate() { this.$refs.funnelFooter.updateButtonText(this.getCmsContent("FunnelFooterWidget", "ForwardButtonText")); }, - registrationZip(){ + registrationZip() { this.$refs.funnelFooter.updateButtonText(this.getCmsContent("FunnelFooterWidget", "ForwardButtonText")); }, - serviceZip(){ + serviceZip() { this.$refs.funnelFooter.updateButtonText(this.getCmsContent("FunnelFooterWidget", "ForwardButtonText")); } },