diff --git a/public/css/hop-styling.css b/public/css/hop-styling.css index 5ef43ea39..dcaeba151 100644 --- a/public/css/hop-styling.css +++ b/public/css/hop-styling.css @@ -143,6 +143,7 @@ body .buttonContainer button { @media (hover: hover) { body .buttonContainer button { background: linear-gradient(270deg, #1574a1 0%, #003d58 100%); + cursor: pointer; } } body .buttonContainer button:focus { diff --git a/public/scss/hop-styling.scss b/public/scss/hop-styling.scss index 2a87f1a3b..786d11834 100644 --- a/public/scss/hop-styling.scss +++ b/public/scss/hop-styling.scss @@ -151,6 +151,7 @@ body { height: 48px; @media (hover: hover) { background: linear-gradient(270deg, #1574a1 0%, #003d58 100%); + cursor: pointer; } &:focus { box-shadow: 0 0 0 3px, 0 0 0 5.5px #06577c; diff --git a/src/constants/application-config.js b/src/constants/application-config.js index 6a747617f..e49426afb 100644 --- a/src/constants/application-config.js +++ b/src/constants/application-config.js @@ -24,6 +24,11 @@ const applicationConfig = { "//" + location.host + "/fmg/?fmgPage=payment-method&src=concept-funnel", + PIA_ERROR_URL: + location.protocol + + "//" + + location.host + + "/fmg/?fmgPage=payment-pia-return&src=concept-funnel", CONFIRMATION_URL: location.protocol + "//" + location.host + "/fmg/?fmgPage=confirmation", GOOGLE_CALENDAR: "https://www.google.com/calendar/render?action=TEMPLATE", YAHOO_CALENDAR: "https://calendar.yahoo.com/?v=60", diff --git a/src/constants/endpoints.js b/src/constants/endpoints.js index 43abf149c..ed880269c 100644 --- a/src/constants/endpoints.js +++ b/src/constants/endpoints.js @@ -130,7 +130,7 @@ const endpoints = { }, PriceOrderItems: { url: "/price/api/v1/price/order-items", - method: "GET", + method: "POST", }, ValidatePromo: { url: "/price/api/v1/price/order-promo", @@ -172,6 +172,10 @@ const endpoints = { url: "/account/api/v1/account/insurance-companies", method: "GET", }, + GetBillToAccountNumber: { + url: "/account/api/v1/account/bill-to-account-number", + method: "GET", + }, }; export { endpoints }; diff --git a/src/constants/experiments.js b/src/constants/experiments.js index eb7fed508..52017ce47 100644 --- a/src/constants/experiments.js +++ b/src/constants/experiments.js @@ -1,5 +1,6 @@ const experimentUniverses = { CONCEPT_FUNNEL: "ConceptFunnel", + RECAL_PRICE_REMOVAL: "NextGen_RecalPriceRemoval", }; const experimentSettings = { @@ -11,6 +12,7 @@ const experimentSettings = { SUBMIT_ORDER_ENABLE_PIA: "SubmitOrder_Enable_PIA", IS_EMAIL_OPTIONAL: "isEmailOptional", SERVICE_PACKAGE_DISCOUNT: "OfferServicePackageDiscount", + RECAL_PRICE_REMOVE: "RecalPriceRemove", }; const experimentTriggers = { diff --git a/src/constants/header-keys.js b/src/constants/header-keys.js index 2cfbba367..7caaef65c 100644 --- a/src/constants/header-keys.js +++ b/src/constants/header-keys.js @@ -1,3 +1,8 @@ export const headerKeys = { EXPERIMENT: "X-Experiment-Data", + APPLICATION_NAME: "X-Application-Name", + REFERRAL_SEQUENCE_NUMBER: "X-Referral-Sequence-Number", + SESSION_SEQUENCE_NUMBER: "X-Session-Sequence-Number", + TRANSACTION_ID: "X-Transaction-Id", + EON: "X-EON", }; diff --git a/src/constants/query-strings.js b/src/constants/query-strings.js index 4a5c47943..3cdfd655f 100644 --- a/src/constants/query-strings.js +++ b/src/constants/query-strings.js @@ -36,6 +36,7 @@ const queryStrings = { VIN_SELECTION: "vinselection", SERVICE_PACKAGE: "servicepackage", NUMBER_OF_CHIPS: "numberofchips", + LOG: "log", UTM_SOURCE: "_source", UTM_MEDIUM: "_medium", UTM_CAMPAIGN: "_campaign", @@ -43,6 +44,7 @@ const queryStrings = { CJUNCTION: "cjunction", ORGANIC: "organic", ORGANIC_SOCIAL: "organic_social", + EXPERIMENTS: "experiments", }; export { queryStrings }; diff --git a/src/constants/store-actions.js b/src/constants/store-actions.js index 069079d35..4cd03771e 100644 --- a/src/constants/store-actions.js +++ b/src/constants/store-actions.js @@ -53,6 +53,7 @@ const storeActions = { VALIDATE_ORDER_PROMO_AND_SAVE_SERVER_DATA: "validateOrderPromoAndSaveServerData", REVALIDATE_ORDER_PROMOS_AND_SAVE_SERVER_DATA: "revalidateOrderPromosAndSaveServerData", GET_INSURANCE_COMPANY_LIST: "getInsuranceCompanyList", + GET_BILL_TO_ACCOUNT_NUMBER: "getBillToAccountNumber", // DEPENDENCY MUTATIONS RESET_DAMAGE_STATE_AND_DEPENDENCIES: "resetDamageAndDependencies", diff --git a/src/constants/store-mutations.js b/src/constants/store-mutations.js index 494be36e3..c03d51432 100644 --- a/src/constants/store-mutations.js +++ b/src/constants/store-mutations.js @@ -103,6 +103,7 @@ const storeMutations = { UPDATE_EXTERNAL_PARAMETER_IS_INSURANCE: "updateExternalParameterIsInsurance", UPDATE_EXTERNAL_PARAMETER_VIN_SELECTION: "updateExternalParameterVinSelection", UPDATE_EXTERNAL_PARAMETER_SERVICE_PACKAGE: "updateExternalParameterServicePackage", + UPDATE_EXTERNAL_PARAMETER_SOURCE: "updateExternalParameterSource", //RESET EXTERNAL_PARAMETER MUTATIONS RESET_EXTERNAL_PARAMETER_VEHICLE_STATE: "resetExternalParameterVehicleState", diff --git a/src/digital-components/base-input-button/base-input-button.spec.js b/src/digital-components/base-input-button/base-input-button.spec.js index 507c1ec59..9b9585dd0 100644 --- a/src/digital-components/base-input-button/base-input-button.spec.js +++ b/src/digital-components/base-input-button/base-input-button.spec.js @@ -1123,42 +1123,6 @@ describe("baseInputButton.vue", () => { }); }); - describe("buttonId", () => { - test("groupName and value combo yield correct id for input button with string value", () => { - // Arrange/Act - const { wrapper } = setupMocks({ - mockData: { - propsData: { - groupName: "my test-name", - value: "Aaa-BBB CcC", - }, - }, - }); - - // Assert - const inputElement = wrapper.find("input"); - expect(wrapper.vm.buttonId).toBe("my-test-name-Aaa-BBB-CcC"); - expect(inputElement.attributes().id).toBe("my-test-name-Aaa-BBB-CcC"); - }); - - test("groupName and value combo yield correct id for input button with number value", () => { - // Arrange/Act - const { wrapper } = setupMocks({ - mockData: { - propsData: { - groupName: "my test-name", - value: 2, - }, - }, - }); - - // Assert - const inputElement = wrapper.find("input"); - expect(wrapper.vm.buttonId).toBe("my-test-name-2"); - expect(inputElement.attributes().id).toBe("my-test-name-2"); - }); - }); - describe("inputType", () => { test("isMultiSelect is true => inputType is 'checkbox'", () => { // Arrange/Act diff --git a/src/digital-components/base-input-button/base-input-button.vue b/src/digital-components/base-input-button/base-input-button.vue index e9b5e6411..a21233362 100644 --- a/src/digital-components/base-input-button/base-input-button.vue +++ b/src/digital-components/base-input-button/base-input-button.vue @@ -34,6 +34,7 @@ import { handleInputComponentBlur, } from "@/helpers/button-question-focus-helper"; import { inputButtonProps } from "@/digital-components/base-input-button/button-functionality-props"; +import { v4 as uuidv4 } from "uuid"; export default { name: "base-input-button", @@ -45,6 +46,7 @@ export default { data() { return { valueToEmit: null, + buttonId: uuidv4(), }; }, mounted() { @@ -153,11 +155,6 @@ export default { inputType() { return this.isMultiSelect ? "checkbox" : "radio"; }, - buttonId() { - return `${this.groupName?.replace(" ", "-")}-${this.value - ?.toString() - ?.replace(" ", "-")}`; - }, isValueSelectedOnClick() { return this.isMultiSelect || this.selectingInitiatesLoad; }, diff --git a/src/fmg-components/cart/cart.vue b/src/fmg-components/cart/cart.vue index 495973144..90c1adf98 100644 --- a/src/fmg-components/cart/cart.vue +++ b/src/fmg-components/cart/cart.vue @@ -1,10 +1,9 @@