Sha256: b0e530008e20415f1509f6af2d42774c90b62b8e53bdc84be722ea9e75cdb67c

Contents?: true

Size: 714 Bytes

Versions: 5

Compression:

Stored size: 714 Bytes

Contents

describe "shared definition" do
  subject do
    class Test::Foo
      extend Dry::Initializer::Mixin

      using default: proc { nil } do
        param  :foo
        option :end
        option :baz, default: proc { 0 }
      end

      using optional: true do
        option :qux
        option :quxx, optional: false
      end
    end
  end

  it "is applied to params and options" do
    instance = subject.new(quxx: 1)

    expect(instance.foo).to be_nil
    expect(instance.end).to be_nil
  end

  it "can be reloaded" do
    instance = subject.new(quxx: 1)

    expect(instance.baz).to eq 0
  end

  it "can reload :optional setting" do
    expect { subject.new }.to raise_error(KeyError, /quxx/)
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
dry-initializer-0.9.2 spec/shared_definitions_spec.rb
dry-initializer-0.9.1 spec/shared_definitions_spec.rb
dry-initializer-0.9.0 spec/shared_definitions_spec.rb
dry-initializer-0.8.1 spec/shared_definitions_spec.rb
dry-initializer-0.8.0 spec/shared_definitions_spec.rb