Commit 431d633dd8d3f5002d044e6e7907269c081e7385

Authored by Andrew Kane
1 parent 4f74b9af

Improved test output

test/query_test.rb
... ... @@ -84,6 +84,8 @@ class QueryTest < Minitest::Test
84 84 skip unless activerecord?
85 85  
86 86 store_names ["Product A", "Product B"]
87   - assert_search "product", ["Product A"], scope_results: ->(r) { r.where(name: "Product A") }
  87 + assert_warns "Records in search index do not exist in database" do
  88 + assert_search "product", ["Product A"], scope_results: ->(r) { r.where(name: "Product A") }
  89 + end
88 90 end
89 91 end
... ...
test/reindex_test.rb
... ... @@ -145,7 +145,9 @@ class ReindexTest < Minitest::Test
145 145 def test_full_partial_async
146 146 store_names ["Product A"]
147 147 # warn for now
148   - Product.reindex(:search_name, async: true)
  148 + assert_warns "unsupported keywords: :async" do
  149 + Product.reindex(:search_name, async: true)
  150 + end
149 151 end
150 152  
151 153 def test_callbacks_false
... ...
test/test_helper.rb
... ... @@ -114,6 +114,13 @@ class Minitest::Test
114 114 assert_search(term, expected, options, klass)
115 115 end
116 116  
  117 + def assert_warns(message)
  118 + _, stderr = capture_io do
  119 + yield
  120 + end
  121 + assert_match "[searchkick] WARNING: #{message}", stderr
  122 + end
  123 +
117 124 def with_options(options, klass = default_model)
118 125 previous_options = klass.searchkick_options.dup
119 126 begin
... ...
test/where_test.rb
... ... @@ -113,24 +113,38 @@ class WhereTest < Minitest::Test
113 113 store_names ["abcde"]
114 114 # regular expressions are always anchored right now
115 115 # TODO change in future release
116   - assert_search "*", [], where: {name: /abcd/}
117   - assert_search "*", [], where: {name: /bcde/}
118   - assert_search "*", ["abcde"], where: {name: /abcde/}
119   - assert_search "*", ["abcde"], where: {name: /.*bcd.*/}
  116 + assert_warns "Regular expressions are always anchored in Elasticsearch" do
  117 + assert_search "*", [], where: {name: /abcd/}
  118 + end
  119 + assert_warns "Regular expressions are always anchored in Elasticsearch" do
  120 + assert_search "*", [], where: {name: /bcde/}
  121 + end
  122 + assert_warns "Regular expressions are always anchored in Elasticsearch" do
  123 + assert_search "*", ["abcde"], where: {name: /abcde/}
  124 + end
  125 + assert_warns "Regular expressions are always anchored in Elasticsearch" do
  126 + assert_search "*", ["abcde"], where: {name: /.*bcd.*/}
  127 + end
120 128 end
121 129  
122 130 def test_regexp_anchored
123 131 store_names ["abcde"]
124 132 assert_search "*", ["abcde"], where: {name: /\Aabcde\z/}
125   - assert_search "*", [], where: {name: /\Abcd/}
126   - assert_search "*", [], where: {name: /bcd\z/}
  133 + assert_warns "Regular expressions are always anchored in Elasticsearch" do
  134 + assert_search "*", [], where: {name: /\Abcd/}
  135 + end
  136 + assert_warns "Regular expressions are always anchored in Elasticsearch" do
  137 + assert_search "*", [], where: {name: /bcd\z/}
  138 + end
127 139 end
128 140  
129 141 def test_regexp_case
130 142 store_names ["abcde"]
131 143 assert_search "*", [], where: {name: /\AABCDE\z/}
132 144 # flags don't work
133   - assert_search "*", [], where: {name: /\AABCDE\z/i}
  145 + assert_warns "Case-insensitive flag does not work with Elasticsearch" do
  146 + assert_search "*", [], where: {name: /\AABCDE\z/i}
  147 + end
134 148 end
135 149  
136 150 def test_prefix
... ...