diff --git a/src/helpers/save-progress-popup-contact-helper.js b/src/helpers/save-progress-popup-contact-helper.js index d9420d60e..20cdb8267 100644 --- a/src/helpers/save-progress-popup-contact-helper.js +++ b/src/helpers/save-progress-popup-contact-helper.js @@ -9,7 +9,11 @@ export function isPhoneContactMethod(contactMethod) { return contactMethod === saveProgressPopupContactMethods.PHONE; } -export function hasSaveProgressContactInStore(customer = {}) { +export function hasSaveProgressContactInStore(customer) { + if (!customer) { + return false; + } + const hasEmail = Boolean(customer.emailAddress?.length > 0); const hasPhone = Boolean(customer.phoneNumber?.length > 0); diff --git a/src/helpers/save-progress-popup-contact-helper.spec.js b/src/helpers/save-progress-popup-contact-helper.spec.js index d601a112c..ad48c46c7 100644 --- a/src/helpers/save-progress-popup-contact-helper.spec.js +++ b/src/helpers/save-progress-popup-contact-helper.spec.js @@ -21,6 +21,10 @@ describe("save-progress-popup-contact-helper", () => { expect(hasSaveProgressContactInStore({ phoneNumber: "5551234567" })).toBe(true); }); + it("should return false when customer is undefined", () => { + expect(hasSaveProgressContactInStore(undefined)).toBe(false); + }); + it("should return false when neither email nor phone is saved", () => { expect(hasSaveProgressContactInStore({})).toBe(false); expect(hasSaveProgressContactInStore({ emailAddress: "", phoneNumber: null })).toBe( diff --git a/src/layouts/capability-questions/capability-questions.vue b/src/layouts/capability-questions/capability-questions.vue index b9d609275..5cd534c1e 100644 --- a/src/layouts/capability-questions/capability-questions.vue +++ b/src/layouts/capability-questions/capability-questions.vue @@ -63,7 +63,7 @@ export default { // Call the "next" function to complete the transition to this page. next(async (vm) => { vm.setCmsContent(resultMap.cmsContent); - vm.showSaveProgressModal = !hasSaveProgressContactInStore(store.getters.order.customer); + vm.showSaveProgressModal = !hasSaveProgressContactInStore(store.getters.order?.customer); if (store.getters.externalParameterState?.isExternalParameter) { if (store.getters.externalParameterServiceZip.zipCode) { await baseMixin.methods.dispatchStoreAction( diff --git a/src/layouts/coverage-statement/coverage-statement.vue b/src/layouts/coverage-statement/coverage-statement.vue index dada1d12a..b6b5ee2ce 100644 --- a/src/layouts/coverage-statement/coverage-statement.vue +++ b/src/layouts/coverage-statement/coverage-statement.vue @@ -143,7 +143,7 @@ export default { } const resultMap = await settleAllPromises(promiseResultMap); - const showSaveProgressModal = !hasSaveProgressContactInStore(store.getters.order.customer); + const showSaveProgressModal = !hasSaveProgressContactInStore(store.getters.order?.customer); next((vm) => { vm.setCmsContent(resultMap.cmsContent); vm.clientConfig = resultMap.clientConfig ?? {}; diff --git a/src/layouts/insurance-details/insurance-details.vue b/src/layouts/insurance-details/insurance-details.vue index e592ea9e5..0447c53a1 100644 --- a/src/layouts/insurance-details/insurance-details.vue +++ b/src/layouts/insurance-details/insurance-details.vue @@ -224,7 +224,7 @@ export default { }, ]; const resultMap = await settleAllPromises(promiseResultMap); - const showSaveProgressModal = !hasSaveProgressContactInStore(store.getters.order.customer); + const showSaveProgressModal = !hasSaveProgressContactInStore(store.getters.order?.customer); next((vm) => { vm.setCmsContent(resultMap.cmsContent); vm.showSaveProgressModal = showSaveProgressModal; diff --git a/src/layouts/molding-questions/molding-questions.vue b/src/layouts/molding-questions/molding-questions.vue index 4405253de..631d8f1db 100644 --- a/src/layouts/molding-questions/molding-questions.vue +++ b/src/layouts/molding-questions/molding-questions.vue @@ -63,7 +63,7 @@ export default { // Call the "next" function to complete the transition to this page. next(async (vm) => { vm.setCmsContent(resultMap.cmsContent); - vm.showSaveProgressModal = !hasSaveProgressContactInStore(store.getters.order.customer); + vm.showSaveProgressModal = !hasSaveProgressContactInStore(store.getters.order?.customer); if (store.getters.externalParameterState?.isExternalParameter) { if (store.getters.externalParameterServiceZip.zipCode) { await baseMixin.methods.dispatchStoreAction( diff --git a/src/layouts/part-questions/part-questions.vue b/src/layouts/part-questions/part-questions.vue index 3ea6525e4..71c28d3dd 100644 --- a/src/layouts/part-questions/part-questions.vue +++ b/src/layouts/part-questions/part-questions.vue @@ -63,7 +63,7 @@ export default { // Call the "next" function to complete the transition to this page. next(async (vm) => { vm.setCmsContent(resultMap.cmsContent); - vm.showSaveProgressModal = !hasSaveProgressContactInStore(store.getters.order.customer); + vm.showSaveProgressModal = !hasSaveProgressContactInStore(store.getters.order?.customer); if (store.getters.externalParameterState?.isExternalParameter) { if (store.getters.externalParameterServiceZip.zipCode) { const serviceState = store.getters.order.serviceLocation.state; diff --git a/src/layouts/recalibration-info/recalibration-info.vue b/src/layouts/recalibration-info/recalibration-info.vue index 4efec2e9e..6abee136d 100644 --- a/src/layouts/recalibration-info/recalibration-info.vue +++ b/src/layouts/recalibration-info/recalibration-info.vue @@ -92,7 +92,7 @@ export default { }, ]; const resultMap = await settleAllPromises(promiseResultMap); - const showSaveProgressModal = !hasSaveProgressContactInStore(store.getters.order.customer); + const showSaveProgressModal = !hasSaveProgressContactInStore(store.getters.order?.customer); next((vm) => { vm.setCmsContent(resultMap.cmsContent); vm.clientConfig = resultMap.clientConfig ?? {}; diff --git a/src/layouts/vehicle-parts/vehicle-parts.vue b/src/layouts/vehicle-parts/vehicle-parts.vue index 5b845693c..819b31675 100644 --- a/src/layouts/vehicle-parts/vehicle-parts.vue +++ b/src/layouts/vehicle-parts/vehicle-parts.vue @@ -81,7 +81,7 @@ export default { // Call the "next" function to complete the transition to this page. next((vm) => { vm.setCmsContent(resultMap.cmsContent); - vm.showSaveProgressModal = !hasSaveProgressContactInStore(store.getters.order.customer); + vm.showSaveProgressModal = !hasSaveProgressContactInStore(store.getters.order?.customer); // Glass Part Question dynamic component Object.keys(vm.$refs)