Sha256: 4cedf76ad1f9493e6bf4ff913e6a859b3c3bc8a10c81e1f04125054aee2356ca

Contents?: true

Size: 1.88 KB

Versions: 17

Compression:

Stored size: 1.88 KB

Contents

# frozen_string_literal: true

require 'acceptance/spec_helper'

describe 'Searching on fields', :live => true do
  it "limits results by field" do
    pancakes = Article.create! :title => 'Pancakes'
    waffles  = Article.create! :title => 'Waffles',
      :content => 'Different to pancakes - and not quite as tasty.'
    index

    articles = Article.search :conditions => {:title => 'pancakes'}
    expect(articles).to include(pancakes)
    expect(articles).not_to include(waffles)
  end

  it "limits results for a field from an association" do
    user     = User.create! :name => 'Pat'
    pancakes = Article.create! :title => 'Pancakes', :user => user
    index

    expect(Article.search(:conditions => {:user => 'pat'}).first).to eq(pancakes)
  end

  it "returns results with matches from grouped fields" do
    user     = User.create! :name => 'Pat'
    pancakes = Article.create! :title => 'Pancakes', :user => user
    waffles  = Article.create! :title => 'Waffles',  :user => user
    index

    expect(Article.search('waffles', :conditions => {:title => 'pancakes'}).to_a).
      to eq([pancakes])
  end

  it "returns results with matches from concatenated columns in a field" do
    book = Book.create! :title => 'Night Watch', :author => 'Terry Pratchett'
    index

    expect(Book.search(:conditions => {:info => 'Night Pratchett'}).to_a).
      to eq([book])
  end

  it "handles NULLs in concatenated fields" do
    book = Book.create! :title => 'Night Watch'
    index

    expect(Book.search(:conditions => {:info => 'Night Watch'}).to_a).to eq([book])
  end

  it "returns results with matches from file fields" do
    file_path = Rails.root.join('tmp', 'caption.txt')
    File.open(file_path, 'w') { |file| file.print 'Cyberpunk at its best' }

    book = Book.create! :title => 'Accelerando', :blurb_file => file_path.to_s
    index

    expect(Book.search('cyberpunk').to_a).to eq([book])
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
thinking-sphinx-5.6.0 spec/acceptance/searching_on_fields_spec.rb
thinking-sphinx-5.5.1 spec/acceptance/searching_on_fields_spec.rb
thinking-sphinx-5.5.0 spec/acceptance/searching_on_fields_spec.rb
thinking-sphinx-5.4.0 spec/acceptance/searching_on_fields_spec.rb
thinking-sphinx-5.3.0 spec/acceptance/searching_on_fields_spec.rb
thinking-sphinx-5.2.1 spec/acceptance/searching_on_fields_spec.rb
thinking-sphinx-5.2.0 spec/acceptance/searching_on_fields_spec.rb
thinking-sphinx-5.1.0 spec/acceptance/searching_on_fields_spec.rb
thinking-sphinx-5.0.0 spec/acceptance/searching_on_fields_spec.rb
thinking-sphinx-4.4.1 spec/acceptance/searching_on_fields_spec.rb
thinking-sphinx-4.4.0 spec/acceptance/searching_on_fields_spec.rb
thinking-sphinx-4.3.2 spec/acceptance/searching_on_fields_spec.rb
thinking-sphinx-4.3.1 spec/acceptance/searching_on_fields_spec.rb
thinking-sphinx-4.3.0 spec/acceptance/searching_on_fields_spec.rb
thinking-sphinx-4.2.0 spec/acceptance/searching_on_fields_spec.rb
thinking-sphinx-4.1.0 spec/acceptance/searching_on_fields_spec.rb
thinking-sphinx-4.0.0 spec/acceptance/searching_on_fields_spec.rb