summaryrefslogtreecommitdiff
path: root/spec/controllers/projects
diff options
context:
space:
mode:
authorShinya Maeda <shinya@gitlab.com>2019-06-06 14:25:06 +0700
committerShinya Maeda <shinya@gitlab.com>2019-06-12 13:20:49 +0700
commitb8c131715296dbd864bb7417ef04fc2ad7e18a53 (patch)
treec6d9ae7c27b30db1e20c04b5ca925401171ac0d1 /spec/controllers/projects
parent9baff6f6b58981ac1565d371b01948a286f7bffd (diff)
downloadgitlab-ce-b8c131715296dbd864bb7417ef04fc2ad7e18a53.tar.gz
Update merge options for auto merge strategies
Currently, merge options is updated on #execute method, however, we should have #update interface to make it explicit.
Diffstat (limited to 'spec/controllers/projects')
-rw-r--r--spec/controllers/projects/merge_requests_controller_spec.rb26
1 files changed, 25 insertions, 1 deletions
diff --git a/spec/controllers/projects/merge_requests_controller_spec.rb b/spec/controllers/projects/merge_requests_controller_spec.rb
index f8c0ab55eb4..34cbf0c8723 100644
--- a/spec/controllers/projects/merge_requests_controller_spec.rb
+++ b/spec/controllers/projects/merge_requests_controller_spec.rb
@@ -412,7 +412,7 @@ describe Projects::MergeRequestsController do
end
end
- context 'when the pipeline succeeds is passed' do
+ context 'when merge when pipeline succeeds option is passed' do
let!(:head_pipeline) do
create(:ci_empty_pipeline, project: project, sha: merge_request.diff_head_sha, ref: merge_request.source_branch, head_pipeline_of: merge_request)
end
@@ -462,6 +462,30 @@ describe Projects::MergeRequestsController do
expect(json_response).to eq('status' => 'merge_when_pipeline_succeeds')
end
end
+
+ context 'when auto merge has not been enabled yet' do
+ it 'calls AutoMergeService#execute' do
+ expect_next_instance_of(AutoMergeService) do |service|
+ expect(service).to receive(:execute).with(merge_request, 'merge_when_pipeline_succeeds')
+ end
+
+ merge_when_pipeline_succeeds
+ end
+ end
+
+ context 'when auto merge has already been enabled' do
+ before do
+ merge_request.update!(auto_merge_enabled: true, merge_user: user)
+ end
+
+ it 'calls AutoMergeService#update' do
+ expect_next_instance_of(AutoMergeService) do |service|
+ expect(service).to receive(:update).with(merge_request)
+ end
+
+ merge_when_pipeline_succeeds
+ end
+ end
end
describe 'only_allow_merge_if_all_discussions_are_resolved? setting' do