unit tests for license-plate-lookup
This commit is contained in:
parent
572a2f73c2
commit
55a63e6683
1 changed files with 130 additions and 26 deletions
|
|
@ -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,
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue