Sha256: 761ac278eb1888febe52a8adb051ae6ec15162799e9845fdc9d29ffe5af06169
Contents?: true
Size: 1.87 KB
Versions: 1
Compression:
Stored size: 1.87 KB
Contents
describe 'default values' do before do class Test::Foo extend Dry::Initializer param :foo, default: proc { :FOO } param :bar, default: proc { :BAR } option :baz, default: -> { :BAZ } option :qux, default: proc { foo } option :mox, default: -> { default_mox } private def default_mox :MOX end end end it 'instantiate arguments' do subject = Test::Foo.new(1, 2, baz: 3, qux: 4) expect(subject.foo).to eql 1 expect(subject.bar).to eql 2 expect(subject.baz).to eql 3 expect(subject.qux).to eql 4 end it 'applies default values' do subject = Test::Foo.new expect(subject.foo).to eql :FOO expect(subject.bar).to eql :BAR expect(subject.baz).to eql :BAZ expect(subject.qux).to eql :FOO end it 'applies default values partially' do subject = Test::Foo.new 1, baz: 3 expect(subject.foo).to eql 1 expect(subject.bar).to eql :BAR expect(subject.baz).to eql 3 expect(subject.qux).to eql 1 end it 'applies default values from private methods' do subject = Test::Foo.new expect(subject.mox).to eql :MOX end describe 'when the last param has a default and there are no options' do before do class Test::Bar extend Dry::Initializer param :foo param :bar, default: proc { {} } end end it 'instantiates arguments' do subject = Test::Bar.new(1, 2) expect(subject.foo).to eql 1 expect(subject.bar).to eql 2 end it 'applies default values' do subject = Test::Bar.new(1) expect(subject.foo).to eql 1 expect(subject.bar).to eql({}) end it 'instantiates arguments also if the last is an hash' do subject = Test::Bar.new(1, { baz: 2, qux: 3 }) expect(subject.foo).to eql 1 expect(subject.bar).to eql({ baz: 2, qux: 3 }) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
dry-initializer-3.0.3 | spec/default_values_spec.rb |