Class: SearchIndexReceiver
- Inherits:
-
Object
- Object
- SearchIndexReceiver
- Defined in:
- lib/chewy/minitest/search_index_receiver.rb
Overview
Intended to be used in conjunction with a test helper which mocks over the #bulk method on a Chewy::Index class. (See Chewy::Minitest::Helpers)
Test helper class to provide minitest hooks for Chewy::Index testing.
The class will capture the data from the *param on the Chewy::Index.bulk method and aggregate the data for test analysis.
Instance Method Summary collapse
- #catch(bulk_params, index) ⇒ Object
-
#deleted?(obj, index) ⇒ true, false
Check to see if a given object has been deleted.
-
#deletes_for(index = nil) ⇒ Hash
(also: #deletes)
The index deletes captured by the mock.
-
#indexed?(obj, index) ⇒ true, false
Check to see if a given object has been indexed.
-
#indexes_for(index = nil) ⇒ Hash
(also: #indexes)
The index changes captured by the mock.
-
#initialize ⇒ SearchIndexReceiver
constructor
A new instance of SearchIndexReceiver.
-
#updated_indexes ⇒ Array<Chewy::Index>
A list of indexes changed.
Constructor Details
#initialize ⇒ SearchIndexReceiver
Returns a new instance of SearchIndexReceiver.
9 10 11 |
# File 'lib/chewy/minitest/search_index_receiver.rb', line 9 def initialize @mutations = {} end |
Instance Method Details
#catch(bulk_params, index) ⇒ Object
15 16 17 18 19 20 21 22 23 |
# File 'lib/chewy/minitest/search_index_receiver.rb', line 15 def catch(bulk_params, index) Array.wrap(bulk_params).map { |y| y[:body] }.flatten.each do |update| if update[:delete] mutation_for(index).deletes << update[:delete][:_id] elsif update[:index] mutation_for(index).indexes << update[:index] end end end |
#deleted?(obj, index) ⇒ true, false
Check to see if a given object has been deleted.
59 60 61 |
# File 'lib/chewy/minitest/search_index_receiver.rb', line 59 def deleted?(obj, index) deletes_for(index).include? obj.id end |
#deletes_for(index = nil) ⇒ Hash Also known as: deletes
Returns the index deletes captured by the mock.
38 39 40 41 42 43 44 |
# File 'lib/chewy/minitest/search_index_receiver.rb', line 38 def deletes_for(index = nil) if index mutation_for(index).deletes else @mutations.transform_values(&:deletes) end end |
#indexed?(obj, index) ⇒ true, false
Check to see if a given object has been indexed.
51 52 53 |
# File 'lib/chewy/minitest/search_index_receiver.rb', line 51 def indexed?(obj, index) indexes_for(index).map { |i| i[:_id] }.include? obj.id end |
#indexes_for(index = nil) ⇒ Hash Also known as: indexes
Returns the index changes captured by the mock.
27 28 29 30 31 32 33 |
# File 'lib/chewy/minitest/search_index_receiver.rb', line 27 def indexes_for(index = nil) if index mutation_for(index).indexes else @mutations.transform_values(&:indexes) end end |
#updated_indexes ⇒ Array<Chewy::Index>
Returns a list of indexes changed.
64 65 66 |
# File 'lib/chewy/minitest/search_index_receiver.rb', line 64 def updated_indexes @mutations.keys end |