reindex_test.rb
1.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
require_relative "test_helper"
class ReindexTest < Minitest::Test
def test_scoped
skip if nobrainer? || cequel?
store_names ["Product A"]
Searchkick.callbacks(false) do
store_names ["Product B", "Product C"]
end
Product.where(name: "Product B").reindex(refresh: true)
assert_search "product", ["Product A", "Product B"]
end
def test_associations
skip if nobrainer? || cequel?
store_names ["Product A"]
store = Store.create!(name: "Test")
Product.create!(name: "Product B", store_id: store.id)
store.products.reindex(refresh: true)
assert_search "product", ["Product A", "Product B"]
end
def test_async
skip if !defined?(ActiveJob)
Searchkick.callbacks(false) do
store_names ["Product A"]
end
reindex = Product.reindex(async: true)
assert_search "product", [], conversions: false
index = Searchkick::Index.new(reindex[:index_name])
index.refresh
assert_equal 1, index.total_docs
Product.searchkick_index.promote(reindex[:index_name])
assert_search "product", ["Product A"]
end
def test_refresh_interval
reindex = Product.reindex(refresh_interval: "30s", async: true, import: false)
index = Searchkick::Index.new(reindex[:index_name])
assert_nil Product.search_index.refresh_interval
assert_equal "30s", index.refresh_interval
Product.search_index.promote(index.name, update_refresh_interval: true)
assert_equal "1s", index.refresh_interval
assert_equal "1s", Product.search_index.refresh_interval
end
end