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: {