Fixing tests

This commit is contained in:
Michaela Brydon 2023-11-30 13:23:55 -05:00
parent 7764556e56
commit c43065a632
3 changed files with 77 additions and 143 deletions

View file

@ -5,24 +5,10 @@ Object {
"additionalButtonData": Object {
"displayAvailabilityIndicators": false,
},
"dataLoaded": false,
"filter": "",
"initialLoading": false,
"mapZipCode": "12663",
"providers": Array [],
"radiusFilterPairs": Array [
Object {
"filter": "25 miles",
"radius": 25,
},
Object {
"filter": "50 miles",
"radius": 50,
},
Object {
"filter": "100 miles",
"radius": 100,
},
],
"reloadProviders": false,
"rules": Object {
"filter": "option-required",

View file

@ -150,18 +150,7 @@ describe('TPA search page', () => {
// Assert
expect(providerSelectionForm.exists()).toBeTruthy();
});
test('map loader when initialLoading is true', async () => {
// Arrange
const wrapper = shallowMount(tpaSearch, getMountOptions());
await wrapper.setData({ initialLoading: true });
// Act
const mapLoader = wrapper.findComponent('#mapLoader');
// Assert
expect(mapLoader.exists()).toBeTruthy();
});
test('map when initialLoading is false', async () => {
test('map', async () => {
// Arrange
const zipCode = '12345';
const { wrapper } = getMountedComponent();
@ -174,8 +163,7 @@ describe('TPA search page', () => {
zipCode: '99230'
}
}],
mapZipCode: zipCode,
initialLoading: false
mapZipCode: zipCode
});
const expectedAddresses = ['123 Lane Ave, New York, NY 99230'];
@ -188,10 +176,9 @@ describe('TPA search page', () => {
expect(map.props().addresses).toEqual(expectedAddresses);
expect(map.props().zipCode).toBe(zipCode);
});
test('search radius filter when initialLoading is false', async () => {
test('search radius filter', async () => {
// Arrange
const wrapper = shallowMount(tpaSearch, getMountOptions());
await wrapper.setData({ initialLoading: false });
const expectedWidgetName = 'FilterByQuestion';
// Act
@ -202,10 +189,10 @@ describe('TPA search page', () => {
expect(searchRadiusFilter.props().cmsWidgetName).toBe(expectedWidgetName);
expect(searchRadiusFilter.props().validationRules).toBe(globalRules.OPTION_REQUIRED);
});
test('providers loader when initialLoading is false and reloadProviders is true', async () => {
test('providers loader when reloadProviders is true', async () => {
// Arrange
const wrapper = shallowMount(tpaSearch, getMountOptions());
await wrapper.setData({ initialLoading: false, reloadProviders: true });
await wrapper.setData({ reloadProviders: true });
// Act
const providersLoader = wrapper.findComponent('#providersLoader');
@ -213,7 +200,7 @@ describe('TPA search page', () => {
// Assert
expect(providersLoader.exists()).toBeTruthy();
});
test('select provider question when initialLoading and reloadProviders are false', async () => {
test('select provider question when reloadProviders are false', async () => {
// Arrange
const wrapper = shallowMount(tpaSearch, getMountOptions());
await wrapper.setData({
@ -229,7 +216,6 @@ describe('TPA search page', () => {
zipCode: '99230'
}
}],
initialLoading: false,
reloadProviders: false
});
const expectedAnswers = [{
@ -257,17 +243,14 @@ describe('TPA search page', () => {
expect(selectProviderQuestion.props().additionalButtonData).toEqual(expectedAdditionalButtonData);
});
test.each([[], null, undefined])(
'no network providers alert when providers length is 0, undefined, or null and initialLoading and reloadProviders are false',
'no network providers alert when providers length is 0, undefined, or null and reloadProviders is false',
async (providers) => {
// Arrange
const initialData = {
providers
};
const wrapper = shallowMount(tpaSearch, getMountOptions({}, initialData));
await wrapper.setData({
initialLoading: false,
reloadProviders: false
});
await wrapper.setData({ reloadProviders: false });
// Act
const noNetworkProvidersAlert = wrapper.findComponent('#alertNoNetworkProviders');
@ -279,13 +262,10 @@ describe('TPA search page', () => {
expect(noNetworkProvidersAlert.props().isDismissible).toBeFalsy();
}
);
test('preferred shop not listed link when initialLoading and reloadProviders are false', async () => {
test('preferred shop not listed link when reloadProviders is false', async () => {
// Arrange
const wrapper = shallowMount(tpaSearch, getMountOptions());
await wrapper.setData({
initialLoading: false,
reloadProviders: false
});
await wrapper.setData({ reloadProviders: false });
// Act
const preferredShopNotListedLink = wrapper.findComponent('#preferredShopNotListedLink');
@ -308,62 +288,16 @@ describe('TPA search page', () => {
});
});
describe('should not render', () => {
test('map loader when initialLoading is false', async () => {
// Arrange
const wrapper = shallowMount(tpaSearch, getMountOptions());
await wrapper.setData({ initialLoading: false });
// Act
const mapLoader = wrapper.findComponent('#mapLoader');
// Assert
expect(mapLoader.exists()).toBeFalsy();
});
test('map when initialLoading is true', async () => {
test('select provider question when reloadProviders is true', async () => {
// Arrange
const { wrapper } = getMountedComponent();
await wrapper.setData({ initialLoading: true });
await wrapper.setData({ reloadProviders: true });
// Act
const map = wrapper.findComponent('#map');
const selectProviderQuestion = wrapper.findComponent('#selectProviderQuestion');
// Assert
expect(map.exists()).toBeFalsy();
});
test('search radius filter when initialLoading is true', async () => {
// Arrange
const { wrapper } = getMountedComponent();
await wrapper.setData({ initialLoading: true });
// Act
const searchRadiusFilter = wrapper.findComponent('#searchRadiusFilter');
// Assert
expect(searchRadiusFilter.exists()).toBeFalsy();
});
describe('select provider question', () => {
test('when initialLoading is true', async () => {
// Arrange
const { wrapper } = getMountedComponent();
await wrapper.setData({ initialLoading: true });
// Act
const selectProviderQuestion = wrapper.findComponent('#selectProviderQuestion');
// Assert
expect(selectProviderQuestion.exists()).toBeFalsy();
});
test('when reloadProviders is true', async () => {
// Arrange
const { wrapper } = getMountedComponent();
await wrapper.setData({ reloadProviders: true });
// Act
const selectProviderQuestion = wrapper.findComponent('#selectProviderQuestion');
// Assert
expect(selectProviderQuestion.exists()).toBeFalsy();
});
expect(selectProviderQuestion.exists()).toBeFalsy();
});
describe('no network providers alert', () => {
test('when providers length is not 0', async () => {
@ -377,17 +311,6 @@ describe('TPA search page', () => {
// Assert
expect(noNetworkProvidersAlert.exists()).toBeFalsy();
});
test('when initialLoading is true', async () => {
// Arrange
const wrapper = shallowMount(tpaSearch, getMountOptions());
await wrapper.setData({ providers: [], initialLoading: true });
// Act
const noNetworkProvidersAlert = wrapper.findComponent('#alertNoNetworkProviders');
// Assert
expect(noNetworkProvidersAlert.exists()).toBeFalsy();
});
test('when reloadProviders is true', async () => {
// Arrange
const wrapper = shallowMount(tpaSearch, getMountOptions());
@ -400,29 +323,16 @@ describe('TPA search page', () => {
expect(noNetworkProvidersAlert.exists()).toBeFalsy();
});
});
describe('preferred shop not listed link', () => {
test('when initialLoading is true', async () => {
// Arrange
const { wrapper } = getMountedComponent();
await wrapper.setData({ initialLoading: true });
test('preferred shop not listed link when reloadProviders is true', async () => {
// Arrange
const { wrapper } = getMountedComponent();
await wrapper.setData({ reloadProviders: true });
// Act
const preferredShopNotListedLink = wrapper.findComponent('#preferredShopNotListedLink');
// Act
const preferredShopNotListedLink = wrapper.findComponent('#preferredShopNotListedLink');
// Assert
expect(preferredShopNotListedLink.exists()).toBeFalsy();
});
test('when reloadProviders is true', async () => {
// Arrange
const { wrapper } = getMountedComponent();
await wrapper.setData({ reloadProviders: true });
// Act
const preferredShopNotListedLink = wrapper.findComponent('#preferredShopNotListedLink');
// Assert
expect(preferredShopNotListedLink.exists()).toBeFalsy();
});
// Assert
expect(preferredShopNotListedLink.exists()).toBeFalsy();
});
});
describe('computed', () => {
@ -835,15 +745,16 @@ describe('TPA search page', () => {
});
describe('watch', () => {
// TODO update/add to filter watch tests
test('on filter calls getTpaProviders and sets providers', async () => {
test.only('on filter calls getTpaProviders and sets providers', async () => {
// Arrange
const zipCode = '78220';
const initialMapZipCode = '88800';
const { wrapper } = getMountedComponent({}, {
zipCode,
mapZipCode: initialMapZipCode
mapZipCode: initialMapZipCode,
dataLoaded: true
});
const providers = { data: { shopProviders: ['some data', 'some more data']} };
const providers = { data: { shopProviders: ['some data', 'some more data'] } };
useMainStore().getTpaProviders = jest.fn().mockImplementationOnce(() => (providers));
const newFilter = 'new filter';
@ -855,6 +766,50 @@ describe('TPA search page', () => {
expect(wrapper.vm.providers).toEqual(providers.data.shopProviders);
expect(wrapper.vm.mapZipCode).toBe(zipCode);
});
describe('on filter', () => {
test('calls getTpaProviders once and sets providers when dataLoaded is true', async () => {
// Arrange
const zipCode = '78220';
const initialMapZipCode = '88800';
const { wrapper } = getMountedComponent({}, {
zipCode,
mapZipCode: initialMapZipCode,
dataLoaded: true
});
const providers = { data: { shopProviders: ['some data', 'some more data'] } };
useMainStore().getTpaProviders = jest.fn().mockImplementationOnce(() => (providers));
const newFilter = 'new filter';
// Act
await wrapper.vm.$options.watch.filter.call(wrapper.vm, newFilter);
// Assert
expect(useMainStore().getTpaProviders).toBeCalled();
expect(wrapper.vm.providers).toEqual(providers.data.shopProviders);
expect(wrapper.vm.mapZipCode).toBe(zipCode);
});
test('never calls getTpaProviders and does not set providers when dataLoaded is false', async () => {
// Arrange
const zipCode = '78220';
const initialMapZipCode = '88800';
const { wrapper } = getMountedComponent({}, {
zipCode,
mapZipCode: initialMapZipCode,
dataLoaded: false
});
const providers = { data: { shopProviders: ['some data', 'some more data'] } };
useMainStore().getTpaProviders = jest.fn().mockImplementationOnce(() => (providers));
const newFilter = 'new filter';
// Act
await wrapper.vm.$options.watch.filter.call(wrapper.vm, newFilter);
// Assert
expect(useMainStore().getTpaProviders).not.toBeCalled();
expect(wrapper.vm.providers).not.toEqual(providers.data.shopProviders);
expect(wrapper.vm.mapZipCode).toBe(initialMapZipCode);
});
});
// TODO confirm tests appropriate. Also should this method be async?
describe('on providers', () => {
test.each([null, undefined, []])(
@ -897,10 +852,10 @@ describe('TPA search page', () => {
});
describe('method', () => {
test.each([
['address', 'city', 'ST', 'zip', 'address, city, ST zip'],
['address', null, 'ST', 'zip', 'address, ST zip'],
['address', 'city', null, 'zip', 'address, city zip'],
['address', 'city', 'ST', null, 'address, city, ST'],
['address', 'city', 'ST', 'zip', 'Address, City, ST zip'],
['address', null, 'ST', 'zip', 'Address, ST zip'],
['address', 'city', null, 'zip', 'Address, City zip'],
['address', 'city', 'ST', null, 'Address, City, ST'],
[null, null, null, null, '']
])(
'getProviderAddress returns expected',

View file

@ -37,13 +37,6 @@
</div>
</div>
</Form>
<!-- <loader
v-if="initialLoading"
id="mapLoader"
loaderPosition="center"
loaderColor="blue"
:width="4"
:height="4" /> -->
<div>
<googleMap
id="map"
@ -284,7 +277,7 @@ export default {
this.reloadProviders = false;
}
},
async providers(newProviders) {
providers(newProviders) {
if (newProviders?.length === 1 ?? false) {
this.selectedProviderNumber = newProviders[0]?.providerNumber ?? '';
}
@ -310,7 +303,7 @@ export default {
if (city) {
addressLine2 += city;
if (state || zipCode) {
addressLine2 += state ? ',' : ' ';
addressLine2 += state ? ', ' : ' ';
}
}
if (state) {