Skip to content
Snippets Groups Projects
Commit 01248d20 authored by Robert Speicher's avatar Robert Speicher
Browse files

Make AbuseReportMailer responsible for knowing if it should deliver

parent 0e60282e
No related branches found
No related tags found
1 merge request!2293Abuse Report refactors
Loading
@@ -2,6 +2,8 @@ class AbuseReportMailer < BaseMailer
Loading
@@ -2,6 +2,8 @@ class AbuseReportMailer < BaseMailer
include Gitlab::CurrentSettings include Gitlab::CurrentSettings
   
def notify(abuse_report_id) def notify(abuse_report_id)
return unless deliverable?
@abuse_report = AbuseReport.find(abuse_report_id) @abuse_report = AbuseReport.find(abuse_report_id)
   
mail( mail(
Loading
@@ -9,4 +11,10 @@ class AbuseReportMailer < BaseMailer
Loading
@@ -9,4 +11,10 @@ class AbuseReportMailer < BaseMailer
subject: "#{@abuse_report.user.name} (#{@abuse_report.user.username}) was reported for abuse" subject: "#{@abuse_report.user.name} (#{@abuse_report.user.username}) was reported for abuse"
) )
end end
private
def deliverable?
current_application_settings.admin_notification_email.present?
end
end end
require 'rails_helper'
describe AbuseReportMailer do
include EmailSpec::Matchers
describe '.notify' do
context 'with admin_notification_email set' do
before do
stub_application_setting(admin_notification_email: 'admin@example.com')
end
it 'sends to the admin_notification_email' do
report = create(:abuse_report)
mail = described_class.notify(report.id)
expect(mail).to deliver_to 'admin@example.com'
end
it 'includes the user in the subject' do
report = create(:abuse_report)
mail = described_class.notify(report.id)
expect(mail).to have_subject "#{report.user.name} (#{report.user.username}) was reported for abuse"
end
end
context 'with no admin_notification_email set' do
it 'returns early' do
stub_application_setting(admin_notification_email: nil)
expect { described_class.notify(spy).deliver_now }.
not_to change { ActionMailer::Base.deliveries.count }
end
end
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment