2017-11-21 21:50:03 +00:00
|
|
|
FactoryBot.define do
|
2017-01-27 08:17:03 +00:00
|
|
|
factory :user do
|
2020-05-14 21:32:49 +00:00
|
|
|
transient do
|
|
|
|
intro_clues { true }
|
|
|
|
end
|
|
|
|
|
2019-01-31 04:41:54 +00:00
|
|
|
login { 'nicole.braun' }
|
|
|
|
firstname { 'Nicole' }
|
|
|
|
lastname { 'Braun' }
|
|
|
|
sequence(:email) { |n| "nicole.braun#{n}@zammad.org" }
|
|
|
|
password { nil }
|
|
|
|
active { true }
|
|
|
|
login_failed { 0 }
|
|
|
|
updated_by_id { 1 }
|
|
|
|
created_by_id { 1 }
|
2017-01-27 08:17:03 +00:00
|
|
|
|
2020-05-14 21:32:49 +00:00
|
|
|
callback(:after_stub, :before_create) do |object, context|
|
|
|
|
next if !context.intro_clues
|
|
|
|
|
|
|
|
object.preferences ||= {}
|
|
|
|
object.preferences[:intro] = true
|
|
|
|
end
|
|
|
|
|
2019-02-04 06:56:18 +00:00
|
|
|
factory :customer_user, aliases: %i[customer] do
|
|
|
|
role_ids { Role.signup_role_ids.sort }
|
2019-02-13 04:19:33 +00:00
|
|
|
|
|
|
|
trait :with_org do
|
|
|
|
organization
|
|
|
|
end
|
2019-02-04 06:56:18 +00:00
|
|
|
end
|
2017-05-02 11:37:20 +00:00
|
|
|
|
2019-02-04 06:56:18 +00:00
|
|
|
factory :agent_user, aliases: %i[agent] do
|
|
|
|
roles { Role.where(name: 'Agent') }
|
|
|
|
end
|
2018-03-08 12:23:37 +00:00
|
|
|
|
2019-02-04 06:56:18 +00:00
|
|
|
factory :admin_user, aliases: %i[admin] do
|
|
|
|
roles { Role.where(name: %w[Admin Agent]) }
|
|
|
|
end
|
2020-04-27 13:34:52 +00:00
|
|
|
|
|
|
|
# make given password accessible for e.g. authentication logic
|
|
|
|
before(:create) do |user|
|
|
|
|
password_plain = user.password
|
|
|
|
user.define_singleton_method(:password_plain, -> { password_plain })
|
|
|
|
end
|
2017-02-24 17:27:27 +00:00
|
|
|
end
|
2017-01-27 08:17:03 +00:00
|
|
|
end
|