Merge branch 'develop' into feature/CSR-2130

This commit is contained in:
CarlNation 2024-07-29 13:48:55 -04:00
commit ac2adcd641
6 changed files with 113 additions and 42 deletions

View file

@ -98,6 +98,7 @@ const storeActions = {
RESET_SUBMITTED_ORDER: "resetSubmittedOrder",
RESET_LEADGEN_STATE: "resetLeadGenState",
CREATE_LEADGEN_STATE: "createLeadGenState",
UPDATE_LEADGEN_MMS: "updateLeadGenMMS",
};
export { storeActions };

View file

@ -1,6 +1,6 @@
// Components
import confirmation from "@/layouts/confirmation/confirmation.vue";
import { AppointmentTypeStrings } from "@/constants/schedule-constants";
import { AppointmentTypeStrings, RouteCodeFlags } from "@/constants/schedule-constants";
import { applicationConfig } from "@/constants/application-config.js";
// Supporting Files
@ -397,6 +397,34 @@ describe("computed properties...", () => {
// Assert
expect(testValue).toEqual("Duration: 30 - 45 minutes");
});
test("Appointment Duration should return with All Day.", () => {
//Arrange
store.getters.submittedOrder.schedule.jobMaxMinutes = 45;
store.getters.submittedOrder.schedule.jobMinMinutes = 30;
store.getters.submittedOrder.schedule.routeCode = RouteCodeFlags.ALL_DAY_DROP_OFF;
const { wrapper } = setupMocks({});
// Act
const testValue = wrapper.vm.AppointmentDuration;
// Assert
expect(testValue).toEqual("Duration: All Day");
});
test("Appointment Duration should return with Overnight.", () => {
//Arrange
store.getters.submittedOrder.schedule.jobMaxMinutes = 45;
store.getters.submittedOrder.schedule.jobMinMinutes = 30;
store.getters.submittedOrder.schedule.routeCode = RouteCodeFlags.OVERNIGHT_DROP_OFF;
const { wrapper } = setupMocks({});
// Act
const testValue = wrapper.vm.AppointmentDuration;
// Assert
expect(testValue).toEqual("Duration: Overnight");
});
});
function setupMocks({ customMountOptions }) {

View file

@ -96,7 +96,7 @@ import analyticsMixin from "@/mixins/analytics-mixin";
import store from "@/store";
import { storeActions } from "@/constants/store-actions";
import { fetchCmsContentForPage } from "@/helpers/cms-content-helper";
import { AppointmentTypeStrings } from "@/constants/schedule-constants";
import { AppointmentTypeStrings, RouteCodeFlags } from "@/constants/schedule-constants";
import { settleAllPromises } from "@/helpers/layout-helper";
import { applicationConfig } from "@/constants/application-config.js";
import { convertDateStringToDate } from "@/layouts/schedule/helpers/schedule-helper";
@ -326,7 +326,24 @@ export default {
AppointmentDuration() {
const durationMaximum = store.getters.submittedOrder?.schedule?.jobMaxMinutes;
const durationMinimum = store.getters.submittedOrder?.schedule?.jobMinMinutes;
return "Duration: " + getDisplayTextForDurationLength(durationMinimum, durationMaximum);
const durationLengthString = "Duration: ";
if (
store.getters.submittedOrder?.schedule?.routeCode.includes(
RouteCodeFlags.ALL_DAY_DROP_OFF
)
) {
return durationLengthString.concat("All Day");
} else if (
store.getters.submittedOrder?.schedule?.routeCode.includes(
RouteCodeFlags.OVERNIGHT_DROP_OFF
)
) {
return durationLengthString.concat("Overnight");
} else {
return durationLengthString.concat(
getDisplayTextForDurationLength(durationMinimum, durationMaximum)
);
}
},
},
methods: {

View file

@ -217,6 +217,36 @@ export default {
let resultMap = await settleAllPromises(promiseResultMap);
//Leadgen widget have different case style value so need to parse with NextGen
if (store.getters.isLeadGen) {
if (
makeQuestionInitialDataPromise &&
modelQuestionInitialDataPromise &&
styleQuestionInitialDataPromise
) {
const matchingMake = resultMap.makeQuestionInitialData?.filter(
(item) => item.toLowerCase() === store.getters.leadGenVehicle.make.toLowerCase()
);
const matchingModel = resultMap.modelQuestionInitialData?.filter(
(item) =>
item.toLowerCase() === store.getters.leadGenVehicle.model.toLowerCase()
);
const matchingStyle = resultMap.styleQuestionInitialData?.filter(
(item) =>
item.toLowerCase() === store.getters.leadGenVehicle.style.toLowerCase()
);
baseMixin.methods.dispatchStoreAction(
storeActions.UPDATE_LEADGEN_MMS,
{
leadGenMake: matchingMake[0],
leadGenModel: matchingModel[0],
leadGenStyle: matchingStyle[0],
},
false
);
}
}
// Call the "next" function to complete the transition to this page.
next(async (vm) => {
vm.setCmsContent(resultMap.cmsContent);

View file

@ -124,54 +124,44 @@ const routes = [
leadGenIsInsurance &&
(leadGenDamage.toUpperCase() == "WINDSHIELDREPAIR" ||
leadGenVinSelection?.length > 0) &&
(leadGenIsInsurance == "false" || leadGenServicePackage?.length > 0) &&
(leadGenIsInsurance?.toUpperCase() == "FALSE" ||
leadGenServicePackage?.length > 0) &&
(leadGenDamage.toUpperCase() != "WINDSHIELDREPAIR" ||
leadGenNumberOfChips?.length > 0)
) {
if (!store.getters.applicationUser.triggeredSiteEntry) {
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_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_DAMAGE_TYPE,
leadGenDamage
storeMutations.UPDATE_LEAD_GEN_NUMBER_OF_CHIPS,
leadGenNumberOfChips
);
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_ZIP_CODE,
leadGenZipCode
storeMutations.UPDATE_LEAD_GEN_SERVICE_PACKAGE,
leadGenServicePackage?.toLowerCase()
);
}
if (leadGenDamage.toUpperCase() != "WINDSHIELDREPAIR") {
store.commit(
storeMutations.UPDATE_LEAD_GEN_EMAIL_ADDRESS,
leadGenEmail
storeMutations.UPDATE_LEAD_GEN_VIN_SELECTION,
leadGenVinSelection
);
if (leadGenIsInsurance == "true") {
store.commit(storeMutations.UPDATE_LEAD_GEN_IS_INSURANCE, true);
store.commit(
storeMutations.UPDATE_LEAD_GEN_SERVICE_PACKAGE,
leadGenServicePackage
);
}
if (leadGenDamage.toUpperCase() != "WINDSHIELDREPAIR") {
store.commit(
storeMutations.UPDATE_LEAD_GEN_VIN_SELECTION,
leadGenVinSelection
);
}
}
}

View file

@ -2812,6 +2812,11 @@ export const actions = {
createLeadGenState(context) {
createLeadGenDefaultState();
},
updateLeadGenMMS(context, leadGenMMS) {
context.commit(storeMutations.UPDATE_LEAD_GEN_MAKE, leadGenMMS.leadGenMake);
context.commit(storeMutations.UPDATE_LEAD_GEN_MODEL, leadGenMMS.leadGenModel);
context.commit(storeMutations.UPDATE_LEAD_GEN_STYLE, leadGenMMS.leadGenStyle);
},
};
export default createStore({