Fixing merge conflicts

This commit is contained in:
Michaela Brydon 2023-11-30 12:11:04 -05:00
commit 3fe1fd4c31
3 changed files with 47 additions and 42 deletions

View file

@ -9,6 +9,20 @@ Object {
"initialLoading": false, "initialLoading": false,
"mapZipCode": "12663", "mapZipCode": "12663",
"providers": Array [], "providers": Array [],
"radiusFilterPairs": Array [
Object {
"filter": "25 miles",
"radius": 25,
},
Object {
"filter": "50 miles",
"radius": 50,
},
Object {
"filter": "100 miles",
"radius": 100,
},
],
"reloadProviders": false, "reloadProviders": false,
"rules": Object { "rules": Object {
"filter": "option-required", "filter": "option-required",

View file

@ -1264,6 +1264,7 @@ describe('TPA search page', () => {
// Assert // Assert
expect(wrapper.vm.filter).toBe(expectedFilter); expect(wrapper.vm.filter).toBe(expectedFilter);
expect(wrapper.vm.providers).toEqual(providers); expect(wrapper.vm.providers).toEqual(providers);
expect(useMainStore().getTpaProviders).toBeCalledTimes(1);
}); });
test('when providers exist at 50 mile radius but not 25, filter is set to "50 miles" and providers set to expected', async () => { test('when providers exist at 50 mile radius but not 25, filter is set to "50 miles" and providers set to expected', async () => {
// Arrange // Arrange
@ -1289,6 +1290,7 @@ describe('TPA search page', () => {
// Assert // Assert
expect(wrapper.vm.filter).toBe(expectedFilter); expect(wrapper.vm.filter).toBe(expectedFilter);
expect(wrapper.vm.providers).toEqual(providers); expect(wrapper.vm.providers).toEqual(providers);
expect(useMainStore().getTpaProviders).toBeCalledTimes(2);
}); });
test( test(
'when providers exist at 100 mile radius but not 50 or 25, filter is set to "100 miles" and providers set to expected', 'when providers exist at 100 mile radius but not 50 or 25, filter is set to "100 miles" and providers set to expected',
@ -1316,6 +1318,7 @@ describe('TPA search page', () => {
// Assert // Assert
expect(wrapper.vm.filter).toBe(expectedFilter); expect(wrapper.vm.filter).toBe(expectedFilter);
expect(wrapper.vm.providers).toEqual(providers); expect(wrapper.vm.providers).toEqual(providers);
expect(useMainStore().getTpaProviders).toBeCalledTimes(3);
} }
); );
test( test(
@ -1342,6 +1345,7 @@ describe('TPA search page', () => {
// Assert // Assert
expect(wrapper.vm.filter).toBe(expectedFilter); expect(wrapper.vm.filter).toBe(expectedFilter);
expect(wrapper.vm.providers).toEqual([]); expect(wrapper.vm.providers).toEqual([]);
expect(useMainStore().getTpaProviders).toBeCalledTimes(3);
} }
); );
}); });

View file

