trabajo-afectivo/spec/factories/user.rb

56 lines
1.3 KiB
Ruby
Raw Normal View History

FactoryBot.define do
factory :user do
transient do
intro_clues { true }
slug { "#{firstname}.#{lastname}".parameterize }
end
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 }
callback(:after_stub, :before_create) do |object, context|
next if !context.intro_clues
object.preferences ||= {}
object.preferences[:intro] = true
end
factory :customer do
role_ids { Role.signup_role_ids.sort }
trait :with_org do
organization
end
end
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
factory :agent do
roles { Role.where(name: 'Agent') }
end
2018-03-08 12:23:37 +00:00
factory :admin do
roles { Role.where(name: %w[Admin Agent]) }
end
# 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
end
end