Merge branch 'develop' into dependabot/npm_and_yarn/axios-1.18.0

This commit is contained in:
Jeremy-Z 2026-07-21 11:04:27 -04:00 committed by GitHub
commit a41680d79c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 91 additions and 0 deletions

View 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()
};
}

View 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);
}
}

View 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();
});
});
});

View file

@ -578,6 +578,7 @@ export default {
sessionData.userAgent = navigator.userAgent;
sessionData.bailoutCodeValue = bailoutCombinedString;
sessionData.vinRequired = order?.vehicle?.vinRequired ?? false;
store.logIssSessionData(sessionData);
},

View file

@ -28,6 +28,7 @@ import { getDateForSavedSessionTimeout } from '@/helpers/session-helper';
import { isMobileDevice } from '@/helpers/useragent-helper';
import issPageValues from '@/router/router-constants/issPage-values';
import { getNonFalseValuesOfPropertyInArrayOfObjects, sortArrayOfObjectsByPropertyValue } from '@/helpers/object-helper';
import { updateClientSpecificFieldsForClaimRegistration } from '@/helpers/coverage-helper';
const storeId = 'main';
@ -713,6 +714,7 @@ export const useMainStore = defineStore({
if (this.issConfig.useMemberNumber) {
payload.memberNumber = this.order.policy.policyNumber;
}
await updateClientSpecificFieldsForClaimRegistration(payload, this.order);
const response = await globalMethods.callHttpClient({
method: endpoints.RegisterClaim.method,
endpoint: endpoints.RegisterClaim.url,
@ -2832,6 +2834,7 @@ export const useMainStore = defineStore({
userAgent,
cashPriceSubTotal,
bailoutCodeValue,
vinRequired,
}
) {
var payload = {
@ -2884,6 +2887,7 @@ export const useMainStore = defineStore({
cashPriceSubTotal: cashPriceSubTotal,
billToAccountNumber: billToAccountNumber,
bailoutCode: bailoutCodeValue,
vinRequired: vinRequired,
};
return globalMethods.callHttpClient({