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