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.15.0 spec/lib/source_spec.rb
picky-4.14.0 spec/lib/source_spec.rb
picky-4.13.1 spec/lib/source_spec.rb
picky-4.13.0 spec/lib/source_spec.rb
picky-4.12.13 spec/lib/source_spec.rb
picky-4.12.12 spec/lib/source_spec.rb
picky-4.12.11 spec/lib/source_spec.rb
picky-4.12.10 spec/lib/source_spec.rb
picky-4.12.8 spec/lib/source_spec.rb
picky-4.12.7 spec/lib/source_spec.rb
picky-4.12.6 spec/lib/source_spec.rb
picky-4.12.5 spec/lib/source_spec.rb
picky-4.12.4 spec/lib/source_spec.rb
picky-4.12.3 spec/lib/source_spec.rb
picky-4.12.2 spec/lib/source_spec.rb
picky-4.12.1 spec/lib/source_spec.rb
picky-4.12.0 spec/lib/source_spec.rb
picky-4.11.3 spec/lib/source_spec.rb
picky-4.11.2 spec/lib/source_spec.rb
picky-4.11.1 spec/lib/source_spec.rb