projects
/
rails.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
0a1834a
)
Refactor the user list test to use factory-built users and explicit assertions.
author
Andy Allan
<git@gravitystorm.co.uk>
Wed, 31 May 2017 17:40:13 +0000
(18:40 +0100)
committer
Andy Allan
<git@gravitystorm.co.uk>
Wed, 31 May 2017 17:40:20 +0000
(18:40 +0100)
test/controllers/user_controller_test.rb
patch
|
blob
|
history
diff --git
a/test/controllers/user_controller_test.rb
b/test/controllers/user_controller_test.rb
index 3232b9e2ed50e293ff6ba9b1274c214b252e7505..d3a654437fc4a444138a9467fa88e8ae9f4c9ee4 100644
(file)
--- a/
test/controllers/user_controller_test.rb
+++ b/
test/controllers/user_controller_test.rb
@@
-1348,44
+1348,55
@@
class UserControllerTest < ActionController::TestCase
end
def test_list_get
end
def test_list_get
+ user = create(:user)
+ moderator_user = create(:moderator_user)
+ administrator_user = create(:administrator_user)
+ suspended_user = create(:user, :suspended)
+ ip_user = create(:user, :creation_ip => "1.2.3.4")
+
+ # There are now 7 users - the five above, plus two extra "granters" for the
+ # moderator_user and administrator_user
+ assert_equal 7, User.count
+
# Shouldn't work when not logged in
get :list
assert_response :redirect
assert_redirected_to :action => :login, :referer => users_path
# Shouldn't work when not logged in
get :list
assert_response :redirect
assert_redirected_to :action => :login, :referer => users_path
- session[:user] =
create(:user)
.id
+ session[:user] =
user
.id
# Shouldn't work when logged in as a normal user
get :list
assert_response :redirect
assert_redirected_to :action => :login, :referer => users_path
# Shouldn't work when logged in as a normal user
get :list
assert_response :redirect
assert_redirected_to :action => :login, :referer => users_path
- session[:user] =
create(:moderator_user)
.id
+ session[:user] =
moderator_user
.id
# Shouldn't work when logged in as a moderator
get :list
assert_response :redirect
assert_redirected_to :action => :login, :referer => users_path
# Shouldn't work when logged in as a moderator
get :list
assert_response :redirect
assert_redirected_to :action => :login, :referer => users_path
- session[:user] =
create(:administrator_user)
.id
+ session[:user] =
administrator_user
.id
+ # Note there is a header row, so all row counts are users + 1
# Should work when logged in as an administrator
get :list
assert_response :success
assert_template :list
# Should work when logged in as an administrator
get :list
assert_response :success
assert_template :list
- assert_select "table#user_list tr", :count =>
User.count
+ 1
+ assert_select "table#user_list tr", :count =>
7
+ 1
# Should be able to limit by status
get :list, :status => "suspended"
assert_response :success
assert_template :list
# Should be able to limit by status
get :list, :status => "suspended"
assert_response :success
assert_template :list
- assert_select "table#user_list tr", :count =>
User.where(:status => "suspended").count
+ 1
+ assert_select "table#user_list tr", :count =>
1
+ 1
# Should be able to limit by IP address
get :list, :ip => "1.2.3.4"
assert_response :success
assert_template :list
# Should be able to limit by IP address
get :list, :ip => "1.2.3.4"
assert_response :success
assert_template :list
- assert_select "table#user_list tr", :count =>
User.where(:creation_ip => "1.2.3.4").count
+ 1
+ assert_select "table#user_list tr", :count =>
1
+ 1
end
def test_list_get_paginated
end
def test_list_get_paginated