Commit 0d976e94b3cd2cb688f92e487c0350a599d648ad

Authored by Andrew Kane
1 parent f786c804

Improved tests [skip ci]

lib/searchkick.rb
... ... @@ -74,6 +74,28 @@ module Searchkick
74 74 Gem::Version.new(server_version.sub("-", ".")) < Gem::Version.new(version.sub("-", "."))
75 75 end
76 76  
  77 + def self.search(term = nil, options = {}, &block)
  78 + query = Searchkick::Query.new(nil, term, options)
  79 + block.call(query.body) if block
  80 + if options[:execute] == false
  81 + query
  82 + else
  83 + query.execute
  84 + end
  85 + end
  86 +
  87 + def self.multi_search(queries)
  88 + if queries.any?
  89 + responses = client.msearch(body: queries.flat_map { |q| [q.params.except(:body), q.body] })["responses"]
  90 + queries.each_with_index do |query, i|
  91 + query.handle_response(responses[i])
  92 + end
  93 + end
  94 + nil
  95 + end
  96 +
  97 + # callbacks
  98 +
77 99 def self.enable_callbacks
78 100 self.callbacks_value = nil
79 101 end
... ... @@ -121,26 +143,6 @@ module Searchkick
121 143 def self.callbacks_value=(value)
122 144 Thread.current[:searchkick_callbacks_enabled] = value
123 145 end
124   -
125   - def self.search(term = nil, options = {}, &block)
126   - query = Searchkick::Query.new(nil, term, options)
127   - block.call(query.body) if block
128   - if options[:execute] == false
129   - query
130   - else
131   - query.execute
132   - end
133   - end
134   -
135   - def self.multi_search(queries)
136   - if queries.any?
137   - responses = client.msearch(body: queries.flat_map { |q| [q.params.except(:body), q.body] })["responses"]
138   - queries.each_with_index do |query, i|
139   - query.handle_response(responses[i])
140   - end
141   - end
142   - nil
143   - end
144 146 end
145 147  
146 148 # TODO find better ActiveModel hook
... ...
test/highlight_test.rb
... ... @@ -41,10 +41,10 @@ class HighlightTest &lt; Minitest::Test
41 41 assert_equal "&lt;b&gt;<em>Hello</em>&lt;&#x2F;b&gt;", Product.search("hello", fields: [:name], highlight: {encoder: "html"}, misspellings: false).with_details.first[1][:highlight][:name]
42 42 end
43 43  
44   - def test_json
  44 + def test_body
45 45 skip if ENV["MATCH"] == "word_start"
46 46 store_names ["Two Door Cinema Club"]
47   - json = {
  47 + body = {
48 48 query: {
49 49 match: {
50 50 "name.analyzed" => "cinema"
... ... @@ -58,6 +58,6 @@ class HighlightTest &lt; Minitest::Test
58 58 }
59 59 }
60 60 }
61   - assert_equal "Two Door <strong>Cinema</strong> Club", Product.search(json: json).with_details.first[1][:highlight][:"name.analyzed"]
  61 + assert_equal "Two Door <strong>Cinema</strong> Club", Product.search(body: body).with_details.first[1][:highlight][:"name.analyzed"]
62 62 end
63 63 end
... ...
test/index_test.rb
... ... @@ -93,7 +93,7 @@ class IndexTest &lt; Minitest::Test
93 93 end
94 94  
95 95 def test_missing_index
96   - assert_raises(Searchkick::MissingIndexError) { Product.search "test", index_name: "not_found" }
  96 + assert_raises(Searchkick::MissingIndexError) { Product.search("test", index_name: "not_found") }
97 97 end
98 98  
99 99 def test_unsupported_version
... ... @@ -103,8 +103,8 @@ class IndexTest &lt; Minitest::Test
103 103 end
104 104 end
105 105  
106   - def test_invalid_query
107   - assert_raises(Searchkick::InvalidQueryError) { Product.search(query: {boom: true}) }
  106 + def test_invalid_body
  107 + assert_raises(Searchkick::InvalidQueryError) { Product.search(body: {boom: true}) }
108 108 end
109 109  
110 110 def test_transaction
... ...
test/sql_test.rb
... ... @@ -76,9 +76,9 @@ class SqlTest &lt; Minitest::Test
76 76 assert_equal "Product A", Product.search("product", load: false).first.name
77 77 end
78 78  
79   - def test_load_false_with_include
  79 + def test_load_false_with_includes
80 80 store_names ["Product A"]
81   - assert_kind_of Hash, Product.search("product", load: false, include: [:store]).first
  81 + assert_kind_of Hash, Product.search("product", load: false, includes: [:store]).first
82 82 end
83 83  
84 84 def test_load_false_nested_object
... ... @@ -233,9 +233,9 @@ class SqlTest &lt; Minitest::Test
233 233  
234 234 # other tests
235 235  
236   - def test_include
  236 + def test_includes
237 237 skip unless defined?(ActiveRecord)
238 238 store_names ["Product A"]
239   - assert Product.search("product", include: [:store]).first.association(:store).loaded?
  239 + assert Product.search("product", includes: [:store]).first.association(:store).loaded?
240 240 end
241 241 end
... ...