1 # frozen_string_literal: true
6 class DataControllerTest < ActionDispatch::IntegrationTest
8 # test all routes which lead to this controller
11 { :path => "/issues/1/reporters", :method => :get },
12 { :controller => "issues/reporters", :action => "index", :issue_id => "1" }
16 def test_index_missing_issue_as_moderator
17 session_for(create(:moderator_user))
18 get issue_reporters_path(999111)
20 assert_redirected_to :controller => "/errors", :action => :not_found
23 def test_index_missing_issue_as_administrator
24 session_for(create(:administrator_user))
25 get issue_reporters_path(999111)
27 assert_redirected_to :controller => "/errors", :action => :not_found
30 def test_index_assigned_to_moderator_as_unauthorized
31 issue = create(:issue, :assigned_role => "moderator")
33 get issue_reporters_path(issue)
35 assert_redirected_to login_path(:referer => issue_reporters_path(issue))
38 def test_index_assigned_to_moderator_as_regular_user
39 issue = create(:issue, :assigned_role => "moderator")
41 session_for(create(:user))
42 get issue_reporters_path(issue)
44 assert_redirected_to :controller => "/errors", :action => :forbidden
47 def test_index_assigned_to_moderator_as_administrator
48 issue = create(:issue, :assigned_role => "moderator")
50 session_for(create(:administrator_user))
51 get issue_reporters_path(issue)
53 assert_redirected_to :controller => "/errors", :action => :not_found
56 def test_index_assigned_to_moderator_as_moderator
57 issue = create(:issue, :assigned_role => "moderator")
59 session_for(create(:moderator_user))
60 get issue_reporters_path(issue)
62 assert_response :success
65 def test_index_assigned_to_administrator_as_unauthorized
66 issue = create(:issue, :assigned_role => "administrator")
68 get issue_reporters_path(issue)
70 assert_redirected_to login_path(:referer => issue_reporters_path(issue))
73 def test_index_assigned_to_administrator_as_regular_user
74 issue = create(:issue, :assigned_role => "administrator")
76 session_for(create(:user))
77 get issue_reporters_path(issue)
79 assert_redirected_to :controller => "/errors", :action => :forbidden
82 def test_index_assigned_to_administrator_as_moderator
83 issue = create(:issue, :assigned_role => "administrator")
85 session_for(create(:moderator_user))
86 get issue_reporters_path(issue)
88 assert_redirected_to :controller => "/errors", :action => :not_found
91 def test_index_assigned_to_administrator_as_administrator
92 issue = create(:issue, :assigned_role => "administrator")
94 session_for(create(:administrator_user))
95 get issue_reporters_path(issue)
97 assert_response :success