Create a super_user factory.
authorAndy Allan <git@gravitystorm.co.uk>
Thu, 9 Mar 2017 16:21:51 +0000 (16:21 +0000)
committerAndy Allan <git@gravitystorm.co.uk>
Thu, 9 Mar 2017 16:21:51 +0000 (16:21 +0000)
test/controllers/user_roles_controller_test.rb
test/factories/user.rb

index ef1a57c..c7e5926 100644 (file)
@@ -20,11 +20,7 @@ class UserRolesControllerTest < ActionController::TestCase
     target_user = create(:user)
     normal_user = create(:user)
     administrator_user = create(:administrator_user)
-    # Create a super user which has all known roles
-    super_user = create(:user)
-    UserRole::ALL_ROLES.each do |role|
-      create(:user_role, :user => super_user, :granter => administrator_user, :role => role)
-    end
+    super_user = create(:super_user)
 
     # Granting should fail when not logged in
     post :grant, :display_name => target_user.display_name, :role => "moderator"
@@ -85,11 +81,7 @@ class UserRolesControllerTest < ActionController::TestCase
     target_user = create(:user)
     normal_user = create(:user)
     administrator_user = create(:administrator_user)
-    # Create a super user which has all known roles
-    super_user = create(:user)
-    UserRole::ALL_ROLES.each do |role|
-      create(:user_role, :user => super_user, :granter => administrator_user, :role => role)
-    end
+    super_user = create(:super_user)
 
     # Revoking should fail when not logged in
     post :revoke, :display_name => target_user.display_name, :role => "moderator"
index 802fedd..8fe7684 100644 (file)
@@ -46,5 +46,13 @@ FactoryGirl.define do
         create(:user_role, :role => "administrator", :user => user)
       end
     end
+
+    factory :super_user do
+      after(:create) do |user, _evaluator|
+        UserRole::ALL_ROLES.each do |role|
+          create(:user_role, :role => role, :user => user)
+        end
+      end
+    end
   end
 end