diff --git a/.prettierrc b/.prettierrc
index 192cad794..514fb6eac 100644
--- a/.prettierrc
+++ b/.prettierrc
@@ -1,5 +1,6 @@
{
"tabWidth": 4,
+ "htmlWhitespaceSensitivity": "ignore",
"bracketSameLine": true,
"printWidth": 100,
"trailingComma" : "es5"
diff --git a/jest.config.js b/jest.config.js
index 04f474e53..6703eb608 100644
--- a/jest.config.js
+++ b/jest.config.js
@@ -28,12 +28,13 @@ module.exports = {
"!src/layouts/insurance/*.vue", // Temp test exclusion while in development
"!src/layouts/insurance-company/*.vue", // Temp test exclusion while in development
"!src/layouts/insurance-company/insurance-company-question/*.vue", // Temp test exclusion while in development
+ "!src/experiment-components/*.vue",
// END
], // ! means exclude from coverage.
testMatch: ["**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)"],
coverageThreshold: {
global: {
- statements: 75,
+ statements: 74,
},
},
// Uncomment this to avoid the massive amount of warnings we are getting for onSubmit and onInvalidSubmit
diff --git a/src/constants/experiments.js b/src/constants/experiments.js
index 25a8d697e..09dfc4140 100644
--- a/src/constants/experiments.js
+++ b/src/constants/experiments.js
@@ -20,6 +20,8 @@ const experimentSettings = {
DISPLAY_MSR: "DisplayMSR",
DISPLAY_WAITLIST: "DisplayWaitlist2.0",
WAITLIST_THRESHOLD_DAYS: "Waitlist_Threshold_Days",
+ PRICING_BY_DAY: "DisplayPricingByDay",
+ FOSTER_LOVE: "DisplayFosterLove",
};
const experimentTriggers = {
diff --git a/src/constants/store-actions.js b/src/constants/store-actions.js
index 202b98a48..42dc27e4f 100644
--- a/src/constants/store-actions.js
+++ b/src/constants/store-actions.js
@@ -108,6 +108,7 @@ const storeActions = {
CREATE_SUBMITTED_ORDER: "createSubmittedOrder",
RESET_SUBMITTED_ORDER: "resetSubmittedOrder",
+ ADD_DONATION_TO_SUBMITTED_ORDER: "addDonationToSubmittedOrder",
RESET_EXTERNAL_PARAMETER_STATE: "resetExternalParameterState",
UPDATE_EXTERNAL_PARAMETER_MMS: "updateExternalParameterMMS",
diff --git a/src/constants/store-mutations.js b/src/constants/store-mutations.js
index de0c9dd4b..dceeac63e 100644
--- a/src/constants/store-mutations.js
+++ b/src/constants/store-mutations.js
@@ -16,8 +16,6 @@ const storeMutations = {
UPDATE_VEHICLE_IMAGE_COLOR: "updateVehicleImageColor",
UPDATE_VEHICLE_VIN: "updateVehicleVin",
UPDATE_VEHICLE: "updateVehicle",
- UPDATE_VEHICLE_MOBILE_STATIC_RECALIBRATION_APPLICABLE:
- "updateIsMobileStaticRecalibrationApplicable",
UPDATE_IS_REPAIR: "updateIsRepair",
UPDATE_NUMBER_OF_CHIPS: "updateNumberOfChips",
diff --git a/src/digital-components/button-question/button-question.vue b/src/digital-components/button-question/button-question.vue
index f9c1b6279..53f71eb9b 100644
--- a/src/digital-components/button-question/button-question.vue
+++ b/src/digital-components/button-question/button-question.vue
@@ -55,6 +55,7 @@ https://safelite.atlassian.net/wiki/spaces/DC/pages/76644418/Button+Question+Com
:additionalButtonData="answer.additionalButtonData"
:lastValuePushedToGa="lastValuePushedToGa"
:setLastValuePushedToGa="setLastValuePushedToGa"
+ :isInsuranceSelected="isInsuranceSelected"
:suppressError="suppressError"
@buttonEvent="handleButtonEvent"
v-model="selectedValues" />
@@ -139,6 +140,7 @@ export default {
type: Boolean,
default: false,
},
+ isInsuranceSelected: Boolean,
},
setup(props) {
const propsClone = Object.assign({}, props);
diff --git a/src/digital-components/date-picker/date-picker.vue b/src/digital-components/date-picker/date-picker.vue
index c345a1ce3..71c09bbbf 100644
--- a/src/digital-components/date-picker/date-picker.vue
+++ b/src/digital-components/date-picker/date-picker.vue
@@ -17,18 +17,40 @@
- = Available
+
+ = Available
- SundayS
- MondayM
- TuesdayT
- WednesdayW
- ThursdayT
- FridayF
- SaturdayS
+
+ Sunday
+ S
+
+
+ Monday
+ M
+
+
+ Tuesday
+ T
+
+
+ Wednesday
+ W
+
+
+ Thursday
+ T
+
+
+ Friday
+ F
+
+
+ Saturday
+ S
+
-
+ :aria-required="isRequired">
{{ errorMessage }}
+ :class="[centerErrorMessage ? 'center-error-message' : '']">
+ {{ errorMessage }}
+
diff --git a/src/experiment-components/date-picker-for-pricing-by-day.vue b/src/experiment-components/date-picker-for-pricing-by-day.vue
new file mode 100644
index 000000000..df4c9b140
--- /dev/null
+++ b/src/experiment-components/date-picker-for-pricing-by-day.vue
@@ -0,0 +1,1079 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/experiment-components/donation-block.vue b/src/experiment-components/donation-block.vue
new file mode 100644
index 000000000..10ebec7a5
--- /dev/null
+++ b/src/experiment-components/donation-block.vue
@@ -0,0 +1,284 @@
+
+
+
+
+
+
+
diff --git a/src/experiment-components/service-package-radio.vue b/src/experiment-components/service-package-radio.vue
new file mode 100644
index 000000000..c52a80121
--- /dev/null
+++ b/src/experiment-components/service-package-radio.vue
@@ -0,0 +1,493 @@
+
+
+
+
+
+
+
+
+
+
+ as low as
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/fmg-components/cart/cart.vue b/src/fmg-components/cart/cart.vue
index e21a5037a..c4a8e4900 100644
--- a/src/fmg-components/cart/cart.vue
+++ b/src/fmg-components/cart/cart.vue
@@ -10,9 +10,9 @@
href="javascript:void(0)"
class="col d-flex justify-content-between py-0">
{{ OrderDetailsText }}
- {{
- getLineItemAmount(amountDue, showCoverageAsPending)
- }}
+
+ {{ getLineItemAmount(amountDue, showCoverageAsPending) }}
+
@@ -48,11 +48,11 @@
v-for="(cartItem, i) in packageCartItems"
:key="i"
class="packaged-cart-item">
- {{
- cartItem.name
- }}
+
+
+ {{ cartItem.name }}
+
+
{{
- getLineItemAmount(cartItem.subTotal, null, cartItem.category)
- }}
+ ">
+ {{ getLineItemAmount(cartItem.subTotal, null, cartItem.category) }}
+
@@ -143,8 +141,10 @@
class="my-2 lh-1 applied-promo-tag"
v-for="(promoCode, i) in getPromoCodeList"
:key="i">
- Promo code {{ promoCode }} applied
+
+ Promo code
+ {{ promoCode }}
+ applied
diff --git a/src/fmg-components/promo-modal-question/promo-modal-question.vue b/src/fmg-components/promo-modal-question/promo-modal-question.vue
index 656aeaa38..8efad6f3e 100644
--- a/src/fmg-components/promo-modal-question/promo-modal-question.vue
+++ b/src/fmg-components/promo-modal-question/promo-modal-question.vue
@@ -54,8 +54,10 @@
class="mt-4 d-flex align-items-center justify-content-between"
v-for="(promoCode, i) in this.getPromoCodeList()"
:key="i">
- Promo code {{ promoCode }} applied
+
+ Promo code
+ {{ promoCode }}
+ applied
isRecalPartOrHasChildRecalPart(li));
}
+
+export function getRecalPartNumbers(glassPartsArray) {
+ if (glassPartsArray && glassPartsArray.length > 0) {
+ const topLevel = glassPartsArray.filter((gp) => isRecalPart(gp)).map((gp) => gp.partNumber);
+
+ const children = glassPartsArray.map((gp) => getRecalPartNumbers(gp.childParts)).flat();
+
+ return [...topLevel, ...children];
+ } else {
+ return [];
+ }
+}
diff --git a/src/layouts/address-lookup/address-lookup.vue b/src/layouts/address-lookup/address-lookup.vue
index e069ee48d..6e3520704 100644
--- a/src/layouts/address-lookup/address-lookup.vue
+++ b/src/layouts/address-lookup/address-lookup.vue
@@ -357,15 +357,21 @@ export default {
false
);
- if (vinPagesMixin.methods.isPhoneNumber(this.customerQuestions.emailOrSms)) {
- const phone = this.customerQuestions.emailOrSms.replace(/[()]/g, "");
- await this.dispatchStoreAction(storeActions.SAVE_PHONE_NUMBER, phone, false);
+ // if no value due to field being optional, blank both phone and email address
+ if (!this.customerQuestions.emailOrSms) {
+ await this.dispatchStoreAction(storeActions.SAVE_PHONE_NUMBER, "", false);
+ await this.dispatchStoreAction(storeActions.SAVE_EMAIL, "", false);
} else {
- await this.dispatchStoreAction(
- storeActions.SAVE_EMAIL,
- this.customerQuestions.emailOrSms,
- false
- );
+ if (vinPagesMixin.methods.isPhoneNumber(this.customerQuestions.emailOrSms)) {
+ const phone = this.customerQuestions.emailOrSms.replace(/[()]/g, "");
+ await this.dispatchStoreAction(storeActions.SAVE_PHONE_NUMBER, phone, false);
+ } else {
+ await this.dispatchStoreAction(
+ storeActions.SAVE_EMAIL,
+ this.customerQuestions.emailOrSms,
+ false
+ );
+ }
}
await this.dispatchStoreAction(
diff --git a/src/layouts/confirmation/add-to-calendar/add-to-calendar.vue b/src/layouts/confirmation/add-to-calendar/add-to-calendar.vue
index c2cb5ea00..1fef02247 100644
--- a/src/layouts/confirmation/add-to-calendar/add-to-calendar.vue
+++ b/src/layouts/confirmation/add-to-calendar/add-to-calendar.vue
@@ -4,8 +4,8 @@
-
+ v-model="selectedCalendarOption">
diff --git a/src/layouts/insurance-company/insurance-company-spec.js b/src/layouts/insurance-company/insurance-company-spec.js
deleted file mode 100644
index bd932b7d2..000000000
--- a/src/layouts/insurance-company/insurance-company-spec.js
+++ /dev/null
@@ -1,3 +0,0 @@
-describe("insurance-company.vue", () => {
- it.todo("Some test for the future");
-});
diff --git a/src/layouts/insurance-company/insurance-company.spec.js b/src/layouts/insurance-company/insurance-company.spec.js
new file mode 100644
index 000000000..a35be3b87
--- /dev/null
+++ b/src/layouts/insurance-company/insurance-company.spec.js
@@ -0,0 +1,102 @@
+import { shallowMount } from "@vue/test-utils";
+import InsuranceCompany from "@/layouts/insurance-company/insurance-company.vue";
+import { applicationConfig } from "@/constants/application-config.js";
+import store from "@/store";
+import baseMixin from "@/mixins/base-mixin.js";
+
+jest.mock("@/store", () => ({
+ getters: {
+ order: {
+ payment: {
+ parentAccountNumber: "12345",
+ },
+ },
+ },
+}));
+
+var mockRouter = {
+ navigateWithoutSaving: jest.fn(),
+};
+
+jest.mock("@/mixins/base-mixin.js", () => ({
+ methods: {
+ navigateWithoutSaving: jest.fn(),
+ },
+ data() {
+ return {
+ navigationScenarios: {
+ CLICKED_BACK: "clicked_back",
+ },
+ };
+ },
+}));
+
+describe("insurance-company.vue", () => {
+ beforeEach(() => {
+ // Reset the store's parentAccountNumber before each test
+ store.getters.order.payment.parentAccountNumber = "12345";
+ });
+
+ test("should return true when parentAccountNumber matches CASH_PARENT_ACCOUNT_NUMBER", () => {
+ applicationConfig.CASH_PARENT_ACCOUNT_NUMBER = "12345";
+ const wrapper = shallowMount(InsuranceCompany, {
+ global: {
+ mocks: {
+ $store: store,
+ },
+ },
+ });
+
+ expect(wrapper.vm.isCashParentAccountNumber()).toBe(true);
+ });
+
+ test("should return false when parentAccountNumber does not match CASH_PARENT_ACCOUNT_NUMBER", () => {
+ applicationConfig.CASH_PARENT_ACCOUNT_NUMBER = "12345";
+ store.getters.order.payment.parentAccountNumber = "67890";
+ const wrapper = shallowMount(InsuranceCompany, {
+ global: {
+ mocks: {
+ $store: store,
+ },
+ },
+ });
+
+ expect(wrapper.vm.isCashParentAccountNumber()).toBe(false);
+ });
+
+ test("should call navigateWithoutSaving with { isCashSelected: true } when forceCashSelection is true", () => {
+ const wrapper = shallowMount(InsuranceCompany, {
+ global: {
+ mocks: {
+ $store: store,
+ $router: mockRouter,
+ },
+ mixins: [baseMixin],
+ },
+ });
+
+ wrapper.vm.backButtonAction(true);
+ expect(mockRouter.navigateWithoutSaving).toHaveBeenCalledWith(
+ wrapper.vm.navigationScenarios.CLICKED_BACK,
+ wrapper.vm.$route,
+ { isCashSelected: true }
+ );
+ });
+
+ test("should call navigateWithoutSaving with no extra parameter when forceCashSelection is false", () => {
+ const wrapper = shallowMount(InsuranceCompany, {
+ global: {
+ mocks: {
+ $store: store,
+ $router: mockRouter,
+ },
+ mixins: [baseMixin],
+ },
+ });
+ wrapper.vm.backButtonAction(false);
+ expect(mockRouter.navigateWithoutSaving).toHaveBeenCalledWith(
+ wrapper.vm.navigationScenarios.CLICKED_BACK,
+ wrapper.vm.$route
+ );
+ });
+});
diff --git a/src/layouts/insurance-company/insurance-company.vue b/src/layouts/insurance-company/insurance-company.vue
index 79e238d47..6069d2de5 100644
--- a/src/layouts/insurance-company/insurance-company.vue
+++ b/src/layouts/insurance-company/insurance-company.vue
@@ -16,6 +16,13 @@
v-model="parentAccountNumber"
:originalList="originalList" />
+
diff --git a/src/layouts/license-plate-lookup/license-plate-lookup.vue b/src/layouts/license-plate-lookup/license-plate-lookup.vue
index e1b3f721e..8b9c83c67 100644
--- a/src/layouts/license-plate-lookup/license-plate-lookup.vue
+++ b/src/layouts/license-plate-lookup/license-plate-lookup.vue
@@ -311,11 +311,17 @@ export default {
false
);
- if (vinPagesMixin.methods.isPhoneNumber(this.emailOrSms)) {
- const phone = this.emailOrSms.replace(/[()]/g, "");
- await this.dispatchStoreAction(storeActions.SAVE_PHONE_NUMBER, phone, false);
+ // if no value due to field being optional, blank both phone and email address
+ if (!this.emailOrSms) {
+ await this.dispatchStoreAction(storeActions.SAVE_PHONE_NUMBER, "", false);
+ await this.dispatchStoreAction(storeActions.SAVE_EMAIL, "", false);
} else {
- await this.dispatchStoreAction(storeActions.SAVE_EMAIL, this.emailOrSms, false);
+ if (vinPagesMixin.methods.isPhoneNumber(this.emailOrSms)) {
+ const phone = this.emailOrSms.replace(/[()]/g, "");
+ await this.dispatchStoreAction(storeActions.SAVE_PHONE_NUMBER, phone, false);
+ } else {
+ await this.dispatchStoreAction(storeActions.SAVE_EMAIL, this.emailOrSms, false);
+ }
}
await this.dispatchStoreAction(
diff --git a/src/layouts/molding-questions/molding-questions.vue b/src/layouts/molding-questions/molding-questions.vue
index 1bcc3d7a8..2c5f5a7c3 100644
--- a/src/layouts/molding-questions/molding-questions.vue
+++ b/src/layouts/molding-questions/molding-questions.vue
@@ -78,6 +78,20 @@ export default {
);
}
+ if (store.getters.externalParameterCustomer?.phoneNumber) {
+ await baseMixin.methods.dispatchStoreAction(
+ storeActions.SAVE_PHONE_NUMBER,
+ store.getters.externalParameterCustomer.phoneNumber,
+ false
+ );
+
+ await baseMixin.methods.dispatchStoreAction(
+ storeActions.SAVE_IS_SMS_OPT_IN,
+ true,
+ false
+ );
+ }
+
baseMixin.methods.ResetExternalParamsAndHideModal();
}
});
diff --git a/src/layouts/part-questions/part-questions.vue b/src/layouts/part-questions/part-questions.vue
index f905e86c7..1d7771474 100644
--- a/src/layouts/part-questions/part-questions.vue
+++ b/src/layouts/part-questions/part-questions.vue
@@ -79,6 +79,21 @@ export default {
false
);
}
+
+ if (store.getters.externalParameterCustomer?.phoneNumber) {
+ await baseMixin.methods.dispatchStoreAction(
+ storeActions.SAVE_PHONE_NUMBER,
+ store.getters.externalParameterCustomer.phoneNumber,
+ false
+ );
+
+ await baseMixin.methods.dispatchStoreAction(
+ storeActions.SAVE_IS_SMS_OPT_IN,
+ true,
+ false
+ );
+ }
+
baseMixin.methods.ResetExternalParamsAndHideModal();
}
});
diff --git a/src/layouts/payment-method/payment-method-question/payment-method-list-button/payment-method-list-button.vue b/src/layouts/payment-method/payment-method-question/payment-method-list-button/payment-method-list-button.vue
index 2763f1af9..406e9055a 100644
--- a/src/layouts/payment-method/payment-method-question/payment-method-list-button/payment-method-list-button.vue
+++ b/src/layouts/payment-method/payment-method-question/payment-method-list-button/payment-method-list-button.vue
@@ -18,7 +18,7 @@
v-if="hasImage"
:src="buttonImage"
:alt="getInlineAltText(token)" />
- {{ getInlineAltText(token) }}
+ {{ getInlineAltText(token) }}
{{ token }}
diff --git a/src/layouts/payment/payment-switch/payment-switch-button/payment-switch-button.vue b/src/layouts/payment/payment-switch/payment-switch-button/payment-switch-button.vue
index 7199e27e7..af221c7ba 100644
--- a/src/layouts/payment/payment-switch/payment-switch-button/payment-switch-button.vue
+++ b/src/layouts/payment/payment-switch/payment-switch-button/payment-switch-button.vue
@@ -11,7 +11,7 @@
class="ms-2"
:src="buttonImage"
:alt="getInlineAltText(token)" />
- {{ getInlineAltText(token) }}
+ {{ getInlineAltText(token) }}
{{ token }}
diff --git a/src/layouts/payment/payment.vue b/src/layouts/payment/payment.vue
index 5ffb04faa..ecd2489c8 100644
--- a/src/layouts/payment/payment.vue
+++ b/src/layouts/payment/payment.vue
@@ -41,8 +41,7 @@
id="card-frame"
seamless
scrolling="no"
- allow="payment *; microphone *; geolocation *;">
-
+ allow="payment *; microphone *; geolocation *;">
diff --git a/src/layouts/quote/quote.spec.js b/src/layouts/quote/quote.spec.js
index deca0d6d1..a87d6b0a6 100644
--- a/src/layouts/quote/quote.spec.js
+++ b/src/layouts/quote/quote.spec.js
@@ -59,6 +59,9 @@ jest.mock("@/mixins/base-mixin", () => ({
filterOutFees(items) {
return null;
},
+ filterOutServicePackageDiscountPart(items) {
+ return null;
+ },
isFormValid(form) {
return true;
},
@@ -577,6 +580,52 @@ describe("quote.vue", () => {
//Assert
expect(wrapper.vm.isInsuranceSelected).toBe(false);
});
+ test("should default to cash if isCashSelected is true, despite all other checks pointing to insurance selection", async () => {
+ // Also needs no query parameter or previous selection in store to be present
+ //Arrange
+
+ store.getters = {
+ lineItems: {
+ glassParts: ["item", "item2"],
+ },
+ applicationUser: {
+ experiments: [],
+ },
+ order: {
+ lineItems: {
+ glassParts: ["item", "item2"],
+ },
+ payment: {
+ isInsurance: true,
+ },
+ customer: {
+ emailAddress: "test@test.com",
+ },
+ serviceLocation: {
+ state: null,
+ },
+ },
+ vehicle: {
+ cardId: "123",
+ },
+ experimentSettings: {
+ settingName: "SERVICE_PACKAGE_DISCOUNT",
+ },
+ };
+ mockTierOnePrice = 505;
+ const { wrapper } = setupMocks({});
+
+ //Act
+ await quote.beforeRouteEnter.call(
+ wrapper.vm,
+ { query: { fmgPage: "quote", isInsuranceSelected: true, isCashSelected: true } },
+ undefined,
+ (c) => c(wrapper.vm)
+ );
+
+ //Assert
+ expect(wrapper.vm.isInsuranceSelected).toBe(false);
+ });
test("should default to insurance if total economy package price is over $500", async () => {
// Also needs no query parameter or previous selection in store to be present
//Arrange
diff --git a/src/layouts/quote/quote.vue b/src/layouts/quote/quote.vue
index 4428f6e40..d32054108 100644
--- a/src/layouts/quote/quote.vue
+++ b/src/layouts/quote/quote.vue
@@ -328,6 +328,10 @@ export default {
}
const getIsInsuranceSelectedValue = (availableLineItems, insuranceThreshold) => {
+ // query param checked here is set on insurance-selection "Pay on my own" link click
+ if (to.query?.isCashSelected || to.query?.iscashselected) {
+ return false;
+ }
const serviceLocationState = store.getters.order.serviceLocation.state;
// usually true when returning from heritage but can be false when returning from heritage on a save quote
@@ -357,16 +361,28 @@ export default {
)
: baseMixin.methods.filterOutFees(availableLineItems);
+ const lineItemsNoDiscount =
+ baseMixin.methods.filterOutServicePackageDiscountPart(
+ lineItemsForCalculatingPrice
+ );
+
if (isInsuranceFromQueryString != null) {
if (isInsuranceFromQueryString.toLowerCase() === "true") {
return true;
}
}
- return (
- baseMixin.methods.getTierOnePackagePrice(lineItemsForCalculatingPrice) >
- insuranceThreshold
- ); // compare base price vs arbitrary threshold (representing insurance price)
+ const tierOnePrice =
+ baseMixin.methods.getTierOnePackagePrice(lineItemsNoDiscount);
+ // prettier-ignore
+ {
+ if (store.getters.applicationUser.loggingOption) {
+ console.log(new Date() + " quote tierOnePrice comparison: " + tierOnePrice + " > " + insuranceThreshold + "=" + (tierOnePrice > insuranceThreshold));
+ }
+ }
+
+ // compare base price vs arbitrary threshold (representing insurance price)
+ return tierOnePrice > insuranceThreshold;
}
return null;
@@ -383,8 +399,7 @@ export default {
// prettier-ignore
{
- const log = getQuerystringParameter(queryStrings.LOG);
- if (log === "true") {
+ if (store.getters.applicationUser.loggingOption) {
console.log("------------- quote.vue thresholds start -----------------");
console.log(new Date() + " isExternalParameter: " + isExternalParameter);
console.log(new Date() + " internalThreshold: " + internalThreshold);
@@ -394,6 +409,12 @@ export default {
}
if (isExternalParameter === externalParameterStatus.NOT_SET) {
+ // prettier-ignore
+ {
+ if (store.getters.applicationUser.loggingOption) {
+ console.log(new Date() + "quote.vue tab select EXTERNAL not set");
+ }
+ }
// there are no active or inactive external parameters; use internal threshold
if (internalThreshold) thresholdToUse = internalThreshold;
@@ -405,6 +426,13 @@ export default {
} else {
// user came from an external source, however, the externalParms may have been reset on service-zip, property-questions, etc...
if (getBoolFromString(store.getters.externalParameterQuote?.isInsurance)) {
+ // prettier-ignore
+ {
+ if (store.getters.applicationUser.loggingOption) {
+ console.log(new Date() + "quote.vue tab select EXTERNAL ISINSURANCE");
+ }
+ }
+
// did user intentionally select insurance?
vm.isInsuranceSelected = true;
vm.servicePackage = store.getters.externalParameterQuote.servicePackage;
@@ -424,6 +452,13 @@ export default {
} else {
if (externalThreshold) thresholdToUse = externalThreshold;
+ // prettier-ignore
+ {
+ if (store.getters.applicationUser.loggingOption) {
+ console.log(new Date() + "quote.vue tab select NOT EXTERNAL");
+ }
+ }
+
vm.isInsuranceSelected = getIsInsuranceSelectedValue(
vm.availableLineItems,
thresholdToUse
diff --git a/src/layouts/quote/recal-disclaimer/recal-disclaimer.vue b/src/layouts/quote/recal-disclaimer/recal-disclaimer.vue
index c7f31db33..b1e0e10e2 100644
--- a/src/layouts/quote/recal-disclaimer/recal-disclaimer.vue
+++ b/src/layouts/quote/recal-disclaimer/recal-disclaimer.vue
@@ -3,7 +3,7 @@
- {{ recalHeaderText }}
+ {{ recalHeaderText }}
diff --git a/src/layouts/quote/service-package-question/service-package-question.spec.js b/src/layouts/quote/service-package-question/service-package-question.spec.js
index d8edb254c..6fc5d0a4d 100644
--- a/src/layouts/quote/service-package-question/service-package-question.spec.js
+++ b/src/layouts/quote/service-package-question/service-package-question.spec.js
@@ -18,6 +18,11 @@ import { nextTick } from "vue";
jest.mock("@/store", () => ({
commit: jest.fn(),
dispatch: jest.fn(),
+ getters: {
+ applicationUser: {
+ loggingOption: false,
+ },
+ },
}));
const mockExperimentSettings = experimentSettings;
@@ -29,6 +34,9 @@ jest.mock("@/mixins/experiment-mixin.js", () => ({
return true;
}
},
+ hasSettingEqualTo(settingName, settingValue) {
+ return true;
+ },
},
}));
@@ -843,6 +851,7 @@ function setupMocks({ mountOptionsMockData, props = mockProps }) {
},
},
};
+
mountOptionsMockData = Object.assign(mountOptionsMockDataDefault, mountOptionsMockData);
const mountOptions = getMountOptions(mountOptionsMockData);
diff --git a/src/layouts/quote/service-package-question/service-package-question.vue b/src/layouts/quote/service-package-question/service-package-question.vue
index b39213267..982d03948 100644
--- a/src/layouts/quote/service-package-question/service-package-question.vue
+++ b/src/layouts/quote/service-package-question/service-package-question.vue
@@ -4,11 +4,12 @@
:answers="servicePackageAnswers"
:groupName="groupName"
buttonTypeString="servicePackageRadio"
- :buttonTypeObject="servicePackageRadio"
+ :buttonTypeObject="hasPricingByDay() ? servicePackageRadioExperiment : servicePackageRadio"
v-model="selectedPackageName"
:validationRules="validationRules"
:isRequired="isRequired"
- :logDisplayedValuesEvent="true" />
+ :logDisplayedValuesEvent="true"
+ :isInsuranceSelected="isInsuranceSelected" />