X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/91f3339b6a5290b5fbbf58f57ef4f623ab7a8c56..4cac6b035410619a4b6bece8be6f224fb06b3c87:/test/factories/user.rb diff --git a/test/factories/user.rb b/test/factories/user.rb index 802fedd91..7823c0e9f 100644 --- a/test/factories/user.rb +++ b/test/factories/user.rb @@ -1,14 +1,18 @@ -FactoryGirl.define do +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") + pass_crypt { "$argon2id$v=19$m=65536,t=3,p=4$M+oP6KQOdFLDeiYa/gbzAg$pULNwXgKt2sEmTxMXxt298skEqc8MjnPwGsk075jLrk" } # 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 + after(:build) do |user, _evaluator| + user.activate + end + + terms_seen { true } + terms_agreed { Time.now.utc } + data_public { true } trait :with_home_location do home_lat { rand(-90.0...90.0) } @@ -16,23 +20,37 @@ FactoryGirl.define do end trait :pending do - status "pending" + after(:build) do |user, _evaluator| + user.deactivate + end end trait :active do - status "active" + # status { "active" } end trait :confirmed do - status "confirmed" + after(:build) do |user, _evaluator| + user.confirm + end end trait :suspended do - status "suspended" + after(:build) do |user, _evaluator| + user.suspend + end end trait :deleted do - status "deleted" + after(:build) do |user, _evaluator| + user.soft_destroy + end + end + + factory :importer_user do + after(:create) do |user, _evaluator| + create(:user_role, :role => "importer", :user => user) + end end factory :moderator_user do @@ -46,5 +64,13 @@ FactoryGirl.define do 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