gitlab-org--gitlab-foss/spec/controllers/abuse_reports_controller_spec.rb

77 lines
1.9 KiB
Ruby
Raw Normal View History

require 'spec_helper'
describe AbuseReportsController do
let(:reporter) { create(:user) }
let(:user) { create(:user) }
let(:message) { "This user is a spammer" }
before do
sign_in(reporter)
end
2015-10-18 05:58:53 -04:00
describe "POST create" do
context "with admin notification email set" do
let(:admin_email) { "admin@example.com"}
2015-10-18 05:58:53 -04:00
before(:each) do
stub_application_setting(admin_notification_email: admin_email)
end
2015-10-18 05:58:53 -04:00
it "sends a notification email" do
2015-11-30 09:12:31 -05:00
perform_enqueued_jobs do
2015-10-18 05:58:53 -04:00
post :create,
abuse_report: {
user_id: user.id,
message: message
}
2015-11-30 09:12:31 -05:00
email = ActionMailer::Base.deliveries.last
expect(email.to).to eq([admin_email])
expect(email.subject).to include(user.username)
expect(email.text_part.body).to include(message)
end
end
it "saves the abuse report" do
perform_enqueued_jobs do
expect do
post :create,
abuse_report: {
user_id: user.id,
message: message
}
end.to change { AbuseReport.count }.by(1)
end
2015-10-18 05:58:53 -04:00
end
end
context "without admin notification email set" do
before(:each) do
stub_application_setting(admin_notification_email: nil)
end
it "does not send a notification email" do
2015-10-18 07:08:08 -04:00
expect do
2015-10-18 05:58:53 -04:00
post :create,
abuse_report: {
user_id: user.id,
message: message
}
2015-10-18 07:08:08 -04:00
end.not_to change { ActionMailer::Base.deliveries.count }
2015-10-18 05:58:53 -04:00
end
it "saves the abuse report" do
2015-10-18 07:08:08 -04:00
expect do
2015-10-18 05:58:53 -04:00
post :create,
abuse_report: {
user_id: user.id,
message: message
}
2015-10-18 07:08:08 -04:00
end.to change { AbuseReport.count }.by(1)
2015-10-18 05:58:53 -04:00
end
end
end
2015-10-18 05:58:53 -04:00
end