]> git.openstreetmap.org Git - rails.git/blobdiff - test/factories/user.rb
Merge remote-tracking branch 'upstream/pull/2136'
[rails.git] / test / factories / user.rb
index 9ec4e20306a966b4e52bfd29efc978ef8064bd9b..48a124adb7c0fe9872cf1513ebb37eca461ea8ef 100644 (file)
@@ -1,8 +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")
+    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 }
+    terms_agreed { Time.now.getutc }
+    data_public { true }
 
     trait :with_home_location do
       home_lat { rand(-90.0...90.0) }
@@ -10,23 +17,23 @@ FactoryGirl.define do
     end
 
     trait :pending do
-      status "pending"
+      status { "pending" }
     end
 
     trait :active do
-      status "active"
+      status { "active" }
     end
 
     trait :confirmed do
-      status "confirmed"
+      status { "confirmed" }
     end
 
     trait :suspended do
-      status "suspended"
+      status { "suspended" }
     end
 
     trait :deleted do
-      status "deleted"
+      status { "deleted" }
     end
 
     factory :moderator_user do
@@ -40,5 +47,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