From c8795e6bd0696a310ae172e338aa7f3b4a35bdc2 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Thu, 11 Mar 2021 00:09:38 +0000 Subject: Add latest changes from gitlab-org/gitlab@master --- spec/mailers/emails/merge_requests_spec.rb | 45 +++++++++++++++++++++++++----- spec/mailers/notify_spec.rb | 44 ++++------------------------- 2 files changed, 43 insertions(+), 46 deletions(-) (limited to 'spec/mailers') diff --git a/spec/mailers/emails/merge_requests_spec.rb b/spec/mailers/emails/merge_requests_spec.rb index 99a4730e22b..cf191df5378 100644 --- a/spec/mailers/emails/merge_requests_spec.rb +++ b/spec/mailers/emails/merge_requests_spec.rb @@ -24,6 +24,37 @@ RSpec.describe Emails::MergeRequests do let(:recipient) { assignee } let(:current_user_sanitized) { 'www_example_com' } + describe '#merge_request_unmergeable_email' do + subject { Notify.merge_request_unmergeable_email(recipient.id, merge_request.id) } + + it_behaves_like 'an answer to an existing thread with reply-by-email enabled' do + let(:model) { merge_request } + end + + it_behaves_like 'a multiple recipients email' + it_behaves_like 'it should show Gmail Actions View Merge request link' + it_behaves_like 'an unsubscribeable thread' + it_behaves_like 'appearance header and footer enabled' + it_behaves_like 'appearance header and footer not enabled' + + it 'is sent as the merge request author' do + sender = subject.header[:from].addrs[0] + expect(sender.display_name).to eq(merge_request.author.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(project_merge_request_path(project, merge_request)) + is_expected.to have_body_text('due to conflict.') + is_expected.to have_link(merge_request.to_reference, href: project_merge_request_url(merge_request.target_project, merge_request)) + is_expected.to have_text_part_content(assignee.name) + is_expected.to have_text_part_content(reviewer.name) + end + end + end + describe '#closed_merge_request_email' do subject { Notify.closed_merge_request_email(recipient.id, merge_request.id, current_user.id) } @@ -131,13 +162,13 @@ RSpec.describe Emails::MergeRequests do it "has required details" do aggregate_failures do - expect(subject).to have_content title - expect(subject).to have_content merge_request.to_reference - expect(subject).to have_content current_user.name - expect(subject.html_part).to have_content(assignee.name) - expect(subject.text_part).to have_content(assignee.name) - expect(subject.html_part).to have_content(reviewer.name) - expect(subject.text_part).to have_content(reviewer.name) + is_expected.to have_content(title) + is_expected.to have_content(merge_request.to_reference) + is_expected.to have_content(current_user.name) + is_expected.to have_text_part_content(assignee.name) + is_expected.to have_html_part_content(assignee.name) + is_expected.to have_text_part_content(reviewer.name) + is_expected.to have_html_part_content(reviewer.name) end end end diff --git a/spec/mailers/notify_spec.rb b/spec/mailers/notify_spec.rb index 17ed3e967a1..399f6ff5576 100644 --- a/spec/mailers/notify_spec.rb +++ b/spec/mailers/notify_spec.rb @@ -365,7 +365,11 @@ RSpec.describe Notify do it 'contains a link to merge request author' do is_expected.to have_body_text merge_request.author_name - is_expected.to have_body_text 'created a merge request:' + is_expected.to have_body_text 'created a' + end + + it 'contains a link to the merge request url' do + is_expected.to have_link('merge request', href: project_merge_request_url(merge_request.target_project, merge_request)) end end @@ -464,44 +468,6 @@ RSpec.describe Notify do end end - describe 'that are unmergeable' do - let_it_be(:merge_request) do - create(:merge_request, :conflict, - source_project: project, - target_project: project, - author: current_user, - assignees: [assignee], - description: 'Awesome description') - end - - subject { described_class.merge_request_unmergeable_email(recipient.id, merge_request.id) } - - 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_behaves_like 'appearance header and footer enabled' - it_behaves_like 'appearance header and footer not enabled' - - it 'is sent as the merge request author' do - sender = subject.header[:from].addrs[0] - expect(sender.display_name).to eq(merge_request.author.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(project_merge_request_path(project, merge_request)) - is_expected.to have_body_text('due to conflict.') - is_expected.to have_link(merge_request.to_reference, href: project_merge_request_url(merge_request.target_project, merge_request)) - end - end - end - shared_examples 'a push to an existing merge request' do let(:push_user) { create(:user) } -- cgit v1.2.1