mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-26 20:56:48 +00:00
45 lines
1.1 KiB
Ruby
45 lines
1.1 KiB
Ruby
FactoryBot.define do
|
|
sequence :user_authentication_token do |n|
|
|
"xxxx#{Time.now.to_i}#{rand(1000)}#{n}xxxxxxxxxxxxx"
|
|
end
|
|
|
|
factory :user, class: Spree.user_class do
|
|
transient do
|
|
enterprises []
|
|
end
|
|
|
|
email { generate(:random_email) }
|
|
login { email }
|
|
password 'secret'
|
|
password_confirmation { password }
|
|
authentication_token { generate(:user_authentication_token) } if Spree.user_class.attribute_method? :authentication_token
|
|
|
|
confirmation_sent_at '1970-01-01 00:00:00'
|
|
confirmed_at '1970-01-01 00:00:01'
|
|
|
|
before(:create) do |user, evaluator|
|
|
if evaluator.confirmation_sent_at
|
|
if evaluator.confirmed_at
|
|
user.skip_confirmation!
|
|
else
|
|
user.skip_confirmation_notification!
|
|
end
|
|
end
|
|
end
|
|
|
|
after(:create) do |user, proxy|
|
|
user.spree_roles.clear # Remove admin role
|
|
|
|
user.enterprises << proxy.enterprises
|
|
end
|
|
|
|
factory :admin_user do
|
|
spree_roles { [Spree::Role.find_or_create_by!(name: 'admin')] }
|
|
|
|
after(:create) do |user|
|
|
user.spree_roles << Spree::Role.find_or_create_by!(name: 'admin')
|
|
end
|
|
end
|
|
end
|
|
end
|