Sha256: 068c721678553f06bb0eb8568c93c4aaefb571f85418be9321fc275493bd8437

Contents?: true

Size: 1.06 KB

Versions: 1

Compression:

Stored size: 1.06 KB

Contents

# frozen_string_literal: true

require 'factory_bot'
require 'securerandom'

FactoryBot.define do
  factory :meibo_academic_session, class: 'Meibo::AcademicSession' do
    initialize_with { new(**attributes) }

    transient do
      today { Date.today }
      parent { nil }
    end

    sourced_id { SecureRandom.uuid }
    title { "#{school_year}年度" }
    type { Meibo::AcademicSession::TYPES[:school_year] }
    start_date { Date.new(school_year, 4, 1).iso8601 }
    end_date { Date.new(school_year + 1, 3, 31).iso8601 }
    parent_sourced_id { parent&.sourced_id }
    school_year { today.year }

    trait :grading_period do
      type { Meibo::AcademicSession::TYPES[:grading_period] }
    end

    trait :semester do
      type { Meibo::AcademicSession::TYPES[:semester] }
    end

    trait :school_year do
      type { Meibo::AcademicSession::TYPES[:school_year] }
    end

    trait :term do
      type { Meibo::AcademicSession::TYPES[:term] }
    end

    trait :jp do
      initialize_with { Meibo::JapanProfile::AcademicSession.new(**attributes) }
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
meibo-0.10.0 lib/meibo/factory_bot/academic_session.rb