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('custom claim registration for client 900040', () => { test.each([ [900040, true], [900040, false], ['900040', true], ['900040', false] ])(`Sets additionalInfo fields when parent account is %s and isITAC is %s`, async (parentAccountNumber, isITAC) => { // 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.each([900040, '900040'])('Sets accountUserId when parent account is %s', async (parentAccountNumber) => { // Arrange const payload = {}; mockStore.order.parentAccountNumber = parentAccountNumber; mockStore.order.insuranceCoverage.coverageType = coverageType.ITAC; // Act await updateClientSpecificFieldsForClaimRegistration(payload, mockStore.order); // Assert expect(payload.accountUserId).toBe('0000001'); }); }); 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(); }); test.each([123456, '123456'])('Does not set accountUserId when parent account is not 900040 (parentAccountNumber=%s)', async (parentAccountNumber) => { // Arrange const payload = {}; mockStore.order.parentAccountNumber = parentAccountNumber; mockStore.order.insuranceCoverage.coverageType = coverageType.ITAC; // Act await updateClientSpecificFieldsForClaimRegistration(payload, mockStore.order); // Assert expect(payload.accountUserId).toBeUndefined(); }); }); });