Project

General

Profile

Download (2.14 KB) Statistics
| Branch: | Tag: | Revision:
FactoryBot.define do
factory :lookup_key, class: 'LookupKey' do
transient do
overrides { {} }
end

sequence(:key) { |n| "param#{n}" }
key_type { 'string' }
path { nil }
default_value { 'default' }

trait :integer do
key_type { 'integer' }
default_value { 1 }
end

trait :boolean do
key_type { 'boolean' }
default_value { true }
end

trait :json do
key_type { 'json' }
default_value { '{"foo":"bar"}' }
end

trait :yaml do
key_type { 'yaml' }
default_value { '--- \nfoo: bar\n' }
end

trait :array do
key_type { 'array' }
default_value { '[{"hostname": "test.example.com"}]' }
end

trait :hash do
key_type { 'hash' }
default_value { '{"hostname": "test.example.com"}' }
end

trait :with_omit do
omit { true }
end

trait :with_override do
override { true }
path { 'comment' }
overrides do
{
'comment=override' => case key_type
when 'integer'
2
when 'boolean'
false
when 'yaml'
'--- \nfoo: overridden\n'
when 'json'
'{"foo":"overridden"}'
when 'array'
'[{"overridden": "value"}]'
when 'hash'
'{"overridden": "value"}'
else
'overridden value'
end,
}
end
end

after(:create) do |lkey, evaluator|
evaluator.overrides.each do |match, value|
FactoryBot.create :lookup_value, :lookup_key => lkey, :value => value, :match => match, :omit => false
end
lkey.reload
end
end

factory :lookup_value do
association :lookup_key
sequence(:value) { |n| "value#{n}" }
omit { false }

trait :with_omit do
omit { true }
end
end
end
(16-16/36)