X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/462996a41a639979a4032453352e67d22184827d..6cc31259e4e96784e4937c8c0ae561f8291ecaa2:/test/system/user_blocks_test.rb
diff --git a/test/system/user_blocks_test.rb b/test/system/user_blocks_test.rb
index 6e4f5b471..52fe3bc3d 100644
--- a/test/system/user_blocks_test.rb
+++ b/test/system/user_blocks_test.rb
@@ -31,7 +31,7 @@ class UserBlocksSystemTest < ApplicationSystemTestCase
blocked_user = create(:user)
sign_in_as(create(:moderator_user))
- visit revoke_all_user_blocks_path(blocked_user)
+ visit edit_user_received_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!"
@@ -68,4 +68,52 @@ class UserBlocksSystemTest < ApplicationSystemTestCase
assert_unchecked_field "Are you sure you wish to revoke 2 active blocks?"
assert_button "Revoke!"
end
+
+ test "duration controls are present for active blocks" do
+ creator_user = create(:moderator_user)
+ block = create(:user_block, :creator => creator_user, :reason => "Testing editing active blocks", :ends_at => Time.now.utc + 2.days)
+ sign_in_as(creator_user)
+
+ visit edit_user_block_path(block)
+ assert_field "Reason", :with => "Testing editing active blocks"
+ assert_select "user_block_period", :selected => "2 days"
+ assert_unchecked_field "Needs view"
+
+ fill_in "Reason", :with => "Editing active blocks works"
+ click_on "Update block"
+ assert_text(/Reason for block:\s+Editing active blocks works/)
+ end
+
+ test "duration controls are removed for inactive blocks" do
+ creator_user = create(:moderator_user)
+ block = create(:user_block, :expired, :creator => creator_user, :reason => "Testing editing expired blocks")
+ sign_in_as(creator_user)
+
+ visit edit_user_block_path(block)
+ assert_field "Reason", :with => "Testing editing expired blocks"
+ assert_no_select "user_block_period"
+ assert_no_field "Needs view"
+
+ fill_in "Reason", :with => "Editing expired blocks works"
+ click_on "Update block"
+ assert_text(/Reason for block:\s+Editing expired blocks works/)
+ end
+
+ test "other moderator can revoke 0-hour blocks" do
+ creator_user = create(:moderator_user)
+ other_moderator_user = create(:moderator_user)
+ block = create(:user_block, :zero_hour, :needs_view, :creator => creator_user, :reason => "Testing revoking 0-hour blocks")
+ sign_in_as(other_moderator_user)
+
+ visit edit_user_block_path(block)
+ assert_field "Reason", :with => "Testing revoking 0-hour blocks"
+ assert_no_select "user_block_period"
+ assert_no_field "Needs view"
+
+ fill_in "Reason", :with => "Revoking 0-hour blocks works"
+ click_on "Revoke block"
+ assert_text(/Revoker:\s+#{Regexp.escape other_moderator_user.display_name}/)
+ assert_text(/Status:\s+Ended/)
+ assert_text(/Reason for block:\s+Revoking 0-hour blocks works/)
+ end
end