diff --git a/test/callbacks_test.rb b/test/callbacks_test.rb index 6d1ef99..195ceb7 100644 --- a/test/callbacks_test.rb +++ b/test/callbacks_test.rb @@ -1,20 +1,62 @@ require_relative "test_helper" class CallbacksTest < Minitest::Test - def test_disable_callbacks_model - store_names ["product a"] - + def test_false Searchkick.callbacks(false) do - store_names ["product b"] + store_names ["Product A", "Product B"] end - assert_search "product", ["product a"] + assert_search "product", [] + end + def test_bulk + Searchkick.callbacks(:bulk) do + store_names ["Product A", "Product B"] + end + Product.search_index.refresh + assert_search "product", ["Product A", "Product B"] + end + + def test_queue + # TODO figure out which earlier test leaves records in index Product.reindex - assert_search "product", ["product a", "product b"] + reindex_queue = Product.search_index.reindex_queue + reindex_queue.clear + + Searchkick.callbacks(:queue) do + store_names ["Product A", "Product B"] + end + Product.search_index.refresh + assert_search "product", [], load: false, conversions: false + assert_equal 2, reindex_queue.length + + perform_enqueued_jobs do + Searchkick::ProcessQueueJob.perform_now(class_name: "Product") + end + Product.search_index.refresh + assert_search "product", ["Product A", "Product B"], load: false + assert_equal 0, reindex_queue.length + + Searchkick.callbacks(:queue) do + Product.where(name: "Product B").destroy_all + Product.create!(name: "Product C") + end + Product.search_index.refresh + assert_search "product", ["Product A", "Product B"], load: false + assert_equal 2, reindex_queue.length + + perform_enqueued_jobs do + Searchkick::ProcessQueueJob.perform_now(class_name: "Product") + end + Product.search_index.refresh + assert_search "product", ["Product A", "Product C"], load: false + assert_equal 0, reindex_queue.length + + # ensure no error with empty queue + Searchkick::ProcessQueueJob.perform_now(class_name: "Product") end - def test_disable_callbacks_global + def test_disable_callbacks # make sure callbacks default to on assert Searchkick.callbacks? diff --git a/test/reindex_test.rb b/test/reindex_test.rb index b6a19a6..36d57c5 100644 --- a/test/reindex_test.rb +++ b/test/reindex_test.rb @@ -255,61 +255,6 @@ class ReindexTest < Minitest::Test assert_equal "wait only available in :async mode", error.message end - def test_callbacks_false - Searchkick.callbacks(false) do - store_names ["Product A", "Product B"] - end - assert_search "product", [] - end - - def test_callbacks_bulk - Searchkick.callbacks(:bulk) do - store_names ["Product A", "Product B"] - end - Product.search_index.refresh - assert_search "product", ["Product A", "Product B"] - end - - def test_callbacks_queue - # TODO figure out which earlier test leaves records in index - Product.reindex - - reindex_queue = Product.search_index.reindex_queue - reindex_queue.clear - - Searchkick.callbacks(:queue) do - store_names ["Product A", "Product B"] - end - Product.search_index.refresh - assert_search "product", [], load: false, conversions: false - assert_equal 2, reindex_queue.length - - perform_enqueued_jobs do - Searchkick::ProcessQueueJob.perform_now(class_name: "Product") - end - Product.search_index.refresh - assert_search "product", ["Product A", "Product B"], load: false - assert_equal 0, reindex_queue.length - - Searchkick.callbacks(:queue) do - Product.where(name: "Product B").destroy_all - Product.create!(name: "Product C") - end - Product.search_index.refresh - assert_search "product", ["Product A", "Product B"], load: false - assert_equal 2, reindex_queue.length - - perform_enqueued_jobs do - Searchkick::ProcessQueueJob.perform_now(class_name: "Product") - end - Product.search_index.refresh - assert_search "product", ["Product A", "Product C"], load: false - assert_equal 0, reindex_queue.length - - # ensure no error with empty queue - Searchkick::ProcessQueueJob.perform_now(class_name: "Product") - end - def test_object_index error = assert_raises(Searchkick::Error) do Product.search_index.reindex(Object.new) -- libgit2 0.21.0