Updating tests for getTpaProviders

This commit is contained in:
Michaela Brydon 2023-11-28 16:45:12 -05:00
parent 7a9edc3e8a
commit cdac218b41

View file

@ -1964,123 +1964,98 @@ describe('Store', () => {
describe('getTpaProviders method', () => {
describe('successful method call', () => {
it('calls getProviders api endpoint', async () => {
// Arrange
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve({}));
it.each([[true, 'Repair'], [false, 'Replace']])(
'calls getProviders api endpoint',
async (isRepair, damageType) => {
// Arrange
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve({}));
// Act
await store.getCoveragePolicyInfo();
const parentAccountNumber = getRandomString(6, 6);
store.issConfig.parentAccountNumber = parentAccountNumber;
store.order.damage.isRepair = isRepair;
const zipCode = getRandomString(6, 6);
const radius = getRandomInt(5, 100);
const expectedEndpoint = [
endpoints.GetProviders.url,
zipCode,
damageType,
radius,
parentAccountNumber,
'false'
].join('/');
// Asserts
expect(globalMethods.callHttpClient).toHaveBeenCalledWith(expect.objectContaining({
method: endpoints.CoveragePolicyInfo.method,
endpoint: endpoints.CoveragePolicyInfo.url
}));
});
// Act
await store.getTpaProviders(zipCode, radius);
// Asserts
expect(globalMethods.callHttpClient).toHaveBeenCalledWith(expect.objectContaining({
method: endpoints.GetProviders.method,
endpoint: expectedEndpoint
}));
}
);
it('Returns expected response object', async () => {
// Arrange
const response = { ReferralNumber: getRandomString(6, 6) };
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(response));
const zipCode = getRandomString(6, 6);
const radius = getRandomInt(5, 100);
// Act
const result = store.getCoveragePolicyInfo();
const result = store.getTpaProviders(zipCode, radius);
// Asserts
await expect(result).resolves.toBe(response);
});
it('calls api with expected data', async () => {
// Arrange
const accountNumber = getRandomString(6, 6);
const policyNumber = getRandomString(6, 6);
const dateOfLoss = getRandomString(6, 6);
const zipCode = getRandomString(6, 6);
const referralCorrelationId = getRandomString(6, 6);
store.order.accountNumber = accountNumber;
store.order.policy.policyNumber = policyNumber;
store.order.policy.dateOfLoss = dateOfLoss;
store.order.policy.policyZipCode = zipCode;
store.order.referralCorrelationId = referralCorrelationId;
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve({}));
// Act
await store.getCoveragePolicyInfo();
// Asserts
expect(globalMethods.callHttpClient).toHaveBeenCalledWith(expect.objectContaining({
payload: expect.objectContaining({
accountNumber,
policyNumber,
dateOfLoss,
zipCode,
referralCorrelationId
})
}));
});
it('null response by api => no exceptions thrown', async () => {
// Arrange
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(null));
const zipCode = getRandomString(6, 6);
const radius = getRandomInt(5, 100);
// Act
await store.getCoveragePolicyInfo();
// Asserts
expect(store.order.policy.policyLookupSuccessful).toBe(false);
await store.getTpaProviders(zipCode, radius);
});
it('no providers returned by api => promise resolves to empty list', async () => {
// Arrange
const responseNoPolicies = {
const responseNoProviders = {
data: {
policies: []
shopProviders: []
}
};
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(responseNoPolicies));
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(responseNoProviders));
const zipCode = getRandomString(6, 6);
const radius = getRandomInt(5, 100);
// Act
await store.getCoveragePolicyInfo();
const result = await store.getTpaProviders(zipCode, radius);
// Asserts
expect(store.order.policy.policyLookupSuccessful).toBe(false);
expect(result.data.shopProviders).toHaveLength(0);
});
it('multiple providers returned by api => promise resolves to expected', async () => {
// Arrange
const insured = {
address: getRandomString(6, 6),
firstName: getRandomString(6, 6),
lastName: getRandomString(6, 6),
city: getRandomString(6, 6),
state: getRandomString(6, 6),
zipCode: getRandomString(6, 6)
const provider1 = {
companyName: getRandomString(6, 6)
};
const vehicles = [
{ name: getRandomString(6, 6) },
{ name: getRandomString(6, 6) }
];
const policy1 = {
insureds: [insured],
vehicles
const provider2 = {
companyName: getRandomString(6, 6)
};
const responseNoPolicies = {
const responseProviders = {
data: {
policies: [policy1, {}]
shopProviders: [provider1, provider2]
}
};
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(responseNoPolicies));
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(responseProviders));
// Act
await store.getCoveragePolicyInfo();
const result = await store.getTpaProviders();
// Asserts
expect(store.order.policy.policyLookupSuccessful).toBe(true);
expect(store.order.customer.address.streetAddress).toBe(insured.address);
expect(store.order.customer.address.city).toBe(insured.city);
expect(store.order.customer.address.state).toBe(insured.state);
expect(store.order.customer.address.zipCode).toBe(insured.zipCode);
expect(store.order.customer.firstName).toBe(insured.firstName);
expect(store.order.customer.lastName).toBe(insured.lastName);
expect(store.order.serviceLocation.zipCode).toBe(insured.zipCode);
expect(store.order.policy.vehicles).toEqual(vehicles);
expect(result.data.shopProviders).toHaveLength(2);
expect(result.data.shopProviders[0]).toBe(provider1);
expect(result.data.shopProviders[1]).toBe(provider2);
});
});
it('api call throws exception => policyLookupSuccessful false', async () => {