Sha256: 96ec7a8e2f55182f2ca88efada2087bf6f73f99d6901608f7e1c497dcf1d391f
Contents?: true
Size: 1.52 KB
Versions: 2
Compression:
Stored size: 1.52 KB
Contents
RSpec.describe Dry::System::Injector do before do class Test::Container < Dry::System::Container configure do |config| config.root = SPEC_ROOT.join('fixtures/test').realpath end load_paths! 'lib' end Test::Inject = Test::Container.injector end it 'supports args injection by default' do obj = Class.new do include Test::Inject['test.dep'] end.new expect(obj.dep).to be_a Test::Dep end it 'supports args injection with explicit method' do obj = Class.new do include Test::Inject.args['test.dep'] end.new expect(obj.dep).to be_a Test::Dep end it 'supports hash injection' do obj = Class.new do include Test::Inject.hash['test.dep'] end.new expect(obj.dep).to be_a Test::Dep end it 'support kwargs injection' do obj = Class.new do include Test::Inject.kwargs['test.dep'] end.new expect(obj.dep).to be_a Test::Dep end it 'allows injection strategies to be swapped' do obj = Class.new do include Test::Inject.kwargs.hash['test.dep'] end.new expect(obj.dep).to be_a Test::Dep end it 'supports aliases' do obj = Class.new do include Test::Inject['test.dep', foo: 'test.dep'] end.new expect(obj.dep).to be_a Test::Dep expect(obj.foo).to be_a Test::Dep end context 'singleton' do it 'supports injection' do obj = Class.new do include Test::Inject[foo: 'test.singleton_dep'] end.new expect(obj.foo).to be_a Test::SingletonDep end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
dry-system-0.5.1 | spec/unit/injector_spec.rb |
dry-system-0.5.0 | spec/unit/injector_spec.rb |