commit
This commit is contained in:
parent
4ad055afa9
commit
8b03a40f7a
1 changed files with 74 additions and 39 deletions
|
|
@ -5,9 +5,8 @@ import policyHolderDetails from "@/layouts/policy-holder-details/policy-holder-d
|
||||||
import { shallowMount } from '@vue/test-utils';
|
import { shallowMount } from '@vue/test-utils';
|
||||||
import { settleAllPromises } from "@/helpers/layout-helper.js";
|
import { settleAllPromises } from "@/helpers/layout-helper.js";
|
||||||
import { fetchCmsContentForPage } from "@/helpers/cms-content-helper";
|
import { fetchCmsContentForPage } from "@/helpers/cms-content-helper";
|
||||||
import baseMixin from "@/mixins/base-mixin.js";
|
|
||||||
import { getMountOptions } from "@/helpers/unit-test-helper.js";
|
import { getMountOptions } from "@/helpers/unit-test-helper.js";
|
||||||
import { applicationConfig } from "@/constants/application-config";
|
|
||||||
|
|
||||||
// Mock our module for promises.
|
// Mock our module for promises.
|
||||||
jest.mock("@/helpers/layout-helper.js", () => ({
|
jest.mock("@/helpers/layout-helper.js", () => ({
|
||||||
|
|
@ -21,7 +20,7 @@ jest.mock("@/helpers/cms-content-helper", () => ({
|
||||||
|
|
||||||
|
|
||||||
describe("policy-holder-details.vue", () => {
|
describe("policy-holder-details.vue", () => {
|
||||||
test("Should render policy-holder-details sub-components (policy holder first name, last name, street address, damageCause etc.)", async () => {
|
test("Should render policy-holder-details sub-components (policy holder first name, last name, street address etc.)", async () => {
|
||||||
// Arrange
|
// Arrange
|
||||||
const { wrapper } = setupMocks({});
|
const { wrapper } = setupMocks({});
|
||||||
// Act
|
// Act
|
||||||
|
|
@ -36,46 +35,82 @@ describe("policy-holder-details.vue", () => {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
function setupMocks({
|
describe("navigation", () => {
|
||||||
pageHeaderWidgetHeaderText = {},
|
test("if the back button is clicked, navigate back", async () => {
|
||||||
pageFooterWidgetCmsContent = {},
|
// Arrange
|
||||||
mountOptionsMockData = {},
|
const { wrapper } = setupMocks({
|
||||||
}) {
|
});
|
||||||
//Mock api responses
|
|
||||||
|
// Act
|
||||||
|
await wrapper.vm.backButtonAction();
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
expect(wrapper.vm.$router.navigate).toHaveBeenCalled();
|
||||||
|
});
|
||||||
|
|
||||||
|
test("if the car entered matches one of the vehicles found navigate forward", async () => {
|
||||||
|
// Arrange
|
||||||
|
const mockRegistrationAddress = {
|
||||||
|
streetAddress: "1234 Main St",
|
||||||
|
city: "Columbus",
|
||||||
|
state: "OH",
|
||||||
|
zipCode: "43215",
|
||||||
|
};
|
||||||
|
|
||||||
|
const { wrapper } = setupMocks();
|
||||||
|
|
||||||
|
await wrapper.setData({
|
||||||
|
firstName: "KK",
|
||||||
|
lastName:"KK",
|
||||||
|
customerQuestions: {
|
||||||
|
addressQuestions: mockRegistrationAddress,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
wrapper.vm.navigateForward = jest.fn();
|
||||||
|
|
||||||
|
// Act
|
||||||
|
await wrapper.vm.forwardButtonAction();
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
expect(wrapper.vm.navigateForward).toHaveBeenCalled();
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
function setupMocks()
|
||||||
|
{
|
||||||
|
const wrapper = shallowMount(
|
||||||
|
policyHolderDetails,
|
||||||
|
getMountOptions({
|
||||||
|
router: {
|
||||||
|
navigate: jest.fn(),
|
||||||
|
},
|
||||||
|
mainStore: {
|
||||||
|
order: {
|
||||||
|
customer: {
|
||||||
|
emailAddress: "test@test.com",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
})
|
||||||
|
);
|
||||||
|
|
||||||
const apiResponses = {
|
const apiResponses = {
|
||||||
cmsContent: {
|
|
||||||
SiteSubHeaderWidget: pageHeaderWidgetHeaderText,
|
|
||||||
VehicleBannerWidget: {
|
|
||||||
GenericVehicleImage:
|
|
||||||
`${applicationConfig.ISS_DEV_CMS_DOMAIN}/images/default-source/default-album/blurred-image.jpg`,
|
|
||||||
},
|
|
||||||
SiteHeaderWidget: {
|
|
||||||
LogoImage:
|
|
||||||
`${applicationConfig.ISS_DEV_CMS_DOMAIN}/images/default-source/default-album/logos/insuranceLogo.jpg`,
|
|
||||||
},
|
|
||||||
SiteFooterWidget: pageFooterWidgetCmsContent,
|
|
||||||
|
|
||||||
},
|
|
||||||
};
|
};
|
||||||
|
|
||||||
mountOptionsMockData = {
|
settleAllPromises.mockImplementation(() => apiResponses);
|
||||||
...mountOptionsMockData,
|
|
||||||
router: {
|
|
||||||
navigate: jest.fn(),
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
const apiPromise = Promise.resolve(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();
|
||||||
|
wrapper.vm.$refs.siteFooter.disableForwardButton = jest.fn();
|
||||||
|
wrapper.vm.$refs.siteFooter.enableForwardAction = jest.fn();
|
||||||
|
|
||||||
settleAllPromises.mockImplementation(() => apiPromise);
|
return { wrapper };
|
||||||
fetchCmsContentForPage.mockImplementation(() => Promise.resolve());
|
|
||||||
|
|
||||||
const mountOptions = getMountOptions(mountOptionsMockData);
|
|
||||||
|
|
||||||
const wrapper = shallowMount(policyHolderDetails, mountOptions);
|
|
||||||
|
|
||||||
wrapper.vm.setCmsContent = baseMixin.methods.setCmsContent;
|
|
||||||
|
|
||||||
return { wrapper, apiPromise };
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue