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,
"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

@ -1264,6 +1264,7 @@ describe('TPA search page', () => {
// Assert
expect(wrapper.vm.filter).toBe(expectedFilter);
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 () => {
// Arrange
@ -1289,6 +1290,7 @@ describe('TPA search page', () => {
// Assert
expect(wrapper.vm.filter).toBe(expectedFilter);
expect(wrapper.vm.providers).toEqual(providers);
expect(useMainStore().getTpaProviders).toBeCalledTimes(2);
});
test(
'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
expect(wrapper.vm.filter).toBe(expectedFilter);
expect(wrapper.vm.providers).toEqual(providers);
expect(useMainStore().getTpaProviders).toBeCalledTimes(3);
}
);
test(
@ -1342,6 +1345,7 @@ describe('TPA search page', () => {
// Assert
expect(wrapper.vm.filter).toBe(expectedFilter);
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';
async function getInitialFilterAndProviders() {
const radiusOptions = [15, 25, 50, 100];
const { zipCode } = useMainStore().order.customer.address;
const tpaProvidersRadius15 = useMainStore().getTpaProviders(zipCode, radiusOptions[0]);
const tpaProvidersRadius25 = useMainStore().getTpaProviders(zipCode, radiusOptions[1]);
const tpaProvidersRadius50 = useMainStore().getTpaProviders(zipCode, radiusOptions[2]);
const tpaProvidersRadius100 = useMainStore().getTpaProviders(zipCode, radiusOptions[3]);
let pairIndex = 0;
let providers = [];
let filter = '';
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';
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;
}
}
pairIndex += 1;
}
return [
filter,
providers?.data?.shopProviders ?? []
];
return {filter, providers};
}
export default {
@ -186,7 +177,7 @@ export default {
},
mixins: [BaseFormMixin],
async beforeRouteEnter(to, from, next) {
const [filter, providers] = await getInitialFilterAndProviders();
const { filter, providers } = await getInitialFilterAndProviders();
const cmsContent = await fetchCmsContentForPage(to.query.issPage);
next(async (vm) => {
@ -222,7 +213,13 @@ export default {
filter: globalRules.OPTION_REQUIRED, // TODO do we even need this?
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: {
@ -256,18 +253,8 @@ export default {
);
},
radiusInMiles() {
switch (this.filter) {
case '15 miles':
return 15;
case '25 miles':
return 25;
case '50 miles':
return 50;
case '100 miles':
return 100;
default:
return 0;
}
const pair = this.radiusFilterPairs.find((p) => p.filter === this.filter);
return pair?.radius ?? 0;
},
noNetworkShopsAlertHeaderText() {
return this.getCmsContent(
@ -308,6 +295,12 @@ export default {
}
},
methods: {
setFilter(filter) {
this.filter = filter;
},
setProviders(providers) {
this.providers = providers;
},
getProviderAddress(provider) {
const city = provider?.address?.city ?? '';
const state = provider?.address?.state ?? '';
@ -335,12 +328,6 @@ export default {
? `${provider.address.streetAddress}, ${addressLine2}`
: addressLine2;
},
setFilter(filter) {
this.filter = filter;
},
setProviders(providers) {
this.providers = providers;
},
async getProviderButtonData() {
const getTpaProvidersResult = await useMainStore().getTpaProviders(this.zipCode, this.radiusInMiles);
return getTpaProvidersResult?.data?.shopProviders ?? [];