Merge branch 'develop' into dependabot/npm_and_yarn/axios-1.18.0
This commit is contained in:
commit
a41680d79c
5 changed files with 91 additions and 0 deletions
10
src/helpers/client-mappers/Client900040Coverage.js
Normal file
10
src/helpers/client-mappers/Client900040Coverage.js
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
import coverageType from "@/constants/coverage-type";
|
||||||
|
|
||||||
|
// USAA coverage overrides
|
||||||
|
export function updateClaimRegistrationPayload(payload, order) {
|
||||||
|
const isITAC = order.insuranceCoverage?.coverageType === coverageType.ITAC;
|
||||||
|
payload.additionalInfo = {
|
||||||
|
offeredItac: isITAC.toString(),
|
||||||
|
qualifiedForItac: isITAC.toString()
|
||||||
|
};
|
||||||
|
}
|
||||||
16
src/helpers/coverage-helper.js
Normal file
16
src/helpers/coverage-helper.js
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
export async function updateClientSpecificFieldsForClaimRegistration(payload, order) {
|
||||||
|
const parentAccountNumber = order.parentAccountNumber;
|
||||||
|
if (!parentAccountNumber) { return; }
|
||||||
|
|
||||||
|
let clientMapper;
|
||||||
|
try {
|
||||||
|
clientMapper = await import(`@/helpers/client-mappers/Client${parentAccountNumber}Coverage.js`);
|
||||||
|
} catch (error) {
|
||||||
|
// No client-specific mapper found; proceed with the default payload.
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof clientMapper.updateClaimRegistrationPayload === 'function') {
|
||||||
|
await clientMapper.updateClaimRegistrationPayload(payload, order);
|
||||||
|
}
|
||||||
|
}
|
||||||
60
src/helpers/coverage-helper.spec.js
Normal file
60
src/helpers/coverage-helper.spec.js
Normal file
|
|
@ -0,0 +1,60 @@
|
||||||
|
import { updateClientSpecificFieldsForClaimRegistration } from '@/helpers/coverage-helper';
|
||||||
|
import coverageType from '@/constants/coverage-type';
|
||||||
|
|
||||||
|
let mockStore;
|
||||||
|
|
||||||
|
jest.mock('@/store', () => ({
|
||||||
|
useMainStore: jest.fn(() => mockStore)
|
||||||
|
}));
|
||||||
|
|
||||||
|
describe('coverage-helper.js', () => {
|
||||||
|
describe('updateClientSpecificFieldsForClaimRegistration', () => {
|
||||||
|
beforeEach(() => {
|
||||||
|
mockStore = {
|
||||||
|
order: {
|
||||||
|
parentAccountNumber: null,
|
||||||
|
insuranceCoverage: {
|
||||||
|
coverageType: coverageType.NONE
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
jest.clearAllMocks();
|
||||||
|
});
|
||||||
|
describe.each([
|
||||||
|
[900040, true],
|
||||||
|
[900040, false],
|
||||||
|
['900040', true],
|
||||||
|
['900040', false]
|
||||||
|
])('custom claim registration for client 900040', (parentAccountNumber, isITAC) => {
|
||||||
|
test(`Sets additionalInfo fields when parent account is ${parentAccountNumber} and isITAC is ${isITAC}`, async () => {
|
||||||
|
// Arrange
|
||||||
|
const payload = {};
|
||||||
|
mockStore.order.parentAccountNumber = parentAccountNumber;
|
||||||
|
mockStore.order.insuranceCoverage.coverageType = isITAC ? coverageType.ITAC : coverageType.Deductible;
|
||||||
|
|
||||||
|
// Act
|
||||||
|
await updateClientSpecificFieldsForClaimRegistration(payload, mockStore.order);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
expect(payload.additionalInfo).toEqual({
|
||||||
|
offeredItac: isITAC.toString(),
|
||||||
|
qualifiedForItac: isITAC.toString()
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
test('Does not set additionalInfo when parent account is not 900040', async () => {
|
||||||
|
// Arrange
|
||||||
|
const payload = {};
|
||||||
|
mockStore.order.parentAccountNumber = 123456;
|
||||||
|
mockStore.order.insuranceCoverage.coverageType = coverageType.ITAC;
|
||||||
|
|
||||||
|
// Act
|
||||||
|
await updateClientSpecificFieldsForClaimRegistration(payload, mockStore.order);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
expect(payload.additionalInfo).toBeUndefined();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
@ -578,6 +578,7 @@ export default {
|
||||||
sessionData.userAgent = navigator.userAgent;
|
sessionData.userAgent = navigator.userAgent;
|
||||||
|
|
||||||
sessionData.bailoutCodeValue = bailoutCombinedString;
|
sessionData.bailoutCodeValue = bailoutCombinedString;
|
||||||
|
sessionData.vinRequired = order?.vehicle?.vinRequired ?? false;
|
||||||
|
|
||||||
store.logIssSessionData(sessionData);
|
store.logIssSessionData(sessionData);
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@ import { getDateForSavedSessionTimeout } from '@/helpers/session-helper';
|
||||||
import { isMobileDevice } from '@/helpers/useragent-helper';
|
import { isMobileDevice } from '@/helpers/useragent-helper';
|
||||||
import issPageValues from '@/router/router-constants/issPage-values';
|
import issPageValues from '@/router/router-constants/issPage-values';
|
||||||
import { getNonFalseValuesOfPropertyInArrayOfObjects, sortArrayOfObjectsByPropertyValue } from '@/helpers/object-helper';
|
import { getNonFalseValuesOfPropertyInArrayOfObjects, sortArrayOfObjectsByPropertyValue } from '@/helpers/object-helper';
|
||||||
|
import { updateClientSpecificFieldsForClaimRegistration } from '@/helpers/coverage-helper';
|
||||||
|
|
||||||
const storeId = 'main';
|
const storeId = 'main';
|
||||||
|
|
||||||
|
|
@ -713,6 +714,7 @@ export const useMainStore = defineStore({
|
||||||
if (this.issConfig.useMemberNumber) {
|
if (this.issConfig.useMemberNumber) {
|
||||||
payload.memberNumber = this.order.policy.policyNumber;
|
payload.memberNumber = this.order.policy.policyNumber;
|
||||||
}
|
}
|
||||||
|
await updateClientSpecificFieldsForClaimRegistration(payload, this.order);
|
||||||
const response = await globalMethods.callHttpClient({
|
const response = await globalMethods.callHttpClient({
|
||||||
method: endpoints.RegisterClaim.method,
|
method: endpoints.RegisterClaim.method,
|
||||||
endpoint: endpoints.RegisterClaim.url,
|
endpoint: endpoints.RegisterClaim.url,
|
||||||
|
|
@ -2832,6 +2834,7 @@ export const useMainStore = defineStore({
|
||||||
userAgent,
|
userAgent,
|
||||||
cashPriceSubTotal,
|
cashPriceSubTotal,
|
||||||
bailoutCodeValue,
|
bailoutCodeValue,
|
||||||
|
vinRequired,
|
||||||
}
|
}
|
||||||
) {
|
) {
|
||||||
var payload = {
|
var payload = {
|
||||||
|
|
@ -2884,6 +2887,7 @@ export const useMainStore = defineStore({
|
||||||
cashPriceSubTotal: cashPriceSubTotal,
|
cashPriceSubTotal: cashPriceSubTotal,
|
||||||
billToAccountNumber: billToAccountNumber,
|
billToAccountNumber: billToAccountNumber,
|
||||||
bailoutCode: bailoutCodeValue,
|
bailoutCode: bailoutCodeValue,
|
||||||
|
vinRequired: vinRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
return globalMethods.callHttpClient({
|
return globalMethods.callHttpClient({
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue