Sha256: b3b847f2413f0c36128b85821329d873633be9eab5d1465367a241ab8d546936

Contents?: true

Size: 1.04 KB

Versions: 10

Compression:

Stored size: 1.04 KB

Contents

FactoryBot.define do
  factory :user, class: 'Symphonia::User', aliases: [:author] do
    sequence(:first_name) { |n| "#{Faker::Name.first_name} #{n}" }
    sequence(:last_name) { |n| "#{Faker::Name.last_name} #{n}" }
    sequence(:email) { |n| "#{n}-#{Faker::Internet.email}" }
    login { email }
    admin { false }
    password { SecureRandom.hex(16) }
    last_request_at { Time.now }

    trait :admin do
      admin { true }
    end

    trait :with_preferences do
      transient do
        preference_names { [] }
      end
      after(:build) do |user, evaluator|
        user.preferences = evaluator.preference_names.collect { |pref_name| Symphonia::EmailPreference.find_by(name: pref_name) || FactoryBot.create(:email_preference, name: pref_name) }
      end
    end
    factory :admin_user, traits: [:admin]
  end

  factory :preference, class: 'Symphonia::Preference' do

    factory :email_preference, class: 'Symphonia::EmailPreference' do
      trait :user_registered do
        name { :notify_after_user_registered }
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
symphonia-6.0.6 spec/factories/factories.rb
symphonia-6.0.5 spec/factories/factories.rb
symphonia-6.0.2 spec/factories/factories.rb
symphonia-6.0.1 spec/factories/factories.rb
symphonia-6.0.0 spec/factories/factories.rb
symphonia-5.0.6 spec/factories/factories.rb
symphonia-5.0.5 spec/factories/factories.rb
symphonia-5.0.4 spec/factories/factories.rb
symphonia-5.0.3 spec/factories/factories.rb
symphonia-5.0.0 spec/factories/factories.rb