Sha256: 9acf371009b9f7921203d6a7e2ab9e5baa861c0948ef78a68493ce2e2abce998

Contents?: true

Size: 1.61 KB

Versions: 6

Compression:

Stored size: 1.61 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) }
    # password_confirmation { password }
    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 :role, class: 'Symphonia::Role' do
    sequence(:name) { |n| "#{Faker::Job.title} #{n}" }
  end

  factory :attachment, class: 'Symphonia::Attachment' do
    association :attachable, factory: :user
  end

  factory :file, parent: :attachment, class: 'Symphonia::CommonFile' do
    attachment { File.new(File.expand_path('../../support/common_file.txt', __FILE__)) }
  end

  factory :image, parent: :attachment, class: 'Symphonia::Image' do
    attachment { File.new(File.expand_path('../../support/symphonia.jpg', __FILE__)) }
  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

6 entries across 6 versions & 1 rubygems

Version Path
symphonia-3.2.4 spec/factories/factories.rb
symphonia-3.2.3 spec/factories/factories.rb
symphonia-3.2.2 spec/factories/factories.rb
symphonia-3.2.1 spec/factories/factories.rb
symphonia-3.1.5 spec/factories/factories.rb
symphonia-3.1.4 spec/factories/factories.rb