From e1a99064c32b9746dc28a5461d37b01eba8514e0 Mon Sep 17 00:00:00 2001 From: Katie Kroell Date: Thu, 16 Nov 2023 16:55:44 -0500 Subject: [PATCH 1/3] do not call pricing or deductible methods if unverified --- src/layouts/coverage-statement/coverage-statement.vue | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/layouts/coverage-statement/coverage-statement.vue b/src/layouts/coverage-statement/coverage-statement.vue index 3db996f3..951ce7ae 100644 --- a/src/layouts/coverage-statement/coverage-statement.vue +++ b/src/layouts/coverage-statement/coverage-statement.vue @@ -147,7 +147,6 @@ export default { // Call APIs const cmsContentPromise = fetchCmsContentForPage(to?.query?.issPage); const supportingItemsPromise = await useMainStore().getSupportingItems(); - const finalDeductiblePromise = await useMainStore().getFinalDeductible(); // Settle promises and get results const promiseResultMap = [ @@ -158,10 +157,6 @@ export default { { resultKey: 'supportingItems', promise: supportingItemsPromise - }, - { - resultKey: 'finalDeductible', - promise: finalDeductiblePromise } ]; @@ -174,7 +169,11 @@ export default { ...(clonedGlassParts ?? []) ]; - const pricingResults = await useMainStore().getPriceOrderItems(availableLineItems); + let pricingResults = []; + if (useMainStore().order.policy.policyLookupSuccessful) { + pricingResults = await useMainStore().getPriceOrderItems(availableLineItems); + await useMainStore().getFinalDeductible(); + } // Call the "next" function to complete the transition to this page. next((vm) => { From bd9022177c2e07122a5aca77f524b4e46b7d8ff7 Mon Sep 17 00:00:00 2001 From: Katie Kroell Date: Thu, 16 Nov 2023 16:56:53 -0500 Subject: [PATCH 2/3] prevent null deductible from displaying --- src/layouts/coverage-statement/coverage-statement.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/layouts/coverage-statement/coverage-statement.vue b/src/layouts/coverage-statement/coverage-statement.vue index 951ce7ae..04c4c1fc 100644 --- a/src/layouts/coverage-statement/coverage-statement.vue +++ b/src/layouts/coverage-statement/coverage-statement.vue @@ -279,7 +279,7 @@ export default { }, verifiedDeductible() { return useMainStore().isClaimRegistrationRequired - ? this.registerClaimSuccessful && this.coveredAndServicePriceAboveOrEqualDeductible + ? this.registerClaimSuccessful && this.coveredAndServicePriceAboveOrEqualDeductible && this.vehicleDeductible !== null : this.policyLookupSuccessful && this.coveredAndServicePriceAboveOrEqualDeductible; }, unverified() { From aa786e8f7a84ddcade748f944e463da0e0e69b33 Mon Sep 17 00:00:00 2001 From: Katie Kroell Date: Thu, 16 Nov 2023 17:08:34 -0500 Subject: [PATCH 3/3] add unit test --- .../coverage-statement.spec.js | 33 ++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/src/layouts/coverage-statement/coverage-statement.spec.js b/src/layouts/coverage-statement/coverage-statement.spec.js index 7b701ea2..041ea60c 100644 --- a/src/layouts/coverage-statement/coverage-statement.spec.js +++ b/src/layouts/coverage-statement/coverage-statement.spec.js @@ -367,6 +367,37 @@ describe.skip('coverageStatement.vue', () => { ] }); + // Assert + expect(wrapper.vm.verifiedDeductible).toBeFalsy(); + }); + test('If deductible is null, verifiedDeductible returns false', () => { + const sellingPrice = getRandomInt(100, 500); + const deductible = null; + const mainInitialState = { + order: { + damage: { + isRepair: true + }, + policy: { + noCoverage: false, + deductible: { + repair: deductible + } + } + } + }; + + const { wrapper } = getMountedComponent(mainInitialState); + wrapper.setData({ + availableLineItems: [ + { + sellingPrice, + kitPrice: 0, + laborAmount: 0 + } + ] + }); + // Assert expect(wrapper.vm.verifiedDeductible).toBeFalsy(); }); @@ -747,7 +778,7 @@ describe.skip('coverageStatement.vue', () => { expect(wrapper.vm.mainStore.registerClaim).not.toHaveBeenCalled(); }); - it.only('claim registration required => register claim method called', async () => { + it('claim registration required => register claim method called', async () => { // Arrange const sellingPrice = getRandomInt(50, 100); const deductible = sellingPrice - 1;