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:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-06-02 15:08:33 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-06-02 15:08:33 +0300
commit810bd2a662abaa60663ec19bcb55f883d329eb07 (patch)
tree9c0e537d8a23ac4481f13420fd9e0772dc3abf10 /spec/services/discussions
parent8c826685ecb0058bf6acaf960ecab7897932f2e2 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/services/discussions')
-rw-r--r--spec/services/discussions/resolve_service_spec.rb38
1 files changed, 37 insertions, 1 deletions
diff --git a/spec/services/discussions/resolve_service_spec.rb b/spec/services/discussions/resolve_service_spec.rb
index dabd33bfd5e..7461934b455 100644
--- a/spec/services/discussions/resolve_service_spec.rb
+++ b/spec/services/discussions/resolve_service_spec.rb
@@ -6,7 +6,7 @@ describe Discussions::ResolveService do
describe '#execute' do
let_it_be(:project) { create(:project, :repository) }
let_it_be(:user) { create(:user, developer_projects: [project]) }
- let_it_be(:merge_request) { create(:merge_request, source_project: project) }
+ let_it_be(:merge_request) { create(:merge_request, :merge_when_pipeline_succeeds, source_project: project) }
let(:discussion) { create(:diff_note_on_merge_request, noteable: merge_request, project: project).to_discussion }
let(:service) { described_class.new(project, user, one_or_more_discussions: discussion) }
@@ -32,6 +32,36 @@ describe Discussions::ResolveService do
service.execute
end
+ it 'schedules an auto-merge' do
+ expect(AutoMergeProcessWorker).to receive(:perform_async).with(discussion.noteable.id)
+
+ service.execute
+ end
+
+ context 'with a project that requires all discussion to be resolved' do
+ before do
+ project.update(only_allow_merge_if_all_discussions_are_resolved: true)
+ end
+
+ after do
+ project.update(only_allow_merge_if_all_discussions_are_resolved: false)
+ end
+
+ let_it_be(:other_discussion) { create(:diff_note_on_merge_request, noteable: merge_request, project: project).to_discussion }
+
+ it 'does not schedule an auto-merge' do
+ expect(AutoMergeProcessWorker).not_to receive(:perform_async)
+
+ service.execute
+ end
+
+ it 'schedules an auto-merge' do
+ expect(AutoMergeProcessWorker).to receive(:perform_async)
+
+ described_class.new(project, user, one_or_more_discussions: [discussion, other_discussion]).execute
+ end
+ end
+
it 'adds a system note to the discussion' do
issue = create(:issue, project: project)
@@ -70,6 +100,12 @@ describe Discussions::ResolveService do
service.execute
end
+
+ it 'does not schedule an auto-merge' do
+ expect(AutoMergeProcessWorker).not_to receive(:perform_async)
+
+ service.execute
+ end
end
end
end