]> git.openstreetmap.org Git - rails.git/blob - test/factories/user.rb
Merge remote-tracking branch 'upstream/pull/3300'
[rails.git] / test / factories / user.rb
1 FactoryBot.define do
2   factory :user do
3     sequence(:email) { |n| "user#{n}@example.com" }
4     sequence(:display_name) { |n| "User #{n}" }
5     pass_crypt { Digest::MD5.hexdigest("test") }
6
7     # These attributes are not the defaults, but in most tests we want
8     # a 'normal' user who can log in without being redirected etc.
9     status { "active" }
10     terms_seen { true }
11     terms_agreed { Time.now.getutc }
12     data_public { true }
13
14     trait :with_home_location do
15       home_lat { rand(-90.0...90.0) }
16       home_lon { rand(-180.0...180.0) }
17     end
18
19     trait :pending do
20       status { "pending" }
21     end
22
23     trait :active do
24       status { "active" }
25     end
26
27     trait :confirmed do
28       status { "confirmed" }
29     end
30
31     trait :suspended do
32       status { "suspended" }
33     end
34
35     trait :deleted do
36       status { "deleted" }
37     end
38
39     factory :moderator_user do
40       after(:create) do |user, _evaluator|
41         create(:user_role, :role => "moderator", :user => user)
42       end
43     end
44
45     factory :administrator_user do
46       after(:create) do |user, _evaluator|
47         create(:user_role, :role => "administrator", :user => user)
48       end
49     end
50
51     factory :super_user do
52       after(:create) do |user, _evaluator|
53         UserRole::ALL_ROLES.each do |role|
54           create(:user_role, :role => role, :user => user)
55         end
56       end
57     end
58   end
59 end