Merge branch 'release/2025.05.22' into CASH-429-schedule-page-updates

This commit is contained in:
bmauger 2025-05-13 14:44:51 -04:00 committed by GitHub
commit efe03cc204
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 47 additions and 21 deletions

View file

@ -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();
});
});

View file

@ -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);
},
},
};

View file

@ -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")

View file

@ -47,6 +47,7 @@
v-if="showAfterpayBanner"
cmsWidgetName="AfterpayModalWidget"
:isAfterpayBreakoutDisplay="isAfterpayBreakoutDisplay"
:isInsuranceSelected="isInsuranceSelected"
:lineItems="lineItems" />
<!-- If vehicle requires recal AND we are hiding recal pricing info, then show recal disclaimer banner. -->
@ -591,7 +592,7 @@ export default {
},
showAfterpayBanner() {
return (
!this.isInsuranceSelected &&
(this.isAfterpayBreakoutDisplay || !this.isInsuranceSelected) &&
(!this.isRecalibrationOnOrder || !this.shouldHideRecalibration)
);
},

View file

@ -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`.",

View file

@ -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