EOD commit - updates to unit tests

This commit is contained in:
Kroell 2023-02-01 16:50:41 -05:00
parent 4ddb9b6047
commit 78fa90a6cf
2 changed files with 171 additions and 1 deletions

View file

@ -58,7 +58,6 @@ const mockMixin = {
function setupMocks({
modelValueProp = "TESTCAR",
cmsQuestionText = "CMS text goes here",
dataFromStoreApi = [],
}) {
const mountOptions = getMountOptions();

View file

@ -0,0 +1,171 @@
import addressVehicles from "@/layouts/address-vehicles/address-vehicles";
import { settleAllPromises } from "@/helpers/layout-helper.js";
import { shallowMount } from "@vue/test-utils";
import { getMountOptions } from "@/helpers/unit-test-helper.js";
import { useMainStore } from "@/store";
jest.mock("@/helpers/damage-helper", () => ({
isGlassAvailableForCarId: jest.fn().mockImplementation(() => true),
getDamageString: jest.fn(),
}));
// Mock our module for promises.
jest.mock("@/helpers/layout-helper.js", () => ({
settleAllPromises: jest.fn(),
}));
// Mock fetchCmsContentForPage
jest.mock("@/helpers/cms-content-helper", () => ({
fetchCmsContentForPage: jest.fn(),
}));
describe("addressVehicles.vue", () => {
test("Should navigate to CLICKED_BACK if backButtonAction is run", async () => {
// Arrange
const { wrapper } = setupMocks({});
wrapper.vm.$router.navigate = jest.fn();
// Act
await wrapper.setData({
selectedVehicleVin: "5NMS3CADXLH233004",
});
wrapper.vm.backButtonAction();
//Assert
expect(wrapper.vm.$router.navigate).toBeCalled();
wrapper.unmount();
});
// test("Should return true for valid page requisites if carId / zipCode / emailAddress / pageData exists", async () => {
// // Arrange
// const { wrapper } = setupMocks({});
// useMainStore().order.vehicle.carId = "CR00000395";
// useMainStore().order.serviceLocation.zipCode = "43210";
// useMainStore().order.customer.emailAddress = "testemail@email.com";
// // Act
// addressVehicles.beforeRouteEnter.call(
// wrapper.vm,
// { query: { issPage: "address-vehicles" } },
// undefined,
// (c) => c(wrapper.vm)
// );
// let arePagePrerequisitesValid = wrapper.vm.arePagePrerequisitesValid();
// // Assert
// expect(arePagePrerequisitesValid).toBe(true);
// });
// test("Should return false for valid page requisites if carId is missing", async () => {
// // Arrange
// const { wrapper } = setupMocks({});
// // Act
// store.commit(storeMutations.UPDATE_CAR_ID, null);
// const result = wrapper.vm.arePagePrerequisitesValid();
// //Assert
// expect(result).toBe(false);
// wrapper.unmount();
// });
});
function setupMocks({
// isZipValid = true,
// isZipServiceable = true,
// lookupVinByPlateResponse,
// partsOrQuestions = [],
vehicle = {},
vin = null,
// carId = "C0000",
vinLookupResponseError = null,
route = null,
carId = "C0000",
zipCode = "12345",
emailAddress = "test@test.com"
}) {
// useMainStore().validateZip = jest.fn().mockImplementation(() => {
// return Promise.resolve({
// data: {
// isValid: isZipValid,
// isServiceable: isZipServiceable,
// },
// })
// });
// useMainStore().lookupVinByPlate = jest.fn().mockImplementation(() => {
// return Promise.resolve({
// data: lookupVinByPlateResponse
// ? lookupVinByPlateResponse : {
// vin: "TEST_VIN",
// vehicle: {
// carId: "CARID"
// },
// },
// })
// });
// useMainStore().getPartsOrQuestions = jest.fn().mockImplementation(() => {
// return Promise.resolve({
// data: {
// partsOrQuestions: partsOrQuestions,
// },
// })
// });
const wrapper = shallowMount(
addressVehicles,
getMountOptions({
route: route ? route : undefined,
router: {
navigate: jest.fn(),
},
mainStore: {
order: {
vehicle: {
carId: carId,
},
serviceLocation: {
zipCode: zipCode,
},
customer: {
emailAddress: emailAddress,
}
},
applicationUser: {
pageData: "address-vehicles",
},
},
})
);
const apiResponses = {
// serviceZipValidationResponse: {
// isValid: isZipValid,
// isServiceable: isZipServiceable,
// },
vinLookupResponse: {
vin: vin,
vehicle: vehicle,
error: vinLookupResponseError,
},
};
settleAllPromises.mockImplementation(() => apiResponses);
wrapper.vm.getCmsContent = jest.fn().mockImplementation(() => "");
wrapper.vm.setCmsContent = jest.fn();
wrapper.vm.$refs.siteFooter.updateButtonText = jest.fn();
wrapper.vm.$refs.siteFooter.removeLoader = jest.fn();
return { wrapper };
}