diff --git a/src/fmg-components/funnel-header/progress-bar/progres-bar.spec.js b/src/fmg-components/funnel-header/progress-bar/progres-bar.spec.js index a8d22cc2c..9970b266c 100644 --- a/src/fmg-components/funnel-header/progress-bar/progres-bar.spec.js +++ b/src/fmg-components/funnel-header/progress-bar/progres-bar.spec.js @@ -15,7 +15,7 @@ describe("progressBar", () => { }); // Assert - expect(wrapper.vm.getProgress()).toBe(0); + expect(wrapper.vm.progress).toBe(0); wrapper.unmount(); }); }); @@ -33,7 +33,7 @@ describe("progressBar", () => { }); // Assert - expect(wrapper.vm.getProgress()).toBe(4); + expect(wrapper.vm.progress).toBe(4); wrapper.unmount(); }); }); @@ -51,7 +51,7 @@ describe("progressBar", () => { }); // Assert - expect(wrapper.vm.getProgress()).toBe(48); + expect(wrapper.vm.progress).toBe(48); wrapper.unmount(); }); }); @@ -69,7 +69,7 @@ describe("progressBar", () => { }); // Assert - expect(wrapper.vm.getProgress()).toBe(100); + expect(wrapper.vm.progress).toBe(100); wrapper.unmount(); }); }); diff --git a/src/fmg-components/funnel-header/progress-bar/progress-bar.vue b/src/fmg-components/funnel-header/progress-bar/progress-bar.vue index da370e415..ebce6e0de 100644 --- a/src/fmg-components/funnel-header/progress-bar/progress-bar.vue +++ b/src/fmg-components/funnel-header/progress-bar/progress-bar.vue @@ -10,15 +10,10 @@ import { getProgressBarPercentage } from "@/constants/progress-bar-mapper"; export default { name: "progressBar", - data() { - return { - progress: this.getProgress(), - }; - }, - methods: { - getProgress() { - var pageName = this.pageName; - return getProgressBarPercentage(pageName); + data() {}, + computed: { + progress() { + return getProgressBarPercentage(this.pageName); }, }, }; diff --git a/src/layouts/quote/afterpay-modal-banner/afterpay-modal-banner.vue b/src/layouts/quote/afterpay-modal-banner/afterpay-modal-banner.vue index 3b682e52b..c40e518df 100644 --- a/src/layouts/quote/afterpay-modal-banner/afterpay-modal-banner.vue +++ b/src/layouts/quote/afterpay-modal-banner/afterpay-modal-banner.vue @@ -53,6 +53,7 @@ export default { cmsWidgetName: String, lineItems: Array, isAfterpayBreakoutDisplay: Boolean, + isInsuranceSelected: Boolean, }, data() { return {}; @@ -72,9 +73,14 @@ export default { afterpayCopyTokens() { if (this.isAfterpayBreakoutDisplay) { // Text for Afterpay Breakout experiment - return splitCopyOnCMSPlaceHolder( - this.getCmsContent(this.cmsWidgetName, "BodyText2") - ); + var afterpayBannerCopy = this.getCmsContent(this.cmsWidgetName, "BodyText2"); + afterpayBannerCopy = + afterpayBannerCopy && + afterpayBannerCopy.replaceAll( + "{custom:paymentType}", + this.isInsuranceSelected ? "deductible" : "spending" + ); + return splitCopyOnCMSPlaceHolder(afterpayBannerCopy); } else { return splitCopyOnCMSPlaceHolder( this.getCmsContent(this.cmsWidgetName, "HeaderText") diff --git a/src/layouts/quote/quote.vue b/src/layouts/quote/quote.vue index 21df2a59a..e7039da54 100644 --- a/src/layouts/quote/quote.vue +++ b/src/layouts/quote/quote.vue @@ -47,6 +47,7 @@ v-if="showAfterpayBanner" cmsWidgetName="AfterpayModalWidget" :isAfterpayBreakoutDisplay="isAfterpayBreakoutDisplay" + :isInsuranceSelected="isInsuranceSelected" :lineItems="lineItems" /> @@ -591,7 +592,7 @@ export default { }, showAfterpayBanner() { return ( - !this.isInsuranceSelected && + (this.isAfterpayBreakoutDisplay || !this.isInsuranceSelected) && (!this.isRecalibrationOnOrder || !this.shouldHideRecalibration) ); }, diff --git a/src/router/methods/before-each.js b/src/router/methods/before-each.js index aa4e3a9e4..3a293f98b 100644 --- a/src/router/methods/before-each.js +++ b/src/router/methods/before-each.js @@ -14,11 +14,18 @@ import { runExperiments } from "@/router/methods/helpers/run-experiments"; import { bailout } from "@/router/methods/error"; import { checkPagePrerequisites } from "@/router/methods/page-prerequisites"; import { checkLogParam } from "@/helpers/debug-log-helper"; +import { debugLog } from "@/helpers/debug-log-helper"; export async function beforeEach(to, from) { try { await analyticsMixin.methods.validateSession(); + // prettier-ignore + { + debugLog(`--- before-each.js ${from?.name} start ---`); + debugLog(" funnel cookie init: ", getFunnelCookie()); + } + if (getFunnelCookie()?.SuppressConceptFunnel) { // Redirect to heritage. return { @@ -45,15 +52,21 @@ export async function beforeEach(to, from) { } } - // Process funnel cookie. - updateOrCreateFunnelCookie(); - // If sent from heritage, need to load session. const fromHeritageFlag = consumeQueryFromStash(queryStrings.FROM_HERITAGE); if (fromHeritageFlag) { await loadSessionIfPresent(true, routeData.SERVICE_LOCATION.name); } + // Process funnel cookie. + updateOrCreateFunnelCookie(); + + // prettier-ignore + { + debugLog(`--- before-each.js ${from?.name} start ---`); + debugLog(" funnel cookie after: ", getFunnelCookie()); + } + // Update if logging is enabled. checkLogParam(); @@ -72,6 +85,11 @@ export async function beforeEach(to, from) { } await runExperiments(to.name); + + // prettier-ignore + { + debugLog("--- before-each.js end ---"); + } } catch (error) { const errorPayload = { cause: "Uncaught exception in `beforeEach`.", diff --git a/src/router/methods/navigate.js b/src/router/methods/navigate.js index 7df947560..b15c955e9 100644 --- a/src/router/methods/navigate.js +++ b/src/router/methods/navigate.js @@ -3,6 +3,7 @@ import { buildManualUrl } from "@/router/methods/helpers/build-manual-url"; import { getDestination } from "@/router/methods/helpers/get-destination"; import { savePageData } from "@/router/methods/helpers/save-page-data"; import router from "@/router"; +import store from "@/store"; import { bailout } from "@/router/methods/error"; @@ -34,7 +35,12 @@ async function navigate(scenario, currentPageName, withSaving = false, forceTopL } if (withSaving) { - await saveSession({ pageNameToLog: nextPage.name }); + if ( + store.getters?.applicationUser?.savedSessionId || + store.getters?.order?.customer?.emailAddress + ) { + await saveSession({ pageNameToLog: nextPage.name }); + } } // Some pages require manually setting the next url