@ -141,32 +141,23 @@ import widgetFields from '@/constants/cms-widget-fields.js';
import { shallowRef } from 'vue'; import { shallowRef } from 'vue';
async function getInitialFilterAndProviders() { async function getInitialFilterAndProviders() {
const radiusOptions = [15, 25, 50, 100];
const { zipCode } = useMainStore().order.customer.address; const { zipCode } = useMainStore().order.customer.address;
const tpaProvidersRadius15 = useMainStore().getTpaProviders(zipCode, radiusOptions[0]); let pairIndex = 0;
const tpaProvidersRadius25 = useMainStore().getTpaProviders(zipCode, radiusOptions[1]); let providers = [];
const tpaProvidersRadius50 = useMainStore().getTpaProviders(zipCode, radiusOptions[2]); let filter = '';
const tpaProvidersRadius100 = useMainStore().getTpaProviders(zipCode, radiusOptions[3]); while (providers.length === 0 && pairIndex < this.radiusFilterPairs.length) {
const pair = this.radiusFilterPairs[pairIndex];
const { radius } = pair;
filter = pair.filter;
// eslint-disable-next-line no-await-in-loop
const result = await useMainStore().getTpaProviders(zipCode, radius);
providers = result?.data?.shopProviders ?? [];
let filter = '15 miles'; pairIndex += 1;
let providers = await tpaProvidersRadius15;
if ((providers?.data?.shopProviders ?? []).length === 0) {
filter = '25 miles';
providers = await tpaProvidersRadius25;
if ((providers?.data?.shopProviders ?? []).length === 0) {
filter = '50 miles';
providers = await tpaProvidersRadius50;
if ((providers?.data?.shopProviders ?? []).length === 0) {
filter = '100 miles';
providers = await tpaProvidersRadius100;
}
}
} }
return [
filter, return {filter, providers};
providers?.data?.shopProviders ?? []
];
} }
export default { export default {
@ -186,7 +177,7 @@ export default {
}, },
mixins: [BaseFormMixin], mixins: [BaseFormMixin],
async beforeRouteEnter(to, from, next) { async beforeRouteEnter(to, from, next) {
const [filter, providers] = await getInitialFilterAndProviders(); const { filter, providers } = await getInitialFilterAndProviders();
const cmsContent = await fetchCmsContentForPage(to.query.issPage); const cmsContent = await fetchCmsContentForPage(to.query.issPage);
next(async (vm) => { next(async (vm) => {
@ -222,7 +213,13 @@ export default {
filter: globalRules.OPTION_REQUIRED, // TODO do we even need this? filter: globalRules.OPTION_REQUIRED, // TODO do we even need this?
provider: globalRules.OPTION_REQUIRED provider: globalRules.OPTION_REQUIRED
}, },
shopListButton: shallowRef(shopListButton) shopListButton: shallowRef(shopListButton),
radiusFilterPairs: [
{ radius: 15, filter: '15 miles' },
{ radius: 25, filter: '25 miles' },
{ radius: 50, filter: '50 miles' },
{ radius: 100, filter: '100 miles' }
]
}; };
}, },
computed: { computed: {
@ -256,18 +253,8 @@ export default {
); );
}, },
radiusInMiles() { radiusInMiles() {
switch (this.filter) { const pair = this.radiusFilterPairs.find((p) => p.filter === this.filter);
case '15 miles': return pair?.radius ?? 0;
return 15;
case '25 miles':
return 25;
case '50 miles':
return 50;
case '100 miles':
return 100;
default:
return 0;
}
}, },
noNetworkShopsAlertHeaderText() { noNetworkShopsAlertHeaderText() {
return this.getCmsContent( return this.getCmsContent(
@ -308,6 +295,12 @@ export default {
} }
}, },
methods: { methods: {
setFilter(filter) {
this.filter = filter;
},
setProviders(providers) {
this.providers = providers;
},
getProviderAddress(provider) { getProviderAddress(provider) {
const city = provider?.address?.city ?? ''; const city = provider?.address?.city ?? '';
const state = provider?.address?.state ?? ''; const state = provider?.address?.state ?? '';
@ -335,12 +328,6 @@ export default {
? `${provider.address.streetAddress}, ${addressLine2}` ? `${provider.address.streetAddress}, ${addressLine2}`
: addressLine2; : addressLine2;
}, },
setFilter(filter) {
this.filter = filter;
},
setProviders(providers) {
this.providers = providers;
},
async getProviderButtonData() { async getProviderButtonData() {
const getTpaProvidersResult = await useMainStore().getTpaProviders(this.zipCode, this.radiusInMiles); const getTpaProvidersResult = await useMainStore().getTpaProviders(this.zipCode, this.radiusInMiles);
return getTpaProvidersResult?.data?.shopProviders ?? []; return getTpaProvidersResult?.data?.shopProviders ?? [];