diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-03-24 00:09:24 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-03-24 00:09:24 +0000 |
commit | 2711c26beaca6c3a5a3be4b65e01557faf0185b6 (patch) | |
tree | 25d0c2ddb47e87712044884f558a9104c686805f /spec/javascripts | |
parent | 8a7aaf86831d2a556578ae558a4fcab8bb659b20 (diff) | |
download | gitlab-ce-2711c26beaca6c3a5a3be4b65e01557faf0185b6.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/javascripts')
-rw-r--r-- | spec/javascripts/commit/pipelines/pipelines_spec.js | 261 |
1 files changed, 0 insertions, 261 deletions
diff --git a/spec/javascripts/commit/pipelines/pipelines_spec.js b/spec/javascripts/commit/pipelines/pipelines_spec.js deleted file mode 100644 index 29bdf05b8cf..00000000000 --- a/spec/javascripts/commit/pipelines/pipelines_spec.js +++ /dev/null @@ -1,261 +0,0 @@ -import Vue from 'vue'; -import MockAdapter from 'axios-mock-adapter'; -import mountComponent from 'spec/helpers/vue_mount_component_helper'; -import axios from '~/lib/utils/axios_utils'; -import Api from '~/api'; -import pipelinesTable from '~/commit/pipelines/pipelines_table.vue'; - -describe('Pipelines table in Commits and Merge requests', function() { - const jsonFixtureName = 'pipelines/pipelines.json'; - let pipeline; - let PipelinesTable; - let mock; - let vm; - const props = { - endpoint: 'endpoint.json', - helpPagePath: 'foo', - emptyStateSvgPath: 'foo', - errorStateSvgPath: 'foo', - autoDevopsHelpPath: 'foo', - }; - - preloadFixtures(jsonFixtureName); - - beforeEach(() => { - mock = new MockAdapter(axios); - - const { pipelines } = getJSONFixture(jsonFixtureName); - - PipelinesTable = Vue.extend(pipelinesTable); - pipeline = pipelines.find(p => p.user !== null && p.commit !== null); - }); - - afterEach(() => { - vm.$destroy(); - mock.restore(); - }); - - describe('successful request', () => { - describe('without pipelines', () => { - beforeEach(function() { - mock.onGet('endpoint.json').reply(200, []); - - vm = mountComponent(PipelinesTable, props); - }); - - it('should render the empty state', function(done) { - setTimeout(() => { - expect(vm.$el.querySelector('.empty-state')).toBeDefined(); - expect(vm.$el.querySelector('.realtime-loading')).toBe(null); - expect(vm.$el.querySelector('.js-pipelines-error-state')).toBe(null); - done(); - }, 0); - }); - }); - - describe('with pipelines', () => { - beforeEach(() => { - mock.onGet('endpoint.json').reply(200, [pipeline]); - vm = mountComponent(PipelinesTable, props); - }); - - it('should render a table with the received pipelines', done => { - setTimeout(() => { - expect(vm.$el.querySelectorAll('.ci-table .commit').length).toEqual(1); - expect(vm.$el.querySelector('.realtime-loading')).toBe(null); - expect(vm.$el.querySelector('.empty-state')).toBe(null); - expect(vm.$el.querySelector('.js-pipelines-error-state')).toBe(null); - done(); - }, 0); - }); - - describe('with pagination', () => { - it('should make an API request when using pagination', done => { - setTimeout(() => { - spyOn(vm, 'updateContent'); - - vm.store.state.pageInfo = { - page: 1, - total: 10, - perPage: 2, - nextPage: 2, - totalPages: 5, - }; - - vm.$nextTick(() => { - vm.$el.querySelector('.next-page-item').click(); - - expect(vm.updateContent).toHaveBeenCalledWith({ page: '2' }); - done(); - }); - }); - }); - }); - }); - - describe('pipeline badge counts', () => { - beforeEach(() => { - mock.onGet('endpoint.json').reply(200, [pipeline]); - }); - - it('should receive update-pipelines-count event', done => { - const element = document.createElement('div'); - document.body.appendChild(element); - - element.addEventListener('update-pipelines-count', event => { - expect(event.detail.pipelines).toEqual([pipeline]); - done(); - }); - - vm = mountComponent(PipelinesTable, props); - - element.appendChild(vm.$el); - }); - }); - }); - - describe('run pipeline button', () => { - let pipelineCopy; - - beforeEach(() => { - pipelineCopy = Object.assign({}, pipeline); - }); - - describe('when latest pipeline has detached flag and canRunPipeline is true', () => { - it('renders the run pipeline button', done => { - pipelineCopy.flags.detached_merge_request_pipeline = true; - pipelineCopy.flags.merge_request_pipeline = true; - - mock.onGet('endpoint.json').reply(200, [pipelineCopy]); - - vm = mountComponent( - PipelinesTable, - Object.assign({}, props, { - canRunPipeline: true, - }), - ); - - setTimeout(() => { - expect(vm.$el.querySelector('.js-run-mr-pipeline')).not.toBeNull(); - done(); - }); - }); - }); - - describe('when latest pipeline has detached flag and canRunPipeline is false', () => { - it('does not render the run pipeline button', done => { - pipelineCopy.flags.detached_merge_request_pipeline = true; - pipelineCopy.flags.merge_request_pipeline = true; - - mock.onGet('endpoint.json').reply(200, [pipelineCopy]); - - vm = mountComponent( - PipelinesTable, - Object.assign({}, props, { - canRunPipeline: false, - }), - ); - - setTimeout(() => { - expect(vm.$el.querySelector('.js-run-mr-pipeline')).toBeNull(); - done(); - }); - }); - }); - - describe('when latest pipeline does not have detached flag and canRunPipeline is true', () => { - it('does not render the run pipeline button', done => { - pipelineCopy.flags.detached_merge_request_pipeline = false; - pipelineCopy.flags.merge_request_pipeline = false; - - mock.onGet('endpoint.json').reply(200, [pipelineCopy]); - - vm = mountComponent( - PipelinesTable, - Object.assign({}, props, { - canRunPipeline: true, - }), - ); - - setTimeout(() => { - expect(vm.$el.querySelector('.js-run-mr-pipeline')).toBeNull(); - done(); - }); - }); - }); - - describe('when latest pipeline does not have detached flag and merge_request_pipeline is true', () => { - it('does not render the run pipeline button', done => { - pipelineCopy.flags.detached_merge_request_pipeline = false; - pipelineCopy.flags.merge_request_pipeline = true; - - mock.onGet('endpoint.json').reply(200, [pipelineCopy]); - - vm = mountComponent( - PipelinesTable, - Object.assign({}, props, { - canRunPipeline: false, - }), - ); - - setTimeout(() => { - expect(vm.$el.querySelector('.js-run-mr-pipeline')).toBeNull(); - done(); - }); - }); - }); - - describe('on click', () => { - beforeEach(() => { - pipelineCopy.flags.detached_merge_request_pipeline = true; - - mock.onGet('endpoint.json').reply(200, [pipelineCopy]); - - vm = mountComponent( - PipelinesTable, - Object.assign({}, props, { - canRunPipeline: true, - projectId: '5', - mergeRequestId: 3, - }), - ); - }); - - it('updates the loading state', done => { - spyOn(Api, 'postMergeRequestPipeline').and.returnValue(Promise.resolve()); - - setTimeout(() => { - vm.$el.querySelector('.js-run-mr-pipeline').click(); - - vm.$nextTick(() => { - expect(vm.state.isRunningMergeRequestPipeline).toBe(true); - - setTimeout(() => { - expect(vm.state.isRunningMergeRequestPipeline).toBe(false); - - done(); - }); - }); - }); - }); - }); - }); - - describe('unsuccessfull request', () => { - beforeEach(() => { - mock.onGet('endpoint.json').reply(500, []); - - vm = mountComponent(PipelinesTable, props); - }); - - it('should render error state', function(done) { - setTimeout(() => { - expect(vm.$el.querySelector('.js-pipelines-error-state')).toBeDefined(); - expect(vm.$el.querySelector('.realtime-loading')).toBe(null); - expect(vm.$el.querySelector('.js-empty-state')).toBe(null); - expect(vm.$el.querySelector('.ci-table')).toBe(null); - done(); - }, 0); - }); - }); -}); |