69 lines
2 KiB
Ruby
69 lines
2 KiB
Ruby
|
|
require 'spec_helper'
|
||
|
|
|
||
|
|
describe StatCounterIndexer, work_search: true do
|
||
|
|
let!(:work) { create(:work, title: "unique title") }
|
||
|
|
let!(:stat_counter) { work.stat_counter }
|
||
|
|
|
||
|
|
describe "#index_documents" do
|
||
|
|
before do
|
||
|
|
# Update before the stat counter changes, so that we actually have
|
||
|
|
# something to change.
|
||
|
|
run_all_indexing_jobs
|
||
|
|
|
||
|
|
stat_counter.update!(
|
||
|
|
kudos_count: 10,
|
||
|
|
hit_count: 10,
|
||
|
|
comments_count: 10,
|
||
|
|
bookmarks_count: 10
|
||
|
|
)
|
||
|
|
end
|
||
|
|
|
||
|
|
def result_count(options)
|
||
|
|
WorkSearchForm.new(options).search_results.size
|
||
|
|
end
|
||
|
|
|
||
|
|
it "should update the search results for kudos" do
|
||
|
|
expect do
|
||
|
|
StatCounterIndexer.new([stat_counter.id]).index_documents
|
||
|
|
WorkIndexer.refresh_index
|
||
|
|
end.to change { result_count(kudos_count: "> 5") }.from(0).to(1)
|
||
|
|
end
|
||
|
|
|
||
|
|
it "should update the search results for bookmarks" do
|
||
|
|
expect do
|
||
|
|
StatCounterIndexer.new([stat_counter.id]).index_documents
|
||
|
|
WorkIndexer.refresh_index
|
||
|
|
end.to change { result_count(bookmarks_count: "> 5") }.from(0).to(1)
|
||
|
|
end
|
||
|
|
|
||
|
|
it "should update the search results for comments" do
|
||
|
|
expect do
|
||
|
|
StatCounterIndexer.new([stat_counter.id]).index_documents
|
||
|
|
WorkIndexer.refresh_index
|
||
|
|
end.to change { result_count(comments_count: "> 5") }.from(0).to(1)
|
||
|
|
end
|
||
|
|
|
||
|
|
it "should update the search results for hit count" do
|
||
|
|
expect do
|
||
|
|
StatCounterIndexer.new([stat_counter.id]).index_documents
|
||
|
|
WorkIndexer.refresh_index
|
||
|
|
end.to change { result_count(hits: "> 5") }.from(0).to(1)
|
||
|
|
end
|
||
|
|
|
||
|
|
it "should not change the search results for title" do
|
||
|
|
expect do
|
||
|
|
StatCounterIndexer.new([stat_counter.id]).index_documents
|
||
|
|
WorkIndexer.refresh_index
|
||
|
|
end.not_to change { result_count(title: "unique title") }
|
||
|
|
end
|
||
|
|
|
||
|
|
context "when there are no IDs in the batch" do
|
||
|
|
let(:indexer) { WorkIndexer.new([]) }
|
||
|
|
|
||
|
|
it "returns a valid result" do
|
||
|
|
expect(indexer.index_documents).to be_nil
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|