hensei-api/spec/factories/weapon_keys.rb

41 lines
No EOL
1.7 KiB
Ruby

FactoryBot.define do
factory :weapon_key do
sequence(:name_en) { |n| "Pendulum of #{['Strife', 'Sagacity', 'Prosperity', 'Forbiddance', 'Temperament'].sample}" }
name_jp { "" }
slot { rand(1..3) }
group { rand(1..5) }
order { rand(1..20) }
sequence(:slug) { |n| "key-#{n}" }
sequence(:granblue_id) { |n| n.to_s }
series { [3, 27] } # Opus and Draconic weapons (legacy)
trait :opus_key do
series { [3] }
after(:create) do |weapon_key|
opus_series = WeaponSeries.find_by(slug: 'dark-opus') || FactoryBot.create(:weapon_series, :opus)
weapon_key.weapon_series << opus_series unless weapon_key.weapon_series.include?(opus_series)
end
end
trait :draconic_key do
series { [27] }
after(:create) do |weapon_key|
draconic_series = WeaponSeries.find_by(slug: 'draconic') || FactoryBot.create(:weapon_series, :draconic)
weapon_key.weapon_series << draconic_series unless weapon_key.weapon_series.include?(draconic_series)
end
end
trait :universal_key do
series { [3, 27, 99] } # Works with more weapon series (legacy)
after(:create) do |weapon_key|
opus_series = WeaponSeries.find_by(slug: 'dark-opus') || FactoryBot.create(:weapon_series, :opus)
draconic_series = WeaponSeries.find_by(slug: 'draconic') || FactoryBot.create(:weapon_series, :draconic)
gacha_series = WeaponSeries.find_by(slug: 'gacha') || FactoryBot.create(:weapon_series, :gacha)
[opus_series, draconic_series, gacha_series].each do |ws|
weapon_key.weapon_series << ws unless weapon_key.weapon_series.include?(ws)
end
end
end
end
end