Merge remote-tracking branch 'origin/develop' into feature/skiener/INSR-8540
This commit is contained in:
commit
ffed366333
11 changed files with 63 additions and 15 deletions
6
src/constants/endorsement-codes.js
Normal file
6
src/constants/endorsement-codes.js
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
const endorsementCodes_LibertyMutual = Object.freeze({
|
||||
EDUCATOR: '001',
|
||||
PARKING_GUARD: '003'
|
||||
});
|
||||
|
||||
export default endorsementCodes_LibertyMutual;
|
||||
|
|
@ -526,13 +526,18 @@ export function doesCopyContainTextLink(copy) {
|
|||
*
|
||||
* @param context
|
||||
*/
|
||||
export function setupModalLinks(context) {
|
||||
export function setupModalLinks(context, abortSignal = null) {
|
||||
context.$nextTick(() => {
|
||||
const elements = document.getElementsByClassName('modal-text');
|
||||
for (const element of elements) {
|
||||
const target = element.getAttribute('modalTarget');
|
||||
if (target) {
|
||||
element.addEventListener('click', () => context.$refs[target].openModal());
|
||||
if (abortSignal) {
|
||||
element.addEventListener('click', () => context.$refs[target].openModal(), { signal: abortSignal });
|
||||
}
|
||||
else {
|
||||
element.addEventListener('click', () => context.$refs[target].openModal());
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
import endorsementOptions from '@/constants/endorsement-options';
|
||||
import endorsementCodes_LibertyMutual from '@/constants/endorsement-codes';
|
||||
|
||||
export function noCoverageForSelectedVehicle(vehicle) {
|
||||
return (vehicle?.coverages?.length ?? 0) === 0;
|
||||
|
|
@ -18,6 +19,20 @@ export function endorsementsForSelectedVehicle(vehicle) {
|
|||
}
|
||||
return [];
|
||||
}
|
||||
export function endorsementCodesForSelectedVehicle(vehicle) {
|
||||
if (!Array.isArray(vehicle?.endorsements) || vehicle.endorsements.length === 0) {
|
||||
return '';
|
||||
}
|
||||
|
||||
let codes = [];
|
||||
if (vehicle.endorsements.includes(endorsementOptions.EDUCATOR)) {
|
||||
codes.push(endorsementCodes_LibertyMutual.EDUCATOR);
|
||||
}
|
||||
if (vehicle.endorsements.includes(endorsementOptions.PARKING_GUARD)) {
|
||||
codes.push(endorsementCodes_LibertyMutual.PARKING_GUARD);
|
||||
}
|
||||
return codes.join(',');
|
||||
}
|
||||
export function repairWaivedForSelectedVehicle(vehicle) {
|
||||
return vehicle?.endorsements?.includes(endorsementOptions.REPAIR_WAIVED) ?? false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,6 +5,11 @@ Object {
|
|||
"CANCEL_CLAIM_REF_NAME": "CancelClaimModal",
|
||||
"OEM_ENDORSEMENT_REF_NAME": "OEMModal",
|
||||
"RECAL_MODAL_REF_NAME": "RecalModal",
|
||||
"abortController": AbortController {
|
||||
Symbol(SameObject caches): Object {
|
||||
"signal": AbortSignal {},
|
||||
},
|
||||
},
|
||||
"baseServiceLineItems": Array [],
|
||||
"isPageLoading": true,
|
||||
"widget": Object {
|
||||
|
|
|
|||
|
|
@ -131,7 +131,6 @@ import recalModal from '@/iss-components/recal-modal/recal-modal.vue';
|
|||
// Import Supporting Files
|
||||
import {
|
||||
fetchCmsContentForPage,
|
||||
setupModalLink,
|
||||
setupModalLinks,
|
||||
processIfStatements
|
||||
} from '@/helpers/cms-content-helper.js';
|
||||
|
|
@ -231,7 +230,8 @@ export default {
|
|||
},
|
||||
RECAL_MODAL_REF_NAME,
|
||||
CANCEL_CLAIM_REF_NAME,
|
||||
OEM_ENDORSEMENT_REF_NAME
|
||||
OEM_ENDORSEMENT_REF_NAME,
|
||||
abortController: new AbortController()
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
|
|
@ -367,8 +367,9 @@ export default {
|
|||
watch: {
|
||||
nextStepsBody(newValue, oldValue) {
|
||||
if (newValue !== oldValue) {
|
||||
setupModalLink(this, RECAL_MODAL_REF_NAME);
|
||||
setupModalLink(this, OEM_ENDORSEMENT_REF_NAME);
|
||||
this.abortController.abort();
|
||||
this.abortController = new AbortController();
|
||||
setupModalLinks(this, this.abortController.signal);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -376,7 +377,7 @@ export default {
|
|||
if (this.isPageLoading) {
|
||||
showIssLoadingModal(true);
|
||||
}
|
||||
setupModalLinks(this);
|
||||
setupModalLinks(this, this.abortController.signal);
|
||||
},
|
||||
methods: {
|
||||
logEventsToGA() {
|
||||
|
|
|
|||
|
|
@ -441,7 +441,7 @@ describe('OrderConfirmation.vue', () => {
|
|||
const testValue = wrapper.vm.appointmentTimeText;
|
||||
|
||||
// Assert
|
||||
expect(testValue).toEqual('Drop off before 9:30 AM');
|
||||
expect(testValue).toEqual('Drop off by 9:30 AM. Pick-up time dependent on shop schedule');
|
||||
});
|
||||
test.each([
|
||||
['Your appointment is at 9:00 AM', '09:00', '10:00'],
|
||||
|
|
|
|||
|
|
@ -341,7 +341,7 @@ export default {
|
|||
appointmentTimeText() {
|
||||
const { startTime, endTime } = this.schedule;
|
||||
if (this.isDropOffAppointment) {
|
||||
return 'Drop off before 9:30 AM';
|
||||
return 'Drop off by 9:30 AM. Pick-up time dependent on shop schedule';
|
||||
}
|
||||
if (this.isInShopAppointment) {
|
||||
const formattedStartTime = get12HourTimeFormat(startTime);
|
||||
|
|
|
|||
|
|
@ -125,7 +125,8 @@ describe('policy-vehicles.vue', () => {
|
|||
noCoverage: true,
|
||||
deductible: 0,
|
||||
repairWaived: false,
|
||||
endorsements: []
|
||||
endorsements: [],
|
||||
cvrgEndorsementCode: ""
|
||||
};
|
||||
|
||||
// Act
|
||||
|
|
@ -180,7 +181,8 @@ describe('policy-vehicles.vue', () => {
|
|||
noCoverage: true,
|
||||
deductible: 0,
|
||||
repairWaived: false,
|
||||
endorsements
|
||||
endorsements,
|
||||
cvrgEndorsementCode: "001"
|
||||
};
|
||||
|
||||
// Act
|
||||
|
|
@ -233,7 +235,8 @@ describe('policy-vehicles.vue', () => {
|
|||
noCoverage: true,
|
||||
deductible: 0,
|
||||
repairWaived: false,
|
||||
endorsements
|
||||
endorsements,
|
||||
cvrgEndorsementCode: "003"
|
||||
};
|
||||
|
||||
// Act
|
||||
|
|
|
|||
|
|
@ -55,6 +55,7 @@ import { useMainStore } from '@/store/index.js';
|
|||
import {
|
||||
deductibleForSelectedVehicle,
|
||||
endorsementsForSelectedVehicle,
|
||||
endorsementCodesForSelectedVehicle,
|
||||
noCoverageForSelectedVehicle,
|
||||
repairWaivedForSelectedVehicle
|
||||
} from '@/helpers/policy-vehicle-helper';
|
||||
|
|
@ -132,6 +133,9 @@ export default {
|
|||
endorsementsForSelectedVehicle() {
|
||||
return endorsementsForSelectedVehicle(this.selectedPolicyVehicle);
|
||||
},
|
||||
endorsementCodesForSelectedVehicle() {
|
||||
return endorsementCodesForSelectedVehicle(this.selectedPolicyVehicle);
|
||||
},
|
||||
repairWaivedForSelectedVehicle() {
|
||||
return repairWaivedForSelectedVehicle(this.selectedPolicyVehicle);
|
||||
}
|
||||
|
|
@ -201,7 +205,8 @@ export default {
|
|||
noCoverage: this.noCoverageForSelectedVehicle,
|
||||
deductible: this.deductibleForSelectedVehicle,
|
||||
repairWaived: this.repairWaivedForSelectedVehicle,
|
||||
endorsements: this.endorsementsForSelectedVehicle
|
||||
endorsements: this.endorsementsForSelectedVehicle,
|
||||
cvrgEndorsementCode: this.endorsementCodesForSelectedVehicle
|
||||
});
|
||||
this.navigateForward();
|
||||
} catch (e) {
|
||||
|
|
|
|||
|
|
@ -71,6 +71,7 @@ import siteSubHeader from '@/iss-components/site-sub-header/site-sub-header.vue'
|
|||
import contentGroupModal from '@/iss-components/content-group-modal/content-group-modal.vue';
|
||||
import loadingModal from '@/iss-components/loading-modal/loading-modal.vue';
|
||||
import settleAllPromises from '@/helpers/layout-helper';
|
||||
import showIssLoadingModal from '@/helpers/loading-modal-helper';
|
||||
import { useMainStore } from '@/store';
|
||||
import { fetchCmsContentForPage } from '@/helpers/cms-content-helper';
|
||||
import { Form } from 'vee-validate';
|
||||
|
|
@ -227,6 +228,7 @@ export default {
|
|||
this.selectedPackageTier = packageTier;
|
||||
},
|
||||
forwardButtonAction() {
|
||||
showIssLoadingModal(true);
|
||||
const parts = {
|
||||
vaps: this.selectedVaps
|
||||
};
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import bailoutCode from '@/constants/bailoutCode';
|
|||
import coverageStatuses from '@/constants/coverage-statuses';
|
||||
import coverageType from '@/constants/coverage-type';
|
||||
import damageLocationsSelected from '@/constants/damage-locations-selected';
|
||||
import endorsementOptions from '@/constants/endorsement-options';
|
||||
import endpoints from '@/constants/endpoints';
|
||||
import { experimentSettings, experimentTriggers, experimentUniverses } from '@/constants/experiments';
|
||||
import partNumberStrings from '@/constants/part-number-strings';
|
||||
|
|
@ -17,7 +18,7 @@ import { convertDateStringToDate, getDateDifferenceInDays, militaryToTwelveHourT
|
|||
import { getExperimentSettingValue, getFeatureTogglesPayloadObject } from '@/helpers/experiment-helper';
|
||||
import { findLineItemIndex, getLineItemsFlattened } from '@/helpers/line-items-helper';
|
||||
import {
|
||||
deductibleForSelectedVehicle, endorsementsForSelectedVehicle,
|
||||
deductibleForSelectedVehicle, endorsementsForSelectedVehicle, endorsementCodesForSelectedVehicle,
|
||||
noCoverageForSelectedVehicle,
|
||||
repairWaivedForSelectedVehicle
|
||||
} from '@/helpers/policy-vehicle-helper';
|
||||
|
|
@ -109,6 +110,7 @@ export const getDefaultState = () => ({
|
|||
vehicles: [],
|
||||
endorsements: [],
|
||||
endorsementQuestionAnswers: [],
|
||||
cvrgEndorsementCode: null,
|
||||
status: null,
|
||||
policyData: null
|
||||
},
|
||||
|
|
@ -1469,7 +1471,9 @@ export const useMainStore = defineStore({
|
|||
currentDeductible: this.currentDeductible,
|
||||
OemEndorsement: this.hasOemEndorsement,
|
||||
noCoverage: this.isNoComp,
|
||||
isItac: this.isITAC
|
||||
isItac: this.isITAC,
|
||||
cvrgEndorsementCode: policy.cvrgEndorsementCode ?? endorsementCodesForSelectedVehicle(vehicle),
|
||||
endorsementQuestionAnswers: policy.endorsementQuestionAnswers
|
||||
},
|
||||
customer: {
|
||||
address: {
|
||||
|
|
@ -2071,6 +2075,7 @@ export const useMainStore = defineStore({
|
|||
this.order.policy.deductible.replace = coverage.deductible;
|
||||
this.order.policy.deductible.repair = coverage?.repairWaived ?? false ? 0 : coverage.deductible;
|
||||
this.order.policy.endorsements = coverage?.endorsements;
|
||||
this.order.policy.cvrgEndorsementCode = coverage?.cvrgEndorsementCode;
|
||||
|
||||
this.order.originalDeductible.replace = this.order.policy.deductible.replace;
|
||||
this.order.currentDeductible.replace = this.order.policy.deductible.replace;
|
||||
|
|
@ -2112,6 +2117,7 @@ export const useMainStore = defineStore({
|
|||
this.order.policy.vehicles = [];
|
||||
this.order.policy.endorsements = [];
|
||||
this.order.policy.endorsementQuestionAnswers = [];
|
||||
this.order.policy.cvrgEndorsementCode = null;
|
||||
this.order.policy.policyData = null;
|
||||
this.order.policy.deductible.repair = null;
|
||||
this.order.policy.deductible.replace = null;
|
||||
|
|
|
|||
Loading…
Reference in a new issue