diff --git a/src/layouts/coverage-statement/afterpay-modal-banner/afterpay-modal-banner.vue b/src/layouts/coverage-statement/afterpay-modal-banner/afterpay-modal-banner.vue new file mode 100644 index 00000000..232cf329 --- /dev/null +++ b/src/layouts/coverage-statement/afterpay-modal-banner/afterpay-modal-banner.vue @@ -0,0 +1,116 @@ + + + + + \ No newline at end of file diff --git a/src/layouts/coverage-statement/coverage-statement.spec.js b/src/layouts/coverage-statement/coverage-statement.spec.js index ea913872..854a5368 100644 --- a/src/layouts/coverage-statement/coverage-statement.spec.js +++ b/src/layouts/coverage-statement/coverage-statement.spec.js @@ -439,6 +439,109 @@ describe('coverageStatement.vue', () => { expect(result).toBe(expected); }); }); + describe('displayAfterpayBanner', () => { + test('returns true if ITAC', () => { + // Arrange + const mainInitialState = { + order: { + insuranceCoverage: { + coverageStatus: coverageStatuses.VERIFIED, + coverageType: coverageType.ITAC + } + } + }; + const { wrapper } = getMountedComponent(mainInitialState); + + // Act + const result = wrapper.vm.displayAfterpayBanner; + + // Assert + expect(result).toBeTruthy(); + }); + test('returns true if No Comp', () => { + // Arrange + const mainInitialState = { + order: { + insuranceCoverage: { + coverageStatus: coverageStatuses.VERIFIED, + coverageType: coverageType.NO_COMP + } + } + }; + const { wrapper } = getMountedComponent(mainInitialState); + + // Act + const result = wrapper.vm.displayAfterpayBanner; + + // Assert + expect(result).toBeTruthy(); + }); + test('returns true if deductible is > $0', () => { + // Arrange + const mainInitialState = { + order: { + insuranceCoverage: { + coverageStatus: coverageStatuses.VERIFIED, + coverageType: coverageType.Deductible + }, + damage: { + isRepair: false + }, + currentDeductible: { + replace: 500 + } + } + }; + const { wrapper } = getMountedComponent(mainInitialState); + + // Act + const result = wrapper.vm.displayAfterpayBanner; + + // Assert + expect(result).toBeTruthy(); + }); + test('returns false if deductible is <= $0', () => { + // Arrange + const mainInitialState = { + order: { + insuranceCoverage: { + coverageStatus: coverageStatuses.VERIFIED, + coverageType: coverageType.Deductible + }, + damage: { + isRepair: false + }, + currentDeductible: { + replace: 0 + } + } + }; + const { wrapper } = getMountedComponent(mainInitialState); + + // Act + const result = wrapper.vm.displayAfterpayBanner; + + // Assert + expect(result).toBeFalsy(); + }); + test('returns false if Unverified', () => { + // Arrange + const mainInitialState = { + order: { + insuranceCoverage: { + coverageStatus: coverageStatuses.UNVERIFIED, + } + } + }; + const { wrapper } = getMountedComponent(mainInitialState); + + // Act + const result = wrapper.vm.displayAfterpayBanner; + + // Assert + expect(result).toBeFalsy(); + }); + }); }); describe('methods', () => { describe('arePagePrerequisitesValid', () => { diff --git a/src/layouts/coverage-statement/coverage-statement.vue b/src/layouts/coverage-statement/coverage-statement.vue index e0475f47..13ecac57 100644 --- a/src/layouts/coverage-statement/coverage-statement.vue +++ b/src/layouts/coverage-statement/coverage-statement.vue @@ -70,6 +70,10 @@ class="d-flex justify-content-center cost mb-0 cost-underline"> {{ formatAmountInDollars(totalServicePrice) }} + 0); } }, watch: {