1 # frozen_string_literal: true
 
   5 class UserBlocksTest < ActionDispatch::IntegrationTest
 
   7     blocked_user = create(:user)
 
   9     get "/api/#{Settings.api_version}/user/details"
 
  10     assert_response :unauthorized
 
  12     get "/api/#{Settings.api_version}/user/details", :headers => bearer_authorization_header(blocked_user)
 
  13     assert_response :success
 
  17       :user_id => blocked_user.id,
 
  18       :creator_id => create(:moderator_user).id,
 
  20       :ends_at => Time.now.utc + 5.minutes,
 
  21       :deactivates_at => Time.now.utc + 5.minutes
 
  23     get "/api/#{Settings.api_version}/user/details", :headers => bearer_authorization_header(blocked_user)
 
  24     assert_response :forbidden
 
  28     blocked_user = create(:user)
 
  29     moderator = create(:moderator_user)
 
  31     block = UserBlock.create(
 
  32       :user_id => blocked_user.id,
 
  33       :creator_id => moderator.id,
 
  35       :ends_at => Time.now.utc + 5.minutes,
 
  36       :deactivates_at => Time.now.utc + 5.minutes
 
  38     get "/api/#{Settings.api_version}/user/details", :headers => bearer_authorization_header(blocked_user)
 
  39     assert_response :forbidden
 
  43     assert_response :redirect
 
  45     assert_response :success
 
  46     post "/login", :params => { "username" => moderator.email, "password" => "s3cr3t", :referer => "/user_blocks/#{block.id}/edit" }
 
  47     assert_response :redirect
 
  49     assert_response :success
 
  50     assert_template "user_blocks/edit"
 
  51     put "/user_blocks/#{block.id}", :params => { :user_block_period => "0",
 
  52                                                  :user_block => { :needs_view => false, :reason => "Unblocked" } }
 
  53     assert_response :redirect
 
  55     assert_response :success
 
  56     assert_template "user_blocks/show"
 
  59     # access the API again. this time it should work
 
  60     get "/api/#{Settings.api_version}/user/details", :headers => bearer_authorization_header(blocked_user)
 
  61     assert_response :success