]> git.openstreetmap.org Git - rails.git/blob - test/controllers/api/user_blocks/active_lists_controller_test.rb
Merge pull request #6394 from openstreetmap/dependabot/github_actions/ruby/setup...
[rails.git] / test / controllers / api / user_blocks / active_lists_controller_test.rb
1 # frozen_string_literal: true
2
3 require "test_helper"
4
5 module Api
6   module UserBlocks
7     class ActiveListsControllerTest < ActionDispatch::IntegrationTest
8       ##
9       # test all routes which lead to this controller
10       def test_routes
11         assert_routing(
12           { :path => "/api/0.6/user/blocks/active", :method => :get },
13           { :controller => "api/user_blocks/active_lists", :action => "show" }
14         )
15         assert_routing(
16           { :path => "/api/0.6/user/blocks/active.json", :method => :get },
17           { :controller => "api/user_blocks/active_lists", :action => "show", :format => "json" }
18         )
19       end
20
21       def test_show_no_auth_header
22         get api_user_blocks_active_list_path
23         assert_response :unauthorized
24       end
25
26       def test_show_no_permission
27         user = create(:user)
28         user_auth_header = bearer_authorization_header(user, :scopes => %w[])
29
30         get api_user_blocks_active_list_path, :headers => user_auth_header
31         assert_response :forbidden
32       end
33
34       def test_show_empty
35         user = create(:user)
36         user_auth_header = bearer_authorization_header(user, :scopes => %w[read_prefs])
37         create(:user_block, :expired, :user => user)
38
39         get api_user_blocks_active_list_path, :headers => user_auth_header
40         assert_response :success
41         assert_dom "user_block", :count => 0
42       end
43
44       def test_show
45         user = create(:moderator_user)
46         user_auth_header = bearer_authorization_header(user, :scopes => %w[read_prefs])
47         create(:user_block, :expired, :user => user)
48         block0 = create(:user_block, :user => user)
49         block1 = create(:user_block, :user => user)
50         create(:user_block)
51         create(:user_block, :creator => user)
52
53         get api_user_blocks_active_list_path, :headers => user_auth_header
54         assert_response :success
55         assert_dom "user_block", :count => 2 do |dom_blocks|
56           assert_dom dom_blocks[0], "> @id", block1.id.to_s
57           assert_dom dom_blocks[1], "> @id", block0.id.to_s
58         end
59       end
60
61       def test_show_json
62         user = create(:moderator_user)
63         user_auth_header = bearer_authorization_header(user, :scopes => %w[read_prefs])
64         create(:user_block, :expired, :user => user)
65         block0 = create(:user_block, :user => user)
66         block1 = create(:user_block, :user => user)
67         create(:user_block)
68         create(:user_block, :creator => user)
69
70         get api_user_blocks_active_list_path(:format => "json"), :headers => user_auth_header
71         assert_response :success
72         js = ActiveSupport::JSON.decode(@response.body)
73         assert_not_nil js
74         assert_equal 2, js["user_blocks"].count
75         assert_equal block1.id, js["user_blocks"][0]["id"]
76         assert_equal block0.id, js["user_blocks"][1]["id"]
77       end
78     end
79   end
80 end