Merge pull request #1324 from Safelite/feature/jzimmerman/INSR-10593
INSR-10593: Adding loss report number from the front end.
This commit is contained in:
commit
21a3d58423
2 changed files with 90 additions and 6 deletions
|
|
@ -172,7 +172,8 @@ export const getDefaultState = () => ({
|
||||||
coverageStatus: coverageStatuses.PENDING,
|
coverageStatus: coverageStatuses.PENDING,
|
||||||
coverageType: coverageType.NONE,
|
coverageType: coverageType.NONE,
|
||||||
isItacOptimized: false,
|
isItacOptimized: false,
|
||||||
claimNumber: null
|
claimNumber: null,
|
||||||
|
lossReportNumber: null
|
||||||
},
|
},
|
||||||
payment: {
|
payment: {
|
||||||
parentAccountNumber: 0,
|
parentAccountNumber: 0,
|
||||||
|
|
@ -736,13 +737,31 @@ export const useMainStore = defineStore({
|
||||||
bailoutOnError: false
|
bailoutOnError: false
|
||||||
});
|
});
|
||||||
this.order.insuranceCoverage.claimNumber = response.data.claimNumber;
|
this.order.insuranceCoverage.claimNumber = response.data.claimNumber;
|
||||||
if (response.data.isSuccess) {
|
|
||||||
this.updateCoverageStatus(coverageStatuses.VERIFIED);
|
// 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;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
this.updateCoverageStatus(coverageStatuses.NO_COVERAGE);
|
// 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) {
|
} 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);
|
||||||
|
}
|
||||||
|
|
||||||
this.order.insuranceCoverage.claimNumber = null;
|
this.order.insuranceCoverage.claimNumber = null;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -1609,7 +1628,8 @@ export const useMainStore = defineStore({
|
||||||
insuranceCoverage: {
|
insuranceCoverage: {
|
||||||
coverageType: insuranceCoverage.coverageType,
|
coverageType: insuranceCoverage.coverageType,
|
||||||
coverageStatus: insuranceCoverage.coverageStatus,
|
coverageStatus: insuranceCoverage.coverageStatus,
|
||||||
claimNumber: insuranceCoverage.claimNumber
|
claimNumber: insuranceCoverage.claimNumber,
|
||||||
|
lossReportNumber: insuranceCoverage.lossReportNumber
|
||||||
},
|
},
|
||||||
payment: {
|
payment: {
|
||||||
parentAccountNumber: this.order.parentAccountNumber ?? this.issConfig.parentAccountNumber,
|
parentAccountNumber: this.order.parentAccountNumber ?? this.issConfig.parentAccountNumber,
|
||||||
|
|
@ -2039,6 +2059,7 @@ export const useMainStore = defineStore({
|
||||||
this.order.insuranceCoverage.coverageType = coverageType.NONE;
|
this.order.insuranceCoverage.coverageType = coverageType.NONE;
|
||||||
this.order.insuranceCoverage.isItacOptimized = false;
|
this.order.insuranceCoverage.isItacOptimized = false;
|
||||||
this.order.insuranceCoverage.claimNumber = null;
|
this.order.insuranceCoverage.claimNumber = null;
|
||||||
|
this.order.insuranceCoverage.lossReportNumber = null;
|
||||||
},
|
},
|
||||||
updateGlassFees(feeData) {
|
updateGlassFees(feeData) {
|
||||||
if (feeData == null) {
|
if (feeData == null) {
|
||||||
|
|
|
||||||
|
|
@ -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', () => {
|
describe('updateContactInfo method', () => {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue