Sha256: 6d9097de628acab4cc9716adc801bfe5f7de5048993fd2dbd4bd62d3883e892a

Contents?: true

Size: 860 Bytes

Versions: 2

Compression:

Stored size: 860 Bytes

Contents

# frozen_string_literal: true

RSpec.describe 'Application container' do
  subject(:system) { Dummy::Container }

  describe '#load_component' do
    it 'loads component by its identifier' do
      system.load_component('user_repo')

      expect(Object.const_defined?(:UserRepo)).to be(true)
    end
  end

  describe '#[]' do
    it 'returns auto-registered component' do
      expect(system['operations.create_user']).to be_instance_of(Operations::CreateUser)
    end
  end

  describe '#auto_register!' do
    it 'auto-registers files based on config' do
      mailer_worker = Dummy::Container['workers.mailer_worker']

      expect(mailer_worker).to be_instance_of(Workers::MailerWorker)
      expect(Dummy::Container['workers.mailer_worker']).to be(mailer_worker) # memoized
      expect(mailer_worker.mailer).to be_instance_of(Mailer)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
dry-system-rails-0.3.0 spec/integration/container_spec.rb
dry-system-rails-0.2.0 spec/integration/container_spec.rb