From f7b753a4af48e4f131fbe03bd2aa0ffd22165a0a Mon Sep 17 00:00:00 2001 From: Jeremy-Z Date: Fri, 31 Jul 2026 15:22:07 -0400 Subject: [PATCH 1/5] Initial loss report number changes for USAA. --- src/store/index.js | 39 ++++++++++++++++++++++++++++++++------- 1 file changed, 32 insertions(+), 7 deletions(-) diff --git a/src/store/index.js b/src/store/index.js index f03d73f3..130b5c88 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -172,7 +172,8 @@ export const getDefaultState = () => ({ coverageStatus: coverageStatuses.PENDING, coverageType: coverageType.NONE, isItacOptimized: false, - claimNumber: null + claimNumber: null, + lossReportNumber: null }, payment: { parentAccountNumber: 0, @@ -736,13 +737,31 @@ export const useMainStore = defineStore({ bailoutOnError: false }); this.order.insuranceCoverage.claimNumber = response.data.claimNumber; - if (response.data.isSuccess) { - this.updateCoverageStatus(coverageStatuses.VERIFIED); - } else { - this.updateCoverageStatus(coverageStatuses.NO_COVERAGE); + console.error("Register Claim - Claim Number: ", this.order.insuranceCoverage.claimNumber); + + // If register claim at end, then we have loss report number we need to populate. + if ( this.issConfig.callClaimRegistrationAtEnd ) { + if ( response.data.additionalFields?.lossReportNum ) { + // Update member number if it is returned. + this.order.policy.memberNumber = response.data.additionalFields.memberNum; + this.order.insuranceCoverage.lossReportNumber = response.data.additionalFields.lossReportNum; + } + } + else + { + // Only set coverage statuses if we are not calling claim registration at end of flow. + if (response.data.isSuccess) { + this.updateCoverageStatus(coverageStatuses.VERIFIED); + } else { + this.updateCoverageStatus(coverageStatuses.NO_COVERAGE); + } } } catch (e) { - this.updateCoverageStatus(coverageStatuses.NO_COVERAGE); + // Only set coverage statuses if we are not calling claim registration at end of flow. + if ( !this.issConfig.callClaimRegistrationAtEnd ) { + this.updateCoverageStatus(coverageStatuses.NO_COVERAGE); + } + console.error("Claim number cleared due to error during claim registration: ", e); this.order.insuranceCoverage.claimNumber = null; } }, @@ -1534,6 +1553,9 @@ export const useMainStore = defineStore({ const payloadVapsItems = setClearOnSubmit(lineItems.vaps, false); const payloadFeeItems = setClearOnSubmit(lineItems.feeItems, shouldClearOnSubmit); + + console.error("Save Session - Claim Number: ", insuranceCoverage.claimNumber); + const payload = { applicationUser: { crmCustomerId: this.applicationUser.crmCustomerId, @@ -1609,7 +1631,8 @@ export const useMainStore = defineStore({ insuranceCoverage: { coverageType: insuranceCoverage.coverageType, coverageStatus: insuranceCoverage.coverageStatus, - claimNumber: insuranceCoverage.claimNumber + claimNumber: insuranceCoverage.claimNumber, + lossReportNumber: insuranceCoverage.lossReportNumber }, payment: { parentAccountNumber: this.order.parentAccountNumber ?? this.issConfig.parentAccountNumber, @@ -2038,7 +2061,9 @@ export const useMainStore = defineStore({ this.order.insuranceCoverage.coverageStatus = coverageStatuses.PENDING; this.order.insuranceCoverage.coverageType = coverageType.NONE; this.order.insuranceCoverage.isItacOptimized = false; + console.error("Reset Insurance called."); this.order.insuranceCoverage.claimNumber = null; + this.order.insuranceCoverage.lossReportNumber = null; }, updateGlassFees(feeData) { if (feeData == null) { From a6cb1e54ac24997b9d4c9f457063e1214c0a0d20 Mon Sep 17 00:00:00 2001 From: Jeremy-Z Date: Mon, 3 Aug 2026 10:15:56 -0400 Subject: [PATCH 2/5] Updated logic. --- src/store/index.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/store/index.js b/src/store/index.js index 130b5c88..26d95bc1 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -742,9 +742,12 @@ export const useMainStore = defineStore({ // If register claim at end, then we have loss report number we need to populate. if ( this.issConfig.callClaimRegistrationAtEnd ) { if ( response.data.additionalFields?.lossReportNum ) { + this.order.insuranceCoverage.lossReportNumber = response.data.additionalFields.lossReportNum; + } + + if ( response.data.additionalFields?.memberNum ) { // Update member number if it is returned. this.order.policy.memberNumber = response.data.additionalFields.memberNum; - this.order.insuranceCoverage.lossReportNumber = response.data.additionalFields.lossReportNum; } } else From 76cdd1a1e3f06b021df6785b924d6671a5221333 Mon Sep 17 00:00:00 2001 From: Jeremy-Z Date: Mon, 3 Aug 2026 10:18:19 -0400 Subject: [PATCH 3/5] Removed debugging statements. --- src/store/index.js | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/store/index.js b/src/store/index.js index 26d95bc1..17b8c7ed 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -737,7 +737,6 @@ export const useMainStore = defineStore({ bailoutOnError: false }); this.order.insuranceCoverage.claimNumber = response.data.claimNumber; - console.error("Register Claim - Claim Number: ", this.order.insuranceCoverage.claimNumber); // If register claim at end, then we have loss report number we need to populate. if ( this.issConfig.callClaimRegistrationAtEnd ) { @@ -764,7 +763,7 @@ export const useMainStore = defineStore({ if ( !this.issConfig.callClaimRegistrationAtEnd ) { this.updateCoverageStatus(coverageStatuses.NO_COVERAGE); } - console.error("Claim number cleared due to error during claim registration: ", e); + this.order.insuranceCoverage.claimNumber = null; } }, @@ -1556,9 +1555,6 @@ export const useMainStore = defineStore({ const payloadVapsItems = setClearOnSubmit(lineItems.vaps, false); const payloadFeeItems = setClearOnSubmit(lineItems.feeItems, shouldClearOnSubmit); - - console.error("Save Session - Claim Number: ", insuranceCoverage.claimNumber); - const payload = { applicationUser: { crmCustomerId: this.applicationUser.crmCustomerId, @@ -2064,7 +2060,6 @@ export const useMainStore = defineStore({ this.order.insuranceCoverage.coverageStatus = coverageStatuses.PENDING; this.order.insuranceCoverage.coverageType = coverageType.NONE; this.order.insuranceCoverage.isItacOptimized = false; - console.error("Reset Insurance called."); this.order.insuranceCoverage.claimNumber = null; this.order.insuranceCoverage.lossReportNumber = null; }, From 1aa360ff72c10f65f439111b8d105dbadeda333a Mon Sep 17 00:00:00 2001 From: Jeremy-Z Date: Mon, 3 Aug 2026 10:26:21 -0400 Subject: [PATCH 4/5] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- src/store/index.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/store/index.js b/src/store/index.js index 17b8c7ed..0fef6d90 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -748,9 +748,7 @@ export const useMainStore = defineStore({ // Update member number if it is returned. this.order.policy.memberNumber = response.data.additionalFields.memberNum; } - } - else - { + } else { // Only set coverage statuses if we are not calling claim registration at end of flow. if (response.data.isSuccess) { this.updateCoverageStatus(coverageStatuses.VERIFIED); From 6053a845d95b41c118e9db284b2edae028098bed Mon Sep 17 00:00:00 2001 From: Jeremy-Z Date: Mon, 3 Aug 2026 10:42:55 -0400 Subject: [PATCH 5/5] Updated unit tests. --- src/store/store.spec.js | 63 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/src/store/store.spec.js b/src/store/store.spec.js index a443e9b9..b78dd9f7 100644 --- a/src/store/store.spec.js +++ b/src/store/store.spec.js @@ -570,6 +570,69 @@ describe('Store', () => { }) })); }); + + it('updates lossReportNumber and memberNumber when claim registration runs at end of flow', async () => { + // Arrange + const returnedLossReportNumber = getRandomString(8, 8); + const returnedMemberNumber = getRandomString(8, 8); + store.issConfig.callClaimRegistrationAtEnd = true; + store.order.insuranceCoverage.coverageStatus = coverageStatuses.PENDING; + store.order.policy.memberNumber = null; + + globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve({ + data: { + claimNumber: 'CLM123', + isSuccess: false, + additionalFields: { + lossReportNum: returnedLossReportNumber, + memberNum: returnedMemberNumber + } + } + })); + + // Act + await store.registerClaim(); + + // Assert + expect(store.order.insuranceCoverage.claimNumber).toBe('CLM123'); + expect(store.order.insuranceCoverage.lossReportNumber).toBe(returnedLossReportNumber); + expect(store.order.policy.memberNumber).toBe(returnedMemberNumber); + expect(store.order.insuranceCoverage.coverageStatus).toBe(coverageStatuses.PENDING); + }); + + it('does not update coverage status on failed response when claim registration runs at end of flow', async () => { + // Arrange + store.issConfig.callClaimRegistrationAtEnd = true; + store.order.insuranceCoverage.coverageStatus = coverageStatuses.PENDING; + + globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve({ + data: { + claimNumber: null, + isSuccess: false, + additionalFields: {} + } + })); + + // Act + await store.registerClaim(); + + // Assert + expect(store.order.insuranceCoverage.coverageStatus).toBe(coverageStatuses.PENDING); + }); + + it('does not update coverage status in catch when claim registration runs at end of flow', async () => { + // Arrange + store.issConfig.callClaimRegistrationAtEnd = true; + store.order.insuranceCoverage.coverageStatus = coverageStatuses.PENDING; + globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.reject(new Error('register claim error'))); + + // Act + await store.registerClaim(); + + // Assert + expect(store.order.insuranceCoverage.coverageStatus).toBe(coverageStatuses.PENDING); + expect(store.order.insuranceCoverage.claimNumber).toBeNull(); + }); }); describe('updateContactInfo method', () => {