debian-mirror-gitlab/spec/controllers/abuse_reports_controller_spec.rb

72 lines
1.8 KiB
Ruby
Raw Normal View History

2015-10-24 18:46:33 +05:30
require 'spec_helper'
describe AbuseReportsController do
let(:reporter) { create(:user) }
let(:user) { create(:user) }
let(:attrs) do
attributes_for(:abuse_report) do |hash|
hash[:user_id] = user.id
end
end
2015-10-24 18:46:33 +05:30
before do
sign_in(reporter)
end
2017-09-10 17:25:29 +05:30
describe 'GET new' do
context 'when the user has already been deleted' do
it 'redirects the reporter to root_path' do
user_id = user.id
user.destroy
2019-02-15 15:39:39 +05:30
get :new, params: { user_id: user_id }
2017-09-10 17:25:29 +05:30
expect(response).to redirect_to root_path
expect(flash[:alert]).to eq('Cannot create the abuse report. The user has been deleted.')
end
end
context 'when the user has already been blocked' do
it 'redirects the reporter to the user\'s profile' do
user.block
2019-02-15 15:39:39 +05:30
get :new, params: { user_id: user.id }
2017-09-10 17:25:29 +05:30
expect(response).to redirect_to user
expect(flash[:alert]).to eq('Cannot create the abuse report. This user has been blocked.')
end
end
end
describe 'POST create' do
context 'with valid attributes' do
it 'saves the abuse report' do
expect do
2019-02-15 15:39:39 +05:30
post :create, params: { abuse_report: attrs }
end.to change { AbuseReport.count }.by(1)
2015-10-24 18:46:33 +05:30
end
it 'calls notify' do
expect_any_instance_of(AbuseReport).to receive(:notify)
2015-12-23 02:04:40 +05:30
2019-02-15 15:39:39 +05:30
post :create, params: { abuse_report: attrs }
2015-12-23 02:04:40 +05:30
end
it 'redirects back to the reported user' do
2019-02-15 15:39:39 +05:30
post :create, params: { abuse_report: attrs }
2015-10-24 18:46:33 +05:30
expect(response).to redirect_to user
2015-10-24 18:46:33 +05:30
end
end
2015-10-24 18:46:33 +05:30
context 'with invalid attributes' do
it 'renders new' do
attrs.delete(:user_id)
2019-02-15 15:39:39 +05:30
post :create, params: { abuse_report: attrs }
2015-10-24 18:46:33 +05:30
expect(response).to render_template(:new)
2015-10-24 18:46:33 +05:30
end
end
end
end