Genshin/GAKUEngine

View on GitHub
core/lib/gaku/testing/factories/user_factory.rb

Summary

Maintainability
A
0 mins
Test Coverage
FactoryBot.define do
  factory :user, class: Gaku::User do
    username { FFaker::Internet.user_name }
    email { FFaker::Internet.email }
    password { 'secret' }
    password_confirmation { 'secret' }

    factory :invalid_user do
      email { nil }
    end
  end

  factory :admin_user, parent: :user do
    after(:create) do |user|
      role = create(:admin_role)
      create(:user_role, role: role, user: user)
    end
  end

  factory :student_user, parent: :user do
    after(:create) do |user|
      role = create(:student_role)
      create(:user_role, role: role, user: user)
    end
  end

  factory :principal_user, parent: :user do
    after(:create) do |user|
      role = create(:principal_role)
      create(:user_role, role: role, user: user)
    end
  end

  factory :vice_principal_user, parent: :user do
    after(:create) do |user|
      role = create(:vice_principal_role)
      create(:user_role, role: role, user: user)
    end
  end
end