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', () => {