summaryrefslogtreecommitdiff
path: root/spec/services/merge_requests/update_service_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/services/merge_requests/update_service_spec.rb')
-rw-r--r--spec/services/merge_requests/update_service_spec.rb65
1 files changed, 48 insertions, 17 deletions
diff --git a/spec/services/merge_requests/update_service_spec.rb b/spec/services/merge_requests/update_service_spec.rb
index e20ebf18e7c..012eb5f6fca 100644
--- a/spec/services/merge_requests/update_service_spec.rb
+++ b/spec/services/merge_requests/update_service_spec.rb
@@ -15,11 +15,15 @@ RSpec.describe MergeRequests::UpdateService, :mailer, feature_category: :code_re
let(:milestone) { create(:milestone, project: project) }
let(:merge_request) do
- create(:merge_request, :simple, title: 'Old title',
- description: "FYI #{user2.to_reference}",
- assignee_ids: [user3.id],
- source_project: project,
- author: create(:user))
+ create(
+ :merge_request,
+ :simple,
+ title: 'Old title',
+ description: "FYI #{user2.to_reference}",
+ assignee_ids: [user3.id],
+ source_project: project,
+ author: create(:user)
+ )
end
before do
@@ -782,6 +786,27 @@ RSpec.describe MergeRequests::UpdateService, :mailer, feature_category: :code_re
expect(user3.assigned_open_merge_requests_count).to eq 0
expect(user2.assigned_open_merge_requests_count).to eq 1
end
+
+ it 'records the assignment history', :sidekiq_inline do
+ original_assignee = merge_request.assignees.first!
+
+ update_merge_request(assignee_ids: [user2.id])
+
+ expected_events = [
+ have_attributes({
+ merge_request_id: merge_request.id,
+ user_id: original_assignee.id,
+ action: 'remove'
+ }),
+ have_attributes({
+ merge_request_id: merge_request.id,
+ user_id: user2.id,
+ action: 'add'
+ })
+ ]
+
+ expect(merge_request.assignment_events).to match_array(expected_events)
+ end
end
context 'when the target branch changes' do
@@ -1166,10 +1191,12 @@ RSpec.describe MergeRequests::UpdateService, :mailer, feature_category: :code_re
let(:source_project) { fork_project(target_project, nil, repository: true) }
let(:user) { create(:user) }
let(:merge_request) do
- create(:merge_request,
- source_project: source_project,
- source_branch: 'fixes',
- target_project: target_project)
+ create(
+ :merge_request,
+ source_project: source_project,
+ source_branch: 'fixes',
+ target_project: target_project
+ )
end
before do
@@ -1201,10 +1228,12 @@ RSpec.describe MergeRequests::UpdateService, :mailer, feature_category: :code_re
let(:source_project) { fork_project(target_project, nil, repository: true) }
let(:user) { target_project.first_owner }
let(:merge_request) do
- create(:merge_request,
- source_project: source_project,
- source_branch: 'fixes',
- target_project: target_project)
+ create(
+ :merge_request,
+ source_project: source_project,
+ source_branch: 'fixes',
+ target_project: target_project
+ )
end
it "cannot be done by members of the target project when they don't have access" do
@@ -1222,10 +1251,12 @@ RSpec.describe MergeRequests::UpdateService, :mailer, feature_category: :code_re
context 'updating `target_branch`' do
let(:merge_request) do
- create(:merge_request,
- source_project: project,
- source_branch: 'mr-b',
- target_branch: 'mr-a')
+ create(
+ :merge_request,
+ source_project: project,
+ source_branch: 'mr-b',
+ target_branch: 'mr-a'
+ )
end
it 'updates to master' do