diff options
Diffstat (limited to 'spec/frontend/pdf/index_spec.js')
-rw-r--r-- | spec/frontend/pdf/index_spec.js | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/spec/frontend/pdf/index_spec.js b/spec/frontend/pdf/index_spec.js new file mode 100644 index 00000000000..0d8caa28fd1 --- /dev/null +++ b/spec/frontend/pdf/index_spec.js @@ -0,0 +1,62 @@ +import Vue from 'vue'; + +import { FIXTURES_PATH } from 'spec/test_constants'; +import PDFLab from '~/pdf/index.vue'; + +jest.mock('pdfjs-dist/webpack', () => { + return { default: jest.requireActual('pdfjs-dist/build/pdf') }; +}); + +const pdf = `${FIXTURES_PATH}/blob/pdf/test.pdf`; + +const Component = Vue.extend(PDFLab); + +describe('PDF component', () => { + let vm; + + const checkLoaded = done => { + if (vm.loading) { + setTimeout(() => { + checkLoaded(done); + }, 100); + } else { + done(); + } + }; + + describe('without PDF data', () => { + beforeEach(done => { + vm = new Component({ + propsData: { + pdf: '', + }, + }); + + vm.$mount(); + + checkLoaded(done); + }); + + it('does not render', () => { + expect(vm.$el.tagName).toBeUndefined(); + }); + }); + + describe('with PDF data', () => { + beforeEach(done => { + vm = new Component({ + propsData: { + pdf, + }, + }); + + vm.$mount(); + + checkLoaded(done); + }); + + it('renders pdf component', () => { + expect(vm.$el.tagName).toBeDefined(); + }); + }); +}); |