Merge branch 'develop' into CSR-2045-update-funnel-with-new-logo-and-typog

This commit is contained in:
Bryan Mauger 2024-04-04 14:45:00 -04:00
commit 8c868a11df
11 changed files with 53 additions and 20 deletions

View file

@ -108,6 +108,11 @@ export default {
required: false, required: false,
default: true, default: true,
}, },
useDefaultCashParentAccount: {
type: Boolean,
required: false,
default: false,
},
}, },
computed: { computed: {
promoLinkText() { promoLinkText() {
@ -188,7 +193,13 @@ export default {
resetModalButtonStyle() { resetModalButtonStyle() {
this.modal.resetButtonStyle(); this.modal.resetButtonStyle();
}, },
async getPromoCodeData(promoCode, lineItems, addableVaps, pageNameToLog = null) { async getPromoCodeData(
promoCode,
lineItems,
addableVaps,
useDefaultCashParentAccount,
pageNameToLog = null
) {
const pageName = pageNameToLog ?? this.$options?.name; const pageName = pageNameToLog ?? this.$options?.name;
const promoValidationResponse = await baseMixin.methods.dispatchStoreActionWithLogging( const promoValidationResponse = await baseMixin.methods.dispatchStoreActionWithLogging(
storeActions.VALIDATE_ORDER_PROMO_AND_SAVE_SERVER_DATA, storeActions.VALIDATE_ORDER_PROMO_AND_SAVE_SERVER_DATA,
@ -196,6 +207,7 @@ export default {
promoCode: promoCode, promoCode: promoCode,
lineItemsToUse: lineItems, lineItemsToUse: lineItems,
addableVaps: addableVaps, addableVaps: addableVaps,
useDefaultCashParentAccount: useDefaultCashParentAccount,
}, },
pageName, pageName,
false false
@ -261,6 +273,7 @@ export default {
this.promoCode, this.promoCode,
this.lineItems, this.lineItems,
this.addableVaps, this.addableVaps,
this.useDefaultCashParentAccount,
this.pageName this.pageName
); );
if (promoCodeData.isValid) { if (promoCodeData.isValid) {
@ -271,7 +284,8 @@ export default {
await baseMixin.methods.dispatchStoreActionWithLogging( await baseMixin.methods.dispatchStoreActionWithLogging(
storeActions.TAX_ORDER_ITEMS_AND_SAVE_SERVER_DATA, storeActions.TAX_ORDER_ITEMS_AND_SAVE_SERVER_DATA,
{ {
billToAccountNumber: "87291", billToAccountNumber:
store.getters.order.payment.billToAccountNumber,
providerNumber: providerNumber:
store.getters.order.serviceLocation.provider.providerNumber, store.getters.order.serviceLocation.provider.providerNumber,
appointmentType: appointmentType:

View file

@ -105,16 +105,12 @@ export async function getImplicitNavigation(toRoute) {
Used to navigate to the heritage funnel with the correct query string and url. Used to navigate to the heritage funnel with the correct query string and url.
*/ */
export async function navigateToHeritageFunnel({ shouldSaveSession, pageNameToLog, loadingModal }) { export async function navigateToHeritageFunnel({ shouldSaveSession, pageNameToLog }) {
// Create the order (or save existing order) when navigating to Heritage Funnel. // Create the order (or save existing order) when navigating to Heritage Funnel.
if (shouldSaveSession) { if (shouldSaveSession) {
await saveSession({ pageNameToLog: pageNameToLog, shouldAwaitSaveSessionQueue: true }); await saveSession({ pageNameToLog: pageNameToLog, shouldAwaitSaveSessionQueue: true });
} }
if (loadingModal && loadingModal.showModal) {
loadingModal.showModal();
}
var heritageParms = { var heritageParms = {
corid: store.getters.order.referralCorrelationId, corid: store.getters.order.referralCorrelationId,
src: "concept-funnel", src: "concept-funnel",

View file

@ -554,7 +554,7 @@ describe("navigateToHeritageFunnel", () => {
router.navigateToExternalUrl = jest.fn(); router.navigateToExternalUrl = jest.fn();
// Act // Act
await navigateToHeritageFunnel({ loadingModal: null, shouldSaveSession: true }); await navigateToHeritageFunnel({ shouldSaveSession: true });
// Assert // Assert
expect(saveSessionFunction).toHaveBeenCalled(); expect(saveSessionFunction).toHaveBeenCalled();

View file

@ -98,7 +98,8 @@ export function removeVapsPromosFromPromoArray(promoArray) {
export async function revalidatePromosAndValidateQueryStringPromo( export async function revalidatePromosAndValidateQueryStringPromo(
newPromo, newPromo,
pricedLineItems, pricedLineItems,
pageNameToLog pageNameToLog,
useDefaultCashParentAccount = false
) { ) {
const hasActivePromos = store.getters.order.lineItems.promos; const hasActivePromos = store.getters.order.lineItems.promos;
const hasInactivePromos = store.getters.payment.inactivePromos; const hasInactivePromos = store.getters.payment.inactivePromos;
@ -114,7 +115,7 @@ export async function revalidatePromosAndValidateQueryStringPromo(
) { ) {
revalidatePromoResponse = await baseMixin.methods.dispatchStoreActionWithLogging( revalidatePromoResponse = await baseMixin.methods.dispatchStoreActionWithLogging(
storeActions.REVALIDATE_ORDER_PROMOS_AND_SAVE_SERVER_DATA, storeActions.REVALIDATE_ORDER_PROMOS_AND_SAVE_SERVER_DATA,
{}, { useDefaultCashParentAccount },
pageNameToLog, pageNameToLog,
false false
); );

View file

@ -9,7 +9,6 @@ import { storeActions } from "@/constants/store-actions";
import { storeMutations } from "@/constants/store-mutations"; import { storeMutations } from "@/constants/store-mutations";
import { navigationScenarios } from "@/router/router-constants/navigation-scenarios"; import { navigationScenarios } from "@/router/router-constants/navigation-scenarios";
import store from "@/store"; import store from "@/store";
import { navigateToHeritageFunnel } from "@/helpers/heritage-integration/navigation-helper";
import { experimentSettings } from "@/constants/experiments"; import { experimentSettings } from "@/constants/experiments";
jest.mock("@/helpers/damage-helper", () => ({ jest.mock("@/helpers/damage-helper", () => ({

View file

@ -264,7 +264,6 @@ export default {
navigateToHeritageFunnel({ navigateToHeritageFunnel({
shouldSaveSession: true, shouldSaveSession: true,
pageNameToLog: "estimate", pageNameToLog: "estimate",
loadingModal: this.$refs.loadingModal,
}); });
} else if (this.$store.getters.order.referralNumber?.length === 6) { } else if (this.$store.getters.order.referralNumber?.length === 6) {
await this.navigateForwardWithSingleCarMatch(); await this.navigateForwardWithSingleCarMatch();

View file

@ -47,6 +47,7 @@
:addableVaps="addableVaps" :addableVaps="addableVaps"
pageName="quote" pageName="quote"
:taxPromos="false" :taxPromos="false"
:useDefaultCashParentAccount="true"
modalWidgetName="PromoModalWidget" /> modalWidgetName="PromoModalWidget" />
<textBlock <textBlock
@ -188,7 +189,8 @@ export default {
await revalidatePromosAndValidateQueryStringPromo( await revalidatePromosAndValidateQueryStringPromo(
promoCodeFromQueryString, promoCodeFromQueryString,
pricingResults, pricingResults,
"quote" "quote",
true
); );
// Sync local promos with any new promos added by validate/revalidate // Sync local promos with any new promos added by validate/revalidate
lineItems.promos = store.getters.lineItems.promos ?? []; lineItems.promos = store.getters.lineItems.promos ?? [];

View file

@ -79,7 +79,6 @@ import { fetchCmsContentForPage } from "@/helpers/cms-content-helper";
import baseMixin from "@/mixins/base-mixin.js"; import baseMixin from "@/mixins/base-mixin.js";
import { storeActions } from "@/constants/store-actions"; import { storeActions } from "@/constants/store-actions";
import { settleAllPromises } from "@/helpers/layout-helper"; import { settleAllPromises } from "@/helpers/layout-helper";
import { navigateToHeritageFunnel } from "@/helpers/heritage-integration/navigation-helper";
import { splitCopyOnCMSPlaceHolder } from "@/helpers/cms-content-helper"; import { splitCopyOnCMSPlaceHolder } from "@/helpers/cms-content-helper";
import { import {
calcDaysBetweenDates, calcDaysBetweenDates,

View file

@ -458,13 +458,11 @@ export default {
navigateToHeritageFunnel({ navigateToHeritageFunnel({
shouldSaveSession: true, shouldSaveSession: true,
pageNameToLog: currentPage, pageNameToLog: currentPage,
loadingModal: self.$refs.loadingModal,
}); });
} else if (payment.isInsurance && payment.insuranceCoverage.isVerified) { } else if (payment.isInsurance && payment.insuranceCoverage.isVerified) {
navigateToHeritageFunnel({ navigateToHeritageFunnel({
shouldSaveSession: true, shouldSaveSession: true,
pageNameToLog: currentPage, pageNameToLog: currentPage,
loadingModal: self.$refs.loadingModal,
}); });
} else { } else {
self.$router.navigateWithSaving( self.$router.navigateWithSaving(

View file

@ -2357,7 +2357,15 @@ export const actions = {
// <lineItemsToUse> is an optional parameter if the lineItems in the store may not be up to date // <lineItemsToUse> is an optional parameter if the lineItems in the store may not be up to date
async validateOrderPromoAndSaveServerData( async validateOrderPromoAndSaveServerData(
context, context,
{ payload: { promoCode, lineItemsToUse, addableVaps }, pageNameToLog } {
payload: {
promoCode,
lineItemsToUse,
addableVaps,
useDefaultCashParentAccount = false,
},
pageNameToLog,
}
) { ) {
const order = context.getters.order; const order = context.getters.order;
lineItemsToUse = lineItemsToUse ?? order.lineItems; lineItemsToUse = lineItemsToUse ?? order.lineItems;
@ -2376,7 +2384,9 @@ export const actions = {
isRepair: order.damage.isRepair, isRepair: order.damage.isRepair,
glassToReplace: renameGlassToReplaceAttributes(order.damage.glassToReplace), glassToReplace: renameGlassToReplaceAttributes(order.damage.glassToReplace),
lineItemsOnOrder: getArrayOfAllLineItems(lineItemsToUse), lineItemsOnOrder: getArrayOfAllLineItems(lineItemsToUse),
parentAccountNumber: order.payment.parentAccountNumber, parentAccountNumber: useDefaultCashParentAccount
? applicationConfig.CASH_PARENT_ACCOUNT_NUMBER
: order.payment.parentAccountNumber,
referralSequenceNumber: order.referralSequenceNumber, referralSequenceNumber: order.referralSequenceNumber,
serviceState: order.serviceLocation.state, serviceState: order.serviceLocation.state,
serverData: order.lineItems.serverData, serverData: order.lineItems.serverData,
@ -2413,7 +2423,15 @@ export const actions = {
// All payload parameters are optional - will use store data if not provided // All payload parameters are optional - will use store data if not provided
async revalidateOrderPromosAndSaveServerData( async revalidateOrderPromosAndSaveServerData(
context, context,
{ payload: { activePromosToUse, inactivePromosToUse, lineItemsToUse }, pageNameToLog } {
payload: {
activePromosToUse,
inactivePromosToUse,
lineItemsToUse,
useDefaultCashParentAccount = false,
},
pageNameToLog,
}
) { ) {
const order = context.getters.order; const order = context.getters.order;
@ -2438,7 +2456,9 @@ export const actions = {
isRepair: order.damage.isRepair, isRepair: order.damage.isRepair,
glassToReplace: renameGlassToReplaceAttributes(order.damage.glassToReplace), glassToReplace: renameGlassToReplaceAttributes(order.damage.glassToReplace),
lineItemsOnOrder: getArrayOfAllLineItems(lineItemsToUse), lineItemsOnOrder: getArrayOfAllLineItems(lineItemsToUse),
parentAccountNumber: order.payment.parentAccountNumber, parentAccountNumber: useDefaultCashParentAccount
? applicationConfig.CASH_PARENT_ACCOUNT_NUMBER
: order.payment.parentAccountNumber,
referralSequenceNumber: order.referralSequenceNumber, referralSequenceNumber: order.referralSequenceNumber,
serviceState: order.serviceLocation.state, serviceState: order.serviceLocation.state,
serverData: order.lineItems.serverData, serverData: order.lineItems.serverData,

View file

@ -156,6 +156,11 @@ export default {
height: 0.75rem; height: 0.75rem;
padding: 0; padding: 0;
} }
&.drop-off-alert {
p {
margin: 0;
}
}
&.alert-dismissible { &.alert-dismissible {
button { button {
display: flex; display: flex;