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/update_assignees_service_spec.rb')
-rw-r--r--spec/services/merge_requests/update_assignees_service_spec.rb24
1 files changed, 20 insertions, 4 deletions
diff --git a/spec/services/merge_requests/update_assignees_service_spec.rb b/spec/services/merge_requests/update_assignees_service_spec.rb
index de03aab5418..076161c9029 100644
--- a/spec/services/merge_requests/update_assignees_service_spec.rb
+++ b/spec/services/merge_requests/update_assignees_service_spec.rb
@@ -26,7 +26,7 @@ RSpec.describe MergeRequests::UpdateAssigneesService do
project.add_developer(user3)
end
- let(:service) { described_class.new(project, user, opts) }
+ let(:service) { described_class.new(project: project, current_user: user, params: opts) }
let(:opts) { { assignee_ids: [user2.id] } }
describe 'execute' do
@@ -36,8 +36,24 @@ RSpec.describe MergeRequests::UpdateAssigneesService do
end
context 'when the parameters are valid' do
+ context 'when using sentinel values' do
+ let(:opts) { { assignee_ids: [0] } }
+
+ it 'removes all assignees' do
+ expect { update_merge_request }.to change(merge_request, :assignees).to([])
+ end
+ end
+
+ context 'the assignee_ids parameter is the empty list' do
+ let(:opts) { { assignee_ids: [] } }
+
+ it 'removes all assignees' do
+ expect { update_merge_request }.to change(merge_request, :assignees).to([])
+ end
+ end
+
it 'updates the MR, and queues the more expensive work for later' do
- expect_next(MergeRequests::HandleAssigneesChangeService, project, user) do |service|
+ expect_next(MergeRequests::HandleAssigneesChangeService, project: project, current_user: user) do |service|
expect(service)
.to receive(:async_execute)
.with(merge_request, [user3], execute_hooks: true)
@@ -56,7 +72,7 @@ RSpec.describe MergeRequests::UpdateAssigneesService do
end
it 'is more efficient than using the full update-service' do
- allow_next(MergeRequests::HandleAssigneesChangeService, project, user) do |service|
+ allow_next(MergeRequests::HandleAssigneesChangeService, project: project, current_user: user) do |service|
expect(service)
.to receive(:async_execute)
.with(merge_request, [user3], execute_hooks: true)
@@ -69,7 +85,7 @@ RSpec.describe MergeRequests::UpdateAssigneesService do
source_project: merge_request.project,
author: merge_request.author)
- update_service = ::MergeRequests::UpdateService.new(project, user, opts)
+ update_service = ::MergeRequests::UpdateService.new(project: project, current_user: user, params: opts)
expect { service.execute(merge_request) }
.to issue_fewer_queries_than { update_service.execute(other_mr) }