Sha256: 2267a7e833f6fde749c60becc54839e09bf1d4252d41444f2b6790001844439e

Contents?: true

Size: 786 Bytes

Versions: 7

Compression:

Stored size: 786 Bytes

Contents

require "dry/system/container"

RSpec.describe Dry::System::Container, ".injector" do
  context "injector_options provided" do
    it "builds an injector with the provided options" do
      Test::Foo = Class.new

      Test::Container = Class.new(Dry::System::Container) do
        register "foo", Test::Foo.new
      end

      Test::Inject = Test::Container.injector(strategies: {
        default: Dry::AutoInject::Strategies::Args,
        australian: Dry::AutoInject::Strategies::Args
      })

      injected_class = Class.new do
        include Test::Inject.australian["foo"]
      end

      obj = injected_class.new
      expect(obj.foo).to be_a Test::Foo

      another = Object.new
      obj = injected_class.new(another)
      expect(obj.foo).to eq another
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
dry-system-0.7.3 spec/unit/container/injector_spec.rb
dry-system-0.7.2 spec/unit/container/injector_spec.rb
dry-system-0.7.1 spec/unit/container/injector_spec.rb
dry-system-0.7.0 spec/unit/container/injector_spec.rb
dry-system-0.6.0 spec/unit/container/injector_spec.rb
dry-system-0.5.1 spec/unit/container/injector_spec.rb
dry-system-0.5.0 spec/unit/container/injector_spec.rb