Merge branch '44921-wrong-user-in-push-notification-email' into 'master'

Resolve "Wrong user in push notification email"

Closes #44921

See merge request gitlab-org/gitlab-ce!18148
This commit is contained in:
Grzegorz Bizon 2018-04-03 12:54:39 +00:00
commit 0dcd92ba05
4 changed files with 34 additions and 3 deletions

View file

@ -15,6 +15,7 @@ module Emails
setup_merge_request_mail(merge_request_id, recipient_id)
@new_commits = new_commits
@existing_commits = existing_commits
@updated_by_user = User.find(updated_by_user_id)
mail_answer_thread(@merge_request, merge_request_thread_options(updated_by_user_id, recipient_id, reason))
end

View file

@ -1,7 +1,7 @@
%h3
New commits were pushed to the merge request
= @updated_by_user.name
pushed new commits to merge request
= link_to(@merge_request.to_reference, project_merge_request_url(@merge_request.target_project, @merge_request))
by #{@current_user.name}
- if @existing_commits.any?
- count = @existing_commits.size

View file

@ -1,4 +1,4 @@
New commits were pushed to the merge request #{@merge_request.to_reference} by #{@current_user.name}
#{@updated_by_user.name} pushed new commits to merge request #{@merge_request.to_reference}
\
#{url_for(project_merge_request_url(@merge_request.target_project, @merge_request))}
\

View file

@ -389,6 +389,36 @@ describe Notify do
end
end
end
describe 'that have new commits' do
let(:push_user) { create(:user) }
subject do
described_class.push_to_merge_request_email(recipient.id, merge_request.id, push_user.id, new_commits: merge_request.commits)
end
it_behaves_like 'a multiple recipients email'
it_behaves_like 'an answer to an existing thread with reply-by-email enabled' do
let(:model) { merge_request }
end
it_behaves_like 'it should show Gmail Actions View Merge request link'
it_behaves_like 'an unsubscribeable thread'
it 'is sent as the push user' do
sender = subject.header[:from].addrs[0]
expect(sender.display_name).to eq(push_user.name)
expect(sender.address).to eq(gitlab_sender)
end
it 'has the correct subject and body' do
aggregate_failures do
is_expected.to have_referable_subject(merge_request, reply: true)
is_expected.to have_body_text("#{push_user.name} pushed new commits")
is_expected.to have_body_text(project_merge_request_path(project, merge_request))
end
end
end
end
context 'for issue notes' do