diff options
Diffstat (limited to 'spec/services/merge_requests/update_service_spec.rb')
-rw-r--r-- | spec/services/merge_requests/update_service_spec.rb | 65 |
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 |