Updating tests
This commit is contained in:
parent
da3459ce4f
commit
72b3879c91
2 changed files with 170 additions and 13 deletions
|
|
@ -7,7 +7,7 @@ Object {
|
|||
},
|
||||
"dataLoaded": false,
|
||||
"filter": "",
|
||||
"mapZipCode": "12663",
|
||||
"mapZipCode": null,
|
||||
"providers": Array [],
|
||||
"reloadingProviders": false,
|
||||
"rules": Object {
|
||||
|
|
@ -202,6 +202,6 @@ Object {
|
|||
"siteHeader": "SiteHeaderWidget",
|
||||
"tpaSearchQuestion": "TPASearchQuestion",
|
||||
},
|
||||
"zipCode": "12663",
|
||||
"zipCode": null,
|
||||
}
|
||||
`;
|
||||
|
|
|
|||
|
|
@ -807,11 +807,30 @@ describe('TPA search page', () => {
|
|||
});
|
||||
// TODO confirm tests appropriate. Also should this method be async?
|
||||
describe('on providers', () => {
|
||||
test('does not update provider number when dataLoaded false', () => {
|
||||
// Arrange
|
||||
const initialValue = 1234;
|
||||
const { wrapper } = getMountedComponent({}, {
|
||||
dataLoaded: false,
|
||||
selectedProviderNumber: initialValue,
|
||||
});
|
||||
const value = 'some other value';
|
||||
const newProviders = [{ providerNumber: value }];
|
||||
|
||||
// Act
|
||||
wrapper.vm.$options.watch.providers.call(wrapper.vm, newProviders);
|
||||
|
||||
// Assert
|
||||
expect(wrapper.vm.selectedProviderNumber).toBe(initialValue);
|
||||
});
|
||||
test.each([null, undefined, []])(
|
||||
'sets selected provider number to "" when there are no providers',
|
||||
(newProviders) => {
|
||||
// Arrange
|
||||
const { wrapper } = getMountedComponent();
|
||||
const { wrapper } = getMountedComponent({}, {
|
||||
dataLoaded: true,
|
||||
selectedProviderNumber: null
|
||||
});
|
||||
|
||||
// Act
|
||||
wrapper.vm.$options.watch.providers.call(wrapper.vm, newProviders);
|
||||
|
|
@ -822,7 +841,10 @@ describe('TPA search page', () => {
|
|||
);
|
||||
test('sets selected provider number to value of provider when there is one provider', () => {
|
||||
// Arrange
|
||||
const { wrapper } = getMountedComponent();
|
||||
const { wrapper } = getMountedComponent({}, {
|
||||
dataLoaded: true,
|
||||
selectedProviderNumber: null
|
||||
});
|
||||
const value = 'some value';
|
||||
const newProviders = [{ providerNumber: value }];
|
||||
|
||||
|
|
@ -834,7 +856,10 @@ describe('TPA search page', () => {
|
|||
});
|
||||
test('sets selected provider number to "" when there are more than one provider', () => {
|
||||
// Arrange
|
||||
const { wrapper } = getMountedComponent();
|
||||
const { wrapper } = getMountedComponent({}, {
|
||||
dataLoaded: true,
|
||||
selectedProviderNumber: null
|
||||
});
|
||||
const newProviders = [{ value: 'val1' }, { value: 'val2' }];
|
||||
|
||||
// Act
|
||||
|
|
@ -846,10 +871,36 @@ describe('TPA search page', () => {
|
|||
});
|
||||
describe('selectedProviderNumber', () => {
|
||||
describe('does not call updateServiceLocation when', () => {
|
||||
test('dataLoaded is false', () => {
|
||||
// Arrange
|
||||
const providerNumber = 38447;
|
||||
const { wrapper } = getMountedComponent({}, {
|
||||
providers: [{
|
||||
providerNumber,
|
||||
address: {
|
||||
streetAddress: '143 Average Lane',
|
||||
city: 'Cambridge',
|
||||
state: 'OH',
|
||||
zipCode: '72983',
|
||||
zipCodeCtu: '0390'
|
||||
},
|
||||
companyName: "Sally's Auto",
|
||||
phoneNumber: '1234567890'
|
||||
}],
|
||||
dataLoaded: false
|
||||
});
|
||||
|
||||
// Act
|
||||
wrapper.vm.$options.watch.selectedProviderNumber.call(wrapper.vm, providerNumber);
|
||||
|
||||
// Assert
|
||||
expect(wrapper.vm.mainStore.updateServiceLocation).not.toHaveBeenCalled();
|
||||
});
|
||||
test('providers list is null ', () => {
|
||||
// Arrange
|
||||
const { wrapper } = getMountedComponent({}, {
|
||||
providers: null
|
||||
providers: null,
|
||||
dataLoaded: true
|
||||
});
|
||||
const newProviderNumber = 11235;
|
||||
|
||||
|
|
@ -862,7 +913,8 @@ describe('TPA search page', () => {
|
|||
test('providers list is empty ', () => {
|
||||
// Arrange
|
||||
const { wrapper } = getMountedComponent({}, {
|
||||
providers: []
|
||||
providers: [],
|
||||
dataLoaded: true
|
||||
});
|
||||
const newProviderNumber = 11235;
|
||||
|
||||
|
|
@ -886,7 +938,8 @@ describe('TPA search page', () => {
|
|||
},
|
||||
companyName: "Sally's Auto",
|
||||
phoneNumber: '1234567890'
|
||||
}]
|
||||
}],
|
||||
dataLoaded: true
|
||||
});
|
||||
const newProviderNumber = 11235;
|
||||
|
||||
|
|
@ -919,18 +972,26 @@ describe('TPA search page', () => {
|
|||
companyName,
|
||||
phoneNumber
|
||||
};
|
||||
const filter = '10 miles';
|
||||
const serviceZipCode = 10098;
|
||||
const { wrapper } = getMountedComponent({}, {
|
||||
providers: [
|
||||
provider,
|
||||
{ providerNumber: 328949832 }
|
||||
]
|
||||
],
|
||||
filter,
|
||||
zipCode: serviceZipCode,
|
||||
dataLoaded: true
|
||||
});
|
||||
|
||||
// Act
|
||||
wrapper.vm.$options.watch.selectedProviderNumber.call(wrapper.vm, newProviderNumber);
|
||||
|
||||
// Assert
|
||||
expect(wrapper.vm.mainStore.updateServiceLocation).toHaveBeenCalledTimes(1);
|
||||
expect(wrapper.vm.mainStore.updateServiceLocation).toHaveBeenCalledWith({
|
||||
searchFilter: filter,
|
||||
zipCode: serviceZipCode,
|
||||
provider: {
|
||||
providerNumber: newProviderNumber,
|
||||
address: {
|
||||
|
|
@ -1292,11 +1353,89 @@ describe('TPA search page', () => {
|
|||
});
|
||||
});
|
||||
describe('before route enter', () => {
|
||||
test('when service location zipCode set in store, it is used', async () => {
|
||||
// Arrange
|
||||
const { wrapper } = getMountedComponent();
|
||||
const customerZipCode = '18394';
|
||||
const serviceZipCode = '43982';
|
||||
useMainStore().order.customer.address.zipCode = customerZipCode;
|
||||
useMainStore().order.serviceLocation.zipCode = serviceZipCode;
|
||||
|
||||
// Act
|
||||
await tpaSearch.beforeRouteEnter.call(
|
||||
wrapper.vm,
|
||||
{ query: { issPage: 'tpa-search' } },
|
||||
undefined,
|
||||
(c) => c(wrapper.vm)
|
||||
);
|
||||
|
||||
await wrapper.vm.$nextTick();
|
||||
await wrapper.vm.$nextTick();
|
||||
|
||||
// Assert
|
||||
expect(wrapper.vm.zipCode).toBe(serviceZipCode);
|
||||
});
|
||||
test('when service location zipCode not set in store, customer zipCode used', async () => {
|
||||
// Arrange
|
||||
const { wrapper } = getMountedComponent();
|
||||
const customerZipCode = '18394';
|
||||
useMainStore().order.customer.address.zipCode = customerZipCode;
|
||||
useMainStore().order.serviceLocation.zipCode = null;
|
||||
|
||||
// Act
|
||||
await tpaSearch.beforeRouteEnter.call(
|
||||
wrapper.vm,
|
||||
{ query: { issPage: 'tpa-search' } },
|
||||
undefined,
|
||||
(c) => c(wrapper.vm)
|
||||
);
|
||||
|
||||
await wrapper.vm.$nextTick();
|
||||
await wrapper.vm.$nextTick();
|
||||
|
||||
// Assert
|
||||
expect(wrapper.vm.zipCode).toBe(customerZipCode);
|
||||
});
|
||||
test('when search filter set in store, expected filter and provider number returned', async () => {
|
||||
// Arrange
|
||||
const { wrapper } = getMountedComponent();
|
||||
const customerZipCode = '18394';
|
||||
const searchFilter = '25 miles';
|
||||
const providerNumber = 749321;
|
||||
useMainStore().order.customer.address.zipCode = customerZipCode;
|
||||
useMainStore().order.serviceLocation.zipCode = null;
|
||||
useMainStore().order.serviceLocation.searchFilter = searchFilter;
|
||||
useMainStore().order.serviceLocation.provider.providerNumber = providerNumber;
|
||||
const providers = [{ companyName: 'some provider' }];
|
||||
const expectedRadius = 25;
|
||||
useMainStore().getTpaProviders = jest.fn().mockImplementation((_, radius) =>
|
||||
({ data: { shopProviders: radius === expectedRadius ? providers : [] } }));
|
||||
|
||||
// Act
|
||||
await tpaSearch.beforeRouteEnter.call(
|
||||
wrapper.vm,
|
||||
{ query: { issPage: 'tpa-search' } },
|
||||
undefined,
|
||||
(c) => c(wrapper.vm)
|
||||
);
|
||||
|
||||
await wrapper.vm.$nextTick();
|
||||
await wrapper.vm.$nextTick();
|
||||
|
||||
// Assert
|
||||
expect(wrapper.vm.filter).toBe(searchFilter);
|
||||
expect(wrapper.vm.providers).toEqual(providers);
|
||||
expect(wrapper.vm.selectedProviderNumber).toBe(providerNumber);
|
||||
expect(useMainStore().getTpaProviders).toBeCalledTimes(1);
|
||||
expect(useMainStore().getTpaProviders).toBeCalledWith(customerZipCode, expectedRadius);
|
||||
});
|
||||
test('when providers exist at 15 mile radius, filter is set to "15 miles" and providers set to expected', async () => {
|
||||
// Arrange
|
||||
const { wrapper } = getMountedComponent();
|
||||
const zipCode = '18394';
|
||||
useMainStore().order.customer.address.zipCode = zipCode;
|
||||
useMainStore().order.customer.address.zipCode = '00001';
|
||||
useMainStore().order.serviceLocation.zipCode = zipCode;
|
||||
useMainStore().order.serviceLocation.searchFilter = null;
|
||||
const providers = [{ companyName: 'provider' }];
|
||||
useMainStore().getTpaProviders = jest.fn().mockImplementation((_, radius) =>
|
||||
({ data: { shopProviders: radius === 15 ? providers : [] } }));
|
||||
|
|
@ -1314,15 +1453,19 @@ describe('TPA search page', () => {
|
|||
await wrapper.vm.$nextTick();
|
||||
|
||||
// Assert
|
||||
expect(wrapper.vm.zipCode).toBe(zipCode);
|
||||
expect(wrapper.vm.filter).toBe(expectedFilter);
|
||||
expect(wrapper.vm.providers).toEqual(providers);
|
||||
expect(wrapper.vm.selectedProviderNumber).toBeNull();
|
||||
expect(useMainStore().getTpaProviders).toBeCalledTimes(1);
|
||||
});
|
||||
test('when providers exist at 25 mile radius, filter is set to "25 miles" and providers set to expected', async () => {
|
||||
// Arrange
|
||||
const { wrapper } = getMountedComponent();
|
||||
const zipCode = '18394';
|
||||
useMainStore().order.customer.address.zipCode = zipCode;
|
||||
useMainStore().order.customer.address.zipCode = '00001';
|
||||
useMainStore().order.serviceLocation.zipCode = zipCode;
|
||||
useMainStore().order.serviceLocation.searchFilter = null;
|
||||
const providers = [{ companyName: 'provider' }];
|
||||
useMainStore().getTpaProviders = jest.fn().mockImplementation((_, radius) =>
|
||||
({ data: { shopProviders: radius === 25 ? providers : [] } }));
|
||||
|
|
@ -1340,15 +1483,19 @@ describe('TPA search page', () => {
|
|||
await wrapper.vm.$nextTick();
|
||||
|
||||
// Assert
|
||||
expect(wrapper.vm.zipCode).toBe(zipCode);
|
||||
expect(wrapper.vm.filter).toBe(expectedFilter);
|
||||
expect(wrapper.vm.providers).toEqual(providers);
|
||||
expect(wrapper.vm.selectedProviderNumber).toBeNull();
|
||||
expect(useMainStore().getTpaProviders).toBeCalledTimes(2);
|
||||
});
|
||||
test('when providers exist at 50 mile radius but not 25, filter is set to "50 miles" and providers set to expected', async () => {
|
||||
// Arrange
|
||||
const { wrapper } = getMountedComponent();
|
||||
const zipCode = '18394';
|
||||
useMainStore().order.customer.address.zipCode = zipCode;
|
||||
useMainStore().order.customer.address.zipCode = '00001';
|
||||
useMainStore().order.serviceLocation.zipCode = zipCode;
|
||||
useMainStore().order.serviceLocation.searchFilter = null;
|
||||
const providers = [{ companyName: 'provider' }];
|
||||
useMainStore().getTpaProviders = jest.fn().mockImplementation((_, radius) =>
|
||||
({ data: { shopProviders: radius === 50 ? providers : [] } }));
|
||||
|
|
@ -1366,8 +1513,10 @@ describe('TPA search page', () => {
|
|||
await wrapper.vm.$nextTick();
|
||||
|
||||
// Assert
|
||||
expect(wrapper.vm.zipCode).toBe(zipCode);
|
||||
expect(wrapper.vm.filter).toBe(expectedFilter);
|
||||
expect(wrapper.vm.providers).toEqual(providers);
|
||||
expect(wrapper.vm.selectedProviderNumber).toBeNull();
|
||||
expect(useMainStore().getTpaProviders).toBeCalledTimes(3);
|
||||
});
|
||||
test(
|
||||
|
|
@ -1377,6 +1526,8 @@ describe('TPA search page', () => {
|
|||
const { wrapper } = getMountedComponent();
|
||||
const zipCode = '18394';
|
||||
useMainStore().order.customer.address.zipCode = zipCode;
|
||||
useMainStore().order.serviceLocation.zipCode = null;
|
||||
useMainStore().order.serviceLocation.searchFilter = null;
|
||||
const providers = [{ companyName: 'provider' }];
|
||||
useMainStore().getTpaProviders = jest.fn().mockImplementation((_, radius) =>
|
||||
({ data: { shopProviders: radius === 100 ? providers : [] } }));
|
||||
|
|
@ -1394,8 +1545,10 @@ describe('TPA search page', () => {
|
|||
await wrapper.vm.$nextTick();
|
||||
|
||||
// Assert
|
||||
expect(wrapper.vm.zipCode).toBe(zipCode);
|
||||
expect(wrapper.vm.filter).toBe(expectedFilter);
|
||||
expect(wrapper.vm.providers).toEqual(providers);
|
||||
expect(wrapper.vm.selectedProviderNumber).toBeNull();
|
||||
expect(useMainStore().getTpaProviders).toBeCalledTimes(4);
|
||||
}
|
||||
);
|
||||
|
|
@ -1405,7 +1558,9 @@ describe('TPA search page', () => {
|
|||
// Arrange
|
||||
const { wrapper } = getMountedComponent();
|
||||
const zipCode = '18394';
|
||||
useMainStore().order.customer.address.zipCode = zipCode;
|
||||
useMainStore().order.customer.address.zipCode = '00001';
|
||||
useMainStore().order.serviceLocation.zipCode = zipCode;
|
||||
useMainStore().order.serviceLocation.searchFilter = null;
|
||||
useMainStore().getTpaProviders = jest.fn().mockImplementation(() => ([]));
|
||||
const expectedFilter = '100 miles';
|
||||
|
||||
|
|
@ -1421,8 +1576,10 @@ describe('TPA search page', () => {
|
|||
await wrapper.vm.$nextTick();
|
||||
|
||||
// Assert
|
||||
expect(wrapper.vm.zipCode).toBe(zipCode);
|
||||
expect(wrapper.vm.filter).toBe(expectedFilter);
|
||||
expect(wrapper.vm.providers).toEqual([]);
|
||||
expect(wrapper.vm.selectedProviderNumber).toBeNull();
|
||||
expect(useMainStore().getTpaProviders).toBeCalledTimes(4);
|
||||
}
|
||||
);
|
||||
|
|
|
|||
Loading…
Reference in a new issue