Commit 5e427dddd2fdde56b4524032132988c474d68a17

Authored by Andrew
1 parent 8e9f976b

Disable all updates for callbacks false [skip ci]

lib/searchkick.rb
... ... @@ -131,8 +131,9 @@ module Searchkick
131 131 previous_value = callbacks_value
132 132 begin
133 133 self.callbacks_value = value
134   - yield
  134 + result = yield
135 135 indexer.perform if callbacks_value == :bulk
  136 + result
136 137 ensure
137 138 self.callbacks_value = previous_value
138 139 end
... ...
lib/searchkick/model.rb
... ... @@ -37,7 +37,7 @@ module Searchkick
37 37 alias_method :search_index, :searchkick_index unless method_defined?(:search_index)
38 38  
39 39 def searchkick_reindex(method_name = nil, full: false, **options)
40   - # return unless Searchkick.callbacks?
  40 + return unless Searchkick.callbacks?
41 41  
42 42 scoped = (respond_to?(:current_scope) && respond_to?(:default_scoped) && current_scope && current_scope.to_sql != default_scoped.to_sql) ||
43 43 (respond_to?(:queryable) && queryable != unscoped.with_default_scope)
... ...
test/reindex_v2_job_test.rb
... ... @@ -4,29 +4,24 @@ class ReindexV2JobTest < Minitest::Test
4 4 def setup
5 5 skip unless defined?(ActiveJob)
6 6 super
7   - Searchkick.disable_callbacks
8   - end
9   -
10   - def teardown
11   - Searchkick.enable_callbacks
12 7 end
13 8  
14 9 def test_create
15   - product = Product.create!(name: "Boom")
16   - Product.searchkick_index.refresh
  10 + product = Searchkick.callbacks(false) { Product.create!(name: "Boom") }
  11 + Product.search_index.refresh
17 12 assert_search "*", []
18 13 Searchkick::ReindexV2Job.perform_later("Product", product.id.to_s)
19   - Product.searchkick_index.refresh
  14 + Product.search_index.refresh
20 15 assert_search "*", ["Boom"]
21 16 end
22 17  
23 18 def test_destroy
24   - product = Product.create!(name: "Boom")
  19 + product = Searchkick.callbacks(false) { Product.create!(name: "Boom") }
25 20 Product.reindex
26 21 assert_search "*", ["Boom"]
27   - product.destroy
  22 + Searchkick.callbacks(false) { product.destroy }
28 23 Searchkick::ReindexV2Job.perform_later("Product", product.id.to_s)
29   - Product.searchkick_index.refresh
  24 + Product.search_index.refresh
30 25 assert_search "*", []
31 26 end
32 27 end
... ...