]> git.openstreetmap.org Git - rails.git/blobdiff - test/factories/user.rb
use a controller method to handle cancan denials
[rails.git] / test / factories / user.rb
index a7219324a8f6c99d7b68195f1d2af6667901d412..d6ee1fa8c03249f9f4216cde09b890c921936bc0 100644 (file)
@@ -1,9 +1,15 @@
-FactoryGirl.define do
+FactoryBot.define do
   factory :user do
     sequence(:email) { |n| "user#{n}@example.com" }
     sequence(:display_name) { |n| "User #{n}" }
     pass_crypt Digest::MD5.hexdigest("test")
 
+    # These attributes are not the defaults, but in most tests we want
+    # a 'normal' user who can log in without being redirected etc.
+    status "active"
+    terms_seen true
+    data_public true
+
     trait :with_home_location do
       home_lat { rand(-90.0...90.0) }
       home_lon { rand(-180.0...180.0) }
@@ -41,11 +47,12 @@ FactoryGirl.define do
       end
     end
 
-    # A commonly needed user is one who can log in an isn't redirected anywhere
-    factory :normal_user do
-      status "active"
-      terms_seen true
-      data_public true
+    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