diff options
Diffstat (limited to 'spec/controllers/admin')
-rw-r--r-- | spec/controllers/admin/reported_statuses_controller_spec.rb | 37 |
1 files changed, 35 insertions, 2 deletions
diff --git a/spec/controllers/admin/reported_statuses_controller_spec.rb b/spec/controllers/admin/reported_statuses_controller_spec.rb index dea5ea55d..80c69e8d1 100644 --- a/spec/controllers/admin/reported_statuses_controller_spec.rb +++ b/spec/controllers/admin/reported_statuses_controller_spec.rb @@ -4,14 +4,47 @@ describe Admin::ReportedStatusesController do render_views let(:user) { Fabricate(:user, admin: true) } + let(:report) { Fabricate(:report, status_ids: [status.id]) } + let(:status) { Fabricate(:status) } + before do sign_in user, scope: :user end + describe 'PATCH #update' do + subject do + -> { patch :update, params: { report_id: report, id: status, status: { sensitive: sensitive } } } + end + + let(:status) { Fabricate(:status, sensitive: !sensitive) } + let(:sensitive) { true } + + context 'updates sensitive column to true' do + it 'updates sensitive column' do + is_expected.to change { + status.reload.sensitive + }.from(false).to(true) + end + end + + context 'updates sensitive column to false' do + let(:sensitive) { false } + + it 'updates sensitive column' do + is_expected.to change { + status.reload.sensitive + }.from(true).to(false) + end + end + + it 'redirects to report page' do + subject.call + expect(response).to redirect_to(admin_report_path(report)) + end + end + describe 'DELETE #destroy' do it 'removes a status' do - report = Fabricate(:report) - status = Fabricate(:status) allow(RemovalWorker).to receive(:perform_async) delete :destroy, params: { report_id: report, id: status } |