openstreetmap-website/test/factories/user.rb
Andy Allan 35a2d66e19 Remove require_terms_agreed configuration option
This has been set to true for 6 years in production. Refs #2097

As per other user settings, we set the terms as seen by default for tests,
and we can override that when necessary for specific tests.
2019-02-06 15:50:57 +01:00

59 lines
1.4 KiB
Ruby

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 }
terms_agreed { Time.now.getutc }
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