Sha256: ba92a5407b81f139a6824d89dafc3a7cf0f2e95586634acc5d14a0a694353f04
Contents?: true
Size: 1.65 KB
Versions: 1
Compression:
Stored size: 1.65 KB
Contents
RSpec.shared_examples 'a configurable class' do describe Dry::Configurable do describe 'settings' do context 'without default value' do before do klass.setting :dsn end it 'returns nil' do expect(klass.config.dsn).to be(nil) end end context 'with default value' do before do klass.setting :dsn, 'sqlite:memory' end it 'returns the default value' do expect(klass.config.dsn).to eq('sqlite:memory') end end context 'nested configuration' do before do klass.setting :database do setting :dsn, 'sqlite:memory' end end it 'returns the default value' do expect(klass.config.database.dsn).to eq('sqlite:memory') end end end describe 'configuration' do context 'without nesting' do before do klass.setting :dsn, 'sqlite:memory' end before do klass.configure do |config| config.dsn = 'jdbc:sqlite:memory' end end it 'updates the config value' do expect(klass.config.dsn).to eq('jdbc:sqlite:memory') end end context 'with nesting' do before do klass.setting :database do setting :dsn, 'sqlite:memory' end end before do klass.configure do |config| config.database.dsn = 'jdbc:sqlite:memory' end end it 'updates the config value' do expect(klass.config.database.dsn).to eq('jdbc:sqlite:memory') end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
dry-configurable-0.1.2 | spec/support/shared_examples/configurable.rb |