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" => "test", :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