Sha256: 2e4ceb0e0fde64401fe46167fa1f06379a8d8d16369f1b99b349830ab1c022f5

Contents?: true

Size: 982 Bytes

Versions: 2

Compression:

Stored size: 982 Bytes

Contents

describe "@__options__" do
  context "when class has params" do
    before do
      class Test::Foo
        extend Dry::Initializer
        param :foo, proc(&:to_s)
        param :bar, default: proc { 1 }
        param :baz, optional: true
      end
    end

    it "collects coerced params with default values" do
      subject = Test::Foo.new(:FOO)

      expect(subject.instance_variable_get(:@__options__))
        .to eq({ foo: "FOO", bar: 1 })
    end
  end

  context "when class has options" do
    before do
      class Test::Foo
        extend Dry::Initializer
        option :foo
        option :bar, default: proc { 1 }
        option :baz, optional: true
        option :qux, proc(&:to_s), as: :quxx
      end
    end

    it "collects coerced and renamed options with default values" do
      subject = Test::Foo.new(foo: :FOO, qux: :QUX)

      expect(subject.instance_variable_get(:@__options__))
        .to eq({ foo: :FOO, bar: 1, quxx: "QUX" })
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
dry-initializer-1.4.1 spec/options_var_spec.rb
dry-initializer-1.4.0 spec/options_var_spec.rb