41 lines
1.5 KiB
Ruby
41 lines
1.5 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
FactoryBot.define do
|
|
sequence(:coin_beneficiary_data) do
|
|
{ address: Faker::Blockchain::Ethereum.address }
|
|
end
|
|
|
|
sequence(:fiat_beneficiary_data) do
|
|
{ full_name: Faker::Name.name_with_middle,
|
|
address: Faker::Address.full_address,
|
|
country: Faker::Address.country,
|
|
account_number: Faker::Bank.account_number,
|
|
account_type: %w[saving checking money-market CDs retirement].sample,
|
|
bank_name: Faker::Bank.name,
|
|
bank_address: Faker::Address.full_address,
|
|
bank_country: Faker::Address.country,
|
|
bank_swift_code: Faker::Bank.swift_bic,
|
|
intermediary_bank_name: Faker::Bank.name,
|
|
intermediary_bank_address: Faker::Address.full_address,
|
|
intermediary_bank_country: Faker::Address.country,
|
|
intermediary_bank_swift_code: Faker::Bank.swift_bic }
|
|
end
|
|
|
|
factory :beneficiary do
|
|
member { create(:member) }
|
|
currency { Currency.all.sample }
|
|
name { Faker::Company.name }
|
|
description { Faker::Company.catch_phrase }
|
|
state { 'pending' }
|
|
|
|
data do
|
|
# Use save navigation operator for cases when currency is nil.
|
|
if currency&.coin?
|
|
generate(:coin_beneficiary_data)
|
|
elsif currency&.fiat?
|
|
generate(:fiat_beneficiary_data).merge(currency: currency.id)
|
|
end
|
|
end
|
|
end
|
|
end
|