From 349c032815d6771dfd733188eaf4ff7d3f637cb2 Mon Sep 17 00:00:00 2001 From: Matt Sykes Date: Wed, 4 Feb 2026 10:32:40 -0500 Subject: [PATCH 1/4] Always set piaType unless its AfterPay Changing payment methods after the first on payment.vue is not setting the new payment type. A long ago bug fix for AfterPay is the issue, and we're good to still not allow the payment type be set if its already set to AfterPay since closing that modal navigates back to payment-method. --- src/layouts/payment/payment.vue | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/layouts/payment/payment.vue b/src/layouts/payment/payment.vue index b8e481174..03c1c6edf 100644 --- a/src/layouts/payment/payment.vue +++ b/src/layouts/payment/payment.vue @@ -748,7 +748,8 @@ export default { // if the payment method is not set yet, then set it based on what HOP sends us if ( store.getters.order.payment.piaType == paymentMethods.PAY_NOW || - store.getters.order.payment.piaType == paymentMethods.NONE + store.getters.order.payment.piaType == paymentMethods.NONE || + store.getters.order.payment.piaType != paymentMethods.AFTERPAY ) { console.log(new Date() + " UPDATE PaymentMethod from HOP:" + paymentMethod); this.dispatchStoreAction( From 5681a2111ba18e253805bd2eba8c937cb348a246 Mon Sep 17 00:00:00 2001 From: Matt Sykes Date: Wed, 4 Feb 2026 10:50:09 -0500 Subject: [PATCH 2/4] Added debug log statement --- src/layouts/payment/payment.vue | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/layouts/payment/payment.vue b/src/layouts/payment/payment.vue index 03c1c6edf..6c547f3d2 100644 --- a/src/layouts/payment/payment.vue +++ b/src/layouts/payment/payment.vue @@ -745,7 +745,12 @@ export default { } }, updatePaymentMethod(paymentMethod) { - // if the payment method is not set yet, then set it based on what HOP sends us + debugLog( + `updatePaymentMethod(${paymentMethod}) and existing store.getters.order.payment.piaType = ${store?.getters?.order?.payment?.piaType}` + ); + + // if the payment method is not set yet, then set it based on what HOP sends + // or if its not already set to AfterPay, always set it based on what HOP sends if ( store.getters.order.payment.piaType == paymentMethods.PAY_NOW || store.getters.order.payment.piaType == paymentMethods.NONE || From d4d298b2680add089284edfbc31f6480e344f292 Mon Sep 17 00:00:00 2001 From: Minojhini Valaiyapathi Date: Wed, 4 Feb 2026 11:11:42 -0500 Subject: [PATCH 3/4] CASH-611 - C&C 2.0 | front-end | policy-info page | create page --- src/constants/progress-bar-mapper.js | 4 ++ src/layouts/policy-info/policy-info.spec.js | 72 +++++++++++++++++++ src/layouts/policy-info/policy-info.vue | 77 +++++++++++++++++++++ src/router/constants/routes.js | 4 ++ src/router/constants/routing-table.js | 4 ++ src/router/methods/routes.js | 1 + 6 files changed, 162 insertions(+) create mode 100644 src/layouts/policy-info/policy-info.spec.js create mode 100644 src/layouts/policy-info/policy-info.vue diff --git a/src/constants/progress-bar-mapper.js b/src/constants/progress-bar-mapper.js index a57774c21..b21c6c9c7 100644 --- a/src/constants/progress-bar-mapper.js +++ b/src/constants/progress-bar-mapper.js @@ -48,6 +48,10 @@ export const pageProgressMapper = { percent: 30, step: 1, }, + "policy-info": { + percent: 55, + step: 2, + }, quote: { percent: 60, step: 2, diff --git a/src/layouts/policy-info/policy-info.spec.js b/src/layouts/policy-info/policy-info.spec.js new file mode 100644 index 000000000..d79cd7cad --- /dev/null +++ b/src/layouts/policy-info/policy-info.spec.js @@ -0,0 +1,72 @@ +import policyInfo from "@/layouts/policy-info/policy-info.vue"; +import { shallowMount } from "@vue/test-utils"; +import { getMountOptions } from "@/helpers/unit-test-helper.js"; +import { fetchCmsContentForPage } from "@/helpers/cms-content-helper"; +import { settleAllPromises } from "@/helpers/layout-helper"; + +// Mock our module for promises. +jest.mock("@/helpers/layout-helper.js", () => ({ + settleAllPromises: jest.fn(), +})); + +// Mock fetchCmsContentForPage +jest.mock("@/helpers/cms-content-helper", () => ({ + fetchCmsContentForPage: jest.fn(), +})); + +describe("policy-info.vue", () => { + describe("component rendering", () => { + test("renders funnelHeader component", () => { + const { wrapper } = setupMocks(); + expect(wrapper.findComponent({ name: "funnelHeader" }).exists()).toBe(true); + }); + + test("renders funnelSubHeader component", () => { + const { wrapper } = setupMocks(); + expect(wrapper.findComponent({ name: "funnelSubHeader" }).exists()).toBe(true); + }); + + test("renders navbar component", () => { + const { wrapper } = setupMocks(); + expect(wrapper.findComponent({ name: "navbar" }).exists()).toBe(true); + }); + + test("renders Form component", () => { + const { wrapper } = setupMocks(); + expect(wrapper.findComponent({ name: "Form" }).exists()).toBe(true); + }); + }); + + describe("methods", () => { + test("arePagePrerequisitesValid returns true", () => { + const { wrapper } = setupMocks(); + expect(wrapper.vm.arePagePrerequisitesValid()).toBe(true); + }); + + }); + +}); + +function setupMocks() { + const mockCmsContent = { + FunnelHeaderWidget: { Text: "Header" }, + FunnelSubHeaderWidget: { Text: "Subheader" }, + FunnelFooterWidget: { Text: "Footer" }, + }; + + fetchCmsContentForPage.mockResolvedValue(mockCmsContent); + settleAllPromises.mockResolvedValue({ cmsContent: mockCmsContent }); + + const mountOptions = getMountOptions({ + route: { name: "policy-info", query: {}, params: {} }, + router: { + navigate: jest.fn(), + navigateWithSaving: jest.fn(), + navigateWithoutSaving: jest.fn(), + }, + }); + + const wrapper = shallowMount(policyInfo, mountOptions); + + return { wrapper }; +} diff --git a/src/layouts/policy-info/policy-info.vue b/src/layouts/policy-info/policy-info.vue new file mode 100644 index 000000000..58354e5c7 --- /dev/null +++ b/src/layouts/policy-info/policy-info.vue @@ -0,0 +1,77 @@ + + + + diff --git a/src/router/constants/routes.js b/src/router/constants/routes.js index 5090df2b3..47c37bb55 100644 --- a/src/router/constants/routes.js +++ b/src/router/constants/routes.js @@ -51,6 +51,10 @@ export const routeData = { name: "quote", path: "/quote", }, + POLICY_INFO: { + name: "policy-info", + path: "/policy-info", + }, INSURANCE_COMPANY: { name: "insurance-company", path: "/insurance-company", diff --git a/src/router/constants/routing-table.js b/src/router/constants/routing-table.js index d5f8e442c..2d2f49a25 100644 --- a/src/router/constants/routing-table.js +++ b/src/router/constants/routing-table.js @@ -429,6 +429,10 @@ const routingTable = function () { }, ], }, + { + pageName: routeData.POLICY_INFO.name, + maps: [], + }, { pageName: routeData.INSURANCE_COMPANY.name, maps: [ diff --git a/src/router/methods/routes.js b/src/router/methods/routes.js index ec6077270..521ba43a1 100644 --- a/src/router/methods/routes.js +++ b/src/router/methods/routes.js @@ -41,6 +41,7 @@ export const routes = [ createRoute(routeData.CONFIRMATION), createRoute(routeData.RETURN_USER), createRoute(routeData.MOBILE_DETAILS), + createRoute(routeData.POLICY_INFO), // Virtual pages (resolve to a non-virtual page.) createVirtualRoute(routeData.LANDING, landingBeforeEnter), From 48a4757305899cc33e301a1563a6e7cc53678c82 Mon Sep 17 00:00:00 2001 From: Minojhini Valaiyapathi Date: Wed, 4 Feb 2026 11:24:02 -0500 Subject: [PATCH 4/4] CASH-611 - Formatted the files --- src/layouts/policy-info/policy-info.spec.js | 2 - src/layouts/policy-info/policy-info.vue | 55 ++++++++++----------- 2 files changed, 27 insertions(+), 30 deletions(-) diff --git a/src/layouts/policy-info/policy-info.spec.js b/src/layouts/policy-info/policy-info.spec.js index d79cd7cad..b3251154a 100644 --- a/src/layouts/policy-info/policy-info.spec.js +++ b/src/layouts/policy-info/policy-info.spec.js @@ -42,9 +42,7 @@ describe("policy-info.vue", () => { const { wrapper } = setupMocks(); expect(wrapper.vm.arePagePrerequisitesValid()).toBe(true); }); - }); - }); function setupMocks() { diff --git a/src/layouts/policy-info/policy-info.vue b/src/layouts/policy-info/policy-info.vue index 58354e5c7..106a28d70 100644 --- a/src/layouts/policy-info/policy-info.vue +++ b/src/layouts/policy-info/policy-info.vue @@ -1,30 +1,30 @@ - -