CSR-2087
replacing LeadGenState with ExternalParameterState and add capability questions, molding questions and vehicle parts.
This commit is contained in:
parent
c197093632
commit
6ab9c34370
24 changed files with 335 additions and 334 deletions
|
|
@ -96,9 +96,8 @@ const storeActions = {
|
||||||
|
|
||||||
CREATE_SUBMITTED_ORDER: "createSubmittedOrder",
|
CREATE_SUBMITTED_ORDER: "createSubmittedOrder",
|
||||||
RESET_SUBMITTED_ORDER: "resetSubmittedOrder",
|
RESET_SUBMITTED_ORDER: "resetSubmittedOrder",
|
||||||
RESET_LEADGEN_STATE: "resetLeadGenState",
|
RESET_EXTERNAL_PARAMETER_STATE: "resetExternalParameterState",
|
||||||
CREATE_LEADGEN_STATE: "createLeadGenState",
|
UPDATE_EXTERNAL_PARAMETER_MMS: "updateExternalParameterMMS",
|
||||||
UPDATE_LEADGEN_MMS: "updateLeadGenMMS",
|
|
||||||
};
|
};
|
||||||
|
|
||||||
export { storeActions };
|
export { storeActions };
|
||||||
|
|
|
||||||
|
|
@ -60,7 +60,6 @@ const storeMutations = {
|
||||||
Customer_Portal_Login_Token: "updateCustomerPortalLoginToken",
|
Customer_Portal_Login_Token: "updateCustomerPortalLoginToken",
|
||||||
LOCK_TOKEN: "updateLockToken",
|
LOCK_TOKEN: "updateLockToken",
|
||||||
UPDATE_SETTLED_TENDER_AMOUNT: "updateSettledTenderAmount",
|
UPDATE_SETTLED_TENDER_AMOUNT: "updateSettledTenderAmount",
|
||||||
UPDATE_IS_LEAD_GEN: "updateIsLeadGen",
|
|
||||||
|
|
||||||
// EVENT BUS MUTATIONS
|
// EVENT BUS MUTATIONS
|
||||||
ADD_EVENT_TO_BUS: "addEventToBus",
|
ADD_EVENT_TO_BUS: "addEventToBus",
|
||||||
|
|
@ -89,27 +88,28 @@ const storeMutations = {
|
||||||
UPDATE_EXPERIMENTS: "updateExperiments",
|
UPDATE_EXPERIMENTS: "updateExperiments",
|
||||||
UPDATE_TRIGGERED_SITE_ENTRY: "updateTriggeredSiteEntry",
|
UPDATE_TRIGGERED_SITE_ENTRY: "updateTriggeredSiteEntry",
|
||||||
|
|
||||||
// LEADGEN MUTATIONS
|
// EXTERNAL_PARAMETER MUTATIONS
|
||||||
UPDATE_LEAD_GEN_YEAR: "updateLeadGenYear",
|
UPDATE_IS_EXTERNAL_PARAMETER: "updateIsExternalParameter",
|
||||||
UPDATE_LEAD_GEN_MAKE: "updateLeadGenMake",
|
UPDATE_EXTERNAL_PARAMETER_YEAR: "updateExternalParameterYear",
|
||||||
UPDATE_LEAD_GEN_MODEL: "updateLeadGenModel",
|
UPDATE_EXTERNAL_PARAMETER_MAKE: "updateExternalParameterMake",
|
||||||
UPDATE_LEAD_GEN_STYLE: "updateLeadGenStyle",
|
UPDATE_EXTERNAL_PARAMETER_MODEL: "updateExternalParameterModel",
|
||||||
UPDATE_LEAD_GEN_IS_REPAIR: "updateLeadGenIsRepair",
|
UPDATE_EXTERNAL_PARAMETER_STYLE: "updateExternalParameterStyle",
|
||||||
UPDATE_LEAD_GEN_NUMBER_OF_CHIPS: "updateLeadGenNumberOfChips",
|
UPDATE_EXTERNAL_PARAMETER_IS_REPAIR: "updateExternalParameterIsRepair",
|
||||||
UPDATE_LEAD_GEN_DAMAGE_TYPE: "updateLeadGenDamageType",
|
UPDATE_EXTERNAL_PARAMETER_NUMBER_OF_CHIPS: "updateExternalParameterNumberOfChips",
|
||||||
UPDATE_LEAD_GEN_ZIP_CODE: "updateLeadGenZipCode",
|
UPDATE_EXTERNAL_PARAMETER_DAMAGE_TYPE: "updateExternalParameterDamageType",
|
||||||
UPDATE_LEAD_GEN_EMAIL_ADDRESS: "updateLeadGenEmailAddress",
|
UPDATE_EXTERNAL_PARAMETER_ZIP_CODE: "updateExternalParameterZipCode",
|
||||||
UPDATE_LEAD_GEN_IS_INSURANCE: "updateLeadGenIsInsurance",
|
UPDATE_EXTERNAL_PARAMETER_EMAIL_ADDRESS: "updateExternalParameterEmailAddress",
|
||||||
UPDATE_LEAD_GEN_VIN_SELECTION: "updateLeadGenVinSelection",
|
UPDATE_EXTERNAL_PARAMETER_IS_INSURANCE: "updateExternalParameterIsInsurance",
|
||||||
UPDATE_LEAD_GEN_SERVICE_PACKAGE: "updateLeadGenServicePackage",
|
UPDATE_EXTERNAL_PARAMETER_VIN_SELECTION: "updateExternalParameterVinSelection",
|
||||||
|
UPDATE_EXTERNAL_PARAMETER_SERVICE_PACKAGE: "updateExternalParameterServicePackage",
|
||||||
|
|
||||||
//RESET LEADGEN MUTATIONS
|
//RESET EXTERNAL_PARAMETER MUTATIONS
|
||||||
RESET_LEADGEN_VEHICLE_STATE: "resetLeadGenVehicleState",
|
RESET_EXTERNAL_PARAMETER_VEHICLE_STATE: "resetExternalParameterVehicleState",
|
||||||
RESETL_EADGEN_DAMAGE_STATE: "resetLeadGenDamageState",
|
RESET_EXTERNAL_PARAMETER_DAMAGE_STATE: "resetExternalParameterDamageState",
|
||||||
RESET_LEADGEN_ESTIMATE_STATE: "resetLeadGenEstimateState",
|
RESET_EXTERNAL_PARAMETER_ESTIMATE_STATE: "resetExternalParameterEstimateState",
|
||||||
RESET_LEADGEN_SERVICEZIP_STATE: "resetLeadGenServiceZipState",
|
RESET_EXTERNAL_PARAMETER_SERVICEZIP_STATE: "resetExternalParameterServiceZipState",
|
||||||
RESET_LEADGEN_QUOTE_STATE: "resetLeadGenQuoteState",
|
RESET_EXTERNAL_PARAMETER_QUOTE_STATE: "resetExternalParameterQuoteState",
|
||||||
RESET_IS_LEADGEN: "resetIsLeadGen",
|
RESET_IS_EXTERNAL_PARAMETER: "resetIsExternalParameter",
|
||||||
};
|
};
|
||||||
|
|
||||||
export { storeMutations };
|
export { storeMutations };
|
||||||
|
|
|
||||||
|
|
@ -150,9 +150,8 @@ export default {
|
||||||
// Call the "next" function to complete the transition to this page.
|
// Call the "next" function to complete the transition to this page.
|
||||||
next((vm) => {
|
next((vm) => {
|
||||||
vm.setCmsContent(resultMap.cmsContent);
|
vm.setCmsContent(resultMap.cmsContent);
|
||||||
if (store.getters.isLeadGen) {
|
if (store.getters.isExternalParameter) {
|
||||||
baseMixin.methods.dispatchStoreAction(storeActions.RESET_LEADGEN_STATE);
|
baseMixin.methods.ResetExternalParamsAndHideModal();
|
||||||
baseMixin.methods.hideFmgLoadingModal();
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -29,6 +29,7 @@ import { Form, defineRule } from "vee-validate";
|
||||||
import { required } from "@/helpers/validation-rules";
|
import { required } from "@/helpers/validation-rules";
|
||||||
import { errorMessages } from "@/constants/error-messages";
|
import { errorMessages } from "@/constants/error-messages";
|
||||||
import vehicleQuestionsMixin from "@/mixins/vehicle-questions-mixin";
|
import vehicleQuestionsMixin from "@/mixins/vehicle-questions-mixin";
|
||||||
|
import baseMixin from "@/mixins/base-mixin.js";
|
||||||
|
|
||||||
// DEFINE VALIDATION RULES
|
// DEFINE VALIDATION RULES
|
||||||
defineRule("questions-required", required(errorMessages.OPTION_REQUIRED));
|
defineRule("questions-required", required(errorMessages.OPTION_REQUIRED));
|
||||||
|
|
@ -53,6 +54,9 @@ export default {
|
||||||
// Call the "next" function to complete the transition to this page.
|
// Call the "next" function to complete the transition to this page.
|
||||||
next((vm) => {
|
next((vm) => {
|
||||||
vm.setCmsContent(resultMap.cmsContent);
|
vm.setCmsContent(resultMap.cmsContent);
|
||||||
|
if (store.getters.isExternalParameter) {
|
||||||
|
baseMixin.methods.ResetExternalParamsAndHideModal();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
|
|
|
||||||
|
|
@ -214,9 +214,9 @@ describe("estimate.vue", () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("estimate.vue", () => {
|
describe("estimate.vue", () => {
|
||||||
test("should call forwardButtonAction if isLeadGen is true and form is valid", async () => {
|
test("should call forwardButtonAction if isExternalParameter is true and form is valid", async () => {
|
||||||
store.commit(storeMutations.UPDATE_IS_LEAD_GEN, true);
|
store.commit(storeMutations.UPDATE_IS_EXTERNAL_PARAMETER, true);
|
||||||
store.commit(storeMutations.UPDATE_LEAD_GEN_VIN_SELECTION, "decline");
|
store.commit(storeMutations.UPDATE_EXTERNAL_PARAMETER_VIN_SELECTION, "decline");
|
||||||
|
|
||||||
// Set up the component
|
// Set up the component
|
||||||
const { wrapper } = setupMocks({});
|
const { wrapper } = setupMocks({});
|
||||||
|
|
|
||||||
|
|
@ -146,26 +146,23 @@ export default {
|
||||||
}
|
}
|
||||||
|
|
||||||
vm.setCmsContent(resultMap.cmsContent);
|
vm.setCmsContent(resultMap.cmsContent);
|
||||||
if (store.getters.isLeadGen) {
|
if (store.getters.isExternalParameter) {
|
||||||
if (store.getters.leadGenEstimate.vinSelection) {
|
if (store.getters.externalParameterEstimate.vinSelection) {
|
||||||
vm.selectedVinLookupMethod = vinPagesMixin.methods.getVinlookupMethod(
|
vm.selectedVinLookupMethod = vinPagesMixin.methods.getVinlookupMethod(
|
||||||
store.getters.leadGenEstimate.vinSelection
|
store.getters.externalParameterEstimate.vinSelection
|
||||||
);
|
);
|
||||||
await nextTick();
|
await nextTick();
|
||||||
const isValid = await baseMixin.methods.isFormValid(vm.$refs.theForm);
|
const isValid = await baseMixin.methods.isFormValid(vm.$refs.theForm);
|
||||||
if (isValid) {
|
if (isValid) {
|
||||||
vm.forwardButtonAction();
|
vm.forwardButtonAction();
|
||||||
} else {
|
} else {
|
||||||
baseMixin.methods.dispatchStoreAction(storeActions.RESET_LEADGEN_STATE);
|
baseMixin.methods.ResetExternalParamsAndHideModal();
|
||||||
baseMixin.methods.hideFmgLoadingModal();
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
baseMixin.methods.dispatchStoreAction(storeActions.RESET_LEADGEN_STATE);
|
baseMixin.methods.ResetExternalParamsAndHideModal();
|
||||||
baseMixin.methods.hideFmgLoadingModal();
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
baseMixin.methods.dispatchStoreAction(storeActions.RESET_LEADGEN_STATE);
|
baseMixin.methods.ResetExternalParamsAndHideModal();
|
||||||
baseMixin.methods.hideFmgLoadingModal();
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -76,9 +76,8 @@ export default {
|
||||||
next((vm) => {
|
next((vm) => {
|
||||||
vm.setCmsContent(resultMap.cmsContent);
|
vm.setCmsContent(resultMap.cmsContent);
|
||||||
vm.originalList = resultMap.insuranceCompanyList;
|
vm.originalList = resultMap.insuranceCompanyList;
|
||||||
if (store.getters.isLeadGen) {
|
if (store.getters.isExternalParameter) {
|
||||||
baseMixin.methods.dispatchStoreAction(storeActions.RESET_LEADGEN_STATE);
|
baseMixin.methods.ResetExternalParamsAndHideModal();
|
||||||
baseMixin.methods.hideFmgLoadingModal();
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -148,9 +148,8 @@ export default {
|
||||||
// Call the "next" function to complete the transition to this page.
|
// Call the "next" function to complete the transition to this page.
|
||||||
next((vm) => {
|
next((vm) => {
|
||||||
vm.setCmsContent(resultMap.cmsContent);
|
vm.setCmsContent(resultMap.cmsContent);
|
||||||
if (store.getters.isLeadGen) {
|
if (store.getters.isExternalParameter) {
|
||||||
baseMixin.methods.dispatchStoreAction(storeActions.RESET_LEADGEN_STATE);
|
baseMixin.methods.ResetExternalParamsAndHideModal();
|
||||||
baseMixin.methods.hideFmgLoadingModal();
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -29,6 +29,7 @@ import { Form, defineRule } from "vee-validate";
|
||||||
import { required } from "@/helpers/validation-rules";
|
import { required } from "@/helpers/validation-rules";
|
||||||
import { errorMessages } from "@/constants/error-messages";
|
import { errorMessages } from "@/constants/error-messages";
|
||||||
import vehicleQuestionsMixin from "@/mixins/vehicle-questions-mixin";
|
import vehicleQuestionsMixin from "@/mixins/vehicle-questions-mixin";
|
||||||
|
import baseMixin from "@/mixins/base-mixin.js";
|
||||||
|
|
||||||
// DEFINE VALIDATION RULES
|
// DEFINE VALIDATION RULES
|
||||||
defineRule("questions-required", required(errorMessages.OPTION_REQUIRED));
|
defineRule("questions-required", required(errorMessages.OPTION_REQUIRED));
|
||||||
|
|
@ -53,6 +54,9 @@ export default {
|
||||||
// Call the "next" function to complete the transition to this page.
|
// Call the "next" function to complete the transition to this page.
|
||||||
next((vm) => {
|
next((vm) => {
|
||||||
vm.setCmsContent(resultMap.cmsContent);
|
vm.setCmsContent(resultMap.cmsContent);
|
||||||
|
if (store.getters.isExternalParameter) {
|
||||||
|
baseMixin.methods.ResetExternalParamsAndHideModal();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,6 @@ import { required } from "@/helpers/validation-rules";
|
||||||
import { errorMessages } from "@/constants/error-messages";
|
import { errorMessages } from "@/constants/error-messages";
|
||||||
import vehicleQuestionsMixin from "@/mixins/vehicle-questions-mixin";
|
import vehicleQuestionsMixin from "@/mixins/vehicle-questions-mixin";
|
||||||
import baseMixin from "@/mixins/base-mixin.js";
|
import baseMixin from "@/mixins/base-mixin.js";
|
||||||
import { storeActions } from "@/constants/store-actions";
|
|
||||||
|
|
||||||
// DEFINE VALIDATION RULES
|
// DEFINE VALIDATION RULES
|
||||||
defineRule("questions-required", required(errorMessages.OPTION_REQUIRED));
|
defineRule("questions-required", required(errorMessages.OPTION_REQUIRED));
|
||||||
|
|
@ -55,9 +54,8 @@ export default {
|
||||||
// Call the "next" function to complete the transition to this page.
|
// Call the "next" function to complete the transition to this page.
|
||||||
next((vm) => {
|
next((vm) => {
|
||||||
vm.setCmsContent(resultMap.cmsContent);
|
vm.setCmsContent(resultMap.cmsContent);
|
||||||
if (store.getters.isLeadGen) {
|
if (store.getters.isExternalParameter) {
|
||||||
baseMixin.methods.dispatchStoreAction(storeActions.RESET_LEADGEN_STATE);
|
baseMixin.methods.ResetExternalParamsAndHideModal();
|
||||||
baseMixin.methods.hideFmgLoadingModal();
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -647,8 +647,8 @@ describe("quote.vue", () => {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
describe("quote.vue", () => {
|
describe("quote.vue", () => {
|
||||||
test("should call forwardButtonAction if isLeadGen and Insurance is true and form is valid", async () => {
|
test("should call forwardButtonAction if isExternalParameter and Insurance is true and form is valid", async () => {
|
||||||
// Set up the store with isLeadGen as true
|
// Set up the store with isExternalParameter as true
|
||||||
|
|
||||||
store.getters = {
|
store.getters = {
|
||||||
lineItems: {
|
lineItems: {
|
||||||
|
|
@ -671,8 +671,8 @@ describe("quote.vue", () => {
|
||||||
inactivePromos: [],
|
inactivePromos: [],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
isLeadGen: true,
|
isExternalParameter: true,
|
||||||
leadGenQuote: {
|
externalParameterQuote: {
|
||||||
isInsurance: true,
|
isInsurance: true,
|
||||||
servicePackage: "glassonly",
|
servicePackage: "glassonly",
|
||||||
},
|
},
|
||||||
|
|
@ -717,7 +717,7 @@ function setupMocks({ customMountOptions }) {
|
||||||
...customMountOptions,
|
...customMountOptions,
|
||||||
});
|
});
|
||||||
|
|
||||||
baseMixin.methods.hideFmgLoadingModal = jest.fn();
|
baseMixin.methods.ResetExternalParamsAndHideModal = jest.fn();
|
||||||
baseMixin.methods.isFormValid = jest.fn().mockReturnValue(true);
|
baseMixin.methods.isFormValid = jest.fn().mockReturnValue(true);
|
||||||
mountOptions.global.mocks["$store"] = store;
|
mountOptions.global.mocks["$store"] = store;
|
||||||
mountOptions["attachTo"] = document.body;
|
mountOptions["attachTo"] = document.body;
|
||||||
|
|
|
||||||
|
|
@ -272,25 +272,22 @@ export default {
|
||||||
validateAlerts[0].shouldAutoFade
|
validateAlerts[0].shouldAutoFade
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
if (store.getters.isLeadGen) {
|
if (store.getters.isExternalParameter) {
|
||||||
if (store.getters.leadGenQuote.isInsurance == true) {
|
if (store.getters.externalParameterQuote.isInsurance == true) {
|
||||||
vm.isInsuranceSelected = true;
|
vm.isInsuranceSelected = true;
|
||||||
vm.servicePackage = store.getters.leadGenQuote.servicePackage;
|
vm.servicePackage = store.getters.externalParameterQuote.servicePackage;
|
||||||
await nextTick();
|
await nextTick();
|
||||||
const isValid = await baseMixin.methods.isFormValid(vm.$refs.theForm);
|
const isValid = await baseMixin.methods.isFormValid(vm.$refs.theForm);
|
||||||
if (isValid) {
|
if (isValid) {
|
||||||
vm.forwardButtonAction();
|
vm.forwardButtonAction();
|
||||||
} else {
|
} else {
|
||||||
baseMixin.methods.dispatchStoreAction(storeActions.RESET_LEADGEN_STATE);
|
baseMixin.methods.ResetExternalParamsAndHideModal();
|
||||||
baseMixin.methods.hideFmgLoadingModal();
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
baseMixin.methods.dispatchStoreAction(storeActions.RESET_LEADGEN_STATE);
|
baseMixin.methods.ResetExternalParamsAndHideModal();
|
||||||
baseMixin.methods.hideFmgLoadingModal();
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
baseMixin.methods.dispatchStoreAction(storeActions.RESET_LEADGEN_STATE);
|
baseMixin.methods.ResetExternalParamsAndHideModal();
|
||||||
baseMixin.methods.hideFmgLoadingModal();
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -297,7 +297,8 @@ export default {
|
||||||
},
|
},
|
||||||
selectDefaultPackage() {
|
selectDefaultPackage() {
|
||||||
if (this.servicePackage != null) {
|
if (this.servicePackage != null) {
|
||||||
return (this.selectedPackageName = getPackageNameByType(this.servicePackage));
|
this.selectedPackageName = getPackageNameByType(this.servicePackage);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
const promosWithAddableVaps = getPromosWithAddableVaps(this.activePromos);
|
const promosWithAddableVaps = getPromosWithAddableVaps(this.activePromos);
|
||||||
const vapsThatMatchPromos = getLineItemsThatMatchPromos(
|
const vapsThatMatchPromos = getLineItemsThatMatchPromos(
|
||||||
|
|
|
||||||
|
|
@ -165,7 +165,7 @@ function resetMockStoreData() {
|
||||||
jobMaxMinutes: null,
|
jobMaxMinutes: null,
|
||||||
jobMinMinutes: null,
|
jobMinMinutes: null,
|
||||||
},
|
},
|
||||||
leadGenServiceZip: {
|
externalParameterServiceZip: {
|
||||||
zipCode: null,
|
zipCode: null,
|
||||||
emailAddress: null,
|
emailAddress: null,
|
||||||
},
|
},
|
||||||
|
|
@ -179,7 +179,7 @@ function applyMockStoreDataToGetters() {
|
||||||
damage: mockStoreData.damage,
|
damage: mockStoreData.damage,
|
||||||
payment: mockStoreData.payment,
|
payment: mockStoreData.payment,
|
||||||
policy: mockStoreData.policy,
|
policy: mockStoreData.policy,
|
||||||
leadGenServiceZip: mockStoreData.leadGenServiceZip,
|
externalParameterServiceZip: mockStoreData.externalParameterServiceZip,
|
||||||
};
|
};
|
||||||
store.state.order = mockStoreData;
|
store.state.order = mockStoreData;
|
||||||
store.state.applicationUser.experiments = mockExperimentSettings;
|
store.state.applicationUser.experiments = mockExperimentSettings;
|
||||||
|
|
@ -409,9 +409,9 @@ describe("service-zip.vue", () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("service-zip.vue", () => {
|
describe("service-zip.vue", () => {
|
||||||
test("should call forwardButtonAction if isLeadGen is true and form is valid", async () => {
|
test("should call forwardButtonAction if isExternalParameter is true and form is valid", async () => {
|
||||||
// Set up the store with isLeadGen as true
|
// Set up the store with isExternalParameter as true
|
||||||
store.getters.isLeadGen = true;
|
store.getters.isExternalParameter = true;
|
||||||
|
|
||||||
// Set up the component
|
// Set up the component
|
||||||
const wrapper = setupMocks({});
|
const wrapper = setupMocks({});
|
||||||
|
|
@ -433,9 +433,9 @@ describe("service-zip.vue", () => {
|
||||||
expect(nextFunction).toHaveBeenCalled();
|
expect(nextFunction).toHaveBeenCalled();
|
||||||
expect(wrapper.vm.forwardButtonAction).toHaveBeenCalled();
|
expect(wrapper.vm.forwardButtonAction).toHaveBeenCalled();
|
||||||
});
|
});
|
||||||
test("should not call forwardButtonAction if isLeadGen is true and form is invalid", async () => {
|
test("should not call forwardButtonAction if isExternalParameter is true and form is invalid", async () => {
|
||||||
// Set up the store with isLeadGen as true
|
// Set up the store with isExternalParameter as true
|
||||||
store.getters.isLeadGen = true;
|
store.getters.isExternalParameter = true;
|
||||||
|
|
||||||
// Set up the component
|
// Set up the component
|
||||||
const wrapper = setupMocks({});
|
const wrapper = setupMocks({});
|
||||||
|
|
@ -465,7 +465,7 @@ function setupMocks({ customMountOptions, customZipQuery, customZipDataResponse
|
||||||
if (customZipQuery) {
|
if (customZipQuery) {
|
||||||
route.query.zipcode = customZipQuery;
|
route.query.zipcode = customZipQuery;
|
||||||
}
|
}
|
||||||
baseMixin.methods.hideFmgLoadingModal = jest.fn();
|
baseMixin.methods.ResetExternalParamsAndHideModal = jest.fn();
|
||||||
|
|
||||||
const mountOptions = getMountOptions({
|
const mountOptions = getMountOptions({
|
||||||
...customMountOptions,
|
...customMountOptions,
|
||||||
|
|
|
||||||
|
|
@ -133,13 +133,12 @@ export default {
|
||||||
|
|
||||||
next(async (vm) => {
|
next(async (vm) => {
|
||||||
vm.setCmsContent(resultMap.cmsContent);
|
vm.setCmsContent(resultMap.cmsContent);
|
||||||
if (store.getters.isLeadGen) {
|
if (store.getters.isExternalParameter) {
|
||||||
const isValid = await baseMixin.methods.isFormValid(vm.$refs.theForm);
|
const isValid = await baseMixin.methods.isFormValid(vm.$refs.theForm);
|
||||||
if (isValid) {
|
if (isValid) {
|
||||||
vm.forwardButtonAction();
|
vm.forwardButtonAction();
|
||||||
} else {
|
} else {
|
||||||
baseMixin.methods.dispatchStoreAction(storeActions.RESET_LEADGEN_STATE);
|
baseMixin.methods.ResetExternalParamsAndHideModal();
|
||||||
baseMixin.methods.hideFmgLoadingModal();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
@ -147,13 +146,13 @@ export default {
|
||||||
methods: {
|
methods: {
|
||||||
getZipFromStore() {
|
getZipFromStore() {
|
||||||
return (
|
return (
|
||||||
store.getters.leadGenServiceZip.zipCode ??
|
store.getters.externalParameterServiceZip.zipCode ??
|
||||||
store.getters.order.serviceLocation.zipCode
|
store.getters.order.serviceLocation.zipCode
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
getEmailFromStore() {
|
getEmailFromStore() {
|
||||||
return (
|
return (
|
||||||
store.getters.leadGenServiceZip.emailAddress ??
|
store.getters.externalParameterServiceZip.emailAddress ??
|
||||||
store.getters.order.customer.emailAddress
|
store.getters.order.customer.emailAddress
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
|
@ -190,9 +189,8 @@ export default {
|
||||||
|
|
||||||
if (!zipCodeData.isValid) {
|
if (!zipCodeData.isValid) {
|
||||||
this.displayInvalidZipAlert = true;
|
this.displayInvalidZipAlert = true;
|
||||||
if (store.getters.isLeadGen) {
|
if (store.getters.isExternalParameter) {
|
||||||
baseMixin.methods.dispatchStoreAction(storeActions.RESET_LEADGEN_STATE);
|
baseMixin.methods.ResetExternalParamsAndHideModal();
|
||||||
baseMixin.methods.hideFmgLoadingModal();
|
|
||||||
}
|
}
|
||||||
return this.$refs.navbar.removeLoader();
|
return this.$refs.navbar.removeLoader();
|
||||||
}
|
}
|
||||||
|
|
@ -200,9 +198,8 @@ export default {
|
||||||
|
|
||||||
if (!zipCodeData.isServiceable) {
|
if (!zipCodeData.isServiceable) {
|
||||||
this.displayNonServiceableZipAlert = true;
|
this.displayNonServiceableZipAlert = true;
|
||||||
if (store.getters.isLeadGen) {
|
if (store.getters.isExternalParameter) {
|
||||||
baseMixin.methods.dispatchStoreAction(storeActions.RESET_LEADGEN_STATE);
|
baseMixin.methods.ResetExternalParamsAndHideModal();
|
||||||
baseMixin.methods.hideFmgLoadingModal();
|
|
||||||
}
|
}
|
||||||
return this.$refs.navbar.removeLoader();
|
return this.$refs.navbar.removeLoader();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -66,8 +66,8 @@ jest.mock("@/store", () => ({
|
||||||
glassToReplace: [],
|
glassToReplace: [],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
isLeadGen: false,
|
isExternalParameter: false,
|
||||||
leadGenDamage: {
|
externalParameterDamage: {
|
||||||
damageType: null,
|
damageType: null,
|
||||||
isRepair: null,
|
isRepair: null,
|
||||||
numberOfChips: null,
|
numberOfChips: null,
|
||||||
|
|
@ -153,7 +153,7 @@ describe("vehicle-damage.vue", () => {
|
||||||
getters: {
|
getters: {
|
||||||
vehicle: {},
|
vehicle: {},
|
||||||
payment: { insuranceCoverage: { isVerified: false } },
|
payment: { insuranceCoverage: { isVerified: false } },
|
||||||
leadGenDamage: {
|
externalParameterDamage: {
|
||||||
damageType: null,
|
damageType: null,
|
||||||
isRepair: null,
|
isRepair: null,
|
||||||
numberOfChips: null,
|
numberOfChips: null,
|
||||||
|
|
@ -268,7 +268,7 @@ describe("vehicle-damage.vue", () => {
|
||||||
getters: {
|
getters: {
|
||||||
vehicle: {},
|
vehicle: {},
|
||||||
payment: { insuranceCoverage: { isVerified: false } },
|
payment: { insuranceCoverage: { isVerified: false } },
|
||||||
leadGenDamage: {
|
externalParameterDamage: {
|
||||||
damageType: null,
|
damageType: null,
|
||||||
isRepair: null,
|
isRepair: null,
|
||||||
numberOfChips: null,
|
numberOfChips: null,
|
||||||
|
|
@ -556,7 +556,7 @@ describe("vehicle-damage.vue", () => {
|
||||||
eventBusItem: jest.fn(),
|
eventBusItem: jest.fn(),
|
||||||
damage: { glassToReplace: [{ glassLocation: damageLocation }] },
|
damage: { glassToReplace: [{ glassLocation: damageLocation }] },
|
||||||
isRepair: true,
|
isRepair: true,
|
||||||
leadGenDamage: {
|
externalParameterDamage: {
|
||||||
damageType: null,
|
damageType: null,
|
||||||
isRepair: null,
|
isRepair: null,
|
||||||
numberOfChips: null,
|
numberOfChips: null,
|
||||||
|
|
@ -638,7 +638,7 @@ describe("vehicle-damage.vue", () => {
|
||||||
isRepair: isRepair,
|
isRepair: isRepair,
|
||||||
numberOfChips: 2,
|
numberOfChips: 2,
|
||||||
},
|
},
|
||||||
leadGenDamage: {
|
externalParameterDamage: {
|
||||||
damageType: null,
|
damageType: null,
|
||||||
isRepair: null,
|
isRepair: null,
|
||||||
numberOfChips: null,
|
numberOfChips: null,
|
||||||
|
|
@ -679,7 +679,7 @@ describe("vehicle-damage.vue", () => {
|
||||||
glassToReplace: [{ glassLocation: damageLocation, glassName: damageName }],
|
glassToReplace: [{ glassLocation: damageLocation, glassName: damageName }],
|
||||||
},
|
},
|
||||||
isRepair: true,
|
isRepair: true,
|
||||||
leadGenDamage: {
|
externalParameterDamage: {
|
||||||
damageType: null,
|
damageType: null,
|
||||||
isRepair: null,
|
isRepair: null,
|
||||||
numberOfChips: null,
|
numberOfChips: null,
|
||||||
|
|
@ -720,7 +720,7 @@ describe("vehicle-damage.vue", () => {
|
||||||
glassToReplace: [{ glassLocation: damageLocation, glassName: damageName }],
|
glassToReplace: [{ glassLocation: damageLocation, glassName: damageName }],
|
||||||
},
|
},
|
||||||
isRepair: true,
|
isRepair: true,
|
||||||
leadGenDamage: {
|
externalParameterDamage: {
|
||||||
damageType: null,
|
damageType: null,
|
||||||
isRepair: null,
|
isRepair: null,
|
||||||
numberOfChips: null,
|
numberOfChips: null,
|
||||||
|
|
@ -759,7 +759,7 @@ describe("vehicle-damage.vue", () => {
|
||||||
glassToReplace: [{ glassLocation: damageLocation, glassName: damageName }],
|
glassToReplace: [{ glassLocation: damageLocation, glassName: damageName }],
|
||||||
},
|
},
|
||||||
isRepair: true,
|
isRepair: true,
|
||||||
leadGenDamage: {
|
externalParameterDamage: {
|
||||||
damageType: null,
|
damageType: null,
|
||||||
isRepair: null,
|
isRepair: null,
|
||||||
numberOfChips: null,
|
numberOfChips: null,
|
||||||
|
|
@ -785,7 +785,7 @@ describe("vehicle-damage.vue", () => {
|
||||||
vehicle: {},
|
vehicle: {},
|
||||||
payment: { insuranceCoverage: { isVerified: true } },
|
payment: { insuranceCoverage: { isVerified: true } },
|
||||||
requiresVerifiedRedirecting: true,
|
requiresVerifiedRedirecting: true,
|
||||||
leadGenDamage: {
|
externalParameterDamage: {
|
||||||
damageType: null,
|
damageType: null,
|
||||||
isRepair: null,
|
isRepair: null,
|
||||||
numberOfChips: null,
|
numberOfChips: null,
|
||||||
|
|
@ -809,10 +809,10 @@ describe("vehicle-damage.vue", () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("vehicle-damage.vue", () => {
|
describe("vehicle-damage.vue", () => {
|
||||||
test("should call forwardButtonAction if isLeadGen is true and form is valid", async () => {
|
test("should call forwardButtonAction if isExternalParameter is true and form is valid", async () => {
|
||||||
// Set up the store with isLeadGen as true
|
// Set up the store with isExternalParameter as true
|
||||||
store.getters.isLeadGen = true;
|
store.getters.isExternalParameter = true;
|
||||||
store.getters.leadGenDamage = {
|
store.getters.externalParameterDamage = {
|
||||||
damageType: "windshieldReplace",
|
damageType: "windshieldReplace",
|
||||||
isRepair: false,
|
isRepair: false,
|
||||||
numberOfChips: null,
|
numberOfChips: null,
|
||||||
|
|
@ -862,12 +862,6 @@ function setupMocks({ pageHeaderWidgetHeaderText, mountOptionsMockData, funnelCo
|
||||||
isVerified: false,
|
isVerified: false,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
// isLeadGen: false,
|
|
||||||
// leadGenDamage: {
|
|
||||||
// damageType: null,
|
|
||||||
// isRepair: null,
|
|
||||||
// numberOfChips: null,
|
|
||||||
// },
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
@ -880,7 +874,7 @@ function setupMocks({ pageHeaderWidgetHeaderText, mountOptionsMockData, funnelCo
|
||||||
//Mock api responses
|
//Mock api responses
|
||||||
baseMixin.methods.dispatchStoreAction = jest.fn();
|
baseMixin.methods.dispatchStoreAction = jest.fn();
|
||||||
baseMixin.methods.dispatchStoreActionWithLogging = jest.fn();
|
baseMixin.methods.dispatchStoreActionWithLogging = jest.fn();
|
||||||
baseMixin.methods.hideFmgLoadingModal = jest.fn();
|
baseMixin.methods.ResetExternalParamsAndHideModal = jest.fn();
|
||||||
const apiResponses = {
|
const apiResponses = {
|
||||||
cmsContent: {
|
cmsContent: {
|
||||||
FunnelSubHeaderWidget: pageHeaderWidgetHeaderText,
|
FunnelSubHeaderWidget: pageHeaderWidgetHeaderText,
|
||||||
|
|
|
||||||
|
|
@ -150,18 +150,16 @@ export default {
|
||||||
vm.$refs.backGlassOptions.initializeComponent(
|
vm.$refs.backGlassOptions.initializeComponent(
|
||||||
resultMap.damageOptions.backGlassOptions.availableReplacementOptions
|
resultMap.damageOptions.backGlassOptions.availableReplacementOptions
|
||||||
);
|
);
|
||||||
if (store.getters.isLeadGen) {
|
if (store.getters.isExternalParameter) {
|
||||||
await nextTick();
|
await nextTick();
|
||||||
const isValid = await baseMixin.methods.isFormValid(vm.$refs.theForm);
|
const isValid = await baseMixin.methods.isFormValid(vm.$refs.theForm);
|
||||||
if (isValid) {
|
if (isValid) {
|
||||||
vm.forwardButtonAction();
|
vm.forwardButtonAction();
|
||||||
} else {
|
} else {
|
||||||
baseMixin.methods.dispatchStoreAction(storeActions.RESET_LEADGEN_STATE);
|
baseMixin.methods.ResetExternalParamsAndHideModal();
|
||||||
baseMixin.methods.hideFmgLoadingModal();
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
baseMixin.methods.dispatchStoreAction(storeActions.RESET_LEADGEN_STATE);
|
baseMixin.methods.ResetExternalParamsAndHideModal();
|
||||||
baseMixin.methods.hideFmgLoadingModal();
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
@ -211,8 +209,10 @@ export default {
|
||||||
return glass.glassLocation === damageLocationsSelected.WINDSHIELD;
|
return glass.glassLocation === damageLocationsSelected.WINDSHIELD;
|
||||||
}) ||
|
}) ||
|
||||||
store.getters.damage.isRepair ||
|
store.getters.damage.isRepair ||
|
||||||
store.getters.leadGenDamage.isRepair ||
|
store.getters.externalParameterDamage.isRepair ||
|
||||||
store.getters.leadGenDamage.damageType?.toUpperCase().includes("WINDSHIELD")
|
store.getters.externalParameterDamage.damageType
|
||||||
|
?.toUpperCase()
|
||||||
|
.includes("WINDSHIELD")
|
||||||
) {
|
) {
|
||||||
glassSelections.push(damageLocationsSelected.WINDSHIELD);
|
glassSelections.push(damageLocationsSelected.WINDSHIELD);
|
||||||
}
|
}
|
||||||
|
|
@ -246,15 +246,16 @@ export default {
|
||||||
};
|
};
|
||||||
|
|
||||||
if (
|
if (
|
||||||
store.getters.leadGenDamage.isRepair === undefined ||
|
store.getters.externalParameterDamage.isRepair === undefined ||
|
||||||
store.getters.damage.isRepair === undefined
|
store.getters.damage.isRepair === undefined
|
||||||
)
|
)
|
||||||
return windshieldOptions;
|
return windshieldOptions;
|
||||||
|
|
||||||
if (store.getters.leadGenDamage.isRepair || store.getters.damage.isRepair) {
|
if (store.getters.externalParameterDamage.isRepair || store.getters.damage.isRepair) {
|
||||||
windShieldOptions.selectedWindshieldDamageType = damageLocationsSelected.REPAIR;
|
windShieldOptions.selectedWindshieldDamageType = damageLocationsSelected.REPAIR;
|
||||||
windShieldOptions.selectedWindshieldChipCount =
|
windShieldOptions.selectedWindshieldChipCount =
|
||||||
store.getters.leadGenDamage.numberOfChips || store.getters.damage.numberOfChips;
|
store.getters.externalParameterDamage.numberOfChips ||
|
||||||
|
store.getters.damage.numberOfChips;
|
||||||
} else {
|
} else {
|
||||||
if (
|
if (
|
||||||
store.getters.damage.glassToReplace?.some((glass) => {
|
store.getters.damage.glassToReplace?.some((glass) => {
|
||||||
|
|
@ -263,7 +264,8 @@ export default {
|
||||||
glass.glassName === damageLocationsSelected.SINGLE
|
glass.glassName === damageLocationsSelected.SINGLE
|
||||||
);
|
);
|
||||||
}) ||
|
}) ||
|
||||||
store.getters.leadGenDamage.damageType?.toUpperCase() === "WINDSHIELDREPLACE"
|
store.getters.externalParameterDamage.damageType?.toUpperCase() ===
|
||||||
|
"WINDSHIELDREPLACE"
|
||||||
) {
|
) {
|
||||||
windShieldOptions.selectedWindshieldDamageType =
|
windShieldOptions.selectedWindshieldDamageType =
|
||||||
damageLocationsSelected.REPLACE;
|
damageLocationsSelected.REPLACE;
|
||||||
|
|
|
||||||
|
|
@ -72,6 +72,7 @@ import { fmgPageValues } from "@/router/router-constants/fmgPage-values";
|
||||||
import { Form } from "vee-validate";
|
import { Form } from "vee-validate";
|
||||||
import store from "@/store";
|
import store from "@/store";
|
||||||
import vehicleQuestionsMixin from "@/mixins/vehicle-questions-mixin";
|
import vehicleQuestionsMixin from "@/mixins/vehicle-questions-mixin";
|
||||||
|
import baseMixin from "@/mixins/base-mixin.js";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "vehicle-parts",
|
name: "vehicle-parts",
|
||||||
|
|
@ -100,6 +101,9 @@ export default {
|
||||||
FeatureQuestionWidget: resultMap.cmsContent.FeatureQuestionWidget,
|
FeatureQuestionWidget: resultMap.cmsContent.FeatureQuestionWidget,
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
if (store.getters.isExternalParameter) {
|
||||||
|
baseMixin.methods.ResetExternalParamsAndHideModal();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
|
|
|
||||||
|
|
@ -28,8 +28,8 @@ jest.mock("@/store", () => ({
|
||||||
applicationUser: {
|
applicationUser: {
|
||||||
experiments: [{ universeName: "ConceptFunnel" }],
|
experiments: [{ universeName: "ConceptFunnel" }],
|
||||||
},
|
},
|
||||||
isLeadGen: false,
|
isExternalParameter: false,
|
||||||
leadGenVehicle: {
|
externalParameterVehicle: {
|
||||||
year: null,
|
year: null,
|
||||||
make: null,
|
make: null,
|
||||||
model: null,
|
model: null,
|
||||||
|
|
@ -93,8 +93,8 @@ describe("vehicle.vue", () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("vehicle.vue", () => {
|
describe("vehicle.vue", () => {
|
||||||
test("should call forwardButtonAction if isLeadGen is true and form is valid", async () => {
|
test("should call forwardButtonAction if isExternalParameter is true and form is valid", async () => {
|
||||||
store.getters.isLeadGen = true;
|
store.getters.isExternalParameter = true;
|
||||||
// Create a shallow mount of MyComponent
|
// Create a shallow mount of MyComponent
|
||||||
const { wrapper } = setupMocks();
|
const { wrapper } = setupMocks();
|
||||||
// Set displayNoServiceAlert to false
|
// Set displayNoServiceAlert to false
|
||||||
|
|
|
||||||
|
|
@ -128,7 +128,6 @@ export default {
|
||||||
|
|
||||||
async beforeRouteEnter(to, from, next) {
|
async beforeRouteEnter(to, from, next) {
|
||||||
// Call APIs
|
// Call APIs
|
||||||
|
|
||||||
const cmsContentPromise = fetchCmsContentForPage(to.query.fmgPage);
|
const cmsContentPromise = fetchCmsContentForPage(to.query.fmgPage);
|
||||||
const experimentForLogging = store.getters.applicationUser.experiments.find(
|
const experimentForLogging = store.getters.applicationUser.experiments.find(
|
||||||
(e) => e.universeName === experimentUniverses.CONCEPT_FUNNEL
|
(e) => e.universeName === experimentUniverses.CONCEPT_FUNNEL
|
||||||
|
|
@ -141,16 +140,20 @@ export default {
|
||||||
var makeQuestionInitialDataPromise = null;
|
var makeQuestionInitialDataPromise = null;
|
||||||
var modelQuestionInitialDataPromise = null;
|
var modelQuestionInitialDataPromise = null;
|
||||||
var styleQuestionInitialDataPromise = null;
|
var styleQuestionInitialDataPromise = null;
|
||||||
|
const year =
|
||||||
|
store.getters.externalParameterVehicle.year || store.getters.order.vehicle.year;
|
||||||
|
const make =
|
||||||
|
store.getters.externalParameterVehicle.make || store.getters.order.vehicle.make;
|
||||||
|
const model =
|
||||||
|
store.getters.externalParameterVehicle.model || store.getters.order.vehicle.model;
|
||||||
|
const style =
|
||||||
|
store.getters.externalParameterVehicle.style || store.getters.order.vehicle.style;
|
||||||
|
|
||||||
if (
|
if (make && model && style) {
|
||||||
(store.getters.leadGenVehicle.make || store.getters.order.vehicle.make) &&
|
|
||||||
(store.getters.leadGenVehicle.model || store.getters.order.vehicle.model) &&
|
|
||||||
(store.getters.leadGenVehicle.style || store.getters.order.vehicle.style)
|
|
||||||
) {
|
|
||||||
makeQuestionInitialDataPromise = baseMixin.methods.dispatchStoreActionWithLogging(
|
makeQuestionInitialDataPromise = baseMixin.methods.dispatchStoreActionWithLogging(
|
||||||
storeActions.GET_VEHICLE_MAKES,
|
storeActions.GET_VEHICLE_MAKES,
|
||||||
{
|
{
|
||||||
year: store.getters.leadGenVehicle.year || store.getters.order.vehicle.year,
|
year: year,
|
||||||
},
|
},
|
||||||
"vehicle"
|
"vehicle"
|
||||||
);
|
);
|
||||||
|
|
@ -158,8 +161,8 @@ export default {
|
||||||
modelQuestionInitialDataPromise = baseMixin.methods.dispatchStoreActionWithLogging(
|
modelQuestionInitialDataPromise = baseMixin.methods.dispatchStoreActionWithLogging(
|
||||||
storeActions.GET_VEHICLE_MODELS,
|
storeActions.GET_VEHICLE_MODELS,
|
||||||
{
|
{
|
||||||
year: store.getters.leadGenVehicle.year || store.getters.order.vehicle.year,
|
year: year,
|
||||||
make: store.getters.leadGenVehicle.make || store.getters.order.vehicle.make,
|
make: make,
|
||||||
},
|
},
|
||||||
"vehicle"
|
"vehicle"
|
||||||
);
|
);
|
||||||
|
|
@ -167,9 +170,9 @@ export default {
|
||||||
styleQuestionInitialDataPromise = baseMixin.methods.dispatchStoreActionWithLogging(
|
styleQuestionInitialDataPromise = baseMixin.methods.dispatchStoreActionWithLogging(
|
||||||
storeActions.GET_VEHICLE_STYLES,
|
storeActions.GET_VEHICLE_STYLES,
|
||||||
{
|
{
|
||||||
year: store.getters.leadGenVehicle.year || store.getters.order.vehicle.year,
|
year: year,
|
||||||
make: store.getters.leadGenVehicle.make || store.getters.order.vehicle.make,
|
make: make,
|
||||||
model: store.getters.leadGenVehicle.model || store.getters.order.vehicle.model,
|
model: model,
|
||||||
},
|
},
|
||||||
"vehicle"
|
"vehicle"
|
||||||
);
|
);
|
||||||
|
|
@ -217,30 +220,34 @@ export default {
|
||||||
|
|
||||||
let resultMap = await settleAllPromises(promiseResultMap);
|
let resultMap = await settleAllPromises(promiseResultMap);
|
||||||
|
|
||||||
//Leadgen widget have different case style value so need to parse with NextGen
|
//ExternalParameter widget have different case style value so need to parse with NextGen
|
||||||
if (store.getters.isLeadGen) {
|
if (store.getters.isExternalParameter) {
|
||||||
if (
|
if (
|
||||||
makeQuestionInitialDataPromise &&
|
makeQuestionInitialDataPromise &&
|
||||||
modelQuestionInitialDataPromise &&
|
modelQuestionInitialDataPromise &&
|
||||||
styleQuestionInitialDataPromise
|
styleQuestionInitialDataPromise
|
||||||
) {
|
) {
|
||||||
const matchingMake = resultMap.makeQuestionInitialData?.filter(
|
const matchingMake = resultMap.makeQuestionInitialData?.filter(
|
||||||
(item) => item.toLowerCase() === store.getters.leadGenVehicle.make.toLowerCase()
|
(item) =>
|
||||||
|
item.toLowerCase() ===
|
||||||
|
store.getters.externalParameterVehicle.make.toLowerCase()
|
||||||
);
|
);
|
||||||
const matchingModel = resultMap.modelQuestionInitialData?.filter(
|
const matchingModel = resultMap.modelQuestionInitialData?.filter(
|
||||||
(item) =>
|
(item) =>
|
||||||
item.toLowerCase() === store.getters.leadGenVehicle.model.toLowerCase()
|
item.toLowerCase() ===
|
||||||
|
store.getters.externalParameterVehicle.model.toLowerCase()
|
||||||
);
|
);
|
||||||
const matchingStyle = resultMap.styleQuestionInitialData?.filter(
|
const matchingStyle = resultMap.styleQuestionInitialData?.filter(
|
||||||
(item) =>
|
(item) =>
|
||||||
item.toLowerCase() === store.getters.leadGenVehicle.style.toLowerCase()
|
item.toLowerCase() ===
|
||||||
|
store.getters.externalParameterVehicle.style.toLowerCase()
|
||||||
);
|
);
|
||||||
baseMixin.methods.dispatchStoreAction(
|
baseMixin.methods.dispatchStoreAction(
|
||||||
storeActions.UPDATE_LEADGEN_MMS,
|
storeActions.UPDATE_EXTERNAL_PARAMETER_MMS,
|
||||||
{
|
{
|
||||||
leadGenMake: matchingMake[0],
|
externalParameterMake: matchingMake[0],
|
||||||
leadGenModel: matchingModel[0],
|
externalParameterModel: matchingModel[0],
|
||||||
leadGenStyle: matchingStyle[0],
|
externalParameterStyle: matchingStyle[0],
|
||||||
},
|
},
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
|
|
@ -262,23 +269,20 @@ export default {
|
||||||
resultMap.modelQuestionInitialData,
|
resultMap.modelQuestionInitialData,
|
||||||
resultMap.styleQuestionInitialData
|
resultMap.styleQuestionInitialData
|
||||||
);
|
);
|
||||||
if (store.getters.isLeadGen) {
|
if (store.getters.isExternalParameter) {
|
||||||
await vm.getVehicleDetails();
|
await vm.getVehicleDetails();
|
||||||
if (!vm.displayNoServiceAlert) {
|
if (!vm.displayNoServiceAlert) {
|
||||||
const isValid = await baseMixin.methods.isFormValid(vm.$refs.theForm);
|
const isValid = await baseMixin.methods.isFormValid(vm.$refs.theForm);
|
||||||
if (isValid) {
|
if (isValid) {
|
||||||
vm.forwardButtonAction();
|
vm.forwardButtonAction();
|
||||||
} else {
|
} else {
|
||||||
baseMixin.methods.dispatchStoreAction(storeActions.RESET_LEADGEN_STATE);
|
baseMixin.methods.ResetExternalParamsAndHideModal();
|
||||||
baseMixin.methods.hideFmgLoadingModal();
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
baseMixin.methods.dispatchStoreAction(storeActions.RESET_LEADGEN_STATE);
|
baseMixin.methods.ResetExternalParamsAndHideModal();
|
||||||
baseMixin.methods.hideFmgLoadingModal();
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
baseMixin.methods.dispatchStoreAction(storeActions.RESET_LEADGEN_STATE);
|
baseMixin.methods.ResetExternalParamsAndHideModal();
|
||||||
baseMixin.methods.hideFmgLoadingModal();
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
@ -465,16 +469,19 @@ export default {
|
||||||
this.styleOptions = styleOptions;
|
this.styleOptions = styleOptions;
|
||||||
},
|
},
|
||||||
selectedYearfromStore() {
|
selectedYearfromStore() {
|
||||||
return store.getters.leadGenVehicle.year ?? store.getters.vehicle.year?.toString();
|
return (
|
||||||
|
store.getters.externalParameterVehicle.year ??
|
||||||
|
store.getters.vehicle.year?.toString()
|
||||||
|
);
|
||||||
},
|
},
|
||||||
selectedMakefromStore() {
|
selectedMakefromStore() {
|
||||||
return store.getters.leadGenVehicle.make ?? store.getters.vehicle.make;
|
return store.getters.externalParameterVehicle.make ?? store.getters.vehicle.make;
|
||||||
},
|
},
|
||||||
selectedModelfromStore() {
|
selectedModelfromStore() {
|
||||||
return store.getters.leadGenVehicle.model ?? store.getters.vehicle.model;
|
return store.getters.externalParameterVehicle.model ?? store.getters.vehicle.model;
|
||||||
},
|
},
|
||||||
selectedStylefromStore() {
|
selectedStylefromStore() {
|
||||||
return store.getters.leadGenVehicle.style ?? store.getters.vehicle.style;
|
return store.getters.externalParameterVehicle.style ?? store.getters.vehicle.style;
|
||||||
},
|
},
|
||||||
async getMakeOptions(year) {
|
async getMakeOptions(year) {
|
||||||
return await baseMixin.methods.dispatchStoreActionWithLogging(
|
return await baseMixin.methods.dispatchStoreActionWithLogging(
|
||||||
|
|
|
||||||
|
|
@ -192,9 +192,8 @@ export default {
|
||||||
// Call the "next" function to complete the transition to this page.
|
// Call the "next" function to complete the transition to this page.
|
||||||
next((vm) => {
|
next((vm) => {
|
||||||
vm.setCmsContent(resultMap.cmsContent);
|
vm.setCmsContent(resultMap.cmsContent);
|
||||||
if (store.getters.isLeadGen) {
|
if (store.getters.isExternalParameter) {
|
||||||
baseMixin.methods.dispatchStoreAction(storeActions.RESET_LEADGEN_STATE);
|
baseMixin.methods.ResetExternalParamsAndHideModal();
|
||||||
baseMixin.methods.hideFmgLoadingModal();
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -193,7 +193,8 @@ export default {
|
||||||
const container = document.getElementsByClassName("page-container-grouped-styles")[0];
|
const container = document.getElementsByClassName("page-container-grouped-styles")[0];
|
||||||
container.scrollTo({ top: container.scrollHeight, left: 0, behavior: "smooth" });
|
container.scrollTo({ top: container.scrollHeight, left: 0, behavior: "smooth" });
|
||||||
},
|
},
|
||||||
hideFmgLoadingModal() {
|
ResetExternalParamsAndHideModal() {
|
||||||
|
this.dispatchStoreAction(storeActions.RESET_EXTERNAL_PARAMETER_STATE);
|
||||||
showFmgLoadingModal(false);
|
showFmgLoadingModal(false);
|
||||||
},
|
},
|
||||||
async isFormValid(form) {
|
async isFormValid(form) {
|
||||||
|
|
|
||||||
|
|
@ -85,25 +85,6 @@ const routes = [
|
||||||
);
|
);
|
||||||
const parentAccount = getQuerystringParameter(queryStrings.PARENT_ACCOUNT);
|
const parentAccount = getQuerystringParameter(queryStrings.PARENT_ACCOUNT);
|
||||||
const correlationId = getQuerystringParameter(queryStrings.CORRELATION_ID);
|
const correlationId = getQuerystringParameter(queryStrings.CORRELATION_ID);
|
||||||
const leadGenYear = getQuerystringParameter(queryStrings.VEHICLE_YEAR);
|
|
||||||
const leadGenMake = getQuerystringParameter(queryStrings.VEHICLE_MAKE);
|
|
||||||
const leadGenModel = getQuerystringParameter(queryStrings.VEHICLE_MODEL);
|
|
||||||
const leadGenStyle = getQuerystringParameter(queryStrings.VEHICLE_STYLE);
|
|
||||||
const leadGenDamage = getQuerystringParameter(queryStrings.VEHICLE_DAMAGE);
|
|
||||||
const leadGenZipCode = getQuerystringParameter(queryStrings.SERVICE_ZIP);
|
|
||||||
const leadGenEmail = getQuerystringParameter(queryStrings.EMAIL);
|
|
||||||
const leadGenIsInsurance = getQuerystringParameter(
|
|
||||||
queryStrings.IS_INSURANCE
|
|
||||||
);
|
|
||||||
const leadGenVinSelection = getQuerystringParameter(
|
|
||||||
queryStrings.VIN_SELECTION
|
|
||||||
);
|
|
||||||
const leadGenServicePackage = getQuerystringParameter(
|
|
||||||
queryStrings.SERVICE_PACKAGE
|
|
||||||
);
|
|
||||||
const leadGenNumberOfChips = getQuerystringParameter(
|
|
||||||
queryStrings.NUMBER_OF_CHIPS
|
|
||||||
);
|
|
||||||
if (referralNumber) {
|
if (referralNumber) {
|
||||||
store.commit(storeMutations.UPDATE_REFERRAL_NUMBER, referralNumber);
|
store.commit(storeMutations.UPDATE_REFERRAL_NUMBER, referralNumber);
|
||||||
store.commit(storeMutations.UPDATE_PARENT_ACCT_NUMBER, parentAccount);
|
store.commit(storeMutations.UPDATE_PARENT_ACCT_NUMBER, parentAccount);
|
||||||
|
|
@ -113,58 +94,7 @@ const routes = [
|
||||||
);
|
);
|
||||||
updateOrCreateFunnelCookie();
|
updateOrCreateFunnelCookie();
|
||||||
}
|
}
|
||||||
if (
|
updateExternalParameterState();
|
||||||
leadGenYear &&
|
|
||||||
leadGenMake &&
|
|
||||||
leadGenModel &&
|
|
||||||
leadGenStyle &&
|
|
||||||
leadGenDamage &&
|
|
||||||
leadGenZipCode &&
|
|
||||||
leadGenEmail &&
|
|
||||||
leadGenIsInsurance &&
|
|
||||||
(leadGenDamage.toUpperCase() == "WINDSHIELDREPAIR" ||
|
|
||||||
leadGenVinSelection?.length > 0) &&
|
|
||||||
(leadGenIsInsurance?.toUpperCase() == "FALSE" ||
|
|
||||||
leadGenServicePackage?.length > 0) &&
|
|
||||||
(leadGenDamage.toUpperCase() != "WINDSHIELDREPAIR" ||
|
|
||||||
leadGenNumberOfChips?.length > 0)
|
|
||||||
) {
|
|
||||||
store.commit(storeMutations.UPDATE_IS_LEAD_GEN, true);
|
|
||||||
store.commit(storeMutations.UPDATE_LEAD_GEN_YEAR, leadGenYear);
|
|
||||||
store.commit(storeMutations.UPDATE_LEAD_GEN_MAKE, leadGenMake);
|
|
||||||
store.commit(storeMutations.UPDATE_LEAD_GEN_MODEL, leadGenModel);
|
|
||||||
store.commit(storeMutations.UPDATE_LEAD_GEN_STYLE, leadGenStyle);
|
|
||||||
store.commit(storeMutations.UPDATE_LEAD_GEN_DAMAGE_TYPE, leadGenDamage);
|
|
||||||
if (leadGenDamage.toUpperCase() == "WINDSHIELDREPLACE") {
|
|
||||||
store.commit(storeMutations.UPDATE_LEAD_GEN_IS_REPAIR, false);
|
|
||||||
store.commit(storeMutations.UPDATE_LEAD_GEN_NUMBER_OF_CHIPS, null);
|
|
||||||
} else if (leadGenDamage.toUpperCase() == "WINDSHIELDREPAIR") {
|
|
||||||
store.commit(storeMutations.UPDATE_LEAD_GEN_IS_REPAIR, true);
|
|
||||||
store.commit(
|
|
||||||
storeMutations.UPDATE_LEAD_GEN_NUMBER_OF_CHIPS,
|
|
||||||
leadGenNumberOfChips
|
|
||||||
);
|
|
||||||
}
|
|
||||||
store.commit(storeMutations.UPDATE_LEAD_GEN_ZIP_CODE, leadGenZipCode);
|
|
||||||
store.commit(
|
|
||||||
storeMutations.UPDATE_LEAD_GEN_EMAIL_ADDRESS,
|
|
||||||
leadGenEmail
|
|
||||||
);
|
|
||||||
if (leadGenIsInsurance?.toUpperCase() == "TRUE") {
|
|
||||||
store.commit(storeMutations.UPDATE_LEAD_GEN_IS_INSURANCE, true);
|
|
||||||
store.commit(
|
|
||||||
storeMutations.UPDATE_LEAD_GEN_SERVICE_PACKAGE,
|
|
||||||
leadGenServicePackage?.toLowerCase()
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (leadGenDamage.toUpperCase() != "WINDSHIELDREPAIR") {
|
|
||||||
store.commit(
|
|
||||||
storeMutations.UPDATE_LEAD_GEN_VIN_SELECTION,
|
|
||||||
leadGenVinSelection
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const loadSessionResponse = await loadSessionIfPresent(
|
const loadSessionResponse = await loadSessionIfPresent(
|
||||||
to.query.isInsurance != null
|
to.query.isInsurance != null
|
||||||
? to.query.isInsurance == "true"
|
? to.query.isInsurance == "true"
|
||||||
|
|
@ -305,7 +235,7 @@ router.beforeEach(async (to, from, next) => {
|
||||||
const notToPIAReturn = toQueryPage != fmgPageValues.PAYMENT_PIA_RETURN;
|
const notToPIAReturn = toQueryPage != fmgPageValues.PAYMENT_PIA_RETURN;
|
||||||
const isInIframe = window !== window.top;
|
const isInIframe = window !== window.top;
|
||||||
|
|
||||||
if (store.getters.isLeadGen) {
|
if (store.getters.isExternalParameter) {
|
||||||
// Check if alert event is on the bus
|
// Check if alert event is on the bus
|
||||||
const alertEvent = eventBus.readEventFromBus(
|
const alertEvent = eventBus.readEventFromBus(
|
||||||
globalEvents.Categories.GLOBAL_ALERT,
|
globalEvents.Categories.GLOBAL_ALERT,
|
||||||
|
|
@ -318,7 +248,7 @@ router.beforeEach(async (to, from, next) => {
|
||||||
);
|
);
|
||||||
// If alert event is on the bus, then display the alert
|
// If alert event is on the bus, then display the alert
|
||||||
if (alertEvent !== undefined || unknownAlertEvent !== undefined) {
|
if (alertEvent !== undefined || unknownAlertEvent !== undefined) {
|
||||||
store.commit(storeMutations.UPDATE_IS_LEAD_GEN, false);
|
store.commit(storeMutations.UPDATE_IS_EXTERNAL_PARAMETER, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// fromPaymentToConfirmation workaround for navigating from an iframe but
|
// fromPaymentToConfirmation workaround for navigating from an iframe but
|
||||||
|
|
@ -352,7 +282,7 @@ router.afterEach(async (to, from) => {
|
||||||
await saveSession({ pageNameToLog: to.query.fmgPage });
|
await saveSession({ pageNameToLog: to.query.fmgPage });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!store.getters.isLeadGen) {
|
if (!store.getters.isExternalParameter) {
|
||||||
showFmgLoadingModal(false);
|
showFmgLoadingModal(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -575,7 +505,7 @@ async function DisplayPageError() {
|
||||||
type: globalEventTypes.Danger,
|
type: globalEventTypes.Danger,
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
store.commit(storeMutations.UPDATE_IS_LEAD_GEN, false);
|
store.commit(storeMutations.UPDATE_IS_EXTERNAL_PARAMETER, false);
|
||||||
baseMixin.methods.dispatchStoreAction(storeActions.RESET_SAVE_SESSION_PROMISE);
|
baseMixin.methods.dispatchStoreAction(storeActions.RESET_SAVE_SESSION_PROMISE);
|
||||||
const pageError = getQuerystringParameter(queryStrings.PAGE_ERROR);
|
const pageError = getQuerystringParameter(queryStrings.PAGE_ERROR);
|
||||||
|
|
||||||
|
|
@ -655,4 +585,67 @@ function getRedirectedStartPage() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function updateExternalParameterState() {
|
||||||
|
const externalParameterYear = getQuerystringParameter(queryStrings.VEHICLE_YEAR);
|
||||||
|
const externalParameterMake = getQuerystringParameter(queryStrings.VEHICLE_MAKE);
|
||||||
|
const externalParameterModel = getQuerystringParameter(queryStrings.VEHICLE_MODEL);
|
||||||
|
const externalParameterStyle = getQuerystringParameter(queryStrings.VEHICLE_STYLE);
|
||||||
|
const externalParameterDamage = getQuerystringParameter(queryStrings.VEHICLE_DAMAGE);
|
||||||
|
const externalParameterZipCode = getQuerystringParameter(queryStrings.SERVICE_ZIP);
|
||||||
|
const externalParameterEmail = getQuerystringParameter(queryStrings.EMAIL);
|
||||||
|
const externalParameterIsInsurance = getQuerystringParameter(queryStrings.IS_INSURANCE);
|
||||||
|
const externalParameterVinSelection = getQuerystringParameter(queryStrings.VIN_SELECTION);
|
||||||
|
const externalParameterServicePackage = getQuerystringParameter(queryStrings.SERVICE_PACKAGE);
|
||||||
|
const externalParameterNumberOfChips = getQuerystringParameter(queryStrings.NUMBER_OF_CHIPS);
|
||||||
|
if (
|
||||||
|
externalParameterYear &&
|
||||||
|
externalParameterMake &&
|
||||||
|
externalParameterModel &&
|
||||||
|
externalParameterStyle
|
||||||
|
) {
|
||||||
|
store.commit(storeMutations.UPDATE_IS_EXTERNAL_PARAMETER, true);
|
||||||
|
store.commit(storeMutations.UPDATE_EXTERNAL_PARAMETER_YEAR, externalParameterYear);
|
||||||
|
store.commit(storeMutations.UPDATE_EXTERNAL_PARAMETER_MAKE, externalParameterMake);
|
||||||
|
store.commit(storeMutations.UPDATE_EXTERNAL_PARAMETER_MODEL, externalParameterModel);
|
||||||
|
store.commit(storeMutations.UPDATE_EXTERNAL_PARAMETER_STYLE, externalParameterStyle);
|
||||||
|
}
|
||||||
|
if (
|
||||||
|
externalParameterDamage &&
|
||||||
|
(externalParameterDamage.toUpperCase() != "WINDSHIELDREPAIR" ||
|
||||||
|
externalParameterNumberOfChips?.length > 0)
|
||||||
|
) {
|
||||||
|
store.commit(storeMutations.UPDATE_EXTERNAL_PARAMETER_DAMAGE_TYPE, externalParameterDamage);
|
||||||
|
if (externalParameterDamage.toUpperCase() == "WINDSHIELDREPLACE") {
|
||||||
|
store.commit(storeMutations.UPDATE_EXTERNAL_PARAMETER_IS_REPAIR, false);
|
||||||
|
store.commit(storeMutations.UPDATE_EXTERNAL_PARAMETER_NUMBER_OF_CHIPS, null);
|
||||||
|
} else if (externalParameterDamage.toUpperCase() == "WINDSHIELDREPAIR") {
|
||||||
|
store.commit(storeMutations.UPDATE_EXTERNAL_PARAMETER_IS_REPAIR, true);
|
||||||
|
store.commit(
|
||||||
|
storeMutations.UPDATE_EXTERNAL_PARAMETER_NUMBER_OF_CHIPS,
|
||||||
|
externalParameterNumberOfChips
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (externalParameterZipCode && externalParameterEmail) {
|
||||||
|
store.commit(storeMutations.UPDATE_EXTERNAL_PARAMETER_ZIP_CODE, externalParameterZipCode);
|
||||||
|
store.commit(
|
||||||
|
storeMutations.UPDATE_EXTERNAL_PARAMETER_EMAIL_ADDRESS,
|
||||||
|
externalParameterEmail
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (externalParameterIsInsurance?.toUpperCase() == "TRUE") {
|
||||||
|
store.commit(storeMutations.UPDATE_EXTERNAL_PARAMETER_IS_INSURANCE, true);
|
||||||
|
store.commit(
|
||||||
|
storeMutations.UPDATE_EXTERNAL_PARAMETER_SERVICE_PACKAGE,
|
||||||
|
externalParameterServicePackage?.toLowerCase()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (externalParameterDamage.toUpperCase() != "WINDSHIELDREPAIR") {
|
||||||
|
store.commit(
|
||||||
|
storeMutations.UPDATE_EXTERNAL_PARAMETER_VIN_SELECTION,
|
||||||
|
externalParameterVinSelection
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export default router;
|
export default router;
|
||||||
|
|
|
||||||
|
|
@ -176,7 +176,7 @@ const getDefaultState = () => {
|
||||||
};
|
};
|
||||||
|
|
||||||
export const state = getDefaultState();
|
export const state = getDefaultState();
|
||||||
export const leadGenState = getLeadGenDefaultState();
|
export const externalParameterState = getExternalParameterDefaultState();
|
||||||
// Export Mutations
|
// Export Mutations
|
||||||
export const mutations = {
|
export const mutations = {
|
||||||
// VEHICLE MUTATIONS
|
// VEHICLE MUTATIONS
|
||||||
|
|
@ -414,91 +414,92 @@ export const mutations = {
|
||||||
state.applicationUser.eventBus.splice(itemIndex, 1);
|
state.applicationUser.eventBus.splice(itemIndex, 1);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
//LEADGEN MUTATIONS
|
//ExternalParameter MUTATIONS
|
||||||
updateIsLeadGen(state, isLeadGen) {
|
updateIsExternalParameter(state, isExternalParameter) {
|
||||||
leadGenState.isLeadGen = isLeadGen;
|
externalParameterState.isExternalParameter = isExternalParameter;
|
||||||
setLeadGenState(leadGenState);
|
saveExternalParameterState(externalParameterState);
|
||||||
},
|
},
|
||||||
updateLeadGenYear(state, year) {
|
updateExternalParameterYear(state, year) {
|
||||||
leadGenState.vehicle.year = year;
|
externalParameterState.vehicle.year = year;
|
||||||
setLeadGenState(leadGenState);
|
saveExternalParameterState(externalParameterState);
|
||||||
},
|
},
|
||||||
updateLeadGenMake(state, make) {
|
updateExternalParameterMake(state, make) {
|
||||||
leadGenState.vehicle.make = make;
|
externalParameterState.vehicle.make = make;
|
||||||
setLeadGenState(leadGenState);
|
saveExternalParameterState(externalParameterState);
|
||||||
},
|
},
|
||||||
updateLeadGenModel(state, model) {
|
updateExternalParameterModel(state, model) {
|
||||||
leadGenState.vehicle.model = model;
|
externalParameterState.vehicle.model = model;
|
||||||
setLeadGenState(leadGenState);
|
saveExternalParameterState(externalParameterState);
|
||||||
},
|
},
|
||||||
updateLeadGenStyle(state, style) {
|
updateExternalParameterStyle(state, style) {
|
||||||
leadGenState.vehicle.style = style;
|
externalParameterState.vehicle.style = style;
|
||||||
setLeadGenState(leadGenState);
|
saveExternalParameterState(externalParameterState);
|
||||||
},
|
},
|
||||||
updateLeadGenIsRepair(state, isRepair) {
|
updateExternalParameterIsRepair(state, isRepair) {
|
||||||
leadGenState.vehicleDamage.isRepair = isRepair;
|
externalParameterState.vehicleDamage.isRepair = isRepair;
|
||||||
setLeadGenState(leadGenState);
|
saveExternalParameterState(externalParameterState);
|
||||||
},
|
},
|
||||||
updateLeadGenNumberOfChips(state, numberOfChips) {
|
updateExternalParameterNumberOfChips(state, numberOfChips) {
|
||||||
leadGenState.vehicleDamage.numberOfChips = numberOfChips;
|
externalParameterState.vehicleDamage.numberOfChips = numberOfChips;
|
||||||
setLeadGenState(leadGenState);
|
saveExternalParameterState(externalParameterState);
|
||||||
},
|
},
|
||||||
updateLeadGenDamageType(state, damageType) {
|
updateExternalParameterDamageType(state, damageType) {
|
||||||
leadGenState.vehicleDamage.damageType = damageType;
|
externalParameterState.vehicleDamage.damageType = damageType;
|
||||||
setLeadGenState(leadGenState);
|
saveExternalParameterState(externalParameterState);
|
||||||
},
|
},
|
||||||
updateLeadGenZipCode(state, zipCode) {
|
updateExternalParameterZipCode(state, zipCode) {
|
||||||
leadGenState.serviceZip.zipCode = zipCode;
|
externalParameterState.serviceZip.zipCode = zipCode;
|
||||||
setLeadGenState(leadGenState);
|
saveExternalParameterState(externalParameterState);
|
||||||
},
|
},
|
||||||
updateLeadGenEmailAddress(state, emailAddress) {
|
updateExternalParameterEmailAddress(state, emailAddress) {
|
||||||
leadGenState.serviceZip.emailAddress = emailAddress;
|
externalParameterState.serviceZip.emailAddress = emailAddress;
|
||||||
setLeadGenState(leadGenState);
|
saveExternalParameterState(externalParameterState);
|
||||||
},
|
},
|
||||||
updateLeadGenIsInsurance(state, isInsurance) {
|
updateExternalParameterIsInsurance(state, isInsurance) {
|
||||||
leadGenState.quote.isInsurance = isInsurance;
|
externalParameterState.quote.isInsurance = isInsurance;
|
||||||
setLeadGenState(leadGenState);
|
saveExternalParameterState(externalParameterState);
|
||||||
},
|
},
|
||||||
updateLeadGenVinSelection(state, vinSelection) {
|
updateExternalParameterVinSelection(state, vinSelection) {
|
||||||
leadGenState.estimate.vinSelection = vinSelection;
|
externalParameterState.estimate.vinSelection = vinSelection;
|
||||||
setLeadGenState(leadGenState);
|
saveExternalParameterState(externalParameterState);
|
||||||
},
|
},
|
||||||
updateLeadGenServicePackage(state, servicePackage) {
|
updateExternalParameterServicePackage(state, servicePackage) {
|
||||||
leadGenState.quote.servicePackage = servicePackage;
|
externalParameterState.quote.servicePackage = servicePackage;
|
||||||
setLeadGenState(leadGenState);
|
saveExternalParameterState(externalParameterState);
|
||||||
},
|
},
|
||||||
//RESET LEADGEN MUTATIONS
|
//RESET ExternalParameter MUTATIONS
|
||||||
resetLeadGenVehicleState(state) {
|
resetExternalParameterVehicleState(state) {
|
||||||
leadGenState.vehicle.year =
|
externalParameterState.vehicle.year = null;
|
||||||
leadGenState.vehicle.make =
|
externalParameterState.vehicle.make = null;
|
||||||
leadGenState.vehicle.model =
|
externalParameterState.vehicle.model = null;
|
||||||
leadGenState.vehicle.style =
|
externalParameterState.vehicle.style = null;
|
||||||
null;
|
|
||||||
setLeadGenState(leadGenState);
|
saveExternalParameterState(externalParameterState);
|
||||||
},
|
},
|
||||||
resetLeadGenDamageState(state) {
|
resetExternalParameterDamageState(state) {
|
||||||
leadGenState.vehicleDamage.isRepair =
|
externalParameterState.vehicleDamage.isRepair = null;
|
||||||
leadGenState.vehicleDamage.numberOfChips =
|
externalParameterState.vehicleDamage.numberOfChips = null;
|
||||||
leadGenState.vehicleDamage.damageType =
|
externalParameterState.vehicleDamage.damageType = null;
|
||||||
null;
|
|
||||||
setLeadGenState(leadGenState);
|
saveExternalParameterState(externalParameterState);
|
||||||
},
|
},
|
||||||
resetLeadGenEstimateState(state) {
|
resetExternalParameterEstimateState(state) {
|
||||||
leadGenState.estimate.vinSelection = null;
|
externalParameterState.estimate.vinSelection = null;
|
||||||
setLeadGenState(leadGenState);
|
saveExternalParameterState(externalParameterState);
|
||||||
},
|
},
|
||||||
resetLeadGenServiceZipState(state) {
|
resetExternalParameterServiceZipState(state) {
|
||||||
leadGenState.serviceZip.zipCode = leadGenState.serviceZip.emailAddress = null;
|
externalParameterState.serviceZip.zipCode = null;
|
||||||
setLeadGenState(leadGenState);
|
externalParameterState.serviceZip.emailAddress = null;
|
||||||
|
saveExternalParameterState(externalParameterState);
|
||||||
},
|
},
|
||||||
resetLeadGenQuoteState(state) {
|
resetExternalParameterQuoteState(state) {
|
||||||
leadGenState.quote.isInsurance = null;
|
externalParameterState.quote.isInsurance = null;
|
||||||
leadGenState.quote.servicePackage = null;
|
externalParameterState.quote.servicePackage = null;
|
||||||
setLeadGenState(leadGenState);
|
saveExternalParameterState(externalParameterState);
|
||||||
},
|
},
|
||||||
resetIsLeadGen(state) {
|
resetIsExternalParameter(state) {
|
||||||
leadGenState.isLeadGen = null;
|
externalParameterState.isExternalParameter = null;
|
||||||
setLeadGenState(leadGenState);
|
saveExternalParameterState(externalParameterState);
|
||||||
},
|
},
|
||||||
|
|
||||||
// RESET DEPENDENCY MUTATIONS
|
// RESET DEPENDENCY MUTATIONS
|
||||||
|
|
@ -890,12 +891,12 @@ export const getters = {
|
||||||
requiresVerifiedRedirecting: (state) => {
|
requiresVerifiedRedirecting: (state) => {
|
||||||
return state.order?.referralNumber?.length === 6;
|
return state.order?.referralNumber?.length === 6;
|
||||||
},
|
},
|
||||||
isLeadGen: (state) => leadGenState?.isLeadGen,
|
isExternalParameter: (state) => externalParameterState?.isExternalParameter,
|
||||||
leadGenVehicle: (state) => leadGenState?.vehicle,
|
externalParameterVehicle: (state) => externalParameterState?.vehicle,
|
||||||
leadGenDamage: (state) => leadGenState?.vehicleDamage,
|
externalParameterDamage: (state) => externalParameterState?.vehicleDamage,
|
||||||
leadGenQuote: (state) => leadGenState?.quote,
|
externalParameterQuote: (state) => externalParameterState?.quote,
|
||||||
leadGenServiceZip: (state) => leadGenState?.serviceZip,
|
externalParameterServiceZip: (state) => externalParameterState?.serviceZip,
|
||||||
leadGenEstimate: (state) => leadGenState?.estimate,
|
externalParameterEstimate: (state) => externalParameterState?.estimate,
|
||||||
};
|
};
|
||||||
|
|
||||||
function getNonFalseValuesOfPropertyInArrayOfObjects(array, propertyName) {
|
function getNonFalseValuesOfPropertyInArrayOfObjects(array, propertyName) {
|
||||||
|
|
@ -2791,31 +2792,37 @@ export const actions = {
|
||||||
//restore user's experiments
|
//restore user's experiments
|
||||||
context.commit(storeMutations.UPDATE_EXPERIMENTS, experiments);
|
context.commit(storeMutations.UPDATE_EXPERIMENTS, experiments);
|
||||||
|
|
||||||
//clear leadGen session storage
|
//clear externalParameter session storage
|
||||||
window.sessionStorage.removeItem("leadGenState");
|
window.sessionStorage.removeItem("externalParameterState");
|
||||||
},
|
},
|
||||||
|
|
||||||
resetSubmittedOrder(context) {
|
resetSubmittedOrder(context) {
|
||||||
// clear from local storage
|
// clear from local storage
|
||||||
window.sessionStorage.removeItem("submittedOrder");
|
window.sessionStorage.removeItem("submittedOrder");
|
||||||
},
|
},
|
||||||
resetLeadGenState(context) {
|
resetExternalParameterState(context) {
|
||||||
if (context.getters.isLeadGen) {
|
if (context.getters.isExternalParameter) {
|
||||||
context.commit(storeMutations.RESET_LEADGEN_VEHICLE_STATE);
|
context.commit(storeMutations.RESET_EXTERNAL_PARAMETER_VEHICLE_STATE);
|
||||||
context.commit(storeMutations.RESETL_EADGEN_DAMAGE_STATE);
|
context.commit(storeMutations.RESET_EXTERNAL_PARAMETER_DAMAGE_STATE);
|
||||||
context.commit(storeMutations.RESET_LEADGEN_ESTIMATE_STATE);
|
context.commit(storeMutations.RESET_EXTERNAL_PARAMETER_ESTIMATE_STATE);
|
||||||
context.commit(storeMutations.RESET_LEADGEN_SERVICEZIP_STATE);
|
context.commit(storeMutations.RESET_EXTERNAL_PARAMETER_SERVICEZIP_STATE);
|
||||||
context.commit(storeMutations.RESET_LEADGEN_QUOTE_STATE);
|
context.commit(storeMutations.RESET_EXTERNAL_PARAMETER_QUOTE_STATE);
|
||||||
context.commit(storeMutations.RESET_IS_LEADGEN);
|
context.commit(storeMutations.RESET_IS_EXTERNAL_PARAMETER);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
createLeadGenState(context) {
|
updateExternalParameterMMS(context, externalParameterMMS) {
|
||||||
createLeadGenDefaultState();
|
context.commit(
|
||||||
},
|
storeMutations.UPDATE_EXTERNAL_PARAMETER_MAKE,
|
||||||
updateLeadGenMMS(context, leadGenMMS) {
|
externalParameterMMS.externalParameterMake
|
||||||
context.commit(storeMutations.UPDATE_LEAD_GEN_MAKE, leadGenMMS.leadGenMake);
|
);
|
||||||
context.commit(storeMutations.UPDATE_LEAD_GEN_MODEL, leadGenMMS.leadGenModel);
|
context.commit(
|
||||||
context.commit(storeMutations.UPDATE_LEAD_GEN_STYLE, leadGenMMS.leadGenStyle);
|
storeMutations.UPDATE_EXTERNAL_PARAMETER_MODEL,
|
||||||
|
externalParameterMMS.externalParameterModel
|
||||||
|
);
|
||||||
|
context.commit(
|
||||||
|
storeMutations.UPDATE_EXTERNAL_PARAMETER_STYLE,
|
||||||
|
externalParameterMMS.externalParameterStyle
|
||||||
|
);
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -3304,10 +3311,10 @@ async function resetScheduleIfUnavailable(context, order, pageNameToLog) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
function createLeadGenDefaultState() {
|
function createExternalParameterDefaultState() {
|
||||||
// create default leadGen state
|
// create default externalParameter state
|
||||||
const leadGenDefaultState = {
|
const externalParameterDefaultState = {
|
||||||
isLeadGen: null,
|
isExternalParameter: null,
|
||||||
vehicle: {
|
vehicle: {
|
||||||
year: null,
|
year: null,
|
||||||
make: null,
|
make: null,
|
||||||
|
|
@ -3332,15 +3339,15 @@ function createLeadGenDefaultState() {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
// set to session storage
|
// set to session storage
|
||||||
setLeadGenState(leadGenDefaultState);
|
saveExternalParameterState(externalParameterDefaultState);
|
||||||
}
|
}
|
||||||
function getLeadGenDefaultState() {
|
function getExternalParameterDefaultState() {
|
||||||
const leadGenState = window.sessionStorage.getItem("leadGenState");
|
const externalParameterState = window.sessionStorage.getItem("externalParameterState");
|
||||||
if (leadGenState === null) {
|
if (externalParameterState === null) {
|
||||||
createLeadGenDefaultState();
|
createExternalParameterDefaultState();
|
||||||
}
|
}
|
||||||
return JSON.parse(window.sessionStorage.getItem("leadGenState"));
|
return JSON.parse(window.sessionStorage.getItem("externalParameterState"));
|
||||||
}
|
}
|
||||||
async function setLeadGenState(leadGenState) {
|
function saveExternalParameterState(externalParameterState) {
|
||||||
window.sessionStorage.setItem("leadGenState", JSON.stringify(leadGenState));
|
window.sessionStorage.setItem("externalParameterState", JSON.stringify(externalParameterState));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue