From d2c0b2d8bb966e9ec229588b67c83d5f315e2572 Mon Sep 17 00:00:00 2001 From: Michaela Brydon Date: Thu, 30 Nov 2023 11:25:31 -0500 Subject: [PATCH 1/5] Only calling getTpaProviders at radius when needed --- src/layouts/tpa-search/tpa-search.spec.js | 4 ++++ src/layouts/tpa-search/tpa-search.vue | 14 +++++++------- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/layouts/tpa-search/tpa-search.spec.js b/src/layouts/tpa-search/tpa-search.spec.js index 233d2194..d8185733 100644 --- a/src/layouts/tpa-search/tpa-search.spec.js +++ b/src/layouts/tpa-search/tpa-search.spec.js @@ -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); } ); }); diff --git a/src/layouts/tpa-search/tpa-search.vue b/src/layouts/tpa-search/tpa-search.vue index 6c3941e0..1d69698a 100644 --- a/src/layouts/tpa-search/tpa-search.vue +++ b/src/layouts/tpa-search/tpa-search.vue @@ -310,21 +310,21 @@ export default { }, async setInitialFilterAndProviders() { this.initialLoading = true; - const radiusOptions = [25, 50, 100]; + // const radiusOptions = [25, 50, 100]; const { zipCode } = useMainStore().order.customer.address; - const tpaProvidersRadius25 = useMainStore().getTpaProviders(zipCode, radiusOptions[0]); - const tpaProvidersRadius50 = useMainStore().getTpaProviders(zipCode, radiusOptions[1]); - const tpaProvidersRadius100 = useMainStore().getTpaProviders(zipCode, radiusOptions[2]); + // const tpaProvidersRadius25 = useMainStore().getTpaProviders(zipCode, radiusOptions[0]); + // const tpaProvidersRadius50 = useMainStore().getTpaProviders(zipCode, radiusOptions[1]); + // const tpaProvidersRadius100 = useMainStore().getTpaProviders(zipCode, radiusOptions[2]); let radius = '25 miles'; - let providers = await tpaProvidersRadius25; + let providers = await useMainStore().getTpaProviders(zipCode, 25); if ((providers?.data?.shopProviders ?? []).length === 0) { radius = '50 miles'; - providers = await tpaProvidersRadius50; + providers = await useMainStore().getTpaProviders(zipCode, 50); if ((providers?.data?.shopProviders ?? []).length === 0) { radius = '100 miles'; - providers = await tpaProvidersRadius100; + providers = await useMainStore().getTpaProviders(zipCode, 100); } } this.filter = radius; From c137db2c004b0a2467d5750d7b05a16090b49f9c Mon Sep 17 00:00:00 2001 From: Michaela Brydon Date: Thu, 30 Nov 2023 11:27:01 -0500 Subject: [PATCH 2/5] Removing comments --- src/layouts/tpa-search/tpa-search.vue | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/layouts/tpa-search/tpa-search.vue b/src/layouts/tpa-search/tpa-search.vue index 1d69698a..7f763f6e 100644 --- a/src/layouts/tpa-search/tpa-search.vue +++ b/src/layouts/tpa-search/tpa-search.vue @@ -310,13 +310,8 @@ export default { }, async setInitialFilterAndProviders() { this.initialLoading = true; - // const radiusOptions = [25, 50, 100]; const { zipCode } = useMainStore().order.customer.address; - // const tpaProvidersRadius25 = useMainStore().getTpaProviders(zipCode, radiusOptions[0]); - // const tpaProvidersRadius50 = useMainStore().getTpaProviders(zipCode, radiusOptions[1]); - // const tpaProvidersRadius100 = useMainStore().getTpaProviders(zipCode, radiusOptions[2]); - let radius = '25 miles'; let providers = await useMainStore().getTpaProviders(zipCode, 25); if ((providers?.data?.shopProviders ?? []).length === 0) { From 916cd4ea4ce661201826779000e1c6ca62c940af Mon Sep 17 00:00:00 2001 From: Michaela Brydon Date: Thu, 30 Nov 2023 11:54:17 -0500 Subject: [PATCH 3/5] Simplifying logic --- src/layouts/tpa-search/tpa-search.vue | 74 +++++++++++++++++++-------- 1 file changed, 52 insertions(+), 22 deletions(-) diff --git a/src/layouts/tpa-search/tpa-search.vue b/src/layouts/tpa-search/tpa-search.vue index 7f763f6e..9f686ed4 100644 --- a/src/layouts/tpa-search/tpa-search.vue +++ b/src/layouts/tpa-search/tpa-search.vue @@ -199,7 +199,21 @@ export default { filter: globalRules.OPTION_REQUIRED, // TODO do we even need this? provider: globalRules.OPTION_REQUIRED }, - shopListButton: shallowRef(shopListButton) + shopListButton: shallowRef(shopListButton), + radiusFilterPairs: [ + { + radius: 25, + filter: '25 miles' + }, + { + radius: 50, + filter: '50 miles' + }, + { + radius: 100, + filter: '100 miles' + } + ] }; }, computed: { @@ -233,16 +247,18 @@ export default { ); }, radiusInMiles() { - switch (this.filter) { - 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; + // switch (this.filter) { + // case '25 miles': + // return 25; + // case '50 miles': + // return 50; + // case '100 miles': + // return 100; + // default: + // return 0; + // } }, noNetworkShopsAlertHeaderText() { return this.getCmsContent( @@ -312,18 +328,32 @@ export default { this.initialLoading = true; const { zipCode } = useMainStore().order.customer.address; - let radius = '25 miles'; - let providers = await useMainStore().getTpaProviders(zipCode, 25); - if ((providers?.data?.shopProviders ?? []).length === 0) { - radius = '50 miles'; - providers = await useMainStore().getTpaProviders(zipCode, 50); - if ((providers?.data?.shopProviders ?? []).length === 0) { - radius = '100 miles'; - providers = await useMainStore().getTpaProviders(zipCode, 100); - } + 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 ?? []; + + pairIndex += 1; } - this.filter = radius; - this.providers = providers?.data?.shopProviders ?? []; + + // let radius = '25 miles'; + // let providers = await useMainStore().getTpaProviders(zipCode, 25); + // if ((providers?.data?.shopProviders ?? []).length === 0) { + // radius = '50 miles'; + // providers = await useMainStore().getTpaProviders(zipCode, 50); + // if ((providers?.data?.shopProviders ?? []).length === 0) { + // radius = '100 miles'; + // providers = await useMainStore().getTpaProviders(zipCode, 100); + // } + // } + this.filter = filter; + this.providers = providers; }, async getProviderButtonData() { const getTpaProvidersResult = await useMainStore().getTpaProviders(this.zipCode, this.radiusInMiles); From 237741a519908ea8a2e7b305e1133bd0aac93e16 Mon Sep 17 00:00:00 2001 From: Michaela Brydon Date: Thu, 30 Nov 2023 11:56:25 -0500 Subject: [PATCH 4/5] Changing file format to CLRF --- .../__snapshots__/tpa-search.spec.js.snap | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/layouts/tpa-search/__snapshots__/tpa-search.spec.js.snap b/src/layouts/tpa-search/__snapshots__/tpa-search.spec.js.snap index 236f821c..fc429c1b 100644 --- a/src/layouts/tpa-search/__snapshots__/tpa-search.spec.js.snap +++ b/src/layouts/tpa-search/__snapshots__/tpa-search.spec.js.snap @@ -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", From 6e57e6538b74ac3f5191ef4c3a118894040c5d63 Mon Sep 17 00:00:00 2001 From: Michaela Brydon Date: Thu, 30 Nov 2023 12:00:02 -0500 Subject: [PATCH 5/5] Removing comments --- src/layouts/tpa-search/tpa-search.vue | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/src/layouts/tpa-search/tpa-search.vue b/src/layouts/tpa-search/tpa-search.vue index 9f686ed4..00ebacdc 100644 --- a/src/layouts/tpa-search/tpa-search.vue +++ b/src/layouts/tpa-search/tpa-search.vue @@ -249,16 +249,6 @@ export default { radiusInMiles() { const pair = this.radiusFilterPairs.find((p) => p.filter === this.filter); return pair?.radius ?? 0; - // switch (this.filter) { - // case '25 miles': - // return 25; - // case '50 miles': - // return 50; - // case '100 miles': - // return 100; - // default: - // return 0; - // } }, noNetworkShopsAlertHeaderText() { return this.getCmsContent( @@ -342,16 +332,6 @@ export default { pairIndex += 1; } - // let radius = '25 miles'; - // let providers = await useMainStore().getTpaProviders(zipCode, 25); - // if ((providers?.data?.shopProviders ?? []).length === 0) { - // radius = '50 miles'; - // providers = await useMainStore().getTpaProviders(zipCode, 50); - // if ((providers?.data?.shopProviders ?? []).length === 0) { - // radius = '100 miles'; - // providers = await useMainStore().getTpaProviders(zipCode, 100); - // } - // } this.filter = filter; this.providers = providers; },