import { shallowMount } from "@vue/test-utils"; import TextBlock from "./text-block"; describe("modal.vue", () => { it("Should display 'Text' when 'Text' is defined in the CMS", async () => { // Act const wrapper = shallowMount(TextBlock, { mixins: [mockMixin], }); expect(wrapper.html()).toEqual(expect.stringContaining(mockCmsContent["Text"])); }); it("Should display the custom text when it is passed in", async () => { // Act const wrapper = shallowMount(TextBlock, { mixins: [mockMixin], props: { customText: "customText", }, }); expect(wrapper.html()).toEqual(expect.stringContaining("customText")); }); it("Should contain the typeStyle class as defined by the prop", async () => { // Act const wrapper = shallowMount(TextBlock, { mixins: [mockMixin], propsData: mockProps, }); expect(wrapper.html()).toEqual(expect.stringContaining(mockProps["typeStyle"])); }); it("Should contain the justifyText class as defined by the prop", async () => { // Act const wrapper = shallowMount(TextBlock, { mixins: [mockMixin], propsData: mockProps, }); expect(wrapper.html()).toEqual(expect.stringContaining(mockProps["justifyText"])); }); it("Should contain the fontWeight class as defined by the prop", async () => { // Act const wrapper = shallowMount(TextBlock, { mixins: [mockMixin], propsData: mockProps, }); expect(wrapper.html()).toEqual(expect.stringContaining(mockProps["fontWeight"])); }); }); /////////////// // Constants // /////////////// const mockMixin = { methods: { getCmsContent: jest.fn((widgetName, cmsFieldName) => { return mockCmsContent[cmsFieldName]; }), }, }; const mockProps = { fontWeight: "mockFontWeight", typeStyle: "mockTypeStyle", justifyText: "mockJustifyText", }; const mockCmsContent = { Text: "Sample text here.", };