unit tests for license-plate-lookup

This commit is contained in:
Kroell 2023-01-18 16:25:52 -05:00
parent 572a2f73c2
commit 55a63e6683

View file

@ -27,7 +27,7 @@ jest.mock("@/helpers/cms-content-helper", () => ({
describe("license-plate-lookup.vue", () => {
describe ("page level alerts", () => {
test("License plate matches a different vehicle, display MatchedDifferentVehicleAlert", async () => {
test("If license plate matches a different vehicle, display MatchedDifferentVehicleAlert", async () => {
// Arrange
const mockRegistrationLicensePlate = {
licensePlate: "UTN990",
@ -35,7 +35,7 @@ describe("license-plate-lookup.vue", () => {
const { wrapper } = setupMocks({});
useMainStore().order.vehicle.carId = "C00000";
useMainStore().order.vehicle.carId = "TESTCARID";
await wrapper.setData({
licensePlate: mockRegistrationLicensePlate
@ -49,26 +49,31 @@ describe("license-plate-lookup.vue", () => {
true
);
});
})
// test("If no vehicles found, display VinNotFound alert", async () => {
// Arrange
// const mockRegistrationLicensePlate = {
// licensePlate: "",
// };
// const { wrapper } = setupMocks({});
// useMainStore().order.vehicle.carId = "TESTCARID";
// await wrapper.setData({
// licensePlate: mockRegistrationLicensePlate
// });
// wrapper.vm.navigateForward = jest.fn();
// Act
// await wrapper.vm.forwardButtonAction();
// Assert
// expect(wrapper.findComponent({ ref: "alertVinNotFound" }).isVisible()).toBe(true);
// });
});
describe ("navigation", () => {
test("Vehicle make set, arePagePrerequisitesValid should be true", () => {
// Arrange
const { wrapper } = setupMocks({});
useMainStore().order.vehicle.carId = "CR00000395";
// Act
licensePlateLookup.beforeRouteEnter.call(
wrapper.vm,
{ query: { issPage: "license-plate-lookup" } },
undefined,
(c) => c(wrapper.vm)
);
let arePagePrerequisitesValid = wrapper.vm.arePagePrerequisitesValid();
// Assert
expect(arePagePrerequisitesValid).toBe(true);
});
test("BackButtonAction triggers a router.navigate change", async () => {
//Arrange
const { wrapper, apiPromise } = setupMocks({
@ -89,7 +94,103 @@ describe("license-plate-lookup.vue", () => {
//Assert
expect(wrapper.vm.$router.navigate).toHaveBeenCalled();
})
});
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
const { wrapper } = setupMocks({});
await wrapper.setData({
isCarIdDifferent: true,
isSelectedGlassAvailableForVehicle: false,
});
useMainStore().order.vehicle.carId = "CARID";
let vehicleFound = {
carId: "C0000",
};
// Act
await wrapper.vm.navigateForward(vehicleFound);
// Assert
expect(wrapper.vm.$router.navigate).toHaveBeenCalledWith(
navigationScenarios.SELECTED_VIN_WITH_MISMATCHED_GLASS,
undefined,
{},
{ displayVehicleChangeAlert: true }
);
});
test("License plate found and matches entered vehicle => navigateForwardWithSingleCarMatch", async () => {
// Arrange
const vehicleFound = {
carId: "C0000",
};
const { wrapper } = setupMocks({});
wrapper.vm.navigateForwardWithSingleCarMatch = jest.fn();
useMainStore().order.vehicle.carId = "C0000";
// Act
wrapper.vm.navigateForward(vehicleFound);
// Assert
expect(wrapper.vm.navigateForwardWithSingleCarMatch).toHaveBeenCalledTimes(1);
});
test("navigateForwardWithSingleCarMatch should be called if isCarIdDifferent is false or isSelectedGlassAvailableForVehicle is true when navigateForward is called", async () => {
// Arrange
const { wrapper } = setupMocks({});
//Act
await wrapper.setData({
isCarIdDifferent: false,
});
wrapper.vm.getCmsContent = jest.fn().mockImplementation(() => {
return "";
});
wrapper.vm.navigateForwardWithSingleCarMatch = jest.fn();
await wrapper.vm.navigateForward();
//Assert
expect(wrapper.vm.navigateForwardWithSingleCarMatch).toHaveBeenCalled();
});
});
describe ("miscellaneous", () => {
test("Button Text should revert to initial value when registrationZip textfield has new text", async () => {
// Arrange
const { wrapper } = setupMocks({});
//Act
await wrapper.setData({
registrationZipCode: "55555",
});
wrapper.vm.getCmsContent = jest.fn();
await wrapper.vm.$nextTick();
//Assert
expect(wrapper.vm.$refs.siteFooter.updateButtonText).toHaveBeenCalled();
});
test("Vehicle make set, arePagePrerequisitesValid should be true", () => {
// Arrange
const { wrapper } = setupMocks({});
useMainStore().order.vehicle.carId = "CR00000395";
// Act
licensePlateLookup.beforeRouteEnter.call(
wrapper.vm,
{ query: { issPage: "license-plate-lookup" } },
undefined,
(c) => c(wrapper.vm)
);
let arePagePrerequisitesValid = wrapper.vm.arePagePrerequisitesValid();
// Assert
expect(arePagePrerequisitesValid).toBe(true);
});
});
});
@ -101,6 +202,8 @@ function setupMocks({
vehicle = {},
carId = "C0000",
route = null,
licensePlate = "TEST123",
licenseState = "ZZ",
})
{
useMainStore().validateZip = jest.fn().mockImplementation(() => {
@ -115,10 +218,9 @@ function setupMocks({
useMainStore().lookupVinByPlate = jest.fn().mockImplementation(() => {
return Promise.resolve({
data: lookupVinByPlateResponse
? lookupVinByPlateResponse
: {
licensePlate: "TEST1234",
licenseState: "ZZ"
? lookupVinByPlateResponse: {
licensePlate: licensePlate,
licenseState: licenseState,
},
})
});
@ -160,6 +262,8 @@ function setupMocks({
},
vinLookupResponse: {
vehicle: vehicle,
licensePlate: licensePlate,
licenseState: licenseState,
},
};