DigitalConsumer.ISS/src/common-components/site-header/menu-modal/menu-modal.spec.js
Johan Gunawan fcd7aa7dec SSR-158
Modify link text.
Add CCPA icon. 
Modify components to match CF project.
2022-12-06 16:00:52 -05:00

67 lines
2.1 KiB
JavaScript

import { mount, shallowMount } from "@vue/test-utils";
import menuModal from "./menu-modal";
describe("menu-modal.vue", () => {
it("Should return text Footer Navigation", async () => {
// Act
const wrapper = shallowMount(menuModal);
// Assert
const footerModalLabel = wrapper.find("h5");
// Expect
expect(footerModalLabel.text()).toContain("Footer Navigation");
});
it("Should return footer text as Safelite Group", async () => {
// Act
const wrapper = shallowMount(menuModal);
// Assert
const modalFooter = wrapper.find("div.modal-footer");
// Expect
expect(modalFooter.text()).toContain("Safelite Group");
});
it("Should return Terms of use text link text", async () => {
// Act
const wrapper = shallowMount(menuModal);
// Expect
expect(wrapper.html()).toContain("Terms of use");
});
it('Should return "Your privacy choices" text link text', async () => {
// Act
const wrapper = mount(menuModal);
// Expect
expect(wrapper.html()).toContain("Your privacy choices");
});
test('Icon for link to "Privacy Policies" page is displayed with the correct alternate text', () => {
// NOTE: We need a way to target a specific <textLink> component so we can be sure that
// an icon is coming from a specific <textLink> component.
// That requires an additional prop in the <textLink> component. Will hold off on adding the prop
// until there is more clarity on how we handle shared components.
// For now the test is below is the best we can do.
// Arrange
const wrapper = mount(menuModal);
// Expect
const icon = wrapper.find('[data-id="ccpa-icon"]');
expect(icon.isVisible()).toBe(true);
expect(icon.attributes('alt')).toBe('Your privacy choices');
});
it("Should returnDo not sell my information text link text", async () => {
// Act
const wrapper = shallowMount(menuModal);
// Expect
expect(wrapper.html()).toContain("Do not sell my information");
});
});