diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-06-02 15:08:33 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-06-02 15:08:33 +0300 |
commit | 810bd2a662abaa60663ec19bcb55f883d329eb07 (patch) | |
tree | 9c0e537d8a23ac4481f13420fd9e0772dc3abf10 /spec/services/discussions | |
parent | 8c826685ecb0058bf6acaf960ecab7897932f2e2 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/services/discussions')
-rw-r--r-- | spec/services/discussions/resolve_service_spec.rb | 38 |
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 |