Omitting unneeded api parts call and adding unit tests

This commit is contained in:
Max 2022-05-02 12:30:46 -04:00
parent 017ae832c5
commit 768191ea1a
4 changed files with 65 additions and 54 deletions

View file

@ -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",

View file

@ -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){

View file

@ -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);
// });
// });

View file

@ -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"));
}
},