12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- 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" }
- 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
- 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
|