diff options
Diffstat (limited to 'spec/frontend/commit/pipelines/pipelines_spec.js')
-rw-r--r-- | spec/frontend/commit/pipelines/pipelines_spec.js | 75 |
1 files changed, 40 insertions, 35 deletions
diff --git a/spec/frontend/commit/pipelines/pipelines_spec.js b/spec/frontend/commit/pipelines/pipelines_spec.js index 86ae207e7b7..fdf3c2e85f3 100644 --- a/spec/frontend/commit/pipelines/pipelines_spec.js +++ b/spec/frontend/commit/pipelines/pipelines_spec.js @@ -121,14 +121,14 @@ describe('Pipelines table in Commits and Merge requests', () => { pipelineCopy = { ...pipeline }; }); - describe('when latest pipeline has detached flag and canRunPipeline is true', () => { + describe('when latest pipeline has detached flag', () => { 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, { ...props, canRunPipeline: true }); + vm = mountComponent(PipelinesTable, { ...props }); setImmediate(() => { expect(vm.$el.querySelector('.js-run-mr-pipeline')).not.toBeNull(); @@ -137,14 +137,14 @@ describe('Pipelines table in Commits and Merge requests', () => { }); }); - describe('when latest pipeline has detached flag and canRunPipeline is false', () => { + describe('when latest pipeline does not have detached flag', () => { it('does not render the run pipeline button', done => { - pipelineCopy.flags.detached_merge_request_pipeline = true; - pipelineCopy.flags.merge_request_pipeline = true; + pipelineCopy.flags.detached_merge_request_pipeline = false; + pipelineCopy.flags.merge_request_pipeline = false; mock.onGet('endpoint.json').reply(200, [pipelineCopy]); - vm = mountComponent(PipelinesTable, { ...props, canRunPipeline: false }); + vm = mountComponent(PipelinesTable, { ...props }); setImmediate(() => { expect(vm.$el.querySelector('.js-run-mr-pipeline')).toBeNull(); @@ -153,39 +153,47 @@ describe('Pipelines table in Commits and Merge requests', () => { }); }); - 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; + describe('on click', () => { + const findModal = () => + document.querySelector('#create-pipeline-for-fork-merge-request-modal'); - mock.onGet('endpoint.json').reply(200, [pipelineCopy]); + beforeEach(() => { + pipelineCopy.flags.detached_merge_request_pipeline = true; - vm = mountComponent(PipelinesTable, { ...props, canRunPipeline: true }); + mock.onGet('endpoint.json').reply(200, [pipelineCopy]); - setImmediate(() => { - expect(vm.$el.querySelector('.js-run-mr-pipeline')).toBeNull(); - done(); + vm = mountComponent(PipelinesTable, { + ...props, + canRunPipeline: true, + projectId: '5', + mergeRequestId: 3, }); }); - }); - 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; + it('updates the loading state', done => { + jest.spyOn(Api, 'postMergeRequestPipeline').mockReturnValue(Promise.resolve()); - mock.onGet('endpoint.json').reply(200, [pipelineCopy]); + setImmediate(() => { + vm.$el.querySelector('.js-run-mr-pipeline').click(); - vm = mountComponent(PipelinesTable, { ...props, canRunPipeline: false }); + vm.$nextTick(() => { + expect(findModal()).toBeNull(); + expect(vm.state.isRunningMergeRequestPipeline).toBe(true); - setImmediate(() => { - expect(vm.$el.querySelector('.js-run-mr-pipeline')).toBeNull(); - done(); + setImmediate(() => { + expect(vm.state.isRunningMergeRequestPipeline).toBe(false); + + done(); + }); + }); }); }); }); - describe('on click', () => { + describe('on click for fork merge request', () => { + const findModal = () => + document.querySelector('#create-pipeline-for-fork-merge-request-modal'); + beforeEach(() => { pipelineCopy.flags.detached_merge_request_pipeline = true; @@ -193,26 +201,23 @@ describe('Pipelines table in Commits and Merge requests', () => { vm = mountComponent(PipelinesTable, { ...props, - canRunPipeline: true, projectId: '5', mergeRequestId: 3, + canCreatePipelineInTargetProject: true, + sourceProjectFullPath: 'test/parent-project', + targetProjectFullPath: 'test/fork-project', }); }); - it('updates the loading state', done => { + it('shows a security warning modal', done => { jest.spyOn(Api, 'postMergeRequestPipeline').mockReturnValue(Promise.resolve()); setImmediate(() => { vm.$el.querySelector('.js-run-mr-pipeline').click(); vm.$nextTick(() => { - expect(vm.state.isRunningMergeRequestPipeline).toBe(true); - - setImmediate(() => { - expect(vm.state.isRunningMergeRequestPipeline).toBe(false); - - done(); - }); + expect(findModal()).not.toBeNull(); + done(); }); }); }); |