Removed references to serviceZip and servicability checks. These will be done earlier in the flow.
This commit is contained in:
parent
5e6eadfe62
commit
d8a51533c4
2 changed files with 10 additions and 355 deletions
|
|
@ -7,7 +7,6 @@ import { shallowMount } from "@vue/test-utils";
|
||||||
import { getMountOptions } from "@/helpers/unit-test-helper.js";
|
import { getMountOptions } from "@/helpers/unit-test-helper.js";
|
||||||
import { useMainStore } from "@/store";
|
import { useMainStore } from "@/store";
|
||||||
import { navigationScenarios } from "@/router/router-constants/navigation-scenarios";
|
import { navigationScenarios } from "@/router/router-constants/navigation-scenarios";
|
||||||
import e from "express";
|
|
||||||
|
|
||||||
jest.mock("@/helpers/damage-helper", () => ({
|
jest.mock("@/helpers/damage-helper", () => ({
|
||||||
isGlassAvailableForCarId: jest.fn().mockImplementation(() => true),
|
isGlassAvailableForCarId: jest.fn().mockImplementation(() => true),
|
||||||
|
|
@ -21,48 +20,6 @@ jest.mock("@/helpers/layout-helper.js", () => ({
|
||||||
|
|
||||||
describe("address-lookup.vue", () => {
|
describe("address-lookup.vue", () => {
|
||||||
describe("page level alerts", () => {
|
describe("page level alerts", () => {
|
||||||
test("if the address is not serviceable display the Non-Serviceable Zip Alert", async () => {
|
|
||||||
// Arrange
|
|
||||||
const mockRegistrationAddress = {
|
|
||||||
streetAddress: "1234 Main St",
|
|
||||||
city: "Columbus",
|
|
||||||
state: "OH",
|
|
||||||
zipCode: "43215",
|
|
||||||
};
|
|
||||||
|
|
||||||
const { wrapper } = setupMocks({
|
|
||||||
isZipValid: true,
|
|
||||||
isZipServiceable: false,
|
|
||||||
vinVehicles: [
|
|
||||||
{
|
|
||||||
vin: "TEST_VIN",
|
|
||||||
vehicle: {
|
|
||||||
carId: "C0000",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
vin: "TEST_VIN",
|
|
||||||
vehicle: {
|
|
||||||
carId: "C0000",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
|
||||||
});
|
|
||||||
|
|
||||||
await wrapper.setData({
|
|
||||||
customerQuestions: {
|
|
||||||
addressQuestions: mockRegistrationAddress,
|
|
||||||
},
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
// Act
|
|
||||||
await wrapper.vm.forwardButtonAction();
|
|
||||||
|
|
||||||
// Assert
|
|
||||||
expect(wrapper.findComponent({ ref: "alertNonServiceableZip" }).isVisible()).toBe(true);
|
|
||||||
});
|
|
||||||
|
|
||||||
test("if the address matches a different vehicle display the Matched Different VehicleAlert", async () => {
|
test("if the address matches a different vehicle display the Matched Different VehicleAlert", async () => {
|
||||||
// Arrange
|
// Arrange
|
||||||
const mockRegistrationAddress = {
|
const mockRegistrationAddress = {
|
||||||
|
|
@ -73,7 +30,6 @@ describe("address-lookup.vue", () => {
|
||||||
};
|
};
|
||||||
|
|
||||||
const { wrapper } = setupMocks({
|
const { wrapper } = setupMocks({
|
||||||
isZipServiceable: true,
|
|
||||||
vinVehicles: [
|
vinVehicles: [
|
||||||
{
|
{
|
||||||
vehicle: {
|
vehicle: {
|
||||||
|
|
@ -110,7 +66,6 @@ describe("address-lookup.vue", () => {
|
||||||
};
|
};
|
||||||
|
|
||||||
const { wrapper } = setupMocks({
|
const { wrapper } = setupMocks({
|
||||||
isZipServiceable: true,
|
|
||||||
isStatePermissible: false,
|
isStatePermissible: false,
|
||||||
lookupVinbyAddressResponse: {
|
lookupVinbyAddressResponse: {
|
||||||
isStatePermissible: false,
|
isStatePermissible: false,
|
||||||
|
|
@ -158,7 +113,6 @@ describe("address-lookup.vue", () => {
|
||||||
};
|
};
|
||||||
|
|
||||||
const { wrapper } = setupMocks({
|
const { wrapper } = setupMocks({
|
||||||
isZipServiceable: true,
|
|
||||||
lookupVinbyAddressResponse: {
|
lookupVinbyAddressResponse: {
|
||||||
isStatePermissible: true,
|
isStatePermissible: true,
|
||||||
vinVehicles: [], // Return no vehicles
|
vinVehicles: [], // Return no vehicles
|
||||||
|
|
@ -188,7 +142,6 @@ describe("address-lookup.vue", () => {
|
||||||
test("if the back button is clicked, navigate back", async () => {
|
test("if the back button is clicked, navigate back", async () => {
|
||||||
// Arrange
|
// Arrange
|
||||||
const { wrapper } = setupMocks({
|
const { wrapper } = setupMocks({
|
||||||
isZipServiceable: true,
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
|
|
@ -198,7 +151,7 @@ describe("address-lookup.vue", () => {
|
||||||
expect(wrapper.vm.$router.navigate).toHaveBeenCalled();
|
expect(wrapper.vm.$router.navigate).toHaveBeenCalled();
|
||||||
});
|
});
|
||||||
|
|
||||||
test("if the car entered matches one of the vehicles found and the zip is serviceable, navigate forward", async () => {
|
test("if the car entered matches one of the vehicles found navigate forward", async () => {
|
||||||
// Arrange
|
// Arrange
|
||||||
const mockRegistrationAddress = {
|
const mockRegistrationAddress = {
|
||||||
streetAddress: "1234 Main St",
|
streetAddress: "1234 Main St",
|
||||||
|
|
@ -208,7 +161,6 @@ describe("address-lookup.vue", () => {
|
||||||
};
|
};
|
||||||
|
|
||||||
const { wrapper } = setupMocks({
|
const { wrapper } = setupMocks({
|
||||||
isZipServiceable: true,
|
|
||||||
vinVehicles: [
|
vinVehicles: [
|
||||||
{
|
{
|
||||||
vehicle: {
|
vehicle: {
|
||||||
|
|
@ -244,7 +196,6 @@ describe("address-lookup.vue", () => {
|
||||||
};
|
};
|
||||||
|
|
||||||
const { wrapper } = setupMocks({
|
const { wrapper } = setupMocks({
|
||||||
isZipServiceable: true,
|
|
||||||
isStatePermissible: true,
|
isStatePermissible: true,
|
||||||
vinVehicles: [
|
vinVehicles: [
|
||||||
{
|
{
|
||||||
|
|
@ -300,51 +251,6 @@ describe("address-lookup.vue", () => {
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("if the car entered matches one of the vehicles found but the zip is NOT serviceable, do not navigate forward", async () => {
|
|
||||||
// Arrange
|
|
||||||
const mockRegistrationAddress = {
|
|
||||||
streetAddress: "1234 Main St",
|
|
||||||
city: "Columbus",
|
|
||||||
state: "OH",
|
|
||||||
zipCode: "43215",
|
|
||||||
};
|
|
||||||
|
|
||||||
const { wrapper } = setupMocks({
|
|
||||||
isZipServiceable: false,
|
|
||||||
isStatePermissible: true,
|
|
||||||
vinVehicles: [
|
|
||||||
{
|
|
||||||
vin: "TEST_VIN",
|
|
||||||
vehicle: {
|
|
||||||
carId: "CARID",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
vin: "TEST_VIN2",
|
|
||||||
vehicle: {
|
|
||||||
carId: "CARID2",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
|
||||||
});
|
|
||||||
|
|
||||||
useMainStore().order.vehicle.carId = "CARID";
|
|
||||||
|
|
||||||
await wrapper.setData({
|
|
||||||
customerQuestions: {
|
|
||||||
addressQuestions: mockRegistrationAddress,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
wrapper.vm.navigateForward = jest.fn();
|
|
||||||
|
|
||||||
// Act
|
|
||||||
await wrapper.vm.forwardButtonAction();
|
|
||||||
|
|
||||||
// Assert
|
|
||||||
expect(wrapper.vm.navigateForward).toHaveBeenCalledTimes(0);
|
|
||||||
});
|
|
||||||
|
|
||||||
test("if a different vehicle is found than the one entered and the selected glass is not available for that vehicle, navigate back to vehicle-damage page", async () => {
|
test("if a different vehicle is found than the one entered and the selected glass is not available for that vehicle, navigate back to vehicle-damage page", async () => {
|
||||||
// Arrange
|
// Arrange
|
||||||
const mockRegistrationAddress = {
|
const mockRegistrationAddress = {
|
||||||
|
|
@ -355,7 +261,6 @@ describe("address-lookup.vue", () => {
|
||||||
};
|
};
|
||||||
|
|
||||||
const { wrapper } = setupMocks({
|
const { wrapper } = setupMocks({
|
||||||
isZipServiceable: true,
|
|
||||||
isStatePermissible: true,
|
isStatePermissible: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -450,135 +355,9 @@ describe("address-lookup.vue", () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("registration and service zips", () => {
|
|
||||||
describe("if registration zip is serviceable", () => {
|
|
||||||
test("if registration address is provided => update service address on successful continue", async () => {
|
|
||||||
// Arrange
|
|
||||||
const mockRegistrationAddress = {
|
|
||||||
streetAddress: "1234 Main St",
|
|
||||||
city: "Columbus",
|
|
||||||
state: "OH",
|
|
||||||
zipCode: "43215",
|
|
||||||
};
|
|
||||||
|
|
||||||
const { wrapper } = setupMocks({
|
|
||||||
isZipServiceable: true,
|
|
||||||
isStatePermissible: true,
|
|
||||||
vinVehicles: [
|
|
||||||
{
|
|
||||||
vin: "TEST_VIN",
|
|
||||||
vehicle: {
|
|
||||||
carId: "CARID",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
|
||||||
route: { query: "address-lookup" },
|
|
||||||
});
|
|
||||||
|
|
||||||
useMainStore().order.vehicle.carId = "CARID";
|
|
||||||
useMainStore().saveRegistrationAddressLookup = jest.fn();
|
|
||||||
|
|
||||||
await wrapper.setData({
|
|
||||||
customerQuestions: {
|
|
||||||
addressQuestions: mockRegistrationAddress,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
// Act
|
|
||||||
await wrapper.vm.forwardButtonAction();
|
|
||||||
|
|
||||||
// Assert
|
|
||||||
expect(useMainStore().saveRegistrationAddressLookup).toHaveBeenCalled();
|
|
||||||
expect(useMainStore().validateZip).toHaveBeenCalledWith({ zip: "43215" });
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
describe("if registration zip is not serviceable", () => {
|
|
||||||
test("if registration address is provided and user clicks continue => show non-serviceable zip alert", async () => {
|
|
||||||
// Arrange
|
|
||||||
const mockRegistrationAddress = {
|
|
||||||
streetAddress: "1234 Main St",
|
|
||||||
city: "Columbus",
|
|
||||||
state: "OH",
|
|
||||||
zipCode: "43215",
|
|
||||||
};
|
|
||||||
|
|
||||||
const { wrapper } = setupMocks({
|
|
||||||
isZipValid: true,
|
|
||||||
isZipServiceable: false,
|
|
||||||
vinVehicles: [
|
|
||||||
{
|
|
||||||
vin: "TEST_VIN",
|
|
||||||
vehicle: {
|
|
||||||
carId: "C0000",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
|
||||||
});
|
|
||||||
|
|
||||||
useMainStore().order.vehicle.carId = "C0000";
|
|
||||||
|
|
||||||
await wrapper.setData({
|
|
||||||
customerQuestions: {
|
|
||||||
addressQuestions: mockRegistrationAddress,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
expect(wrapper.findComponent({ ref: "alertNonServiceableZip" }).exists()).toBe(
|
|
||||||
false
|
|
||||||
);
|
|
||||||
|
|
||||||
// Act
|
|
||||||
await wrapper.vm.forwardButtonAction();
|
|
||||||
|
|
||||||
// Assert
|
|
||||||
expect(wrapper.vm.displayNonServiceableZipAlert).toBe(true);
|
|
||||||
expect(wrapper.findComponent({ ref: "alertNonServiceableZip" }).exists()).toBe(
|
|
||||||
true
|
|
||||||
);
|
|
||||||
expect(wrapper.findComponent({ ref: "alertNonServiceableZip" }).isVisible()).toBe(
|
|
||||||
true
|
|
||||||
);
|
|
||||||
});
|
|
||||||
|
|
||||||
test("if registration address, service zip are provided, and user clicks continue => don't update service address", async () => {
|
|
||||||
// Arrange
|
|
||||||
const mockRegistrationAddress = {
|
|
||||||
streetAddress: "1234 Main St",
|
|
||||||
city: "Columbus",
|
|
||||||
state: "OH",
|
|
||||||
zipCode: "43215",
|
|
||||||
};
|
|
||||||
|
|
||||||
const { wrapper } = setupMocks({
|
|
||||||
isZipServiceable: false,
|
|
||||||
});
|
|
||||||
|
|
||||||
useMainStore().order.vehicle.carId = "CARID";
|
|
||||||
|
|
||||||
await wrapper.setData({
|
|
||||||
customerQuestions: {
|
|
||||||
addressQuestions: mockRegistrationAddress,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
useMainStore().saveRegistrationAddressLookup = jest.fn();
|
|
||||||
|
|
||||||
// Act
|
|
||||||
await wrapper.vm.forwardButtonAction();
|
|
||||||
|
|
||||||
// Assert
|
|
||||||
expect(useMainStore().saveRegistrationAddressLookup).not.toHaveBeenCalled();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
function setupMocks({
|
function setupMocks({
|
||||||
isZipValid = true,
|
|
||||||
isZipServiceable = true,
|
|
||||||
lookupVinbyAddressResponse,
|
lookupVinbyAddressResponse,
|
||||||
partsOrQuestions = [],
|
partsOrQuestions = [],
|
||||||
isStatePermissible = true,
|
isStatePermissible = true,
|
||||||
|
|
@ -587,16 +366,6 @@ function setupMocks({
|
||||||
route = null,
|
route = null,
|
||||||
})
|
})
|
||||||
{
|
{
|
||||||
|
|
||||||
useMainStore().validateZip = jest.fn().mockImplementation(() => {
|
|
||||||
return Promise.resolve({
|
|
||||||
data: {
|
|
||||||
isValid: isZipValid,
|
|
||||||
isServiceable: isZipServiceable,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
});
|
|
||||||
|
|
||||||
useMainStore().lookupVinByAddress = jest.fn().mockImplementation(() => {
|
useMainStore().lookupVinByAddress = jest.fn().mockImplementation(() => {
|
||||||
return Promise.resolve({
|
return Promise.resolve({
|
||||||
data: lookupVinbyAddressResponse
|
data: lookupVinbyAddressResponse
|
||||||
|
|
@ -652,10 +421,6 @@ function setupMocks({
|
||||||
);
|
);
|
||||||
|
|
||||||
const apiResponses = {
|
const apiResponses = {
|
||||||
serviceZipValidationResponse: {
|
|
||||||
isValid: isZipValid,
|
|
||||||
isServiceable: isZipServiceable,
|
|
||||||
},
|
|
||||||
vinLookupResponse: {
|
vinLookupResponse: {
|
||||||
isStatePermissible: isStatePermissible,
|
isStatePermissible: isStatePermissible,
|
||||||
vinVehicles: vinVehicles,
|
vinVehicles: vinVehicles,
|
||||||
|
|
|
||||||
|
|
@ -28,21 +28,6 @@
|
||||||
:manualCopy="AlertMatchedDifferentVehicleBody"
|
:manualCopy="AlertMatchedDifferentVehicleBody"
|
||||||
alertClass="alert-warning"
|
alertClass="alert-warning"
|
||||||
v-bind:isDismissible="false" />
|
v-bind:isDismissible="false" />
|
||||||
<alert
|
|
||||||
ref="alertInvalidZip"
|
|
||||||
v-if="displayInvalidZipAlert"
|
|
||||||
class="mb-4"
|
|
||||||
cmsWidgetName="AlertInvalidZipWidget"
|
|
||||||
alertClass="alert-danger"
|
|
||||||
v-bind:isDismissible="false" />
|
|
||||||
<alert
|
|
||||||
ref="alertNonServiceableZip"
|
|
||||||
v-if="displayNonServiceableZipAlert"
|
|
||||||
class="mb-4"
|
|
||||||
alertClass="alert-danger"
|
|
||||||
:manualHeadline="AlertNonServiceableZipHeader"
|
|
||||||
:manualCopy="AlertNonServiceableZipBody"
|
|
||||||
v-bind:isDismissible="false" />
|
|
||||||
<alert
|
<alert
|
||||||
ref="alertVinLookupsByHomeAddressNotAllowed"
|
ref="alertVinLookupsByHomeAddressNotAllowed"
|
||||||
v-if="displayVinLookupByHomeAddressNotAllowedAlert"
|
v-if="displayVinLookupByHomeAddressNotAllowedAlert"
|
||||||
|
|
@ -50,23 +35,9 @@
|
||||||
cmsWidgetName="AlertVinLookupsByHomeAddressNotAllowedWidget"
|
cmsWidgetName="AlertVinLookupsByHomeAddressNotAllowedWidget"
|
||||||
alertClass="alert-danger"
|
alertClass="alert-danger"
|
||||||
v-bind:isDismissible="false" />
|
v-bind:isDismissible="false" />
|
||||||
<transition name="fade" mode="out-in">
|
|
||||||
<div class="service-zip-field" v-if="showServiceZipField" aria-live="polite">
|
|
||||||
<div class="row mb-4">
|
|
||||||
<div class="col">
|
|
||||||
<textboxQuestion
|
|
||||||
cmsWidgetName="ServiceZipQuestionWidget"
|
|
||||||
v-model="serviceZipCode"
|
|
||||||
ref="serviceZip"
|
|
||||||
inputId="7add1b26df344f2caf1678de5797803f"
|
|
||||||
aria-haspopup=""
|
|
||||||
mask="#####"
|
|
||||||
validationRules="service-zip-required|service-zip-format" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</transition>
|
|
||||||
<customerQuestions ref="customerQuestions" v-model="customerQuestions" />
|
<customerQuestions ref="customerQuestions" v-model="customerQuestions" />
|
||||||
|
|
||||||
<siteFooter
|
<siteFooter
|
||||||
cmsWidgetName="SiteFooterWidget"
|
cmsWidgetName="SiteFooterWidget"
|
||||||
ref="siteFooter"
|
ref="siteFooter"
|
||||||
|
|
@ -103,13 +74,6 @@ import { getDamageString, isGlassAvailableForCarId } from "@/helpers/damage-help
|
||||||
import vinPagesMixin from "@/mixins/vin-pages-mixin";
|
import vinPagesMixin from "@/mixins/vin-pages-mixin";
|
||||||
import { useMainStore } from "@/store"
|
import { useMainStore } from "@/store"
|
||||||
|
|
||||||
// DEFINE VALIDATION RULES - Note: Additional rules are defined in Customer Questions and Address Questions components
|
|
||||||
defineRule("service-zip-required", required(errorMessages.SERVICE_ZIP_REQUIRED));
|
|
||||||
defineRule(
|
|
||||||
"service-zip-format",
|
|
||||||
regex(/(^\d{5}$)|(^\d{5}-\d{4}$)/, errorMessages.SERVICE_ZIP_FORMAT)
|
|
||||||
);
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "address-lookup",
|
name: "address-lookup",
|
||||||
mixins: [baseFormMixin, vinPagesMixin],
|
mixins: [baseFormMixin, vinPagesMixin],
|
||||||
|
|
@ -144,8 +108,6 @@ export default {
|
||||||
firstName: "",
|
firstName: "",
|
||||||
lastName: "",
|
lastName: "",
|
||||||
},
|
},
|
||||||
serviceZipCode: this.serviceZip,
|
|
||||||
displayNonServiceableZipAlert: false,
|
|
||||||
displayVinNotFoundAlert: false,
|
displayVinNotFoundAlert: false,
|
||||||
displayMatchedDifferentVehicleAlert: false,
|
displayMatchedDifferentVehicleAlert: false,
|
||||||
displayVinLookupByHomeAddressNotAllowedAlert: false,
|
displayVinLookupByHomeAddressNotAllowedAlert: false,
|
||||||
|
|
@ -153,9 +115,6 @@ export default {
|
||||||
isCarIdDifferent: false,
|
isCarIdDifferent: false,
|
||||||
isSelectedGlassAvailableForVehicle: true,
|
isSelectedGlassAvailableForVehicle: true,
|
||||||
customAlertData: {},
|
customAlertData: {},
|
||||||
displayInvalidZipAlert: false,
|
|
||||||
showServiceZipField: this.serviceZip,
|
|
||||||
isZipServiceable: false,
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|
@ -201,13 +160,7 @@ export default {
|
||||||
{
|
{
|
||||||
resultKey: "vinLookupResponse",
|
resultKey: "vinLookupResponse",
|
||||||
promise: vinLookupResponse,
|
promise: vinLookupResponse,
|
||||||
},
|
}
|
||||||
{
|
|
||||||
resultKey: "serviceZipValidationResponse",
|
|
||||||
promise: this.serviceZipCode
|
|
||||||
? useMainStore().validateZip({zip: this.serviceZipCode})
|
|
||||||
: useMainStore().validateZip({zip: this.customerQuestions.addressQuestions.zipCode})
|
|
||||||
},
|
|
||||||
];
|
];
|
||||||
|
|
||||||
const resultMap = await settleAllPromises(promiseResultMap);
|
const resultMap = await settleAllPromises(promiseResultMap);
|
||||||
|
|
@ -219,14 +172,6 @@ export default {
|
||||||
return this.$refs.siteFooter.removeLoader();
|
return this.$refs.siteFooter.removeLoader();
|
||||||
}
|
}
|
||||||
|
|
||||||
// If a Service Zip is entered and it is an invalid zip code (ex. 11111) then show an alert
|
|
||||||
const isZipValid = resultMap.serviceZipValidationResponse.isValid;
|
|
||||||
if (this.serviceZipCode && !isZipValid) {
|
|
||||||
this.displayInvalidZipAlert = true;
|
|
||||||
return this.$refs.siteFooter.removeLoader();
|
|
||||||
}
|
|
||||||
this.displayInvalidZipAlert = false;
|
|
||||||
|
|
||||||
const carsFound = resultMap.vinLookupResponse.vinVehicles;
|
const carsFound = resultMap.vinLookupResponse.vinVehicles;
|
||||||
|
|
||||||
// Handle cases for different amounts of VINS found for the address.
|
// Handle cases for different amounts of VINS found for the address.
|
||||||
|
|
@ -252,11 +197,11 @@ export default {
|
||||||
return this.$refs.siteFooter.removeLoader();
|
return this.$refs.siteFooter.removeLoader();
|
||||||
}
|
}
|
||||||
|
|
||||||
// update data if the zip or service zip is serviceable
|
// update data
|
||||||
vehicleInfoToCommit = Object.assign(carFound, { vin: carsFound[0].vin });
|
vehicleInfoToCommit = Object.assign(carFound, { vin: carsFound[0].vin });
|
||||||
} else if (carsFound.length > 1) {
|
} else if (carsFound.length > 1) {
|
||||||
|
|
||||||
// If multiple cars were found and one and only one of them matches the carId entered, save the vehicle info
|
// If multiple cars were found and one and only one of them matches the carId entered, save the vehicle info
|
||||||
// so we can go to the Heritage Funnel directly
|
|
||||||
const matchingCars = carsFound.filter(
|
const matchingCars = carsFound.filter(
|
||||||
(vin) => vin.vehicle.carId === this.mainStore.order.vehicle.carId
|
(vin) => vin.vehicle.carId === this.mainStore.order.vehicle.carId
|
||||||
);
|
);
|
||||||
|
|
@ -273,52 +218,26 @@ export default {
|
||||||
return this.$refs.siteFooter.removeLoader();
|
return this.$refs.siteFooter.removeLoader();
|
||||||
}
|
}
|
||||||
|
|
||||||
// If the either the registration zip code or service zip code are not serviceable
|
|
||||||
this.isZipServiceable = resultMap.serviceZipValidationResponse.isServiceable;
|
|
||||||
if (!this.isZipServiceable) {
|
|
||||||
this.displayNonServiceableZipAlert = true;
|
|
||||||
this.$refs.siteFooter.disableForwardButton();
|
|
||||||
this.showServiceZipField = true;
|
|
||||||
return this.$refs.siteFooter.removeLoader();
|
|
||||||
}
|
|
||||||
|
|
||||||
// If the registration zip code is serviceable and nothing was entered for the service zip code
|
|
||||||
// then set the service zip code to the registration zip code
|
|
||||||
if (!this.serviceZipCode) {
|
|
||||||
this.serviceZipCode = this.customerQuestions.addressQuestions.zipCode;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Save vehicle, customer, service and registration information
|
// Save vehicle, customer, service and registration information
|
||||||
await useMainStore().saveRegistrationAddressLookup(
|
await useMainStore().saveRegistrationAddressLookup(
|
||||||
{
|
{
|
||||||
isSelectedGlassAvailableForVehicle: this.isSelectedGlassAvailableForVehicle,
|
isSelectedGlassAvailableForVehicle: this.isSelectedGlassAvailableForVehicle,
|
||||||
vehicleInfo:
|
vehicleInfo:
|
||||||
Object.keys(vehicleInfoToCommit).length === 0
|
Object.keys(vehicleInfoToCommit).length === 0
|
||||||
? this.mainStore.order.vehicle
|
? useMainStore().order.vehicle
|
||||||
: vehicleInfoToCommit,
|
: vehicleInfoToCommit,
|
||||||
registrationInfo: {
|
registrationInfo: {
|
||||||
firstName: this.customerQuestions.firstName,
|
firstName: this.customerQuestions.firstName,
|
||||||
lastName: this.customerQuestions.lastName,
|
lastName: this.customerQuestions.lastName,
|
||||||
address: this.customerQuestions.addressQuestions.streetAddress,
|
address: this.customerQuestions.addressQuestions.streetAddress,
|
||||||
city: this.customerQuestions.addressQuestions.city,
|
city: this.customerQuestions.addressQuestions.city,
|
||||||
state: resultMap.serviceZipValidationResponse.state,
|
state: this.customerQuestions.addressQuestions.state,
|
||||||
zipCode: this.customerQuestions.addressQuestions.zipCode,
|
zipCode: this.customerQuestions.addressQuestions.zipCode,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
|
|
||||||
await useMainStore().saveServiceLocation(
|
|
||||||
{
|
|
||||||
address: this.customerQuestions.addressQuestions.streetAddress,
|
|
||||||
city: this.customerQuestions.addressQuestions.city,
|
|
||||||
zipCode: this.serviceZipCode,
|
|
||||||
state: resultMap.serviceZipValidationResponse.state,
|
|
||||||
zipCodeCtu: resultMap.serviceZipValidationResponse.zipCodeCtu,
|
|
||||||
},
|
|
||||||
false
|
|
||||||
);
|
|
||||||
|
|
||||||
return await this.navigateForward(carsFound);
|
return await this.navigateForward(carsFound);
|
||||||
},
|
},
|
||||||
async navigateForward(carsFound) {
|
async navigateForward(carsFound) {
|
||||||
|
|
@ -353,7 +272,6 @@ export default {
|
||||||
},
|
},
|
||||||
resetWarningsAndErrors() {
|
resetWarningsAndErrors() {
|
||||||
this.displayVinNotFoundAlert = false;
|
this.displayVinNotFoundAlert = false;
|
||||||
this.displayNonServiceableZipAlert = false;
|
|
||||||
this.displayMatchedDifferentVehicleAlert = false;
|
this.displayMatchedDifferentVehicleAlert = false;
|
||||||
this.displayVinLookupByHomeAddressNotAllowedAlert = false;
|
this.displayVinLookupByHomeAddressNotAllowedAlert = false;
|
||||||
this.$refs.siteFooter.enableForwardAction();
|
this.$refs.siteFooter.enableForwardAction();
|
||||||
|
|
@ -364,19 +282,6 @@ export default {
|
||||||
this.loadDefaultsFromStore();
|
this.loadDefaultsFromStore();
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
AlertNonServiceableZipHeader() {
|
|
||||||
const zipCode = this.serviceZipCode
|
|
||||||
? this.serviceZipCode
|
|
||||||
: this.customerQuestions.addressQuestions.zipCode;
|
|
||||||
const text = this.getCmsContent(
|
|
||||||
"AlertNonServiceableZipWidget",
|
|
||||||
"HeadlineText"
|
|
||||||
).replaceAll("{custom:serviceZip}", zipCode);
|
|
||||||
return text;
|
|
||||||
},
|
|
||||||
AlertNonServiceableZipBody() {
|
|
||||||
return this.getCmsContent("AlertNonServiceableZipWidget", "BodyText");
|
|
||||||
},
|
|
||||||
AlertMatchedDifferentVehicleHeader() {
|
AlertMatchedDifferentVehicleHeader() {
|
||||||
return this.getCmsContent(
|
return this.getCmsContent(
|
||||||
"AlertMatchedDifferentVehicleWidget",
|
"AlertMatchedDifferentVehicleWidget",
|
||||||
|
|
@ -400,25 +305,10 @@ export default {
|
||||||
this.$refs.siteFooter.updateButtonText(
|
this.$refs.siteFooter.updateButtonText(
|
||||||
this.getCmsContent("siteFooterWidget", "ForwardButtonText")
|
this.getCmsContent("siteFooterWidget", "ForwardButtonText")
|
||||||
);
|
);
|
||||||
this.showServiceZipField = false;
|
|
||||||
this.resetWarningsAndErrors();
|
this.resetWarningsAndErrors();
|
||||||
},
|
},
|
||||||
deep: true,
|
deep: true,
|
||||||
},
|
}
|
||||||
serviceZipCode: {
|
|
||||||
handler(newValue) {
|
|
||||||
// If they modify the service zip code, then hide the error message.
|
|
||||||
this.resetWarningsAndErrors();
|
|
||||||
},
|
|
||||||
},
|
|
||||||
showServiceZipField: {
|
|
||||||
handler(newValue) {
|
|
||||||
// If the Service Zip Code field is ever hidden, clear out it's value
|
|
||||||
if (!newValue) {
|
|
||||||
this.serviceZipCode = null;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
siteHeader,
|
siteHeader,
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue