Merge pull request #2431 from Safelite/feature/CASH-353-Revert
CASH-353- Reverting back the 353 changes
This commit is contained in:
commit
9c2a35f896
8 changed files with 5 additions and 328 deletions
|
|
@ -182,39 +182,6 @@ describe("address-lookup.vue", () => {
|
||||||
// Assert
|
// Assert
|
||||||
expect(wrapper.findComponent({ ref: "alertVinNotFound" }).isVisible()).toBe(true);
|
expect(wrapper.findComponent({ ref: "alertVinNotFound" }).isVisible()).toBe(true);
|
||||||
});
|
});
|
||||||
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("navigation", () => {
|
describe("navigation", () => {
|
||||||
|
|
@ -774,18 +741,6 @@ function setupMocks({
|
||||||
wrapper.vm.setCmsContent = jest.fn();
|
wrapper.vm.setCmsContent = jest.fn();
|
||||||
wrapper.vm.$refs.navbar.updateButtonText = jest.fn();
|
wrapper.vm.$refs.navbar.updateButtonText = jest.fn();
|
||||||
wrapper.vm.$refs.navbar.removeLoader = 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 };
|
return { wrapper };
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -81,20 +81,13 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</transition>
|
</transition>
|
||||||
<alert
|
|
||||||
ref="AlertNoService"
|
|
||||||
v-if="displayNoServiceAlert"
|
|
||||||
class="my-4"
|
|
||||||
cmsWidgetName="AlertNoServiceWidget"
|
|
||||||
alertClass="alert-danger"
|
|
||||||
v-bind:isDismissible="false" />
|
|
||||||
<navbar
|
<navbar
|
||||||
cmsWidgetName="FunnelFooterWidget"
|
cmsWidgetName="FunnelFooterWidget"
|
||||||
ref="navbar"
|
ref="navbar"
|
||||||
:isDisabled="!meta.valid"
|
:isDisabled="!meta.valid"
|
||||||
@ForwardClicked="forwardButtonAction"
|
@ForwardClicked="forwardButtonAction"
|
||||||
@back-clicked="backButtonAction"
|
@back-clicked="backButtonAction"
|
||||||
:isForwardActionDisabled="!meta.valid || displayNoServiceAlert" />
|
:isForwardActionDisabled="!meta.valid" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -171,8 +164,6 @@ export default {
|
||||||
emailOrSms: this.getEmailOrSmsFromStore(),
|
emailOrSms: this.getEmailOrSmsFromStore(),
|
||||||
},
|
},
|
||||||
serviceZipCode: this.getServiceZipFromStore(),
|
serviceZipCode: this.getServiceZipFromStore(),
|
||||||
carId: this.getCarIdfromStore(),
|
|
||||||
isHeavyTruck: this.getIsVehicleHeavyTruckFromStore(),
|
|
||||||
displayNonServiceableZipAlert: false,
|
displayNonServiceableZipAlert: false,
|
||||||
displayVinNotFoundAlert: false,
|
displayVinNotFoundAlert: false,
|
||||||
displayMatchedDifferentVehicleAlert: false,
|
displayMatchedDifferentVehicleAlert: false,
|
||||||
|
|
@ -184,7 +175,6 @@ export default {
|
||||||
displayInvalidZipAlert: false,
|
displayInvalidZipAlert: false,
|
||||||
showServiceZipField: this.getServiceZipFromStore(),
|
showServiceZipField: this.getServiceZipFromStore(),
|
||||||
isZipServiceable: false,
|
isZipServiceable: false,
|
||||||
displayNoServiceAlert: false,
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|
@ -229,19 +219,6 @@ export default {
|
||||||
getServiceZipFromStore() {
|
getServiceZipFromStore() {
|
||||||
return this.$store.getters.order.serviceLocation.zipCode;
|
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() {
|
async forwardButtonAction() {
|
||||||
this.resetWarningsAndErrors();
|
this.resetWarningsAndErrors();
|
||||||
|
|
||||||
|
|
@ -301,17 +278,6 @@ export default {
|
||||||
return this.$refs.navbar.removeLoader();
|
return this.$refs.navbar.removeLoader();
|
||||||
}
|
}
|
||||||
this.displayInvalidZipAlert = false;
|
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;
|
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.
|
||||||
|
|
@ -463,7 +429,6 @@ export default {
|
||||||
this.displayNonServiceableZipAlert = false;
|
this.displayNonServiceableZipAlert = false;
|
||||||
this.displayMatchedDifferentVehicleAlert = false;
|
this.displayMatchedDifferentVehicleAlert = false;
|
||||||
this.displayVinLookupByHomeAddressNotAllowedAlert = false;
|
this.displayVinLookupByHomeAddressNotAllowedAlert = false;
|
||||||
this.displayNoServiceAlert = false;
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
|
@ -515,7 +480,6 @@ export default {
|
||||||
handler(newValue) {
|
handler(newValue) {
|
||||||
// If they modify the service zip code, then hide the error message.
|
// If they modify the service zip code, then hide the error message.
|
||||||
this.displayNonServiceableZipAlert = false;
|
this.displayNonServiceableZipAlert = false;
|
||||||
this.displayNoServiceAlert = false;
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
showServiceZipField: {
|
showServiceZipField: {
|
||||||
|
|
|
||||||
|
|
@ -611,42 +611,6 @@ describe("license-plate-lookup.vue", () => {
|
||||||
expect(arePagePrerequisitesValid).toBe(false);
|
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({
|
function setupMocks({
|
||||||
|
|
@ -752,18 +716,5 @@ function setupMocks({
|
||||||
wrapper.vm.getCmsContent = jest.fn().mockImplementation(() => "");
|
wrapper.vm.getCmsContent = jest.fn().mockImplementation(() => "");
|
||||||
wrapper.vm.$refs.navbar.updateButtonText = jest.fn();
|
wrapper.vm.$refs.navbar.updateButtonText = jest.fn();
|
||||||
wrapper.vm.$refs.navbar.removeLoader = 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 };
|
return { wrapper, apiPromise };
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -77,14 +77,6 @@
|
||||||
alertClass="alert-warning"
|
alertClass="alert-warning"
|
||||||
v-bind:isDismissible="false" />
|
v-bind:isDismissible="false" />
|
||||||
|
|
||||||
<alert
|
|
||||||
ref="AlertNoService"
|
|
||||||
v-if="displayNoServiceAlert"
|
|
||||||
class="my-4"
|
|
||||||
cmsWidgetName="AlertNoServiceWidget"
|
|
||||||
alertClass="alert-danger"
|
|
||||||
v-bind:isDismissible="false" />
|
|
||||||
|
|
||||||
<navbar
|
<navbar
|
||||||
ref="navbar"
|
ref="navbar"
|
||||||
cmsWidgetName="FunnelFooterWidget"
|
cmsWidgetName="FunnelFooterWidget"
|
||||||
|
|
@ -166,8 +158,6 @@ export default {
|
||||||
registrationZipCode: this.getRegistrationZipFromStore() ?? this.$route.query.zipcode,
|
registrationZipCode: this.getRegistrationZipFromStore() ?? this.$route.query.zipcode,
|
||||||
emailOrSms: this.getEmailOrSmsFromStore(),
|
emailOrSms: this.getEmailOrSmsFromStore(),
|
||||||
serviceZipCode: this.getServiceZipFromStore(),
|
serviceZipCode: this.getServiceZipFromStore(),
|
||||||
carId: this.getCarIdfromStore(),
|
|
||||||
isHeavyTruck: this.getIsVehicleHeavyTruckFromStore(),
|
|
||||||
displayNonServiceableZipAlert: false,
|
displayNonServiceableZipAlert: false,
|
||||||
displayVinNotFoundAlert: false,
|
displayVinNotFoundAlert: false,
|
||||||
displayMatchedDifferentVehicleAlert: false,
|
displayMatchedDifferentVehicleAlert: false,
|
||||||
|
|
@ -178,7 +168,6 @@ export default {
|
||||||
displayInvalidZipAlert: false,
|
displayInvalidZipAlert: false,
|
||||||
showServiceZipField: this.getServiceZipFromStore(),
|
showServiceZipField: this.getServiceZipFromStore(),
|
||||||
isZipServiceable: false,
|
isZipServiceable: false,
|
||||||
displayNoServiceAlert: false,
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|
@ -211,19 +200,6 @@ export default {
|
||||||
getServiceZipFromStore() {
|
getServiceZipFromStore() {
|
||||||
return this.$store.getters.order.serviceLocation.zipCode;
|
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 },
|
|
||||||
"license-plate-lookup"
|
|
||||||
);
|
|
||||||
},
|
|
||||||
async forwardButtonAction() {
|
async forwardButtonAction() {
|
||||||
this.resetWarningsAndErrors();
|
this.resetWarningsAndErrors();
|
||||||
|
|
||||||
|
|
@ -281,17 +257,6 @@ export default {
|
||||||
this.displayInvalidZipAlert = true;
|
this.displayInvalidZipAlert = true;
|
||||||
return this.$refs.navbar.removeLoader();
|
return this.$refs.navbar.removeLoader();
|
||||||
}
|
}
|
||||||
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();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check if the CarId has changed.
|
// Check if the CarId has changed.
|
||||||
this.isCarIdDifferent =
|
this.isCarIdDifferent =
|
||||||
vinLookup.data.vehicle.carId !== this.$store.getters.vehicle.carId;
|
vinLookup.data.vehicle.carId !== this.$store.getters.vehicle.carId;
|
||||||
|
|
@ -406,7 +371,6 @@ export default {
|
||||||
this.displayMatchedDifferentVehicleAlert = false;
|
this.displayMatchedDifferentVehicleAlert = false;
|
||||||
this.displayVinLookupByHomeAddressNotAllowedAlert = false;
|
this.displayVinLookupByHomeAddressNotAllowedAlert = false;
|
||||||
this.displayInvalidZipAlert = false;
|
this.displayInvalidZipAlert = false;
|
||||||
this.displayNoServiceAlert = false;
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
|
@ -451,7 +415,6 @@ export default {
|
||||||
serviceZipCode() {
|
serviceZipCode() {
|
||||||
// If they modify the service zip code, then hide the error message.
|
// If they modify the service zip code, then hide the error message.
|
||||||
this.displayNonServiceableZipAlert = false;
|
this.displayNonServiceableZipAlert = false;
|
||||||
this.displayNoServiceAlert = false;
|
|
||||||
this.$refs.navbar.updateButtonText(
|
this.$refs.navbar.updateButtonText(
|
||||||
this.getCmsContent("FunnelFooterWidget", "ForwardButtonText")
|
this.getCmsContent("FunnelFooterWidget", "ForwardButtonText")
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -415,33 +415,6 @@ describe("service-zip.vue", () => {
|
||||||
expect(wrapper.vm.displayInvalidZipAlert).toBe(false);
|
expect(wrapper.vm.displayInvalidZipAlert).toBe(false);
|
||||||
expect(wrapper.vm.displayNonServiceableZipAlert).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);
|
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;
|
return wrapper;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -47,18 +47,10 @@
|
||||||
v-if="displayNonServiceableZipAlert"
|
v-if="displayNonServiceableZipAlert"
|
||||||
alertClass="alert-danger" />
|
alertClass="alert-danger" />
|
||||||
|
|
||||||
<alert
|
|
||||||
ref="AlertNoService"
|
|
||||||
v-if="displayNoServiceAlert"
|
|
||||||
class="my-4"
|
|
||||||
cmsWidgetName="AlertNoServiceWidget"
|
|
||||||
alertClass="alert-danger"
|
|
||||||
v-bind:isDismissible="false" />
|
|
||||||
|
|
||||||
<navbar
|
<navbar
|
||||||
cmsWidgetName="FunnelFooterWidget"
|
cmsWidgetName="FunnelFooterWidget"
|
||||||
ref="navbar"
|
ref="navbar"
|
||||||
:isForwardActionDisabled="!meta.valid || displayNoServiceAlert"
|
:isForwardActionDisabled="!meta.valid"
|
||||||
@back-clicked="backButtonAction"
|
@back-clicked="backButtonAction"
|
||||||
@ForwardClicked="forwardButtonAction" />
|
@ForwardClicked="forwardButtonAction" />
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -118,11 +110,8 @@ export default {
|
||||||
return {
|
return {
|
||||||
serviceZipCode: this.getZipFromStore() ?? this.$route.query.zipcode,
|
serviceZipCode: this.getZipFromStore() ?? this.$route.query.zipcode,
|
||||||
emailOrSms: this.getEmailOrSmsFromStore(),
|
emailOrSms: this.getEmailOrSmsFromStore(),
|
||||||
carId: this.getCarIdfromStore(),
|
|
||||||
isHeavyTruck: this.getIsVehicleHeavyTruckFromStore(),
|
|
||||||
displayInvalidZipAlert: false,
|
displayInvalidZipAlert: false,
|
||||||
displayNonServiceableZipAlert: false,
|
displayNonServiceableZipAlert: false,
|
||||||
displayNoServiceAlert: false,
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
@ -195,19 +184,6 @@ export default {
|
||||||
arePagePrerequisitesValid() {
|
arePagePrerequisitesValid() {
|
||||||
return store.getters.damage.isRepair || store.getters.damage.glassToReplace?.length > 0;
|
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() {
|
async backButtonAction() {
|
||||||
const skipVin = await skipVinLookup();
|
const skipVin = await skipVinLookup();
|
||||||
// route to move backwards
|
// route to move backwards
|
||||||
|
|
@ -276,16 +252,6 @@ export default {
|
||||||
return this.$refs.navbar.removeLoader();
|
return this.$refs.navbar.removeLoader();
|
||||||
}
|
}
|
||||||
this.displayNonServiceableZipAlert = false;
|
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 payment = this.$store.getters.payment;
|
||||||
const policy = this.$store.getters.policy;
|
const policy = this.$store.getters.policy;
|
||||||
|
|
@ -343,7 +309,6 @@ export default {
|
||||||
watch: {
|
watch: {
|
||||||
serviceZipCode() {
|
serviceZipCode() {
|
||||||
this.displayNonServiceableZipAlert = false;
|
this.displayNonServiceableZipAlert = false;
|
||||||
this.displayNoServiceAlert = false;
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
|
|
|
||||||
|
|
@ -258,39 +258,6 @@ describe("vin-lookup.vue", () => {
|
||||||
// Assert
|
// Assert
|
||||||
expect(wrapper.findAllComponents({ name: "alert" }).length).toBe(1);
|
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", () => {
|
describe("getVinFromImage", () => {
|
||||||
|
|
|
||||||
|
|
@ -71,8 +71,7 @@
|
||||||
vinPopulatedOnPageLoad &&
|
vinPopulatedOnPageLoad &&
|
||||||
isInsuranceVerified &&
|
isInsuranceVerified &&
|
||||||
!displayInvalidZipAlert &&
|
!displayInvalidZipAlert &&
|
||||||
!displayNonServiceableZipAlert &&
|
!displayNonServiceableZipAlert
|
||||||
!displayNoServiceAlert
|
|
||||||
"
|
"
|
||||||
alertClass="alert-success" />
|
alertClass="alert-success" />
|
||||||
|
|
||||||
|
|
@ -108,23 +107,14 @@
|
||||||
vinPopulatedOnPageLoad &&
|
vinPopulatedOnPageLoad &&
|
||||||
!isInsuranceVerified &&
|
!isInsuranceVerified &&
|
||||||
!displayInvalidZipAlert &&
|
!displayInvalidZipAlert &&
|
||||||
!displayNonServiceableZipAlert &&
|
!displayNonServiceableZipAlert
|
||||||
!displayNoServiceAlert
|
|
||||||
"
|
"
|
||||||
alertClass="alert-success" />
|
alertClass="alert-success" />
|
||||||
|
|
||||||
<alert
|
|
||||||
ref="AlertNoService"
|
|
||||||
v-if="displayNoServiceAlert"
|
|
||||||
class="my-4"
|
|
||||||
cmsWidgetName="AlertNoServiceWidget"
|
|
||||||
alertClass="alert-danger"
|
|
||||||
v-bind:isDismissible="false" />
|
|
||||||
|
|
||||||
<navbar
|
<navbar
|
||||||
cmsWidgetName="FunnelFooterWidget"
|
cmsWidgetName="FunnelFooterWidget"
|
||||||
ref="navbar"
|
ref="navbar"
|
||||||
:isForwardActionDisabled="!meta.valid || displayNoServiceAlert"
|
:isForwardActionDisabled="!meta.valid"
|
||||||
@back-clicked="backButtonAction"
|
@back-clicked="backButtonAction"
|
||||||
@ForwardClicked="forwardButtonAction" />
|
@ForwardClicked="forwardButtonAction" />
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -207,8 +197,6 @@ export default {
|
||||||
vin: this.getVinFromStore(),
|
vin: this.getVinFromStore(),
|
||||||
serviceZipCode: this.getZipFromStore() ?? this.$route.query.zipcode,
|
serviceZipCode: this.getZipFromStore() ?? this.$route.query.zipcode,
|
||||||
emailOrSms: this.getEmailOrSmsFromStore(),
|
emailOrSms: this.getEmailOrSmsFromStore(),
|
||||||
carId: this.getCarIdfromStore(),
|
|
||||||
isHeavyTruck: this.getIsVehicleHeavyTruckFromStore(),
|
|
||||||
isCarIdDifferent: false,
|
isCarIdDifferent: false,
|
||||||
customAlertData: {},
|
customAlertData: {},
|
||||||
previouslyEnteredCarId: "",
|
previouslyEnteredCarId: "",
|
||||||
|
|
@ -219,7 +207,6 @@ export default {
|
||||||
displayVinNotFoundAlert: false,
|
displayVinNotFoundAlert: false,
|
||||||
displayMatchedDifferentVehicleAlert: false,
|
displayMatchedDifferentVehicleAlert: false,
|
||||||
displayVinScanFailedAlert: false,
|
displayVinScanFailedAlert: false,
|
||||||
displayNoServiceAlert: false,
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|
@ -235,12 +222,6 @@ export default {
|
||||||
getZipFromStore() {
|
getZipFromStore() {
|
||||||
return this.$store.getters.order.serviceLocation.zipCode;
|
return this.$store.getters.order.serviceLocation.zipCode;
|
||||||
},
|
},
|
||||||
getCarIdfromStore() {
|
|
||||||
return store.getters.vehicle.carId;
|
|
||||||
},
|
|
||||||
getIsVehicleHeavyTruckFromStore() {
|
|
||||||
return store.getters.isHeavyTruckVehicle;
|
|
||||||
},
|
|
||||||
attachCustomEvents() {
|
attachCustomEvents() {
|
||||||
this.prependActionToMethod(this, this.forwardButtonAction, () => {
|
this.prependActionToMethod(this, this.forwardButtonAction, () => {
|
||||||
this.pushEventToGA(
|
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() {
|
async forwardButtonAction() {
|
||||||
this.resetAlerts();
|
this.resetAlerts();
|
||||||
|
|
||||||
|
|
@ -303,18 +277,6 @@ export default {
|
||||||
return this.$refs.navbar.removeLoader();
|
return this.$refs.navbar.removeLoader();
|
||||||
}
|
}
|
||||||
this.displayInvalidZipAlert = false;
|
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 either lookup fails, remove the loader and stop processing the page.
|
||||||
if (!resultMap.vehicleLookupResponse || !resultMap.zipCodeData.isServiceable) {
|
if (!resultMap.vehicleLookupResponse || !resultMap.zipCodeData.isServiceable) {
|
||||||
// If the vehicle result is undefined, the vin entered was invalid.
|
// 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) {
|
if (!this.emailOrSms) {
|
||||||
await this.dispatchStoreAction(storeActions.SAVE_PHONE_NUMBER, "", false);
|
await this.dispatchStoreAction(storeActions.SAVE_PHONE_NUMBER, "", false);
|
||||||
await this.dispatchStoreAction(storeActions.SAVE_EMAIL, "", false);
|
await this.dispatchStoreAction(storeActions.SAVE_EMAIL, "", false);
|
||||||
|
|
@ -522,7 +474,6 @@ export default {
|
||||||
this.displayInvalidZipAlert = false;
|
this.displayInvalidZipAlert = false;
|
||||||
this.displayVinNotFoundAlert = false;
|
this.displayVinNotFoundAlert = false;
|
||||||
this.displayVinScanFailedAlert = false;
|
this.displayVinScanFailedAlert = false;
|
||||||
this.displayNoServiceAlert = false;
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
|
@ -599,7 +550,6 @@ export default {
|
||||||
},
|
},
|
||||||
serviceZipCode() {
|
serviceZipCode() {
|
||||||
this.displayNonServiceableZipAlert = false;
|
this.displayNonServiceableZipAlert = false;
|
||||||
this.displayNoServiceAlert = false;
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue