diff options
Diffstat (limited to 'spec/javascripts/ide/components/jobs/detail_spec.js')
-rw-r--r-- | spec/javascripts/ide/components/jobs/detail_spec.js | 184 |
1 files changed, 0 insertions, 184 deletions
diff --git a/spec/javascripts/ide/components/jobs/detail_spec.js b/spec/javascripts/ide/components/jobs/detail_spec.js deleted file mode 100644 index a4e6b81acba..00000000000 --- a/spec/javascripts/ide/components/jobs/detail_spec.js +++ /dev/null @@ -1,184 +0,0 @@ -import Vue from 'vue'; -import JobDetail from '~/ide/components/jobs/detail.vue'; -import { createStore } from '~/ide/stores'; -import { createComponentWithStore } from '../../../helpers/vue_mount_component_helper'; -import { jobs } from '../../mock_data'; - -describe('IDE jobs detail view', () => { - const Component = Vue.extend(JobDetail); - let vm; - - beforeEach(() => { - const store = createStore(); - - store.state.pipelines.detailJob = { - ...jobs[0], - isLoading: true, - output: 'testing', - rawPath: `${gl.TEST_HOST}/raw`, - }; - - vm = createComponentWithStore(Component, store); - - spyOn(vm, 'fetchJobTrace').and.returnValue(Promise.resolve()); - - vm = vm.$mount(); - - spyOn(vm.$refs.buildTrace, 'scrollTo'); - }); - - afterEach(() => { - vm.$destroy(); - }); - - it('calls fetchJobTrace on mount', () => { - expect(vm.fetchJobTrace).toHaveBeenCalled(); - }); - - it('scrolls to bottom on mount', done => { - setTimeout(() => { - expect(vm.$refs.buildTrace.scrollTo).toHaveBeenCalled(); - - done(); - }); - }); - - it('renders job output', () => { - expect(vm.$el.querySelector('.bash').textContent).toContain('testing'); - }); - - it('renders empty message output', done => { - vm.$store.state.pipelines.detailJob.output = ''; - - vm.$nextTick(() => { - expect(vm.$el.querySelector('.bash').textContent).toContain('No messages were logged'); - - done(); - }); - }); - - it('renders loading icon', () => { - expect(vm.$el.querySelector('.build-loader-animation')).not.toBe(null); - expect(vm.$el.querySelector('.build-loader-animation').style.display).toBe(''); - }); - - it('hides output when loading', () => { - expect(vm.$el.querySelector('.bash')).not.toBe(null); - expect(vm.$el.querySelector('.bash').style.display).toBe('none'); - }); - - it('hide loading icon when isLoading is false', done => { - vm.$store.state.pipelines.detailJob.isLoading = false; - - vm.$nextTick(() => { - expect(vm.$el.querySelector('.build-loader-animation').style.display).toBe('none'); - - done(); - }); - }); - - it('resets detailJob when clicking header button', () => { - spyOn(vm, 'setDetailJob'); - - vm.$el.querySelector('.btn').click(); - - expect(vm.setDetailJob).toHaveBeenCalledWith(null); - }); - - it('renders raw path link', () => { - expect(vm.$el.querySelector('.controllers-buttons').getAttribute('href')).toBe( - `${gl.TEST_HOST}/raw`, - ); - }); - - describe('scroll buttons', () => { - it('triggers scrollDown when clicking down button', done => { - spyOn(vm, 'scrollDown'); - - vm.$el.querySelectorAll('.btn-scroll')[1].click(); - - vm.$nextTick(() => { - expect(vm.scrollDown).toHaveBeenCalled(); - - done(); - }); - }); - - it('triggers scrollUp when clicking up button', done => { - spyOn(vm, 'scrollUp'); - - vm.scrollPos = 1; - - vm.$nextTick() - .then(() => vm.$el.querySelector('.btn-scroll').click()) - .then(() => vm.$nextTick()) - .then(() => { - expect(vm.scrollUp).toHaveBeenCalled(); - }) - .then(done) - .catch(done.fail); - }); - }); - - describe('scrollDown', () => { - it('scrolls build trace to bottom', () => { - spyOnProperty(vm.$refs.buildTrace, 'scrollHeight').and.returnValue(1000); - - vm.scrollDown(); - - expect(vm.$refs.buildTrace.scrollTo).toHaveBeenCalledWith(0, 1000); - }); - }); - - describe('scrollUp', () => { - it('scrolls build trace to top', () => { - vm.scrollUp(); - - expect(vm.$refs.buildTrace.scrollTo).toHaveBeenCalledWith(0, 0); - }); - }); - - describe('scrollBuildLog', () => { - beforeEach(() => { - spyOnProperty(vm.$refs.buildTrace, 'offsetHeight').and.returnValue(100); - spyOnProperty(vm.$refs.buildTrace, 'scrollHeight').and.returnValue(200); - }); - - it('sets scrollPos to bottom when at the bottom', done => { - spyOnProperty(vm.$refs.buildTrace, 'scrollTop').and.returnValue(100); - - vm.scrollBuildLog(); - - setTimeout(() => { - expect(vm.scrollPos).toBe(1); - - done(); - }); - }); - - it('sets scrollPos to top when at the top', done => { - spyOnProperty(vm.$refs.buildTrace, 'scrollTop').and.returnValue(0); - vm.scrollPos = 1; - - vm.scrollBuildLog(); - - setTimeout(() => { - expect(vm.scrollPos).toBe(0); - - done(); - }); - }); - - it('resets scrollPos when not at top or bottom', done => { - spyOnProperty(vm.$refs.buildTrace, 'scrollTop').and.returnValue(10); - - vm.scrollBuildLog(); - - setTimeout(() => { - expect(vm.scrollPos).toBe(''); - - done(); - }); - }); - }); -}); |