Use user factories for user_roles integration tests.
authorAndy Allan <git@gravitystorm.co.uk>
Fri, 10 Mar 2017 11:02:40 +0000 (11:02 +0000)
committerAndy Allan <git@gravitystorm.co.uk>
Fri, 10 Mar 2017 11:02:40 +0000 (11:02 +0000)
test/integration/user_roles_test.rb

index edf1c7c..c2f065e 100644 (file)
@@ -1,20 +1,18 @@
 require "test_helper"
 
 class UserRolesTest < ActionDispatch::IntegrationTest
-  fixtures :users, :user_roles
-
   def setup
     stub_hostip_requests
   end
 
   test "grant" do
-    check_fail(:grant, :public_user, :moderator)
+    check_fail(:grant, :user, :moderator)
     check_fail(:grant, :moderator_user, :moderator)
     check_success(:grant, :administrator_user, :moderator)
   end
 
   test "revoke" do
-    check_fail(:revoke, :public_user, :moderator)
+    check_fail(:revoke, :user, :moderator)
     check_fail(:revoke, :moderator_user, :moderator)
     # this other user doesn't have moderator role, so this fails
     check_fail(:revoke, :administrator_user, :moderator)
@@ -28,13 +26,14 @@ class UserRolesTest < ActionDispatch::IntegrationTest
     assert_redirected_to "controller" => "user", "action" => "login", "cookie_test" => "true"
     follow_redirect!
     assert_response :success
-    post "/login", "username" => users(user).email, "password" => "test", :referer => "/"
+    post "/login", "username" => create(user).email, "password" => "test", :referer => "/"
     assert_response :redirect
     follow_redirect!
     assert_response :success
 
-    post "/user/#{users(:second_public_user).display_name}/role/#{role}/#{action}"
-    assert_redirected_to :controller => "user", :action => "view", :display_name => users(:second_public_user).display_name
+    target_user = create(:user)
+    post "/user/#{URI.encode(target_user.display_name)}/role/#{role}/#{action}"
+    assert_redirected_to :controller => "user", :action => "view", :display_name => target_user.display_name
 
     reset!
   end
@@ -45,13 +44,14 @@ class UserRolesTest < ActionDispatch::IntegrationTest
     assert_redirected_to "controller" => "user", "action" => "login", "cookie_test" => "true"
     follow_redirect!
     assert_response :success
-    post "/login", "username" => users(user).email, "password" => "test", :referer => "/"
+    post "/login", "username" => create(user).email, "password" => "test", :referer => "/"
     assert_response :redirect
     follow_redirect!
     assert_response :success
 
-    post "/user/#{users(:second_public_user).display_name}/role/#{role}/#{action}"
-    assert_redirected_to :controller => "user", :action => "view", :display_name => users(:second_public_user).display_name
+    target_user = create(:user)
+    post "/user/#{URI.encode(target_user.display_name)}/role/#{role}/#{action}"
+    assert_redirected_to :controller => "user", :action => "view", :display_name => target_user.display_name
 
     reset!
   end