diff --git a/jest.config.js b/jest.config.js index ce4aa3ad6..04f474e53 100644 --- a/jest.config.js +++ b/jest.config.js @@ -12,6 +12,7 @@ module.exports = { "!src/constants/*.js", "!src/router/**/*.js", "!src/helpers/unit-test-helper.js", + "!src/helpers/logger.js", "!src/layouts/vehicle-damage/windshield-options/windshield-options.vue", "!src/layouts/reveal/**/*.vue", "!src/layouts/payment-method/**/*.vue", diff --git a/src/constants/header-keys.js b/src/constants/header-keys.js index d9b3578c4..ed88393b5 100644 --- a/src/constants/header-keys.js +++ b/src/constants/header-keys.js @@ -5,5 +5,5 @@ export const headerKeys = { SESSION_SEQUENCE_NUMBER: "X-Session-Sequence-Number", TRANSACTION_ID: "X-Transaction-Id", EON: "X-Enterprise-Order-Number", - LOG_ENABLED: "log-enabled" + LOG_ENABLED: "log-enabled", }; diff --git a/src/constants/query-strings.js b/src/constants/query-strings.js index 210ac28f0..f5881f005 100644 --- a/src/constants/query-strings.js +++ b/src/constants/query-strings.js @@ -46,6 +46,7 @@ const queryStrings = { ORGANIC_SOCIAL: "organic_social", EXPERIMENTS: "experiments", FROM_HERITAGE: "fromheritage", + PHONE_NUMBER: "phonenumber", }; export { queryStrings }; diff --git a/src/constants/store-actions.js b/src/constants/store-actions.js index aee8d705f..ec6b0db0c 100644 --- a/src/constants/store-actions.js +++ b/src/constants/store-actions.js @@ -76,6 +76,7 @@ const storeActions = { SAVE_SERVICE_LOCATION: "saveServiceLocation", SAVE_SCHEDULE: "saveSchedule", SAVE_EMAIL: "saveEmail", + SAVE_PHONE_NUMBER: "savePhoneNumber", SAVE_REGISTRATION_LICENSE_PLATE_LOOKUP: "saveRegistrationLicensePlateLookup", SAVE_VIN: "saveVin", SAVE_REGISTRATION_ADDRESS_LOOKUP: "saveRegistrationAddressLookup", diff --git a/src/constants/store-mutations.js b/src/constants/store-mutations.js index f625e27cf..1ebf39b8d 100644 --- a/src/constants/store-mutations.js +++ b/src/constants/store-mutations.js @@ -41,6 +41,7 @@ const storeMutations = { // CUSTOMER MUTATIONS UPDATE_CUSTOMER_EMAIL_ADDRESS: "updateCustomerEmailAddress", + UPDATE_CUSTOMER_PHONE_NUMBER: "updateCustomerPhoneNumber", UPDATE_CUSTOMER_DETAILS: "updateCustomerDetails", // ORDER MUTATIONS @@ -107,6 +108,7 @@ const storeMutations = { UPDATE_EXTERNAL_PARAMETER_VIN_SELECTION: "updateExternalParameterVinSelection", UPDATE_EXTERNAL_PARAMETER_SERVICE_PACKAGE: "updateExternalParameterServicePackage", UPDATE_EXTERNAL_PARAMETER_SOURCE: "updateExternalParameterSource", + UPDATE_EXTERNAL_PARAMETER_PHONE_NUMBER: "updateExternalParameterPhoneNumber", //RESET EXTERNAL_PARAMETER MUTATIONS RESET_EXTERNAL_PARAMETER_VEHICLE_STATE: "resetExternalParameterVehicleState", @@ -115,6 +117,7 @@ const storeMutations = { RESET_EXTERNAL_PARAMETER_SERVICEZIP_STATE: "resetExternalParameterServiceZipState", RESET_EXTERNAL_PARAMETER_QUOTE_STATE: "resetExternalParameterQuoteState", RESET_EXTERNAL_PARAMETER_SOURCE_STATE: "resetExternalParameterSourceState", + RESET_EXTERNAL_PARAMETER_CUSTOMER_STATE: "resetExternalParameterCustomerState", RESET_IS_EXTERNAL_PARAMETER: "resetIsExternalParameter", //Affiliate Cookies diff --git a/src/fmg-components/save-progress-modal-question/save-progress-modal-question.vue b/src/fmg-components/save-progress-modal-question/save-progress-modal-question.vue index 5b885f27f..873e58709 100644 --- a/src/fmg-components/save-progress-modal-question/save-progress-modal-question.vue +++ b/src/fmg-components/save-progress-modal-question/save-progress-modal-question.vue @@ -205,7 +205,7 @@ export default { } } } - + .alert { border-radius: $border-radius-lg; border: 1px solid $green; diff --git a/src/fmg-components/save-progress-popup-question/save-progress-popup-question.vue b/src/fmg-components/save-progress-popup-question/save-progress-popup-question.vue index 5d98d5c4b..34ef44e71 100644 --- a/src/fmg-components/save-progress-popup-question/save-progress-popup-question.vue +++ b/src/fmg-components/save-progress-popup-question/save-progress-popup-question.vue @@ -219,7 +219,7 @@ export default { .textbox-question { padding: 0; margin: 0 0 1.5rem 0; - + label { text-align: left; font-weight: 900; @@ -258,7 +258,7 @@ export default { &.progress-saved { .modal-footer-button, - .modal-disclaimer { + .modal-disclaimer { display: none; } .skip-button { diff --git a/src/layouts/confirmation/confirmation.vue b/src/layouts/confirmation/confirmation.vue index d495d8217..0739a9af6 100644 --- a/src/layouts/confirmation/confirmation.vue +++ b/src/layouts/confirmation/confirmation.vue @@ -116,7 +116,7 @@ export default { // send part question data to SPS API for logging const orderFromStore = await deepClone(store.getters.order); - const ctu = orderFromStore.serviceLocation?.zipCodeCtu + const ctu = orderFromStore.serviceLocation?.zipCodeCtu; const partsOrQuestions = orderFromStore.damage?.partQuestionAnswers; diff --git a/src/layouts/vehicle/vehicle.vue b/src/layouts/vehicle/vehicle.vue index c81dfa2b0..fa7f5c036 100644 --- a/src/layouts/vehicle/vehicle.vue +++ b/src/layouts/vehicle/vehicle.vue @@ -80,7 +80,11 @@ import vehicleQuestion from "@/layouts/vehicle/vehicle-question/vehicle-question // Supporting files import { fetchCmsContentForPage } from "@/helpers/cms-content-helper"; import { experimentUniverses } from "@/constants/experiments"; -import { getSessionKeyValue, getUserIdValue, getDeviceIdValue } from "@/helpers/heritage-integration/cookie-helper"; +import { + getSessionKeyValue, + getUserIdValue, + getDeviceIdValue, +} from "@/helpers/heritage-integration/cookie-helper"; import { settleAllPromises } from "@/helpers/layout-helper"; import { Form, defineRule } from "vee-validate"; import { required } from "@/helpers/validation-rules"; diff --git a/src/router/index.js b/src/router/index.js index 76d1203b7..83004b38c 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -837,6 +837,7 @@ function updateExternalParameterState() { const externalParameterServicePackage = getQuerystringParameter(queryStrings.SERVICE_PACKAGE); const externalParameterNumberOfChips = getQuerystringParameter(queryStrings.NUMBER_OF_CHIPS); const externalParameterSource = getQuerystringParameter(queryStrings.EXPERIMENTS); + const externalParameterPhoneNumber = getQuerystringParameter(queryStrings.PHONE_NUMBER); if ( externalParameterYear && externalParameterMake && @@ -892,6 +893,13 @@ function updateExternalParameterState() { if (externalParameterSource) { store.commit(storeMutations.UPDATE_EXTERNAL_PARAMETER_SOURCE, externalParameterSource); } + if (externalParameterPhoneNumber) { + store.commit( + storeMutations.UPDATE_EXTERNAL_PARAMETER_PHONE_NUMBER, + externalParameterPhoneNumber + ); + store.dispatch(storeActions.SAVE_PHONE_NUMBER, externalParameterPhoneNumber); + } } // if there is an existing external parameter state then they have already been through from an external source(LeadGen) and diff --git a/src/store/index.js b/src/store/index.js index 77a1f1e95..c591d493d 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -343,6 +343,9 @@ export const mutations = { updateCustomerEmailAddress(state, customerEmailAddress) { state.order.customer.emailAddress = customerEmailAddress; }, + updateCustomerPhoneNumber(state, phoneNumber) { + state.order.customer.phoneNumber = phoneNumber; + }, updateVehicle(state, vehicleInfo) { state.order.vehicle.year = vehicleInfo.year; state.order.vehicle.make = vehicleInfo.make; @@ -495,6 +498,10 @@ export const mutations = { externalParameterState.quote.servicePackage = servicePackage; saveExternalParameterState(externalParameterState); }, + updateExternalParameterPhoneNumber(state, phoneNumber) { + externalParameterState.customer.phoneNumber = phoneNumber; + saveExternalParameterState(externalParameterState); + }, //RESET ExternalParameter MUTATIONS resetExternalParameterVehicleState(state) { externalParameterState.vehicle.year = null; @@ -528,6 +535,10 @@ export const mutations = { externalParameterState.isExternalParameter = externalParameterStatus.INACTIVE; saveExternalParameterState(externalParameterState); }, + resetExternalParameterCustomerState(state) { + externalParameterState.customer.phoneNumber = null; + saveExternalParameterState(externalParameterState); + }, // RESET DEPENDENCY MUTATIONS resetVehicleState(state) { @@ -984,6 +995,7 @@ export const getters = { externalParameterQuote: (state) => externalParameterState?.quote, externalParameterServiceZip: (state) => externalParameterState?.serviceZip, externalParameterEstimate: (state) => externalParameterState?.estimate, + externalParameterCustomer: (state) => externalParameterState?.customer, isExternalParameter: (state) => externalParameterState?.isExternalParameter, }; @@ -1448,16 +1460,7 @@ export const actions = { logPartQuestions( context, - { - eon, - ctu, - workOrderId, - workOrderNumber, - carId, - glassLocation, - partQuestions, - userAgent, - } + { eon, ctu, workOrderId, workOrderNumber, carId, glassLocation, partQuestions, userAgent } ) { var payload = { applicationName: applicationConfig.APPLICATION_NAME, @@ -1468,15 +1471,14 @@ export const actions = { carId: carId, glassLocation: glassLocation, partQuestions: partQuestions, - userAgent: navigator.userAgent + userAgent: navigator.userAgent, }; - return globalMethods - .callHttpClient({ - method: endpoints.LogPartQuestions.method, - endpoint: endpoints.LogPartQuestions.url, - payload: payload, - }); + return globalMethods.callHttpClient({ + method: endpoints.LogPartQuestions.method, + endpoint: endpoints.LogPartQuestions.url, + payload: payload, + }); }, // Misc Actions @@ -3039,6 +3041,10 @@ export const actions = { context.commit(storeMutations.UPDATE_CUSTOMER_EMAIL_ADDRESS, email === "" ? null : email); }, + savePhoneNumber(context, phoneNumber) { + context.commit(storeMutations.UPDATE_CUSTOMER_PHONE_NUMBER, phoneNumber === "" ? null : phoneNumber); + }, + saveVin(context, { isSelectedGlassAvailableForVehicle, vehicleInfo }) { //Reset dependent state when changing if (vehicleInfo.vin !== context.state.order.vehicle.vin) { @@ -3132,6 +3138,7 @@ export const actions = { context.commit(storeMutations.RESET_EXTERNAL_PARAMETER_ESTIMATE_STATE); context.commit(storeMutations.RESET_EXTERNAL_PARAMETER_SERVICEZIP_STATE); context.commit(storeMutations.RESET_EXTERNAL_PARAMETER_QUOTE_STATE); + context.commit(storeMutations.RESET_EXTERNAL_PARAMETER_CUSTOMER_STATE); context.commit(storeMutations.RESET_IS_EXTERNAL_PARAMETER); } }, @@ -3704,6 +3711,9 @@ function createExternalParameterDefaultState() { isInsurance: null, servicePackage: null, }, + customer: { + phoneNumber: null, + }, }; // set to session storage saveExternalParameterState(externalParameterDefaultState);