91 lines
2.4 KiB
JavaScript
91 lines
2.4 KiB
JavaScript
// Components
|
|
import vehicle from "@/layouts/vehicle/vehicle.vue";
|
|
|
|
// Supporting files
|
|
import { nextTick } from "vue";
|
|
import { mount } from "@vue/test-utils";
|
|
|
|
describe("vehicle.vue", () => {
|
|
test('"Continue" button is enabled after YMMS is selected.', async () => {
|
|
const { wrapper } = setupMocks();
|
|
|
|
const continueButton = wrapper.get('[data-test-id="funnel-footer-main-button"]');
|
|
|
|
expect(continueButton.attributes()["aria-disabled"]).toBe("false");
|
|
});
|
|
|
|
test("arePagePrerequisitesValid should be true ", async () => {
|
|
//Arrange
|
|
const { wrapper } = setupMocks();
|
|
|
|
//Act
|
|
let arePagePrerequisitesValid = wrapper.vm.arePagePrerequisitesValid();
|
|
await nextTick();
|
|
|
|
//Assert
|
|
expect(arePagePrerequisitesValid).toBe(true);
|
|
});
|
|
});
|
|
|
|
describe("navigation", () => {
|
|
test("forwardButtonAction should trigger navigateForward", async () => {
|
|
// Arrange
|
|
const { wrapper } = setupMocks();
|
|
wrapper.vm.navigateForward = jest.fn();
|
|
|
|
// Act
|
|
await wrapper.vm.forwardButtonAction();
|
|
|
|
//Assert
|
|
expect(wrapper.vm.navigateForward).toHaveBeenCalled();
|
|
});
|
|
});
|
|
|
|
const FunnelFooterWidgetMockData = {
|
|
ForwardButtonText: "Continue",
|
|
};
|
|
|
|
function setupMocks() {
|
|
const mockRoute = {
|
|
query: {
|
|
fmgPage: "vehicle",
|
|
},
|
|
};
|
|
|
|
const mockRouter = {
|
|
navigate: jest.fn(),
|
|
};
|
|
|
|
const wrapper = mount(vehicle, {
|
|
global: {
|
|
mixins: [
|
|
{
|
|
methods: {
|
|
getCmsContent: jest.fn((cmsWidgetName, fieldName) => {
|
|
if (cmsWidgetName === "FunnelFooterWidget") {
|
|
if (fieldName === "ForwardButtonText") {
|
|
return FunnelFooterWidgetMockData.ForwardButtonText;
|
|
}
|
|
}
|
|
return "";
|
|
}),
|
|
getFooterInfoBoxHeight: jest.fn(() => 80),
|
|
},
|
|
},
|
|
],
|
|
|
|
mocks: {
|
|
$route: mockRoute,
|
|
$router: mockRouter,
|
|
},
|
|
|
|
stubs: {
|
|
FunnelHeader: true,
|
|
FunnelSubHeader: true,
|
|
VehicleBanner: true,
|
|
},
|
|
},
|
|
});
|
|
|
|
return { mockRoute, mockRouter, wrapper };
|
|
}
|