diff --git a/src/constants/coverage-statement-page-variations.js b/src/constants/coverage-statement-page-variations.js new file mode 100644 index 00000000..1f2039e2 --- /dev/null +++ b/src/constants/coverage-statement-page-variations.js @@ -0,0 +1,8 @@ +const coverageStatementPageVariations = Object.freeze({ + DEDUCTIBLE: 0, + ITAC: 1, + NO_COMP: 2, + UNVERIFIED: 3 +}); + +export default coverageStatementPageVariations; diff --git a/src/iss-components/cart-dropdown/cart-dropdown.vue b/src/iss-components/cart-dropdown/cart-dropdown.vue index e4a85022..11559fb3 100644 --- a/src/iss-components/cart-dropdown/cart-dropdown.vue +++ b/src/iss-components/cart-dropdown/cart-dropdown.vue @@ -212,6 +212,7 @@ export default { baseServicePrice() { return getPriceOfLineItems(this.baseServiceLineItems) ?? 0; }, + // TODO update tests isUnverified() { return (useMainStore().isNoComp && !useMainStore().issConfig.enableNoCompQuote) || (!useMainStore().isNoComp && !useMainStore().isITAC @@ -248,7 +249,7 @@ export default { let result = 0; - if (useMainStore().payment.insuranceCoverage.isVerified) { + if (!this.isUnverified) { if (useMainStore().isITAC || useMainStore().isNoComp) { result += sumTax(this.baseServiceLineItems); } else { @@ -413,10 +414,6 @@ export default { }, getDisplayed(amount) { return this.isUnverified - // && ((useMainStore().isNoComp && !useMainStore().issConfig.enableNoCompQuote) - // || (!useMainStore().isNoComp && !useMainStore().policy.isITAC)) - // && !useMainStore().isNoComp - // && !useMainStore().isITAC ? VERIFYING_COVERAGE : formatAmountInDollars(amount); }, diff --git a/src/layouts/coverage-statement/coverage-statement.spec.js b/src/layouts/coverage-statement/coverage-statement.spec.js index 91ac7ab7..8bbcde26 100644 --- a/src/layouts/coverage-statement/coverage-statement.spec.js +++ b/src/layouts/coverage-statement/coverage-statement.spec.js @@ -10,7 +10,7 @@ import navigationScenarios from '@/router/router-constants/navigation-scenarios. import { getRandomString, getRandomInt } from '@/helpers/data-generation.js'; import settleAllPromises from '@/helpers/layout-helper.js'; import { fetchCmsContentForPage } from '@/helpers/cms-content-helper'; -import { useMainStore } from '@/store/index.js'; +import { useMainStore, getDefaultState } from '@/store'; import getPriceOfLineItems from '@/helpers/price-calculator.js'; jest.mock('@/helpers/layout-helper.js', () => jest.fn()); @@ -90,6 +90,14 @@ function getMountedComponent(mainInitialState = {}, initialData = {}, methodToRu return { wrapper }; } +beforeEach(() => { + const store = useMainStore(); + const defaultState = getDefaultState(); + Object.keys(defaultState).forEach((key) => { + store[key] = defaultState[key]; + }); +}); + describe('coverageStatement.vue-working', () => { test('returns the initial data', () => { // Arrange @@ -164,43 +172,67 @@ describe('coverageStatement.vue-working', () => { }); describe('Computed', () => { describe('verifiedNoComp', () => { - test.each([true, false])('returns false when policyLookupSuccessful false', (isNoComp) => { - // Arrange - const mainInitialState = { - order: { - policy: { - noCoverage: isNoComp, - policyLookupSuccessful: false - } - } - }; - const { wrapper } = getMountedComponent(mainInitialState); + describe('isNoCompQuoteVisible true', () => { + const enableNoCompQuote = true; + test.each([true, false])('returns false when policyLookupSuccessful false', (isNoComp) => { + // Arrange + const mainInitialState = { + order: { + policy: { + noCoverage: isNoComp, + policyLookupSuccessful: false + } + }, + issConfig: { enableNoCompQuote } + }; + const { wrapper } = getMountedComponent(mainInitialState); - // Act - const result = wrapper.vm.verifiedNoComp; + // Act + const result = wrapper.vm.isNoCompQuoteVisible; - // Assert - expect(result).toBeFalsy(); + // Assert + expect(result).toBeFalsy(); + }); + test.each([true, false])('returns false when isNoComp false', (policyLookupSuccessful) => { + // Arrange + const mainInitialState = { + order: { + policy: { + noCoverage: false, + policyLookupSuccessful + } + }, + issConfig: { enableNoCompQuote } + }; + const { wrapper } = getMountedComponent(mainInitialState); + + // Act + const result = wrapper.vm.isNoCompQuoteVisible; + + // Assert + expect(result).toBeFalsy(); + }); + test('returns true when policyLookupSuccessful true, noCoverage true, and enableNoCompQuote true', () => { + // Arrange + const mainInitialState = { + order: { + policy: { + noCoverage: true, + policyLookupSuccessful: true + } + }, + issConfig: { enableNoCompQuote } + }; + const { wrapper } = getMountedComponent(mainInitialState); + + // Act + const result = wrapper.vm.isNoCompQuoteVisible; + + // Assert + expect(result).toBeTruthy(); + }); }); - test.each([true, false])('returns false when isNoComp false', (policyLookupSuccessful) => { - // Arrange - const mainInitialState = { - order: { - policy: { - noCoverage: false, - policyLookupSuccessful - } - } - }; - const { wrapper } = getMountedComponent(mainInitialState); - - // Act - const result = wrapper.vm.verifiedNoComp; - - // Assert - expect(result).toBeFalsy(); - }); - test('returns true when policyLookupSuccessful true and policyLookupSuccessful true', () => { + test('returns false when policyLookupSuccessful true, noCoverage true and enableNoCompQuote false', () => { // Arrange const mainInitialState = { order: { @@ -208,18 +240,21 @@ describe('coverageStatement.vue-working', () => { noCoverage: true, policyLookupSuccessful: true } + }, + issConfig: { + enableNoCompQuote: false } }; const { wrapper } = getMountedComponent(mainInitialState); // Act - const result = wrapper.vm.verifiedNoComp; + const result = wrapper.vm.isNoCompQuoteVisible; // Assert - expect(result).toBeTruthy(); + expect(result).toBeFalsy(); }); }); - describe('verifiedITAC', () => { + describe('isITACQuoteVisible', () => { const priceOfLineItems = 213; test.each([true, false])('returns false when policyLookupSuccessful false', (isNoComp) => { // Arrange @@ -236,7 +271,7 @@ describe('coverageStatement.vue-working', () => { const { wrapper } = getMountedComponent(mainInitialState); // Act - const result = wrapper.vm.verifiedITAC; + const result = wrapper.vm.isITACQuoteVisible; // Assert expect(result).toBeFalsy(); @@ -256,7 +291,7 @@ describe('coverageStatement.vue-working', () => { const { wrapper } = getMountedComponent(mainInitialState); // Act - const result = wrapper.vm.verifiedITAC; + const result = wrapper.vm.isITACQuoteVisible; // Assert expect(result).toBeFalsy(); @@ -281,7 +316,7 @@ describe('coverageStatement.vue-working', () => { const { wrapper } = getMountedComponent(mainInitialState); // Act - const result = wrapper.vm.verifiedITAC; + const result = wrapper.vm.isITACQuoteVisible; // Assert expect(result).toBeFalsy(); @@ -308,7 +343,7 @@ describe('coverageStatement.vue-working', () => { const { wrapper } = getMountedComponent(mainInitialState); // Act - const result = wrapper.vm.verifiedITAC; + const result = wrapper.vm.isITACQuoteVisible; // Assert expect(result).toBeFalsy(); @@ -329,13 +364,13 @@ describe('coverageStatement.vue-working', () => { const { wrapper } = getMountedComponent(mainInitialState); // Act - const result = wrapper.vm.verifiedITAC; + const result = wrapper.vm.isITACQuoteVisible; // Assert expect(result).toBeTruthy(); }); }); - describe('verifiedDeductible', () => { + describe('isDeductibleVisible', () => { const servicePrice = 123; describe('claim registration required', () => { const issConfig = { isClaimRegistrationRequired: true }; @@ -351,7 +386,7 @@ describe('coverageStatement.vue-working', () => { }, policy: { noCoverage: false, - policyLookupSuccessful: false + policyLookupSuccessful: true }, currentDeductible: servicePrice - 1 } @@ -365,7 +400,7 @@ describe('coverageStatement.vue-working', () => { const { wrapper } = getMountedComponent(mainInitialState); // Act - const result = wrapper.vm.verifiedDeductible; + const result = wrapper.vm.isDeductibleVisible; // Assert expect(result).toBeFalsy(); @@ -377,7 +412,7 @@ describe('coverageStatement.vue-working', () => { const { wrapper } = getMountedComponent(mainInitialState); // Act - const result = wrapper.vm.verifiedDeductible; + const result = wrapper.vm.isDeductibleVisible; // Assert expect(result).toBeFalsy(); @@ -387,7 +422,7 @@ describe('coverageStatement.vue-working', () => { const { wrapper } = getMountedComponent(verifiedDeductibleStoreState); // Act - const result = wrapper.vm.verifiedDeductible; + const result = wrapper.vm.isDeductibleVisible; // Assert expect(result).toBeTruthy(); @@ -420,7 +455,7 @@ describe('coverageStatement.vue-working', () => { const { wrapper } = getMountedComponent(mainInitialState); // Act - const result = wrapper.vm.verifiedDeductible; + const result = wrapper.vm.isDeductibleVisible; // Assert expect(result).toBeFalsy(); @@ -430,7 +465,7 @@ describe('coverageStatement.vue-working', () => { const { wrapper } = getMountedComponent(verifiedDeductibleStoreState); // Act - const result = wrapper.vm.verifiedDeductible; + const result = wrapper.vm.isDeductibleVisible; // Assert expect(result).toBeTruthy(); @@ -459,7 +494,7 @@ describe('coverageStatement.vue-working', () => { const { wrapper } = getMountedComponent(storeState); // Act - const result = wrapper.vm.verifiedDeductible; + const result = wrapper.vm.isDeductibleVisible; // Assert expect(result).toBeFalsy(); @@ -486,7 +521,7 @@ describe('coverageStatement.vue-working', () => { const { wrapper } = getMountedComponent(storeState); // Act - const result = wrapper.vm.verifiedDeductible; + const result = wrapper.vm.isDeductibleVisible; // Assert expect(result).toBeFalsy(); @@ -683,7 +718,7 @@ describe('coverageStatement.vue-working', () => { // Assert expect(result).toBeFalsy(); }); - test('returns true when isNoComp true', () => { + test('returns false when isNoComp true and enableNoCompQuote false', () => { // Arrange const mainInitialState = { order: { @@ -692,6 +727,32 @@ describe('coverageStatement.vue-working', () => { noCoverage: true }, currentDeductible: priceOfLineItems + }, + issConfig: { + enableNoCompQuote: false + } + }; + getPriceOfLineItems.mockImplementationOnce(() => priceOfLineItems); + const { wrapper } = getMountedComponent(mainInitialState); + + // Act + const result = wrapper.vm.isQuoteDisplayed; + + // Assert + expect(result).toBeFalsy(); + }); + test('returns true when isNoComp true and enableNoCompQuote true', () => { + // Arrange + const mainInitialState = { + order: { + policy: { + policyLookupSuccessful: true, + noCoverage: true + }, + currentDeductible: priceOfLineItems + }, + issConfig: { + enableNoCompQuote: true } }; getPriceOfLineItems.mockImplementationOnce(() => priceOfLineItems); @@ -1010,6 +1071,9 @@ describe('coverageStatement.vue-working', () => { noCoverage: true, policyLookupSuccessful: true } + }, + issConfig: { + enableNoCompQuote: true } }; const { wrapper } = getMountedComponent(mainInitialState); @@ -1038,6 +1102,9 @@ describe('coverageStatement.vue-working', () => { noCoverage: true, policyLookupSuccessful: true } + }, + issConfig: { + enableNoCompQuote: true } }; const { wrapper } = getMountedComponent(mainInitialState); diff --git a/src/layouts/coverage-statement/coverage-statement.vue b/src/layouts/coverage-statement/coverage-statement.vue index 9f866e2f..86162da5 100644 --- a/src/layouts/coverage-statement/coverage-statement.vue +++ b/src/layouts/coverage-statement/coverage-statement.vue @@ -33,23 +33,23 @@ v-html="secondaryText">