Sha256: 69e713129941b14b9727f03a007978a994ad2dcb1c69fd963cbb5494577be24c

Contents?: true

Size: 1.56 KB

Versions: 2

Compression:

Stored size: 1.56 KB

Contents

require 'test_helper'

describe "Traject::Indexer.to_field" do
  before do 
    @indexer = Traject::Indexer.new
  end
  describe "checks it's arguments" do
    it "rejects nil first arg" do
      assert_raises(Traject::Indexer::NamingError) { @indexer.to_field(nil) }
    end
    it "rejects empty string first arg" do
      assert_raises(Traject::Indexer::NamingError) {@indexer.to_field("")}
    end
    it "rejects non-string first arg" do
      assert_raises(Traject::Indexer::NamingError) {@indexer.to_field(:symbol)}
    end
    
    it "rejects one-arg lambda" do
      assert_raises(Traject::Indexer::ArityError) do
        @indexer.to_field("foo") do |one_arg|
        end
      end
    end
    it "rejects four-arg lambda" do
      assert_raises(Traject::Indexer::ArityError) do 
        @indexer.to_field("foo") do |one_arg, two_arg, three_arg, four_arg|
        end
      end
    end
    it "accepts two arg lambda" do
      @indexer.to_field("foo") do |one, two|
      end
    end
    it "accepts three arg lambda" do
      @indexer.to_field("foo") {|one, two, three| one }
    end
    it "accepts variable lambda" do
      @indexer.to_field("foo") do |*variable|
      end
    end
  end
  
  it "outputs error with source location" do
    begin
      @indexer.to_field('foo') {|one, two| }
      @indexer.to_field('') {|one, two| }   # bad field name
      flunk("Should have rejected empty field name")
    rescue Traject::Indexer::NamingError => e
      assert_match(/at .*\/.*:\d+/, e.message)
    rescue
      flunk("Should only fail with a NamingError")
    end
  end

  
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
traject-0.15.0 test/indexer/to_field_test.rb
traject-0.14.1 test/indexer/to_field_test.rb