From: Anton Khorev Date: Mon, 6 Jan 2025 18:10:18 +0000 (+0300) Subject: Check deactivates_at to report if block was read after its end date X-Git-Tag: live~28^2 X-Git-Url: https://git.openstreetmap.org./rails.git/commitdiff_plain/7e8fd5d7b7874b60b977c3a190094a93e1e3ff85 Check deactivates_at to report if block was read after its end date --- diff --git a/app/helpers/user_blocks_helper.rb b/app/helpers/user_blocks_helper.rb index c7c12f6d1..75bd4a46d 100644 --- a/app/helpers/user_blocks_helper.rb +++ b/app/helpers/user_blocks_helper.rb @@ -34,7 +34,7 @@ module UserBlocksHelper end else if block.revoker_id.nil? - if block.updated_at > block.ends_at + if block.deactivates_at > block.ends_at t("user_blocks.helper.short.read_html", :time => block_short_time_in_past(block.updated_at)) else t("user_blocks.helper.short.ended") diff --git a/test/helpers/user_blocks_helper_test.rb b/test/helpers/user_blocks_helper_test.rb index 99f59af47..28cc0ad50 100644 --- a/test/helpers/user_blocks_helper_test.rb +++ b/test/helpers/user_blocks_helper_test.rb @@ -30,6 +30,38 @@ class UserBlocksHelperTest < ActionView::TestCase end end + def test_block_short_status_with_immediate_update + freeze_time do + block = UserBlock.new :user => create(:user), + :creator => create(:moderator_user), + :reason => "because", + :created_at => Time.now.utc, + :ends_at => Time.now.utc, + :deactivates_at => Time.now.utc, + :needs_view => false + + travel 1.second + + block.save + + assert_equal "ended", block_short_status(block) + end + end + + def test_block_short_status_read + freeze_time do + block = create(:user_block, :needs_view, :ends_at => Time.now.utc) + + travel 24.hours + + assert_equal "active until read", block_short_status(block) + + block.update(:needs_view => false, :deactivates_at => Time.now.utc) + + assert_match "read at", block_short_status(block) + end + end + def test_block_duration_in_words words = block_duration_in_words(364.days) assert_equal "11 months", words