summaryrefslogtreecommitdiff
path: root/spec/mailers/notify_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/mailers/notify_spec.rb')
-rw-r--r--spec/mailers/notify_spec.rb112
1 files changed, 10 insertions, 102 deletions
diff --git a/spec/mailers/notify_spec.rb b/spec/mailers/notify_spec.rb
index 89cf1aaedd2..79358d3e40c 100644
--- a/spec/mailers/notify_spec.rb
+++ b/spec/mailers/notify_spec.rb
@@ -16,12 +16,14 @@ RSpec.describe Notify do
let_it_be(:user, reload: true) { create(:user) }
let_it_be(:current_user, reload: true) { create(:user, email: "current@email.com", name: 'www.example.com') }
let_it_be(:assignee, reload: true) { create(:user, email: 'assignee@example.com', name: 'John Doe') }
+ let_it_be(:reviewer, reload: true) { create(:user, email: 'reviewer@example.com', name: 'Jane Doe') }
let_it_be(:merge_request) do
create(:merge_request, source_project: project,
target_project: project,
author: current_user,
assignees: [assignee],
+ reviewers: [reviewer],
description: 'Awesome description')
end
@@ -342,6 +344,7 @@ RSpec.describe Notify do
is_expected.to have_body_text(project_merge_request_path(project, merge_request))
is_expected.to have_body_text(merge_request.source_branch)
is_expected.to have_body_text(merge_request.target_branch)
+ is_expected.to have_body_text(reviewer.name)
end
end
@@ -362,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
@@ -461,106 +468,6 @@ RSpec.describe Notify do
end
end
- describe 'status changed' do
- let(:status) { 'reopened' }
-
- subject { described_class.merge_request_status_email(recipient.id, merge_request.id, status, current_user.id) }
-
- 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 author' do
- sender = subject.header[:from].addrs[0]
- expect(sender.display_name).to eq(current_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(status)
- is_expected.to have_body_text(current_user_sanitized)
- is_expected.to have_body_text(project_merge_request_path(project, merge_request))
- is_expected.to have_link(merge_request.to_reference, href: project_merge_request_url(merge_request.target_project, merge_request))
- end
- end
- end
-
- describe 'that are merged' do
- let(:merge_author) { create(:user) }
-
- subject { described_class.merged_merge_request_email(recipient.id, merge_request.id, merge_author.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 author' do
- sender = subject.header[:from].addrs[0]
- expect(sender.display_name).to eq(merge_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('merged')
- is_expected.to have_body_text(project_merge_request_path(project, merge_request))
- is_expected.to have_link(merge_request.to_reference, href: project_merge_request_url(merge_request.target_project, merge_request))
- end
- 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) }
@@ -1311,6 +1218,7 @@ RSpec.describe Notify do
context 'for service desk issues' do
before do
issue.update!(external_author: 'service.desk@example.com')
+ issue.issue_email_participants.create!(email: 'service.desk@example.com')
end
def expect_sender(username)
@@ -1359,7 +1267,7 @@ RSpec.describe Notify do
describe 'new note email' do
let_it_be(:first_note) { create(:discussion_note_on_issue, note: 'Hello world') }
- subject { described_class.service_desk_new_note_email(issue.id, first_note.id) }
+ subject { described_class.service_desk_new_note_email(issue.id, first_note.id, 'service.desk@example.com') }
it_behaves_like 'an unsubscribeable thread'