Sha256: 2069664ff4643984146b7b12b2662c5ac82fa89edd307c5b048d0698caf5ce2d

Contents?: true

Size: 1.58 KB

Versions: 5

Compression:

Stored size: 1.58 KB

Contents

module Pageflow
  FactoryBot.define do
    sequence :email do |n|
      "person#{n}@example.com"
    end

    factory :user do
      transient do
        on nil
      end

      email
      first_name 'John'
      last_name 'Doe'

      password '@qwert12345'
      password_confirmation { password }

      trait :member do
        after(:create) do |user, evaluator|
          create(:membership, user: user, entity: evaluator.on, role: :member)
        end
      end

      trait :previewer do
        after(:create) do |user, evaluator|
          create(:membership, user: user, entity: evaluator.on, role: :previewer)
        end
      end

      trait :editor do
        after(:create) do |user, evaluator|
          create(:membership, user: user, entity: evaluator.on, role: :editor)
        end
      end

      trait :publisher do
        after(:create) do |user, evaluator|
          create(:membership, user: user, entity: evaluator.on, role: :publisher)
        end
      end

      trait :manager do
        after(:create) do |user, evaluator|
          create(:membership, user: user, entity: evaluator.on, role: :manager)
        end
      end

      trait :admin do
        admin true
        after(:create) do |user, evaluator|
          create(:membership,
                 user: user,
                 role: :member,
                 entity: evaluator.on || create(:account))
        end
      end

      trait :suspended do
        suspended_at { 1.hour.ago }
      end
    end

    factory :valid_user, class: User do
      email
      first_name 'Edison'
      last_name 'Editor'
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
pageflow-13.0.0.beta5 spec/factories/users.rb
pageflow-13.0.0.beta4 spec/factories/users.rb
pageflow-13.0.0.beta3 spec/factories/users.rb
pageflow-13.0.0.beta2 spec/factories/users.rb
pageflow-13.0.0.beta1 spec/factories/users.rb