Fixing merge conflicts
This commit is contained in:
commit
3fe1fd4c31
3 changed files with 47 additions and 42 deletions
|
|
@ -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",
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -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 ?? [];
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue