summaryrefslogtreecommitdiff
path: root/spec/frontend/commit/pipelines/pipelines_spec.js
diff options
context:
space:
mode:
Diffstat (limited to 'spec/frontend/commit/pipelines/pipelines_spec.js')
-rw-r--r--spec/frontend/commit/pipelines/pipelines_spec.js75
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();
});
});
});