import { mount } from '@vue/test-utils'; import crypto from 'crypto'; import contentGroupModal from '@/iss-components/content-group-modal/content-group-modal.vue'; global.crypto = crypto; const mockCmsContent = { HeaderText: 'Sample header text here.', SubheaderText: 'Sample subheader text here.', Image: 'https://www.sampleImage.sample', BodyText: 'Sample body text here.', FooterText: 'Sample footer text here.' }; const mockMixin = { methods: { getCmsContent: jest.fn((widgetName, cmsFieldName) => mockCmsContent[cmsFieldName]) } }; describe('content-group-modal.vue', () => { it('Should display header text when HeaderText is defined in the CMS', async () => { const wrapper = mount(contentGroupModal, { mixins: [mockMixin], props: { cmsWidgetName: 'test' }, attachTo: document.body }); expect(wrapper.html()).toEqual(expect.stringContaining(mockCmsContent.HeaderText)); }); it('Should display subheader text when SubheaderText is defined in the CMS', async () => { const wrapper = mount(contentGroupModal, { mixins: [mockMixin], props: { cmsWidgetName: 'test' }, attachTo: document.body }); expect(wrapper.html()).toEqual(expect.stringContaining(mockCmsContent.SubheaderText)); }); it('Should insert image url when Image is defined in the CMS', async () => { const wrapper = mount(contentGroupModal, { mixins: [mockMixin], props: { cmsWidgetName: 'test' }, attachTo: document.body }); expect(wrapper.html()).toEqual(expect.stringContaining(mockCmsContent.Image)); }); it('Should display body text when BodyText is defined in the CMS', async () => { const wrapper = mount(contentGroupModal, { mixins: [mockMixin], props: { cmsWidgetName: 'test' }, attachTo: document.body }); expect(wrapper.html()).toEqual(expect.stringContaining(mockCmsContent.BodyText)); }); });