diff --git a/src/experiment-components/service-package-radio-for-afterpay.vue b/src/experiment-components/service-package-radio-for-afterpay.vue
index 3356ee225..f38621462 100644
--- a/src/experiment-components/service-package-radio-for-afterpay.vue
+++ b/src/experiment-components/service-package-radio-for-afterpay.vue
@@ -5,6 +5,7 @@
:class="[
this.buttonLabelSubCopy ? 'has-subheader' : '',
this.additionalButtonData.isInsuranceSelected ? 'is-insurance' : '',
+ this.hasPackageDiscount() ? 'has-package-discount' : '',
]"
for="testradio">
@@ -54,12 +55,7 @@
v-html="this.buttonFooterCopy">
-
+
@@ -78,7 +74,7 @@
in 4 interest-free payments
or
-
+
@@ -209,12 +213,6 @@ export default {
}
&.has-subheader {
- min-height: 150px;
-
- &.is-insurance {
- min-height: 72px;
- }
-
& > .package-specs {
& > div:first-of-type {
display: flex;
@@ -222,6 +220,10 @@ export default {
}
}
+ &.has-package-discount {
+ min-height: 150px;
+ }
+
&:before {
content: "";
position: relative;
diff --git a/src/fmg-components/funnel-footer/funnel-footer.vue b/src/fmg-components/funnel-footer/funnel-footer.vue
index 89db470f0..0cff25b0b 100644
--- a/src/fmg-components/funnel-footer/funnel-footer.vue
+++ b/src/fmg-components/funnel-footer/funnel-footer.vue
@@ -11,6 +11,7 @@
-
+ :isForwardActionDisabled="!meta.valid" />
@@ -171,8 +164,6 @@ export default {
emailOrSms: this.getEmailOrSmsFromStore(),
},
serviceZipCode: this.getServiceZipFromStore(),
- carId: this.getCarIdfromStore(),
- isHeavyTruck: this.getIsVehicleHeavyTruckFromStore(),
displayNonServiceableZipAlert: false,
displayVinNotFoundAlert: false,
displayMatchedDifferentVehicleAlert: false,
@@ -184,7 +175,6 @@ export default {
displayInvalidZipAlert: false,
showServiceZipField: this.getServiceZipFromStore(),
isZipServiceable: false,
- displayNoServiceAlert: false,
};
},
methods: {
@@ -229,19 +219,6 @@ export default {
getServiceZipFromStore() {
return this.$store.getters.order.serviceLocation.zipCode;
},
- getCarIdfromStore() {
- return store.getters.vehicle.carId;
- },
- getIsVehicleHeavyTruckFromStore() {
- return store.getters.isHeavyTruckVehicle;
- },
- async findClosestApplicableShops() {
- return await this.dispatchStoreActionWithLogging(
- storeActions.GET_CLOSEST_APPLICABLE_SHOPS,
- { zip: this.serviceZipCode, carId: this.carId },
- "address-lookup"
- );
- },
async forwardButtonAction() {
this.resetWarningsAndErrors();
@@ -301,17 +278,6 @@ export default {
return this.$refs.navbar.removeLoader();
}
this.displayInvalidZipAlert = false;
- if (this.serviceZipCode != null && this.isHeavyTruck) {
- const closestShops = await this.findClosestApplicableShops(
- this.serviceZipCode,
- this.carId
- );
- this.displayNoServiceAlert = !closestShops?.data?.providers?.length;
- if (this.displayNoServiceAlert) {
- return this.$refs.navbar.removeLoader();
- }
- }
-
const carsFound = resultMap.vinLookupResponse.vinVehicles;
// Handle cases for different amounts of VINS found for the address.
@@ -463,7 +429,6 @@ export default {
this.displayNonServiceableZipAlert = false;
this.displayMatchedDifferentVehicleAlert = false;
this.displayVinLookupByHomeAddressNotAllowedAlert = false;
- this.displayNoServiceAlert = false;
},
},
mounted() {
@@ -515,7 +480,6 @@ export default {
handler(newValue) {
// If they modify the service zip code, then hide the error message.
this.displayNonServiceableZipAlert = false;
- this.displayNoServiceAlert = false;
},
},
showServiceZipField: {
diff --git a/src/layouts/customer-details/customer-details.vue b/src/layouts/customer-details/customer-details.vue
index 49269bcb1..baa8636be 100644
--- a/src/layouts/customer-details/customer-details.vue
+++ b/src/layouts/customer-details/customer-details.vue
@@ -56,7 +56,10 @@
@back-clicked="backButtonAction"
@ForwardClicked="forwardButtonAction" />
-
+
diff --git a/src/layouts/insurance-company/insurance-company.vue b/src/layouts/insurance-company/insurance-company.vue
index 0f7bca7c7..c9409eb71 100644
--- a/src/layouts/insurance-company/insurance-company.vue
+++ b/src/layouts/insurance-company/insurance-company.vue
@@ -203,3 +203,9 @@ export default {
},
};
+
+
diff --git a/src/layouts/license-plate-lookup/license-plate-lookup.spec.js b/src/layouts/license-plate-lookup/license-plate-lookup.spec.js
index 2ffe61193..14f0408d1 100644
--- a/src/layouts/license-plate-lookup/license-plate-lookup.spec.js
+++ b/src/layouts/license-plate-lookup/license-plate-lookup.spec.js
@@ -611,42 +611,6 @@ describe("license-plate-lookup.vue", () => {
expect(arePagePrerequisitesValid).toBe(false);
});
});
-
- describe("alerts", () => {
- test("should show the AlertNoService when displayNoServiceAlert is true", async () => {
- const { wrapper } = setupMocks({
- isZipServiceable: true,
- displayNoServiceAlert: true,
- lookupVinbyAddressResponse: {
- isStatePermissible: true,
- vinVehicles: [], // Return no vehicles
- },
- });
-
- // Set displayNoServiceAlert to true
- await wrapper.setData({ displayNoServiceAlert: true });
-
- // Check if the AlertNoService component is rendered
- const alertNoService = wrapper.findComponent({ ref: "AlertNoService" });
- expect(alertNoService.exists()).toBe(true);
- });
- test("should hide the AlertNoService when displayNoServiceAlert is false", async () => {
- const { wrapper } = setupMocks({
- isZipServiceable: true,
- displayNoServiceAlert: false,
- lookupVinbyAddressResponse: {
- isStatePermissible: true,
- vinVehicles: [], // Return no vehicles
- },
- });
- // Ensure displayNoServiceAlert is false
- await wrapper.setData({ displayNoServiceAlert: false });
-
- // Check if the AlertNoService component is not rendered
- const alertNoService = wrapper.findComponent({ ref: "AlertNoService" });
- expect(alertNoService.exists()).toBe(false);
- });
- });
});
function setupMocks({
@@ -752,18 +716,5 @@ function setupMocks({
wrapper.vm.getCmsContent = jest.fn().mockImplementation(() => "");
wrapper.vm.$refs.navbar.updateButtonText = jest.fn();
wrapper.vm.$refs.navbar.removeLoader = jest.fn();
- const closestShops = {
- data: {
- providers: [
- { id: 1, name: "Shop 1" },
- { id: 2, name: "Shop 2" },
- ],
- },
- };
-
- wrapper.vm.findClosestApplicableShops = jest.fn().mockImplementation(() => {
- return new Promise((resolve) => resolve(closestShops));
- });
-
return { wrapper, apiPromise };
}
diff --git a/src/layouts/license-plate-lookup/license-plate-lookup.vue b/src/layouts/license-plate-lookup/license-plate-lookup.vue
index a359d3a9d..c581af4b7 100644
--- a/src/layouts/license-plate-lookup/license-plate-lookup.vue
+++ b/src/layouts/license-plate-lookup/license-plate-lookup.vue
@@ -77,14 +77,6 @@
alertClass="alert-warning"
v-bind:isDismissible="false" />
-
-
0;
const isPopupSkipped =
- store.getters.pageData(fmgPageValues.QUOTE).saveProgressPopupSkipped === true;
- const showSaveProgressPopup = isEmailInStoreOnPageLoad || isPopupSkipped ? false : true;
+ store.getters.pageData(fmgPageValues.QUOTE)?.saveProgressPopupSkipped === true;
+ const showSaveProgressPopup = !(isEmailInStoreOnPageLoad || isPopupSkipped);
const showSaveProgressModal = isEmailInStoreOnPageLoad ? false : true;
const shouldSkipToInsurance =
getBoolFromString(
diff --git a/src/layouts/service-location/appointment-type-question/appointment-type-question.spec.js b/src/layouts/service-location/appointment-type-question/appointment-type-question.spec.js
index 8ff7c9b1c..c6af1377f 100644
--- a/src/layouts/service-location/appointment-type-question/appointment-type-question.spec.js
+++ b/src/layouts/service-location/appointment-type-question/appointment-type-question.spec.js
@@ -100,7 +100,7 @@ describe("appointment-type-question.vue", () => {
]);
});
- it("Should display only the In-Shop answer when only in-shop service is available", async () => {
+ it("Should display only the In-Shop and Drop-Off answers when only in-shop service is available", async () => {
// Arrange/Act
const { wrapper } = setupMocks({
mixins: [mockMixin],
@@ -108,7 +108,6 @@ describe("appointment-type-question.vue", () => {
cmsWidgetName: cmsWidgetName,
isServiceableInshop: true,
isServiceableMobile: false,
- isServiceableDropoff: false,
},
mountOptions: {
attachTo: document.body,
@@ -124,6 +123,13 @@ describe("appointment-type-question.vue", () => {
SubWidgetName: "",
Text: "In-shop",
},
+ {
+ AnswerImageUrl: "",
+ Name: "Dropoff",
+ SubText: "",
+ SubWidgetName: "",
+ Text: "Drop-off",
+ },
]);
});
diff --git a/src/layouts/service-location/appointment-type-question/appointment-type-question.vue b/src/layouts/service-location/appointment-type-question/appointment-type-question.vue
index 4c1c0d031..64bf159ff 100644
--- a/src/layouts/service-location/appointment-type-question/appointment-type-question.vue
+++ b/src/layouts/service-location/appointment-type-question/appointment-type-question.vue
@@ -32,7 +32,6 @@ export default {
cmsWidgetName: String,
isServiceableMobile: Boolean,
isServiceableInshop: Boolean,
- isServiceableDropoff: Boolean,
mobileFeeApplies: Boolean,
},
computed: {
@@ -46,7 +45,7 @@ export default {
const shouldShowMobile = this.isServiceableMobile;
const shouldShowInshop = this.isServiceableInshop;
const shouldShowDropoff =
- this.isServiceableDropoff && !this.$store.getters.damage.isRepair;
+ this.isServiceableInshop && !this.$store.getters.damage.isRepair;
var answers = this.answersFromCms
? this.answersFromCms.filter((answer) => {
@@ -78,11 +77,6 @@ export default {
isMobileOnly() {
return this.isServiceableMobile && !this.isServiceableInshop;
},
- isInshopOnly() {
- return (
- this.isServiceableInshop && !this.isServiceableMobile && !this.isServiceableDropoff
- );
- },
},
watch: {
answersToDisplay: {
@@ -92,7 +86,7 @@ export default {
newValue.length == 1 &&
newValue.findIndex((answer) => answer.Name == "Mobile") != -1
) {
- this.selectedValue = "Mobile";
+ this.selectedValues = "Mobile";
}
},
immediate: true,
@@ -100,14 +94,7 @@ export default {
isMobileOnly: {
handler(newValue) {
if (newValue) {
- this.selectedValue = "Mobile";
- }
- },
- },
- isInshopOnly: {
- handler(newValue) {
- if (newValue) {
- this.selectedValue = "Inshop";
+ this.selectedValues = "Mobile";
}
},
},
diff --git a/src/layouts/service-location/service-location.vue b/src/layouts/service-location/service-location.vue
index 7b3163c87..a85a5bd17 100644
--- a/src/layouts/service-location/service-location.vue
+++ b/src/layouts/service-location/service-location.vue
@@ -76,7 +76,6 @@
v-show="isAppointmentTypeDisplayed"
:isServiceableMobile="isServiceableMobile"
:isServiceableInshop="isServiceableInshop"
- :isServiceableDropoff="isServiceableDropoff"
:isDisplayed="isAppointmentTypeDisplayed"
:mobileFeeApplies="mobileFeeApplies"
ref="appointmentTypeQuestion"
@@ -197,8 +196,6 @@ export default {
isVehicleProtected: this.getIsVehicleProtectedFromStore(),
isGlassServiceableInshop: null,
isRecalibrationServiceableInshop: null,
- isGlassServiceableDropoff: null,
- isRecalibrationServiceableDropoff: null,
isGlassServiceableMobile: null,
isRecalibrationServiceableMobile: null,
selectedAppointmentType: this.getSelectedAppointmentType(),
@@ -357,13 +354,6 @@ export default {
return this.isGlassServiceableInshop;
}
},
- isServiceableDropoff() {
- if (this.isRecalibrationServiceableDropoff !== null) {
- return this.isGlassServiceableDropoff && this.isRecalibrationServiceableDropoff;
- } else {
- return this.isGlassServiceableDropoff;
- }
- },
isShopQuestionDisplayed() {
return (
this.selectedAppointmentType === "Inshop" ||
@@ -569,9 +559,6 @@ export default {
this.isGlassServiceableInshop = serviceabilityDetails.isGlassServiceableInshop;
this.isRecalibrationServiceableInshop =
serviceabilityDetails.isRecalibrationServiceableInshop;
- this.isGlassServiceableDropoff = serviceabilityDetails.isGlassServiceableDropoff;
- this.isRecalibrationServiceableDropoff =
- serviceabilityDetails.isRecalibrationServiceableDropoff;
this.isGlassServiceableMobile = serviceabilityDetails.isGlassServiceableMobile;
this.isRecalibrationServiceableMobile =
serviceabilityDetails.isRecalibrationServiceableMobile;
diff --git a/src/layouts/service-zip/service-zip.spec.js b/src/layouts/service-zip/service-zip.spec.js
index e7cd68e3d..f8fc1f2ae 100644
--- a/src/layouts/service-zip/service-zip.spec.js
+++ b/src/layouts/service-zip/service-zip.spec.js
@@ -415,33 +415,6 @@ describe("service-zip.vue", () => {
expect(wrapper.vm.displayInvalidZipAlert).toBe(false);
expect(wrapper.vm.displayNonServiceableZipAlert).toBe(false);
});
- test("should show the AlertNoService when displayNoServiceAlert is true", async () => {
- // Arrange
- // no changes to store
- applyMockStoreDataToGetters();
-
- const wrapper = setupMocks({});
- wrapper.vm.serviceZipCode = "12345";
-
- // Act
- wrapper.vm.displayNoServiceAlert = true;
-
- // Check if the AlertNoService component is rendered
- expect(wrapper.vm.displayNoServiceAlert).toBe(true);
- });
- test("should hide the AlertNoService when displayNoServiceAlert is false", async () => {
- // Arrange
- // no changes to store
- applyMockStoreDataToGetters();
-
- const wrapper = setupMocks({});
- wrapper.vm.serviceZipCode = "12345";
- //ACT
- wrapper.vm.displayNoServiceAlert = false;
-
- // Check if the AlertNoService component is rendered
- expect(wrapper.vm.displayNoServiceAlert).toBe(false);
- });
});
});
@@ -538,16 +511,5 @@ function setupMocks({ customMountOptions, customZipQuery, customZipDataResponse
];
const wrapper = shallowMount(serviceZip, mountOptions);
- wrapper.vm.findClosestApplicableShops = jest.fn().mockImplementation(() => {
- return Promise.resolve({
- data: {
- providers: [
- { id: 1, name: "Shop 1" },
- { id: 2, name: "Shop 2" },
- ],
- },
- });
- });
-
return wrapper;
}
diff --git a/src/layouts/service-zip/service-zip.vue b/src/layouts/service-zip/service-zip.vue
index 7d53d105d..9528d50bc 100644
--- a/src/layouts/service-zip/service-zip.vue
+++ b/src/layouts/service-zip/service-zip.vue
@@ -47,18 +47,10 @@
v-if="displayNonServiceableZipAlert"
alertClass="alert-danger" />
-
-
@@ -118,11 +110,8 @@ export default {
return {
serviceZipCode: this.getZipFromStore() ?? this.$route.query.zipcode,
emailOrSms: this.getEmailOrSmsFromStore(),
- carId: this.getCarIdfromStore(),
- isHeavyTruck: this.getIsVehicleHeavyTruckFromStore(),
displayInvalidZipAlert: false,
displayNonServiceableZipAlert: false,
- displayNoServiceAlert: false,
};
},
@@ -195,19 +184,6 @@ export default {
arePagePrerequisitesValid() {
return store.getters.damage.isRepair || store.getters.damage.glassToReplace?.length > 0;
},
- getCarIdfromStore() {
- return store.getters.vehicle.carId;
- },
- getIsVehicleHeavyTruckFromStore() {
- return store.getters.isHeavyTruckVehicle;
- },
- async findClosestApplicableShops() {
- return await this.dispatchStoreActionWithLogging(
- storeActions.GET_CLOSEST_APPLICABLE_SHOPS,
- { zip: this.serviceZipCode, carId: this.carId },
- "service-zip"
- );
- },
async backButtonAction() {
const skipVin = await skipVinLookup();
// route to move backwards
@@ -276,16 +252,6 @@ export default {
return this.$refs.navbar.removeLoader();
}
this.displayNonServiceableZipAlert = false;
- if (this.isHeavyTruck) {
- const closestShops = await this.findClosestApplicableShops(
- this.serviceZipCode,
- this.carId
- );
- this.displayNoServiceAlert = !closestShops?.data?.providers?.length;
- if (this.displayNoServiceAlert) {
- return this.$refs.navbar.removeLoader();
- }
- }
const payment = this.$store.getters.payment;
const policy = this.$store.getters.policy;
@@ -343,7 +309,6 @@ export default {
watch: {
serviceZipCode() {
this.displayNonServiceableZipAlert = false;
- this.displayNoServiceAlert = false;
},
},
components: {
diff --git a/src/layouts/vin-lookup/vin-lookup.spec.js b/src/layouts/vin-lookup/vin-lookup.spec.js
index 458f9fc48..6eb1aa515 100644
--- a/src/layouts/vin-lookup/vin-lookup.spec.js
+++ b/src/layouts/vin-lookup/vin-lookup.spec.js
@@ -258,39 +258,6 @@ describe("vin-lookup.vue", () => {
// Assert
expect(wrapper.findAllComponents({ name: "alert" }).length).toBe(1);
});
-
- test("should show the AlertNoService when displayNoServiceAlert is true", async () => {
- const { wrapper } = setupMocks({
- isZipServiceable: true,
- displayNoServiceAlert: true,
- lookupVinbyAddressResponse: {
- isStatePermissible: true,
- vinVehicles: [], // Return no vehicles
- },
- });
- // Set displayNoServiceAlert to true
- await wrapper.setData({ displayNoServiceAlert: true });
-
- // Check if the AlertNoService component is rendered
- const alertNoService = wrapper.findComponent({ ref: "AlertNoService" });
- expect(alertNoService.exists()).toBe(true);
- });
- test("should hide the AlertNoService when displayNoServiceAlert is false", async () => {
- const { wrapper } = setupMocks({
- isZipServiceable: true,
- displayNoServiceAlert: false,
- lookupVinbyAddressResponse: {
- isStatePermissible: true,
- vinVehicles: [], // Return no vehicles
- },
- });
- // Ensure displayNoServiceAlert is false
- await wrapper.setData({ displayNoServiceAlert: false });
-
- // Check if the AlertNoService component is not rendered
- const alertNoService = wrapper.findComponent({ ref: "AlertNoService" });
- expect(alertNoService.exists()).toBe(false);
- });
});
describe("getVinFromImage", () => {
diff --git a/src/layouts/vin-lookup/vin-lookup.vue b/src/layouts/vin-lookup/vin-lookup.vue
index 788425861..4c6897717 100644
--- a/src/layouts/vin-lookup/vin-lookup.vue
+++ b/src/layouts/vin-lookup/vin-lookup.vue
@@ -71,8 +71,7 @@
vinPopulatedOnPageLoad &&
isInsuranceVerified &&
!displayInvalidZipAlert &&
- !displayNonServiceableZipAlert &&
- !displayNoServiceAlert
+ !displayNonServiceableZipAlert
"
alertClass="alert-success" />
@@ -108,23 +107,14 @@
vinPopulatedOnPageLoad &&
!isInsuranceVerified &&
!displayInvalidZipAlert &&
- !displayNonServiceableZipAlert &&
- !displayNoServiceAlert
+ !displayNonServiceableZipAlert
"
alertClass="alert-success" />
-
-
@@ -207,8 +197,6 @@ export default {
vin: this.getVinFromStore(),
serviceZipCode: this.getZipFromStore() ?? this.$route.query.zipcode,
emailOrSms: this.getEmailOrSmsFromStore(),
- carId: this.getCarIdfromStore(),
- isHeavyTruck: this.getIsVehicleHeavyTruckFromStore(),
isCarIdDifferent: false,
customAlertData: {},
previouslyEnteredCarId: "",
@@ -219,7 +207,6 @@ export default {
displayVinNotFoundAlert: false,
displayMatchedDifferentVehicleAlert: false,
displayVinScanFailedAlert: false,
- displayNoServiceAlert: false,
};
},
methods: {
@@ -235,12 +222,6 @@ export default {
getZipFromStore() {
return this.$store.getters.order.serviceLocation.zipCode;
},
- getCarIdfromStore() {
- return store.getters.vehicle.carId;
- },
- getIsVehicleHeavyTruckFromStore() {
- return store.getters.isHeavyTruckVehicle;
- },
attachCustomEvents() {
this.prependActionToMethod(this, this.forwardButtonAction, () => {
this.pushEventToGA(
@@ -264,13 +245,6 @@ export default {
);
}
},
- async findClosestApplicableShops() {
- return await this.dispatchStoreActionWithLogging(
- storeActions.GET_CLOSEST_APPLICABLE_SHOPS,
- { zip: this.serviceZipCode, carId: this.carId },
- "vin-lookup"
- );
- },
async forwardButtonAction() {
this.resetAlerts();
@@ -303,18 +277,6 @@ export default {
return this.$refs.navbar.removeLoader();
}
this.displayInvalidZipAlert = false;
- if (this.isHeavyTruck) {
- // If a VIN has already been found. Validate the Service Zip (in case of changes)
- var closestShops = await this.findClosestApplicableShops(
- this.serviceZipCode,
- this.carId
- );
- this.displayNoServiceAlert = !closestShops?.data?.providers?.length;
- if (this.displayNoServiceAlert) {
- return this.$refs.navbar.removeLoader();
- }
- }
-
// If either lookup fails, remove the loader and stop processing the page.
if (!resultMap.vehicleLookupResponse || !resultMap.zipCodeData.isServiceable) {
// If the vehicle result is undefined, the vin entered was invalid.
@@ -431,16 +393,6 @@ export default {
);
}
- closestShops = await this.findClosestApplicableShops(
- this.serviceZipCode,
- this.carId
- );
- this.displayNoServiceAlert = !closestShops?.data?.providers?.length;
- if (this.displayNoServiceAlert) {
- return this.$refs.navbar.removeLoader();
- }
-
- // 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);
@@ -522,7 +474,6 @@ export default {
this.displayInvalidZipAlert = false;
this.displayVinNotFoundAlert = false;
this.displayVinScanFailedAlert = false;
- this.displayNoServiceAlert = false;
},
},
mounted() {
@@ -599,7 +550,6 @@ export default {
},
serviceZipCode() {
this.displayNonServiceableZipAlert = false;
- this.displayNoServiceAlert = false;
},
},
components: {