53 lines
1.2 KiB
Ruby
53 lines
1.2 KiB
Ruby
|
|
require "faker"
|
||
|
|
|
||
|
|
FactoryBot.define do
|
||
|
|
sequence(:login) do |n|
|
||
|
|
"#{Faker::Lorem.characters(number: 8)}#{n}"
|
||
|
|
end
|
||
|
|
|
||
|
|
factory :role do
|
||
|
|
sequence(:name) { |n| "#{Faker::Company.profession}_#{n}" }
|
||
|
|
end
|
||
|
|
|
||
|
|
factory :user do
|
||
|
|
login { generate(:login) }
|
||
|
|
password { SecureRandom.alphanumeric(10) }
|
||
|
|
age_over_13 { "1" }
|
||
|
|
data_processing { "1" }
|
||
|
|
terms_of_service { "1" }
|
||
|
|
password_confirmation(&:password)
|
||
|
|
email { Faker::Internet.unique.email }
|
||
|
|
|
||
|
|
# By default, create activated users who can log in, since we use
|
||
|
|
# devise :confirmable.
|
||
|
|
confirmed_at { Faker::Time.backward }
|
||
|
|
|
||
|
|
trait :unconfirmed do
|
||
|
|
confirmed_at { nil }
|
||
|
|
end
|
||
|
|
|
||
|
|
# Usernames used in mailer preview should be unique but recognizable as usernames
|
||
|
|
trait :for_mailer_preview do
|
||
|
|
login { "User#{Faker::Alphanumeric.alpha(number: 8)}" }
|
||
|
|
end
|
||
|
|
|
||
|
|
# Roles
|
||
|
|
|
||
|
|
factory :archivist do
|
||
|
|
roles { [Role.find_or_create_by(name: "archivist")] }
|
||
|
|
end
|
||
|
|
|
||
|
|
factory :opendoors_user do
|
||
|
|
roles { [Role.find_or_create_by(name: "opendoors")] }
|
||
|
|
end
|
||
|
|
|
||
|
|
factory :tag_wrangler do
|
||
|
|
roles { [Role.find_or_create_by(name: "tag_wrangler")] }
|
||
|
|
end
|
||
|
|
|
||
|
|
factory :official_user do
|
||
|
|
roles { [Role.find_or_create_by(name: "official")] }
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|