diff options
Diffstat (limited to 'spec/javascripts/notebook/cells/markdown_spec.js')
-rw-r--r-- | spec/javascripts/notebook/cells/markdown_spec.js | 105 |
1 files changed, 0 insertions, 105 deletions
diff --git a/spec/javascripts/notebook/cells/markdown_spec.js b/spec/javascripts/notebook/cells/markdown_spec.js deleted file mode 100644 index 07b18d97cd9..00000000000 --- a/spec/javascripts/notebook/cells/markdown_spec.js +++ /dev/null @@ -1,105 +0,0 @@ -import Vue from 'vue'; -import katex from 'katex'; -import MarkdownComponent from '~/notebook/cells/markdown.vue'; - -const Component = Vue.extend(MarkdownComponent); - -window.katex = katex; - -describe('Markdown component', () => { - let vm; - let cell; - let json; - - beforeEach(done => { - json = getJSONFixture('blob/notebook/basic.json'); - - // eslint-disable-next-line prefer-destructuring - cell = json.cells[1]; - - vm = new Component({ - propsData: { - cell, - }, - }); - vm.$mount(); - - setTimeout(() => { - done(); - }); - }); - - it('does not render promot', () => { - expect(vm.$el.querySelector('.prompt span')).toBeNull(); - }); - - it('does not render the markdown text', () => { - expect(vm.$el.querySelector('.markdown').innerHTML.trim()).not.toEqual(cell.source.join('')); - }); - - it('renders the markdown HTML', () => { - expect(vm.$el.querySelector('.markdown h1')).not.toBeNull(); - }); - - it('sanitizes output', done => { - Object.assign(cell, { - source: [ - '[XSS](data:text/html;base64,PHNjcmlwdD5hbGVydChkb2N1bWVudC5kb21haW4pPC9zY3JpcHQ+Cg==)\n', - ], - }); - - Vue.nextTick(() => { - expect(vm.$el.querySelector('a').getAttribute('href')).toBeNull(); - - done(); - }); - }); - - describe('katex', () => { - beforeEach(() => { - json = getJSONFixture('blob/notebook/math.json'); - }); - - it('renders multi-line katex', done => { - vm = new Component({ - propsData: { - cell: json.cells[0], - }, - }).$mount(); - - Vue.nextTick(() => { - expect(vm.$el.querySelector('.katex')).not.toBeNull(); - - done(); - }); - }); - - it('renders inline katex', done => { - vm = new Component({ - propsData: { - cell: json.cells[1], - }, - }).$mount(); - - Vue.nextTick(() => { - expect(vm.$el.querySelector('p:first-child .katex')).not.toBeNull(); - - done(); - }); - }); - - it('renders multiple inline katex', done => { - vm = new Component({ - propsData: { - cell: json.cells[1], - }, - }).$mount(); - - Vue.nextTick(() => { - expect(vm.$el.querySelectorAll('p:nth-child(2) .katex').length).toBe(4); - - done(); - }); - }); - }); -}); |