libertarian-party/partynest

View on GitHub
factories/people.rb

Summary

Maintainability
A
0 mins
Test Coverage
# frozen_string_literal: true

FactoryBot.define do
  factory :initial_person, class: Person do
    transient do
      regional_office { nil }
    end

    association :contact_list, factory: :empty_contact_list

    first_name { Faker::Name.first_name }
    middle_name { Faker::Name.first_name }
    last_name { Faker::Name.last_name }
    sex { Person.sexes.keys.sample }
    date_of_birth { Faker::Date.backward }
    place_of_birth { Faker::Address.city }
  end

  factory :supporter_person, parent: :initial_person do
    after :create do |person, _evaluator|
      create :supporter_relationship, person: person
    end
  end

  factory :member_person, parent: :initial_person do
    after :create do |person, _evaluator|
      create :member_relationship, person: person
    end
  end

  factory :excluded_person, parent: :initial_person do
    after :create do |person, _evaluator|
      create :excluded_relationship, person: person
    end
  end

  factory :federal_manager_person, parent: :initial_person do
    after :create do |person, _evaluator|
      create :federal_manager_relationship, person: person
    end
  end

  factory :federal_supervisor_person, parent: :initial_person do
    after :create do |person, _evaluator|
      create :federal_supervisor_relationship, person: person
    end
  end

  factory :regional_manager_person, parent: :initial_person do
    after :create do |person, _evaluator|
      create :regional_manager_relationship, person: person
    end
  end

  factory :regional_supervisor_person, parent: :initial_person do
    after :create do |person, _evaluator|
      create :regional_supervisor_relationship, person: person
    end
  end

  factory :regional_secretary_person, parent: :initial_person do
    after :create do |person, _evaluator|
      create :regional_secretary_relationship, person: person
    end
  end
end