unit tests

This commit is contained in:
Kroell 2023-02-02 12:49:49 -05:00
parent 78fa90a6cf
commit 4d9d1623bf
2 changed files with 51 additions and 48 deletions

View file

@ -7,22 +7,23 @@ import { useMainStore } from "@/store";
jest.mock("@/helpers/damage-helper", () => ({ jest.mock("@/helpers/damage-helper", () => ({
isGlassAvailableForCarId: jest.fn().mockImplementation(() => true), isGlassAvailableForCarId: jest.fn().mockImplementation(() => true),
getDamageString: jest.fn(), getDamageString: jest.fn(),
})); }));
// Mock our module for promises. // Mock our module for promises.
jest.mock("@/helpers/layout-helper.js", () => ({ jest.mock("@/helpers/layout-helper.js", () => ({
settleAllPromises: jest.fn(), settleAllPromises: jest.fn(),
})); }));
// Mock fetchCmsContentForPage // Mock fetchCmsContentForPage
jest.mock("@/helpers/cms-content-helper", () => ({ jest.mock("@/helpers/cms-content-helper", () => ({
fetchCmsContentForPage: jest.fn(), fetchCmsContentForPage: jest.fn(),
})); }));
describe("addressVehicles.vue", () => { describe("addressVehicles.vue", () => {
test("Should navigate to CLICKED_BACK if backButtonAction is run", async () => { test("Should navigate to CLICKED_BACK if backButtonAction is run", async () => {
// Arrange // Arrange
const { wrapper } = setupMocks({}); const { wrapper } = setupMocks({});
wrapper.vm.$router.navigate = jest.fn(); wrapper.vm.$router.navigate = jest.fn();
// Act // Act
@ -37,30 +38,24 @@ describe("addressVehicles.vue", () => {
wrapper.unmount(); wrapper.unmount();
}); });
test("Should return true for valid page requisites if carId exists", async () => {
// Arrange
const { wrapper } = setupMocks({});
useMainStore().order.vehicle.carId = "CR00000395";
// Act
addressVehicles.beforeRouteEnter.call(
wrapper.vm,
{ query: { issPage: "address-vehicles" } },
undefined,
(c) => c(wrapper.vm)
);
let arePagePrerequisitesValid = wrapper.vm.arePagePrerequisitesValid();
// Assert
// test("Should return true for valid page requisites if carId / zipCode / emailAddress / pageData exists", async () => { expect(arePagePrerequisitesValid).toBe(true);
// // 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 () => { // test("Should return false for valid page requisites if carId is missing", async () => {
// // Arrange // // Arrange
@ -77,6 +72,26 @@ describe("addressVehicles.vue", () => {
// }); // });
}); });
//Mock props
const mockMixin = {
methods: {
getCmsContent: jest.fn((contentName) => {
if (contentName === "FoundMultipleVehicles") {
return "FoundMultipleVehiclesTestReturn";
}
if (contentName === "ProvideVinAlert") {
return "ProvideVinAlertTestReturn";
}
return null;
}),
},
computed: {
dynamicStrings() {
return { ROUTER_LINK: "routerLink:" };
},
},
};
function setupMocks({ function setupMocks({
// isZipValid = true, // isZipValid = true,
// isZipServiceable = true, // isZipServiceable = true,
@ -88,8 +103,6 @@ function setupMocks({
vinLookupResponseError = null, vinLookupResponseError = null,
route = null, route = null,
carId = "C0000", carId = "C0000",
zipCode = "12345",
emailAddress = "test@test.com"
}) { }) {
// useMainStore().validateZip = jest.fn().mockImplementation(() => { // useMainStore().validateZip = jest.fn().mockImplementation(() => {
// return Promise.resolve({ // return Promise.resolve({
@ -132,19 +145,9 @@ function setupMocks({
vehicle: { vehicle: {
carId: carId, carId: carId,
}, },
serviceLocation: {
zipCode: zipCode,
},
customer: {
emailAddress: emailAddress,
}
}, },
applicationUser: {
pageData: "address-vehicles",
},
}, },
mixins: [mockMixin],
}) })
); );

View file

@ -112,6 +112,11 @@ export default {
props: { props: {
validationRules: String, validationRules: String,
}, },
setup() {
const mainStore = useMainStore();
return { mainStore };
},
data() { data() {
return { return {
selectedVehicleVin: "", selectedVehicleVin: "",
@ -167,13 +172,8 @@ export default {
getRouterLinkRouteFromCopy, getRouterLinkRouteFromCopy,
getRouterLinkDisplayTextFromCopy, getRouterLinkDisplayTextFromCopy,
arePagePrerequisitesValid() { arePagePrerequisitesValid() {
if ( if (this.mainStore.order.vehicle.carId) {
useMainStore().order.vehicle.carId && return true;
useMainStore().order.serviceLocation.zipCode &&
useMainStore().order.customer.emailAddress &&
useMainStore().getters.pageData(issPageValues.ADDRESS_VEHICLES)
) {
return true;
} }
return false; return false;
}, },