Sha256: 86e4542ee828f903f3974773a6984f09c862f81f3b3ea20838503b25d3ae8012

Contents?: true

Size: 1.59 KB

Versions: 1

Compression:

Stored size: 1.59 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 :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

1 entries across 1 versions & 1 rubygems

Version Path
symphonia-3.3.0 spec/factories/factories.rb