// Components import customerDetails from "@/layouts/customer-details/customer-details.vue"; // Supporting Files import { shallowMount } from "@vue/test-utils"; import { getMountOptions } from "@/helpers/unit-test-helper.js"; // Mock our module for promises. jest.mock("@/helpers/layout-helper.js", () => ({ settleAllPromises: jest.fn(), })); describe("customer-details.vue", () => { describe("navigation", () => { test("if the back button is clicked, navigate back", async () => { // Arrange const { wrapper } = setupMocks(); // Act await wrapper.vm.backButtonAction(); // Assert expect(wrapper.vm.$router.navigateWithoutSaving).toHaveBeenCalled(); }); test("if the continue button is clicked, navigate forward", async () => { // Arrange const { wrapper } = setupMocks(); // Act await wrapper.vm.forwardButtonAction(); // Assert expect(wrapper.vm.$router.navigateWithSaving).toHaveBeenCalled(); }); }); }); function setupMocks() { const wrapper = shallowMount( customerDetails, getMountOptions({ router: { navigate: jest.fn(), navigate: jest.fn(), navigateWithSaving: jest.fn(), navigateWithoutSaving: jest.fn(), }, }) ); return { wrapper }; }