Sha256: 61a5a8e316857feb74a79b95da5c6b04a933c65dbbd62d52d8ecafce44900506

Contents?: true

Size: 1.27 KB

Versions: 21

Compression:

Stored size: 1.27 KB

Contents

require 'spec_helper'

RSpec.describe ROM::Configurable do
  let (:klass) { Class.new { include ROM::Configurable } }
  let (:object) { klass.new }
  let (:config) { object.config }
  
  it 'exposes the config property' do
    expect { config }.not_to raise_error
  end
  
  it 'is configurable via block' do
    object.configure do |config|
      config.sql.infer_relations = false
    end
    
    expect(config.sql.infer_relations).to be(false)
  end
  
  context ROM::Configurable::Config do  
    it 'can be traversed via dot syntax' do
      config.sql.infer_relations = false
      expect(config.sql.infer_relations).to be(false)
    end
  
    it 'can be traversed via bracket syntax' do
      config[:sql].infer_relations = false

      expect(config[:sql][:infer_relations]).to be(false)
      expect(config).to respond_to(:sql)
      expect(config.sql.infer_relations).to be(false)
    end
  
    it 'freezes properly' do
      config.freeze

      expect { config.sql.infer_relations = false }.to raise_error(NoMethodError)
    end

    it 'handles unset keys when frozen' do
      config.sql.infer_relations = false
      config.freeze
      
      expect(config.other).to be(nil)
      expect(config.key?(:other)).to be(false)
      expect(config.key?(:sql)).to be(true)
    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
rom-3.3.3 spec/unit/rom/configurable_spec.rb
rom-3.3.2 spec/unit/rom/configurable_spec.rb
rom-3.3.1 spec/unit/rom/configurable_spec.rb
rom-3.3.0 spec/unit/rom/configurable_spec.rb
rom-3.2.3 spec/unit/rom/configurable_spec.rb
rom-3.2.2 spec/unit/rom/configurable_spec.rb
rom-3.2.1 spec/unit/rom/configurable_spec.rb
rom-3.2.0 spec/unit/rom/configurable_spec.rb
rom-3.1.0 spec/unit/rom/configurable_spec.rb
rom-3.0.3 spec/unit/rom/configurable_spec.rb
rom-3.0.2 spec/unit/rom/configurable_spec.rb
rom-3.0.1 spec/unit/rom/configurable_spec.rb
rom-3.0.0 spec/unit/rom/configurable_spec.rb
rom-3.0.0.rc2 spec/unit/rom/configurable_spec.rb
rom-3.0.0.rc1 spec/unit/rom/configurable_spec.rb
rom-3.0.0.beta3 spec/unit/rom/configurable_spec.rb
rom-3.0.0.beta2 spec/unit/rom/configurable_spec.rb
rom-3.0.0.beta1 spec/unit/rom/configurable_spec.rb
rom-2.0.2 spec/unit/rom/configurable_spec.rb
rom-2.0.1 spec/unit/rom/configurable_spec.rb