Sha256: 3cfb68b1a2a90974b41d956397892255862cda1292402ae88442b4b1564667cf

Contents?: true

Size: 774 Bytes

Versions: 18

Compression:

Stored size: 774 Bytes

Contents

require "dry-types"

describe "type argument" do
  before do
    class Test::Foo
      extend Dry::Initializer::Mixin
      param  :foo, Dry::Types["strict.string"]
      option :bar, Dry::Types["strict.string"]
    end
  end

  context "in case of param mismatch" do
    subject { Test::Foo.new 1, bar: "2" }

    it "raises TypeError" do
      expect { subject }.to raise_error TypeError, /1/
    end
  end

  context "in case of option mismatch" do
    subject { Test::Foo.new "1", bar: 2 }

    it "raises TypeError" do
      expect { subject }.to raise_error TypeError, /2/
    end
  end

  context "in case of match" do
    subject { Test::Foo.new "1", bar: "2" }

    it "completes the initialization" do
      expect { subject }.not_to raise_error
    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
dry-initializer-1.4.1 spec/type_argument_spec.rb
dry-initializer-1.4.0 spec/type_argument_spec.rb
dry-initializer-1.3.0 spec/type_argument_spec.rb
dry-initializer-1.2.0 spec/type_argument_spec.rb
dry-initializer-1.1.3 spec/type_argument_spec.rb
dry-initializer-1.1.2 spec/type_argument_spec.rb
dry-initializer-1.1.1 spec/type_argument_spec.rb
dry-initializer-1.1.0 spec/type_argument_spec.rb
dry-initializer-1.0.0 spec/type_argument_spec.rb
dry-initializer-0.11.0 spec/type_argument_spec.rb
dry-initializer-0.10.2 spec/type_argument_spec.rb
dry-initializer-0.10.1 spec/type_argument_spec.rb
dry-initializer-0.10.0 spec/type_argument_spec.rb
dry-initializer-0.9.3 spec/type_argument_spec.rb
dry-initializer-0.9.2 spec/type_argument_spec.rb
dry-initializer-0.9.1 spec/type_argument_spec.rb
dry-initializer-0.9.0 spec/type_argument_spec.rb
dry-initializer-0.8.1 spec/type_argument_spec.rb