Sha256: eb6537d57e1dadff1785454ed54bc6988fab3c37e950e47d2e4dc4a357c272ee
Contents?: true
Size: 1.57 KB
Versions: 3
Compression:
Stored size: 1.57 KB
Contents
require 'dry/system/container' RSpec.describe Dry::System::Container, '.import' do subject(:app) { Class.new(Dry::System::Container) } let(:db) do Class.new(Dry::System::Container) do register(:users, %w(jane joe)) end end shared_examples_for 'an extended container' do it 'imports one container into another' do expect(app.key?('persistence.users')).to be(false) app.finalize! expect(app['persistence.users']).to eql(%w(jane joe)) end end context 'when a container has a name' do before do db.configure { |c| c.name = :persistence } app.import(db) end it_behaves_like 'an extended container' end context 'when container does not have a name' do before do app.import(persistence: db) end it_behaves_like 'an extended container' end describe 'import module' do it 'loads system when it was not loaded in the imported container yet' do class Test::Other < Dry::System::Container configure do |config| config.root = SPEC_ROOT.join('fixtures/import_test').realpath end load_paths!('lib') end class Test::Container < Dry::System::Container configure do |config| config.root = SPEC_ROOT.join('fixtures/test').realpath end load_paths!('lib') import other: Test::Other end module Test Import = Container.injector end class Test::Foo include Test::Import['other.test.bar'] end expect(Test::Foo.new.bar).to be_instance_of(Test::Bar) end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
dry-system-0.6.0 | spec/unit/container/import_spec.rb |
dry-system-0.5.1 | spec/unit/container/import_spec.rb |
dry-system-0.5.0 | spec/unit/container/import_spec.rb |