Merge pull request #149 from Safelite/feature/SSR-233

Feature/ssr 233
This commit is contained in:
Kulbhushan Kaushik 2023-01-26 13:59:31 -05:00 committed by GitHub
commit eaa5b11d1d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -0,0 +1,116 @@
import policyHolderDetails from "@/layouts/policy-holder-details/policy-holder-details.vue";
// Supporting files
// Supporting files
import { shallowMount } from '@vue/test-utils';
import { settleAllPromises } from "@/helpers/layout-helper.js";
import { fetchCmsContentForPage } from "@/helpers/cms-content-helper";
import { getMountOptions } from "@/helpers/unit-test-helper.js";
// 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("policy-holder-details.vue", () => {
test("Should render policy-holder-details sub-components (policy holder first name, last name, street address etc.)", async () => {
// Arrange
const { wrapper } = setupMocks({});
// Act
const policyHolderFirstName = wrapper.findComponent({ ref: "policyHolderFirstName" });
const policyHolderLastName = wrapper.findComponent({ ref: "policyHolderLastName" });
const addressQuestions = wrapper.findComponent({ ref: "addressQuestions" });
// Assert
expect(policyHolderFirstName.exists()).toBe(true);
expect(policyHolderLastName.exists()).toBe(true);
expect(addressQuestions.exists()).toBe(true);
});
});
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.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 = {
};
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();
wrapper.vm.$refs.siteFooter.disableForwardButton = jest.fn();
wrapper.vm.$refs.siteFooter.enableForwardAction = jest.fn();
return { wrapper };
}