reports_controller_spec.rb 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. # frozen_string_literal: true
  2. require 'rails_helper'
  3. describe Admin::ReportsController do
  4. render_views
  5. let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
  6. before do
  7. sign_in user, scope: :user
  8. end
  9. describe 'GET #index' do
  10. it 'returns http success with no filters' do
  11. specified = Fabricate(:report, action_taken_at: nil)
  12. Fabricate(:report, action_taken_at: Time.now.utc)
  13. get :index
  14. reports = assigns(:reports).to_a
  15. expect(reports.size).to eq 1
  16. expect(reports[0]).to eq specified
  17. expect(response).to have_http_status(200)
  18. end
  19. it 'returns http success with resolved filter' do
  20. specified = Fabricate(:report, action_taken_at: Time.now.utc)
  21. Fabricate(:report, action_taken_at: nil)
  22. get :index, params: { resolved: '1' }
  23. reports = assigns(:reports).to_a
  24. expect(reports.size).to eq 1
  25. expect(reports[0]).to eq specified
  26. expect(response).to have_http_status(200)
  27. end
  28. end
  29. describe 'GET #show' do
  30. it 'renders report' do
  31. report = Fabricate(:report)
  32. get :show, params: { id: report }
  33. expect(assigns(:report)).to eq report
  34. expect(response).to have_http_status(200)
  35. end
  36. end
  37. describe 'POST #resolve' do
  38. it 'resolves the report' do
  39. report = Fabricate(:report)
  40. put :resolve, params: { id: report }
  41. expect(response).to redirect_to(admin_reports_path)
  42. report.reload
  43. expect(report.action_taken_by_account).to eq user.account
  44. expect(report.action_taken?).to be true
  45. end
  46. end
  47. describe 'POST #reopen' do
  48. it 'reopens the report' do
  49. report = Fabricate(:report)
  50. put :reopen, params: { id: report }
  51. expect(response).to redirect_to(admin_report_path(report))
  52. report.reload
  53. expect(report.action_taken_by_account).to be_nil
  54. expect(report.action_taken?).to be false
  55. end
  56. end
  57. describe 'POST #assign_to_self' do
  58. it 'reopens the report' do
  59. report = Fabricate(:report)
  60. put :assign_to_self, params: { id: report }
  61. expect(response).to redirect_to(admin_report_path(report))
  62. report.reload
  63. expect(report.assigned_account).to eq user.account
  64. end
  65. end
  66. describe 'POST #unassign' do
  67. it 'reopens the report' do
  68. report = Fabricate(:report)
  69. put :unassign, params: { id: report }
  70. expect(response).to redirect_to(admin_report_path(report))
  71. report.reload
  72. expect(report.assigned_account).to be_nil
  73. end
  74. end
  75. end