diff --git a/src/helpers/page-prerequisites-helper.js b/src/helpers/page-prerequisites-helper.js index c6ad21ff2..0c0f1226a 100644 --- a/src/helpers/page-prerequisites-helper.js +++ b/src/helpers/page-prerequisites-helper.js @@ -17,6 +17,12 @@ export function logPagePrereqsEnd(source, preReqResult) { } } +export function flushPagePrereqsLogs(source, preReqResult, logQueue) { + logPagePrereqsStart(source, preReqResult); + logQueue.forEach((fn) => fn()); + logPagePrereqsEnd(source, preReqResult); +} + function queueLogging(logQueue, logFn) { if (logQueue) { logQueue.push(logFn); diff --git a/src/helpers/page-prerequisites-helper.spec.js b/src/helpers/page-prerequisites-helper.spec.js index 9a85c2c75..b4c4e88e3 100644 --- a/src/helpers/page-prerequisites-helper.spec.js +++ b/src/helpers/page-prerequisites-helper.spec.js @@ -36,6 +36,30 @@ describe("page-prerequisites-helper.js", () => { }); }); + describe("flushPagePrereqsLogs", () => { + test("calls logPagePrereqsStart, executes logQueue, and logPagePrereqsEnd", () => { + const logQueue = [ + jest.fn(), + jest.fn(), + ]; + + pagePrereqsHelper.flushPagePrereqsLogs("payment.vue", true, logQueue); + + expect(debugLog).toHaveBeenCalledWith( + "--- payment.vue pagePrereqs start ---", + null, + false + ); + expect(debugLog).toHaveBeenCalledWith( + "--- payment.vue pagePrereqs end ---", + null, + false + ); + expect(logQueue[0]).toHaveBeenCalled(); + expect(logQueue[1]).toHaveBeenCalled(); + }); + }); + describe("logPagePrereqsEnd", () => { test("calls debugLog with source and forceLog when preReqResult is false", () => { pagePrereqsHelper.logPagePrereqsEnd("payment-method.vue", false); diff --git a/src/layouts/mobile-details/mobile-details.vue b/src/layouts/mobile-details/mobile-details.vue index 609210fc2..08cad6c56 100644 --- a/src/layouts/mobile-details/mobile-details.vue +++ b/src/layouts/mobile-details/mobile-details.vue @@ -79,8 +79,7 @@ import { AppointmentTypeStrings } from "@/constants/schedule-constants"; import textLink from "@/ux-components/text-link/text-link"; import analyticsMixin from "@/mixins/analytics-mixin"; import { - logPagePrereqsStart, - logPagePrereqsEnd, + flushPagePrereqsLogs, hasSchedulingInfo, } from "@/helpers/page-prerequisites-helper"; export default { @@ -130,9 +129,7 @@ export default { const preReqResult = serviceLocationPreReqs && scheduleInfoPreReqs; - logPagePrereqsStart("mobile-details.vue", preReqResult); - logQueue.forEach((fn) => fn()); - logPagePrereqsEnd("mobile-details.vue", preReqResult); + flushPagePrereqsLogs("mobile-details.vue", preReqResult, logQueue); return preReqResult; }, diff --git a/src/layouts/payment-adyen/payment-adyen.vue b/src/layouts/payment-adyen/payment-adyen.vue index 8abd3ae95..4193c024b 100644 --- a/src/layouts/payment-adyen/payment-adyen.vue +++ b/src/layouts/payment-adyen/payment-adyen.vue @@ -84,8 +84,7 @@ import { coverageStatus } from "@/constants/insurance"; import { deepClone } from "@/helpers/object-helper"; import store from "@/store"; import { - logPagePrereqsStart, - logPagePrereqsEnd, + flushPagePrereqsLogs, hasServiceLocationInfo, hasInsuranceInfo, hasSchedulingInfo, @@ -152,9 +151,7 @@ export default { hasSchedulingInfo(order, logQueue) && hasCustomerInfo(order, logQueue) && hasPaymentMethodInfo(order, logQueue); - logPagePrereqsStart("payment-adyen.vue", result); - logQueue.forEach((fn) => fn()); - logPagePrereqsEnd("payment-adyen.vue", result); + flushPagePrereqsLogs("payment-adyen.vue", result, logQueue); return result; }, diff --git a/src/layouts/payment-method/payment-method.vue b/src/layouts/payment-method/payment-method.vue index a9a507690..e5eaab5d0 100644 --- a/src/layouts/payment-method/payment-method.vue +++ b/src/layouts/payment-method/payment-method.vue @@ -179,8 +179,7 @@ import { getBoolFromString } from "@/helpers/boolean-helper"; import { getAmountDue, addPricesToLineItems } from "@/helpers/pricing-helper.js"; import { consumeQueryFromStash } from "@/router/methods/helpers/querystring-stash"; import { - logPagePrereqsStart, - logPagePrereqsEnd, + flushPagePrereqsLogs, hasServiceLocationInfo, hasInsuranceInfo, hasSchedulingInfo, @@ -395,9 +394,7 @@ export default { hasInsuranceInfo(order, logQueue) && hasSchedulingInfo(order, logQueue) && hasCustomerInfo(order, logQueue); - logPagePrereqsStart("payment-method.vue", result); - logQueue.forEach((fn) => fn()); - logPagePrereqsEnd("payment-method.vue", result); + flushPagePrereqsLogs("payment-method.vue", result, logQueue); return result; }, getPaymentMethodFromStore() { diff --git a/src/layouts/payment/payment.vue b/src/layouts/payment/payment.vue index 894c0e497..4b4f0c3a3 100644 --- a/src/layouts/payment/payment.vue +++ b/src/layouts/payment/payment.vue @@ -243,8 +243,7 @@ import { coverageStatus } from "@/constants/insurance"; import { getDisplayAmountDue, getAmountDue } from "@/helpers/pricing-helper.js"; import { debugLog } from "@/helpers/debug-log-helper.js"; import { - logPagePrereqsStart, - logPagePrereqsEnd, + flushPagePrereqsLogs, hasServiceLocationInfo, hasInsuranceInfo, hasSchedulingInfo, @@ -451,9 +450,7 @@ export default { hasSchedulingInfo(order, logQueue) && hasCustomerInfo(order, logQueue) && hasPaymentMethodInfo(order, logQueue); - logPagePrereqsStart("payment.vue", result); - logQueue.forEach((fn) => fn()); - logPagePrereqsEnd("payment.vue", result); + flushPagePrereqsLogs("payment.vue", result, logQueue); return result; }, getAnswersNullSafe(widgetName) { diff --git a/src/layouts/quote/quote.vue b/src/layouts/quote/quote.vue index b36e4ddc3..df1a4ab7d 100644 --- a/src/layouts/quote/quote.vue +++ b/src/layouts/quote/quote.vue @@ -184,8 +184,7 @@ import { consumeQueryFromStash } from "@/router/methods/helpers/querystring-stas import { storeMutations } from "@/constants/store-mutations"; import { debugLog } from "@/helpers/debug-log-helper"; import { - logPagePrereqsStart, - logPagePrereqsEnd, + flushPagePrereqsLogs, hasServiceZipInfo, hasGlassPartsOrRepairInfo, } from "@/helpers/page-prerequisites-helper.js"; @@ -753,9 +752,7 @@ export default { ); }); - logPagePrereqsStart("quote.vue", preReqResult); - logQueue.forEach((fn) => fn()); - logPagePrereqsEnd("quote.vue", preReqResult); + flushPagePrereqsLogs("quote.vue", preReqResult, logQueue); return preReqResult; }, vapsItemsSelectedAction(vapsItemsSelected) {