Sha256: 8d62a2672f97b3350d854f234c261e43c3bae55c69ef9beeccefe356dd306b58

Contents?: true

Size: 1.69 KB

Versions: 69

Compression:

Stored size: 1.69 KB

Contents

require 'spec_helper'

describe Picky::Source do
  context 'unblock_source' do
    context 'with block' do
      it 'unblocks' do
        result = described_class.from ->() { :some_source }, false

        result.call == :some_source
      end
    end
    context 'with #each' do
      it 'takes the source directly' do
        described_class.from([:some_source], true) == :some_source
      end
      it 'takes the source directly' do
        described_class.from([:some_source], false) == :some_source
      end
    end
  end
  context 'extract_source' do
    context 'block with source hash' do
      it 'extracts a source' do
        described_class.from(->(){}, false).should be_kind_of(Proc)
      end
    end
    context 'each source' do
      let(:source) do
        Class.new do
          def each

          end
        end.new
      end
      it 'extracts a source' do
        described_class.from(source, false).should == source
      end
    end
    context 'invalid source with nil not ok' do
      it 'raises with a nice error message' do
        expect {
          described_class.from Object.new, false
        }.to raise_error(<<-ERROR)
The source should respond to either the method #each or
it can be a lambda/block, returning such a source.
ERROR
      end
      it 'raises with a nice error message' do
        expect {
          described_class.from Object.new, false, 'some_index'
        }.to raise_error(<<-ERROR)
The source for some_index should respond to either the method #each or
it can be a lambda/block, returning such a source.
ERROR
      end
    end
    context 'with nil ok' do
      it 'simply returns nil back' do
        described_class.from(nil, true).should == nil
      end
    end
  end
end

Version data entries

69 entries across 69 versions & 1 rubygems

Version Path
picky-4.31.3 spec/lib/source_spec.rb
picky-4.31.2 spec/lib/source_spec.rb
picky-4.31.1 spec/lib/source_spec.rb
picky-4.31.0 spec/lib/source_spec.rb
picky-4.30.0 spec/lib/source_spec.rb
picky-4.29.0 spec/lib/source_spec.rb
picky-4.28.1 spec/lib/source_spec.rb
picky-4.27.1 spec/lib/source_spec.rb
picky-4.27.0 spec/lib/source_spec.rb
picky-4.26.2 spec/lib/source_spec.rb
picky-4.26.1 spec/lib/source_spec.rb
picky-4.26.0 spec/lib/source_spec.rb
picky-4.25.3 spec/lib/source_spec.rb
picky-4.25.2 spec/lib/source_spec.rb
picky-4.25.1 spec/lib/source_spec.rb
picky-4.25.0 spec/lib/source_spec.rb
picky-4.24.0 spec/lib/source_spec.rb
picky-4.23.2 spec/lib/source_spec.rb
picky-4.23.1 spec/lib/source_spec.rb
picky-4.23.0 spec/lib/source_spec.rb