]> git.openstreetmap.org Git - rails.git/blobdiff - test/controllers/reports_controller_test.rb
Merge pull request #5688 from tomhughes/spam-check-report
[rails.git] / test / controllers / reports_controller_test.rb
index 8374e76d9f5d0efefe9fe39239cb8d7d8e4fbeeb..a7f65de629a23206657af397ffdf015db2dfdc3f 100644 (file)
@@ -4,7 +4,6 @@ class ReportsControllerTest < ActionDispatch::IntegrationTest
   def test_new_report_without_login
     target_user = create(:user)
     get new_report_path(:reportable_id => target_user.id, :reportable_type => "User")
-    assert_response :redirect
     assert_redirected_to login_path(:referer => new_report_path(:reportable_id => target_user.id, :reportable_type => "User"))
   end
 
@@ -25,7 +24,6 @@ class ReportsControllerTest < ActionDispatch::IntegrationTest
                           :issue => { :reportable_id => target_user.id, :reportable_type => "User" }
                         })
     end
-    assert_response :redirect
     assert_redirected_to user_path(target_user)
   end
 
@@ -48,7 +46,6 @@ class ReportsControllerTest < ActionDispatch::IntegrationTest
                           :issue => { :reportable_id => target_user.id, :reportable_type => "User" }
                         })
     end
-    assert_response :redirect
     assert_redirected_to user_path(target_user)
 
     issue = Issue.last
@@ -92,7 +89,6 @@ class ReportsControllerTest < ActionDispatch::IntegrationTest
                           :issue => { :reportable_id => target_user.id, :reportable_type => "User" }
                         })
     end
-    assert_response :redirect
     assert_redirected_to user_path(target_user)
 
     issue = Issue.last
@@ -115,4 +111,42 @@ class ReportsControllerTest < ActionDispatch::IntegrationTest
 
     assert_equal 2, issue.reports.count
   end
+
+  def test_spam_reports_can_suspend
+    target_user = create(:user)
+
+    session_for(create(:user))
+
+    post reports_path(:report => {
+                        :details => "Spammer",
+                        :category => "spam",
+                        :issue => { :reportable_id => target_user.id, :reportable_type => "User" }
+                      })
+    assert_equal "active", target_user.reload.status
+
+    session_for(create(:user))
+
+    post reports_path(:report => {
+                        :details => "Spammer",
+                        :category => "spam",
+                        :issue => { :reportable_id => target_user.id, :reportable_type => "User" }
+                      })
+    assert_equal "active", target_user.reload.status
+
+    post reports_path(:report => {
+                        :details => "Spammer",
+                        :category => "spam",
+                        :issue => { :reportable_id => target_user.id, :reportable_type => "User" }
+                      })
+    assert_equal "active", target_user.reload.status
+
+    session_for(create(:user))
+
+    post reports_path(:report => {
+                        :details => "Spammer",
+                        :category => "spam",
+                        :issue => { :reportable_id => target_user.id, :reportable_type => "User" }
+                      })
+    assert_equal "suspended", target_user.reload.status
+  end
 end