]> git.openstreetmap.org Git - rails.git/blobdiff - test/system/user_blocks_test.rb
Merge remote-tracking branch 'upstream/pull/5078'
[rails.git] / test / system / user_blocks_test.rb
index e1247d6a40b2d116dbd20addd137fd68e67c89d0..6e4f5b471141548a50d7094c088843c022352b62 100644 (file)
@@ -1,6 +1,6 @@
 require "application_system_test_case"
 
-class ReportNoteTest < ApplicationSystemTestCase
+class UserBlocksSystemTest < ApplicationSystemTestCase
   test "revoke all link is absent for anonymous users when viewed user has active blocks" do
     blocked_user = create(:user)
     create(:user_block, :user => blocked_user)
@@ -27,12 +27,45 @@ class ReportNoteTest < ApplicationSystemTestCase
     assert_no_link "Revoke all blocks"
   end
 
-  test "revoke all link is present for moderators when viewed user has active blocks" do
+  test "revoke all page has no controls when viewed user has no active blocks" do
+    blocked_user = create(:user)
+    sign_in_as(create(:moderator_user))
+
+    visit revoke_all_user_blocks_path(blocked_user)
+    assert_title "Revoking all blocks on #{blocked_user.display_name}"
+    assert_text "Revoking all blocks on #{blocked_user.display_name}"
+    assert_no_button "Revoke!"
+  end
+
+  test "revoke all link is present and working for moderators when viewed user has one active block" do
     blocked_user = create(:user)
     create(:user_block, :user => blocked_user)
     sign_in_as(create(:moderator_user))
 
     visit user_path(blocked_user)
     assert_link "Revoke all blocks"
+
+    click_on "Revoke all blocks"
+    assert_title "Revoking all blocks on #{blocked_user.display_name}"
+    assert_text "Revoking all blocks on #{blocked_user.display_name}"
+    assert_unchecked_field "Are you sure you wish to revoke 1 active block?"
+    assert_button "Revoke!"
+  end
+
+  test "revoke all link is present and working for moderators when viewed user has multiple active blocks" do
+    blocked_user = create(:user)
+    create(:user_block, :user => blocked_user)
+    create(:user_block, :user => blocked_user)
+    create(:user_block, :expired, :user => blocked_user)
+    sign_in_as(create(:moderator_user))
+
+    visit user_path(blocked_user)
+    assert_link "Revoke all blocks"
+
+    click_on "Revoke all blocks"
+    assert_title "Revoking all blocks on #{blocked_user.display_name}"
+    assert_text "Revoking all blocks on #{blocked_user.display_name}"
+    assert_unchecked_field "Are you sure you wish to revoke 2 active blocks?"
+    assert_button "Revoke!"
   end
 end