58 lines
1.2 KiB
Ruby
58 lines
1.2 KiB
Ruby
FactoryBot.define do
|
|
factory :user do
|
|
sequence(:email) { |num| "user-#{num}@test.com" }
|
|
password_digest { 'password' }
|
|
|
|
trait :with_name do
|
|
first_name "John"
|
|
last_name "Doe"
|
|
email "funny@mail.com"
|
|
end
|
|
|
|
trait :with_different_name do
|
|
first_name "Specimen"
|
|
last_name "Simpson"
|
|
email "different@mail.com"
|
|
end
|
|
|
|
after(:create) do |user|
|
|
if user.accounts.empty?
|
|
account = create(:account)
|
|
auth = create(:account_auth, user: user, account: account, role: :account_manager)
|
|
user.account_auths << auth
|
|
end
|
|
end
|
|
|
|
trait :accountless do
|
|
after(:create) do |user|
|
|
user.accounts.delete_all
|
|
end
|
|
end
|
|
|
|
trait :admin do
|
|
admin true
|
|
end
|
|
|
|
trait :account_manager do
|
|
after(:create) do |user|
|
|
user.update(admin: false)
|
|
user.account_auths.update(role: :account_manager)
|
|
end
|
|
end
|
|
|
|
trait :manager do
|
|
after(:create) do |user|
|
|
user.update(admin: false)
|
|
user.account_auths.update(role: :project_manager)
|
|
end
|
|
end
|
|
|
|
trait :associate do
|
|
after(:create) do |user|
|
|
user.update(admin: false)
|
|
user.account_auths.update(role: :associate)
|
|
end
|
|
end
|
|
end
|
|
end
|