Sha256: 93514a6ea35489a76452aac57512a3155cfd5c56eca8966668b0b3b3f45127eb

Contents?: true

Size: 812 Bytes

Versions: 17

Compression:

Stored size: 812 Bytes

Contents

describe "subclassing" do
  before do
    class Test::Foo
      extend Dry::Initializer::Mixin

      param  :foo
      option :bar
    end

    class Test::Bar < Test::Foo
      param  :baz
      option :qux
    end
  end

  let(:instance_of_superclass) do
    Test::Foo.new 1, bar: 3
  end

  let(:instance_of_subclass) do
    Test::Bar.new 1, 2, bar: 3, qux: 4
  end

  it "preserves definitions made in the superclass" do
    expect(instance_of_subclass.foo).to eql 1
    expect(instance_of_subclass.baz).to eql 2
    expect(instance_of_subclass.bar).to eql 3
    expect(instance_of_subclass.qux).to eql 4
  end

  it "does not pollute superclass with definitions from subclass" do
    expect(instance_of_superclass).not_to respond_to :baz
    expect(instance_of_superclass).not_to respond_to :qux
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
dry-initializer-0.10.1 spec/subclassing_spec.rb
dry-initializer-0.10.0 spec/subclassing_spec.rb
dry-initializer-0.9.3 spec/subclassing_spec.rb
dry-initializer-0.9.2 spec/subclassing_spec.rb
dry-initializer-0.9.1 spec/subclassing_spec.rb
dry-initializer-0.9.0 spec/subclassing_spec.rb
dry-initializer-0.8.1 spec/subclassing_spec.rb
dry-initializer-0.8.0 spec/subclassing_spec.rb
dry-initializer-0.7.0 spec/dry/subclassing_spec.rb
dry-initializer-0.6.0 spec/dry/subclassing_spec.rb
dry-initializer-0.5.0 spec/dry/subclassing_spec.rb
dry-initializer-0.4.0 spec/dry/subclassing_spec.rb
dry-initializer-0.3.3 spec/dry/subclassing_spec.rb
dry-initializer-0.3.2 spec/dry/subclassing_spec.rb
dry-initializer-0.3.1 spec/dry/subclassing_spec.rb
dry-initializer-0.3.0 spec/dry/subclassing_spec.rb
dry-initializer-0.2.1 spec/dry/subclassing_spec.rb