Commit ff3dededf9ae97a1e7affdc8d30323728aef82ab

Authored by Andrew Kane
1 parent 69d49a3e
Exists in master

Moved callbacks tests [skip ci]

Showing 2 changed files with 49 additions and 62 deletions   Show diff stats
test/callbacks_test.rb
1 1 require_relative "test_helper"
2 2  
3 3 class CallbacksTest < Minitest::Test
4   - def test_disable_callbacks_model
5   - store_names ["product a"]
6   -
  4 + def test_false
7 5 Searchkick.callbacks(false) do
8   - store_names ["product b"]
  6 + store_names ["Product A", "Product B"]
9 7 end
10   - assert_search "product", ["product a"]
  8 + assert_search "product", []
  9 + end
11 10  
  11 + def test_bulk
  12 + Searchkick.callbacks(:bulk) do
  13 + store_names ["Product A", "Product B"]
  14 + end
  15 + Product.search_index.refresh
  16 + assert_search "product", ["Product A", "Product B"]
  17 + end
  18 +
  19 + def test_queue
  20 + # TODO figure out which earlier test leaves records in index
12 21 Product.reindex
13 22  
14   - assert_search "product", ["product a", "product b"]
  23 + reindex_queue = Product.search_index.reindex_queue
  24 + reindex_queue.clear
  25 +
  26 + Searchkick.callbacks(:queue) do
  27 + store_names ["Product A", "Product B"]
  28 + end
  29 + Product.search_index.refresh
  30 + assert_search "product", [], load: false, conversions: false
  31 + assert_equal 2, reindex_queue.length
  32 +
  33 + perform_enqueued_jobs do
  34 + Searchkick::ProcessQueueJob.perform_now(class_name: "Product")
  35 + end
  36 + Product.search_index.refresh
  37 + assert_search "product", ["Product A", "Product B"], load: false
  38 + assert_equal 0, reindex_queue.length
  39 +
  40 + Searchkick.callbacks(:queue) do
  41 + Product.where(name: "Product B").destroy_all
  42 + Product.create!(name: "Product C")
  43 + end
  44 + Product.search_index.refresh
  45 + assert_search "product", ["Product A", "Product B"], load: false
  46 + assert_equal 2, reindex_queue.length
  47 +
  48 + perform_enqueued_jobs do
  49 + Searchkick::ProcessQueueJob.perform_now(class_name: "Product")
  50 + end
  51 + Product.search_index.refresh
  52 + assert_search "product", ["Product A", "Product C"], load: false
  53 + assert_equal 0, reindex_queue.length
  54 +
  55 + # ensure no error with empty queue
  56 + Searchkick::ProcessQueueJob.perform_now(class_name: "Product")
15 57 end
16 58  
17   - def test_disable_callbacks_global
  59 + def test_disable_callbacks
18 60 # make sure callbacks default to on
19 61 assert Searchkick.callbacks?
20 62  
... ...
test/reindex_test.rb
... ... @@ -255,61 +255,6 @@ class ReindexTest &lt; Minitest::Test
255 255 assert_equal "wait only available in :async mode", error.message
256 256 end
257 257  
258   - def test_callbacks_false
259   - Searchkick.callbacks(false) do
260   - store_names ["Product A", "Product B"]
261   - end
262   - assert_search "product", []
263   - end
264   -
265   - def test_callbacks_bulk
266   - Searchkick.callbacks(:bulk) do
267   - store_names ["Product A", "Product B"]
268   - end
269   - Product.search_index.refresh
270   - assert_search "product", ["Product A", "Product B"]
271   - end
272   -
273   - def test_callbacks_queue
274   - # TODO figure out which earlier test leaves records in index
275   - Product.reindex
276   -
277   - reindex_queue = Product.search_index.reindex_queue
278   - reindex_queue.clear
279   -
280   - Searchkick.callbacks(:queue) do
281   - store_names ["Product A", "Product B"]
282   - end
283   - Product.search_index.refresh
284   - assert_search "product", [], load: false, conversions: false
285   - assert_equal 2, reindex_queue.length
286   -
287   - perform_enqueued_jobs do
288   - Searchkick::ProcessQueueJob.perform_now(class_name: "Product")
289   - end
290   - Product.search_index.refresh
291   - assert_search "product", ["Product A", "Product B"], load: false
292   - assert_equal 0, reindex_queue.length
293   -
294   - Searchkick.callbacks(:queue) do
295   - Product.where(name: "Product B").destroy_all
296   - Product.create!(name: "Product C")
297   - end
298   - Product.search_index.refresh
299   - assert_search "product", ["Product A", "Product B"], load: false
300   - assert_equal 2, reindex_queue.length
301   -
302   - perform_enqueued_jobs do
303   - Searchkick::ProcessQueueJob.perform_now(class_name: "Product")
304   - end
305   - Product.search_index.refresh
306   - assert_search "product", ["Product A", "Product C"], load: false
307   - assert_equal 0, reindex_queue.length
308   -
309   - # ensure no error with empty queue
310   - Searchkick::ProcessQueueJob.perform_now(class_name: "Product")
311   - end
312   -
313 258 def test_object_index
314 259 error = assert_raises(Searchkick::Error) do
315 260 Product.search_index.reindex(Object.new)
... ...