Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/services/merge_requests/mergeability_check_service_spec.rb')
-rw-r--r--spec/services/merge_requests/mergeability_check_service_spec.rb43
1 files changed, 31 insertions, 12 deletions
diff --git a/spec/services/merge_requests/mergeability_check_service_spec.rb b/spec/services/merge_requests/mergeability_check_service_spec.rb
index 543da46f883..725fc16fa7c 100644
--- a/spec/services/merge_requests/mergeability_check_service_spec.rb
+++ b/spec/services/merge_requests/mergeability_check_service_spec.rb
@@ -41,16 +41,6 @@ RSpec.describe MergeRequests::MergeabilityCheckService, :clean_gitlab_redis_shar
subject
end
- context 'when merge_ref_head_comments is disabled' do
- it 'does not update diff discussion positions' do
- stub_feature_flags(merge_ref_head_comments: false)
-
- expect(Discussions::CaptureDiffNotePositionsService).not_to receive(:new)
-
- subject
- end
- end
-
it 'updates the merge ref' do
expect { subject }.to change(merge_request, :merge_ref_head).from(nil)
end
@@ -221,11 +211,18 @@ RSpec.describe MergeRequests::MergeabilityCheckService, :clean_gitlab_redis_shar
target_branch: 'conflict-start')
end
- it_behaves_like 'unmergeable merge request'
+ it 'does not change the merge ref HEAD' do
+ expect(merge_request.merge_ref_head).to be_nil
- it 'returns ServiceResponse.error' do
+ subject
+
+ expect(merge_request.reload.merge_ref_head).not_to be_nil
+ end
+
+ it 'returns ServiceResponse.error and keeps merge status as cannot_be_merged' do
result = subject
+ expect(merge_request.merge_status).to eq('cannot_be_merged')
expect(result).to be_a(ServiceResponse)
expect(result.error?).to be(true)
expect(result.message).to eq('Merge request is not mergeable')
@@ -383,5 +380,27 @@ RSpec.describe MergeRequests::MergeabilityCheckService, :clean_gitlab_redis_shar
end
end
end
+
+ context 'merge with conflicts' do
+ it 'calls MergeToRefService with true allow_conflicts param' do
+ expect(MergeRequests::MergeToRefService).to receive(:new)
+ .with(project, merge_request.author, { allow_conflicts: true }).and_call_original
+
+ subject
+ end
+
+ context 'when display_merge_conflicts_in_diff is disabled' do
+ before do
+ stub_feature_flags(display_merge_conflicts_in_diff: false)
+ end
+
+ it 'calls MergeToRefService with false allow_conflicts param' do
+ expect(MergeRequests::MergeToRefService).to receive(:new)
+ .with(project, merge_request.author, { allow_conflicts: false }).and_call_original
+
+ subject
+ end
+ end
+ end
end
end