From: Anton Khorev Date: Wed, 27 Dec 2023 03:48:00 +0000 (+0300) Subject: Set block ends_at to exactly created_at + duration X-Git-Tag: live~863^2 X-Git-Url: https://git.openstreetmap.org./rails.git/commitdiff_plain/8c32e6349281dc041af55d3b493fdeac85212b02?ds=sidebyside;hp=-c Set block ends_at to exactly created_at + duration --- 8c32e6349281dc041af55d3b493fdeac85212b02 diff --git a/app/controllers/user_blocks_controller.rb b/app/controllers/user_blocks_controller.rb index 546c8233c..885318cbe 100644 --- a/app/controllers/user_blocks_controller.rb +++ b/app/controllers/user_blocks_controller.rb @@ -39,11 +39,13 @@ class UserBlocksController < ApplicationController def create if @valid_params + now = Time.now.utc @user_block = UserBlock.new( :user => @user, :creator => current_user, :reason => params[:user_block][:reason], - :ends_at => Time.now.utc + @block_period.hours, + :created_at => now, + :ends_at => now + @block_period.hours, :needs_view => params[:user_block][:needs_view] ) diff --git a/test/controllers/user_blocks_controller_test.rb b/test/controllers/user_blocks_controller_test.rb index 27022c973..2c363be3d 100644 --- a/test/controllers/user_blocks_controller_test.rb +++ b/test/controllers/user_blocks_controller_test.rb @@ -261,6 +261,21 @@ class UserBlocksControllerTest < ActionDispatch::IntegrationTest assert_select "h1", "The user non_existent_user does not exist" end + ## + # test the duration of a created block + def test_create_duration + target_user = create(:user) + moderator_user = create(:moderator_user) + + session_for(moderator_user) + post user_blocks_path(:display_name => target_user.display_name, + :user_block_period => "336", + :user_block => { :needs_view => false, :reason => "Vandalism" }) + + block = UserBlock.order(:id).last + assert_equal 1209600, block.ends_at - block.created_at + end + ## # test the update action def test_update