From 75720b26602cae3d264a9374935102c66435577a Mon Sep 17 00:00:00 2001 From: Jeremy-Z Date: Wed, 8 Jul 2026 09:33:01 -0400 Subject: [PATCH] Updated savesession logic on duplicate check page. --- .../duplicate-check/duplicate-check.spec.js | 5 +- .../duplicate-check/duplicate-check.vue | 58 +++++++++++++------ 2 files changed, 42 insertions(+), 21 deletions(-) diff --git a/src/layouts/duplicate-check/duplicate-check.spec.js b/src/layouts/duplicate-check/duplicate-check.spec.js index 04ed661b..df58325e 100644 --- a/src/layouts/duplicate-check/duplicate-check.spec.js +++ b/src/layouts/duplicate-check/duplicate-check.spec.js @@ -396,7 +396,8 @@ describe('duplicateCheck.vue', () => { await wrapper.vm.forwardButtonAction(); // Assert - expect(saveSession).toHaveBeenCalledTimes(0); + // When selection doesn't match any duplicate, saveSession should be called to create a new referral + expect(saveSession).toHaveBeenCalledTimes(1); expect(wrapper.vm.mainStore.loadSessionFromDuplicate).toHaveBeenCalledTimes(0); expect(wrapper.vm.mainStore.getCoveragePolicyInfo).toHaveBeenCalledTimes(1); expect(wrapper.vm.$router.navigate).toHaveBeenCalledTimes(1); @@ -429,7 +430,7 @@ describe('duplicateCheck.vue', () => { // Assert expect(wrapper.vm.mainStore.loadSessionFromDuplicate).toHaveBeenCalledTimes(1); expect(saveSession).not.toHaveBeenCalled(); - expect(wrapper.vm.mainStore.getCoveragePolicyInfo).toHaveBeenCalledTimes(0); + expect(wrapper.vm.mainStore.getCoveragePolicyInfo).toHaveBeenCalledTimes(1); expect(wrapper.vm.$router.navigate).toHaveBeenCalledTimes(1); }); test('coverageType deductible and policy vehicles returned => CLICKED_FORWARD_POLICY_VERIFIED_WITH_VEHICLES', async () => { diff --git a/src/layouts/duplicate-check/duplicate-check.vue b/src/layouts/duplicate-check/duplicate-check.vue index 7064ec01..ef68050f 100644 --- a/src/layouts/duplicate-check/duplicate-check.vue +++ b/src/layouts/duplicate-check/duplicate-check.vue @@ -138,30 +138,50 @@ export default { async forwardButtonAction() { showIssLoadingModal(true); - try - { - // If user clicked forward without selecting an option or user click on "start a new claim" button. - if (this.selectedAnswer == null || this.selectedAnswer === 'NewClaim') { - // Call SaveSession to create referral. - await saveSession({ shouldAwaitSaveSessionQueue: true, bailoutOnError: true }); - } - else - { - const selectedReferral = - this.mainStore.applicationUser.duplicateOrders.find((o) => o.correlationId === this.selectedAnswer); + let callSaveSession = false; + let selectedReferral = null; - if (selectedReferral) { - await this.mainStore.loadSessionFromDuplicate(selectedReferral); - } + // If user clicked forward without selecting an option or user click on "start a new claim" button. + if (this.selectedAnswer == null || this.selectedAnswer === 'NewClaim') { + // User did not pick a duplicate, so call SaveSession to create referral. + callSaveSession = true; + } + else + { + selectedReferral = + this.mainStore.applicationUser.duplicateOrders.find((o) => o.correlationId === this.selectedAnswer); + + if (!selectedReferral) { + // If duplicate not found in list (unable to load), then call SaveSession to create referral. + callSaveSession = true; } - - // Call getCoveragePolicyInfo to get the policy info. + } + + // Call LoadSession if duplicate was found. + if (selectedReferral) { + try { + await this.mainStore.loadSessionFromDuplicate(selectedReferral); + } + catch (error) { + // LoadSession will bailout. + } + } + + // Call SaveSession to create referral. + if (callSaveSession) { + try { + await saveSession({ shouldAwaitSaveSessionQueue: true, bailoutOnError: true }); + } + catch (error) { + // SaveSession will bailout. + } + } + + // Call getCoveragePolicyInfo to get the policy info. + try { await this.mainStore.getCoveragePolicyInfo(); } catch (error) { - // No error handling here needed. - // SaveSession will bailout. - // LoadSession will bailout. // GetCoveragePolicyInfo handles exception / error internally. }