Sha256: 5e6c6c1594644479026067c6949dbed64f605fcd05b6f5989d2b693cc9c13342

Contents?: true

Size: 1.68 KB

Versions: 8

Compression:

Stored size: 1.68 KB

Contents

# frozen_string_literal: true

require 'acceptance/spec_helper'

describe 'SQL delta indexing', :live => true do
  it "automatically indexes new records" do
    guards = Book.create(
      :title => 'Guards! Guards!', :author => 'Terry Pratchett'
    )
    index

    expect(Book.search('Terry Pratchett').to_a).to eq([guards])

    men = Book.create(
      :title => 'Men At Arms', :author => 'Terry Pratchett'
    )
    sleep 0.25

    expect(Book.search('Terry Pratchett').to_a).to eq([guards, men])
  end

  it "automatically indexes updated records" do
    book = Book.create :title => 'Night Watch', :author => 'Harry Pritchett'
    index

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

    book.reload.update_attributes(:author => 'Terry Pratchett')
    sleep 0.25

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

  it "does not match on old values" do
    book = Book.create :title => 'Night Watch', :author => 'Harry Pritchett'
    index

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

    book.reload.update_attributes(:author => 'Terry Pratchett')
    sleep 0.25

    expect(Book.search('Harry')).to be_empty
  end

  it "does not match on old values with alternative ids" do
    album = Album.create :name => 'Eternal Nightcap', :artist => 'The Whitloms'
    index

    expect(Album.search('Whitloms').to_a).to eq([album])

    album.reload.update_attributes(:artist => 'The Whitlams')
    sleep 0.25

    expect(Book.search('Whitloms')).to be_empty
  end

  it "automatically indexes new records of subclasses" do
    book = Hardcover.create(
      :title => 'American Gods', :author => 'Neil Gaiman'
    )
    sleep 0.25

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

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
thinking-sphinx-4.4.1 spec/acceptance/sql_deltas_spec.rb
thinking-sphinx-4.4.0 spec/acceptance/sql_deltas_spec.rb
thinking-sphinx-4.3.2 spec/acceptance/sql_deltas_spec.rb
thinking-sphinx-4.3.1 spec/acceptance/sql_deltas_spec.rb
thinking-sphinx-4.3.0 spec/acceptance/sql_deltas_spec.rb
thinking-sphinx-4.2.0 spec/acceptance/sql_deltas_spec.rb
thinking-sphinx-4.1.0 spec/acceptance/sql_deltas_spec.rb
thinking-sphinx-4.0.0 spec/acceptance/sql_deltas_spec.rb