import { shallowMount } from '@vue/test-utils'; import CodeBlock from '~/vue_shared/components/code_block_highlighted.vue'; import waitForPromises from 'helpers/wait_for_promises'; describe('Code Block Highlighted', () => { let wrapper; const code = 'const foo = 1;'; const createComponent = (propsData = {}) => { wrapper = shallowMount(CodeBlock, { propsData }); }; afterEach(() => { wrapper.destroy(); }); it('renders highlighted code if language is supported', async () => { createComponent({ code, language: 'javascript' }); await waitForPromises(); expect(wrapper.element).toMatchInlineSnapshot(` const foo = 1 ; `); }); it("renders plain text if language isn't supported", async () => { createComponent({ code, language: 'foobar' }); await waitForPromises(); expect(wrapper.emitted('error')).toEqual([[expect.any(TypeError)]]); expect(wrapper.element).toMatchInlineSnapshot(` const foo = 1; `); }); });