Sha256: d896aad4c5fed6274d238505f03a25759431a5da18efe643239f769db265d572

Contents?: true

Size: 1.33 KB

Versions: 5

Compression:

Stored size: 1.33 KB

Contents

# frozen_string_literal: true
require 'spec_helper'

describe ActiveTriples::NodeConfig do
  subject(:config) { described_class.new(term, predicate) }
  let(:predicate)  { RDF::URI(nil) }
  let(:term)       { :moomin }

  it { is_expected.to have_attributes(predicate: predicate, term: term) }

  describe '#[]' do
    subject(:config) { described_class.new(term, predicate, some_opt: :moomin) }

    it 'accesses arbitrary opts' do
      expect(config[:some_opt]).to eq :moomin
    end
  end

  describe '#cast' do
    it 'defaults to true' do
      expect { config.cast = false }
        .to change { config.cast }
        .from(true)
        .to(false)
    end

    it 'is set with the initializer' do
      expect(described_class.new(term, predicate, cast: false).cast).to be false
    end
  end

  describe '#with_index' do
    it 'yields an index configuration object' do
      expect { |b| config.with_index(&b) }
        .to yield_with_args(an_instance_of(described_class::IndexObject))
    end

    it 'accepts behavior settings' do
      config.with_index do |index|
        index.as :moomin, :snork
      end

      expect(config.behaviors).to contain_exactly :moomin, :snork
    end

    it 'accepts type settings' do
      config.with_index do |index|
        index.type :moomin
      end

      expect(config.type).to eq :moomin
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
active-triples-1.2.0 spec/active_triples/node_config_spec.rb
active-triples-1.1.1 spec/active_triples/node_config_spec.rb
active-triples-1.1.0 spec/active_triples/node_config_spec.rb
active-triples-1.0.0 spec/active_triples/node_config_spec.rb
active-triples-1.0.0.rc1 spec/active_triples/node_config_spec.rb