1
0
Fork 0
This repository has been archived on 2023-03-28. You can view files and clone it, but cannot push or open issues or pull requests.
lpr-partynest/factories/passports.rb

62 lines
1.8 KiB
Ruby

# frozen_string_literal: true
FactoryBot.define do
factory :passport_without_image, class: Passport do
confirmed { false }
surname { Faker::Name.last_name }
given_name { Faker::Name.first_name }
patronymic { Faker::Name.first_name }
sex { Passport.sexes.keys.sample }
date_of_birth { Faker::Date.backward }
place_of_birth { Faker::Address.city }
series { rand 0..9999 }
number { rand 0..999_999 }
issued_by { Faker::Lorem.sentence }
unit_code do
"#{rand(0..999).to_s.rjust(3, '0')}-#{rand(0..999).to_s.rjust(3, '0')}"
end
date_of_issue { Faker::Date.backward }
end
factory :passport_with_image, parent: :passport_without_image do
transient do
image_filename { image_fixture }
image_fixture { "passport_image_#{rand(1..4)}.jpg" }
image_path { Rails.root.join 'fixtures', image_fixture }
end
after :build do |passport, evaluator|
passport.images.attach(
filename: evaluator.image_filename,
io: File.open(evaluator.image_path),
)
end
end
factory :passport_with_almost_enough_confirmations,
parent: :passport_with_image do
after :create do |passport, _evaluator|
create_list :passport_confirmation,
Passport::REQUIRED_CONFIRMATIONS - 1,
passport: passport
end
end
factory :passport_with_enough_confirmations,
parent: :passport_with_image do
after :create do |passport, _evaluator|
create_list :passport_confirmation,
Passport::REQUIRED_CONFIRMATIONS,
passport: passport
end
end
factory :confirmed_passport, parent: :passport_with_enough_confirmations do
after :create do |passport, _evaluator|
passport.update! confirmed: true
end
end
end