X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/589e9802a94e6c6bb7b4cf1770eb4a32498e591f..c00c515d9d12e25e63d3a0b3271862dd5b134ca4:/test/factories/user.rb diff --git a/test/factories/user.rb b/test/factories/user.rb index ccbb84f93..8fe768410 100644 --- a/test/factories/user.rb +++ b/test/factories/user.rb @@ -3,5 +3,56 @@ FactoryGirl.define 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) } + end + + trait :pending do + status "pending" + end + + trait :active do + status "active" + end + + trait :confirmed do + status "confirmed" + end + + trait :suspended do + status "suspended" + end + + trait :deleted do + status "deleted" + end + + factory :moderator_user do + after(:create) do |user, _evaluator| + create(:user_role, :role => "moderator", :user => user) + end + end + + factory :administrator_user do + after(:create) do |user, _evaluator| + 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