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 }
|
2021-04-01 13:07:13 +00:00
|
|
|
slug { "#{firstname}.#{lastname}".parameterize }
|
2020-05-14 21:32:49 +00:00
|
|
|
end
|
|
|
|
|
2021-04-01 13:07:13 +00:00
|
|
|
login { slug }
|
|
|
|
firstname { Faker::Name.first_name }
|
|
|
|
lastname { Faker::Name.last_name }
|
|
|
|
sequence(:email) { |n| "#{slug}.#{n}@zammad.org" }
|
2019-01-31 04:41:54 +00:00
|
|
|
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
|
|
|
|
|
2020-06-19 09:17:18 +00:00
|
|
|
factory :customer do
|
2019-02-04 06:56:18 +00:00
|
|
|
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
|
|
|
|
2020-08-20 07:10:08 +00:00
|
|
|
factory :agent_and_customer do
|
|
|
|
role_ids { Role.signup_role_ids.push( Role.find_by(name: 'Agent').id ).sort }
|
|
|
|
|
|
|
|
trait :with_org do
|
|
|
|
organization
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2020-06-19 09:17:18 +00:00
|
|
|
factory :agent do
|
2019-02-04 06:56:18 +00:00
|
|
|
roles { Role.where(name: 'Agent') }
|
|
|
|
end
|
2018-03-08 12:23:37 +00:00
|
|
|
|
2020-06-19 09:17:18 +00:00
|
|
|
factory :admin do
|
2019-02-04 06:56:18 +00:00
|
|
|
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
|