Genshin/GAKUEngine

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

Summary

Maintainability
A
0 mins
Test Coverage
FactoryBot.define do
  factory :program, class: Gaku::Program do
    name { FFaker::Education.degree }
    description { 'Superior Ruby Skills' }
    school
  end

  trait :full_program do |resource|
    resource.after(:build) do |program|
      level = create(:level)
      syllabus = create(:syllabus)
      specialty = create(:specialty)
      create(:program_level, level: level, program: program)
      create(:program_syllabus, level: level, program: program, syllabus: syllabus)
      create(:program_specialty, specialty: specialty, program: program)
    end
  end

  trait :with_program_level do |resource|
    resource.after(:build) do |program|
      program.levels << create(:level)
    end
  end

  trait :with_program_syllabus do |resource|
    resource.after(:build) do |program|
      program.syllabuses << create(:syllabus)
    end
  end

  trait :with_program_specialty do |resource|
    resource.after(:build) do |program|
      program.specialties << create(:specialty)
    end
  end
end