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