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,6 +84,8 @@ class QueryTest < Minitest::Test
84 skip unless activerecord? 84 skip unless activerecord?
85 85
86 store_names ["Product A", "Product B"] 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 end 90 end
89 end 91 end
test/reindex_test.rb
@@ -145,7 +145,9 @@ class ReindexTest < Minitest::Test @@ -145,7 +145,9 @@ class ReindexTest < Minitest::Test
145 def test_full_partial_async 145 def test_full_partial_async
146 store_names ["Product A"] 146 store_names ["Product A"]
147 # warn for now 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 end 151 end
150 152
151 def test_callbacks_false 153 def test_callbacks_false
test/test_helper.rb
@@ -114,6 +114,13 @@ class Minitest::Test @@ -114,6 +114,13 @@ class Minitest::Test
114 assert_search(term, expected, options, klass) 114 assert_search(term, expected, options, klass)
115 end 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 def with_options(options, klass = default_model) 124 def with_options(options, klass = default_model)
118 previous_options = klass.searchkick_options.dup 125 previous_options = klass.searchkick_options.dup
119 begin 126 begin
test/where_test.rb
@@ -113,24 +113,38 @@ class WhereTest < Minitest::Test @@ -113,24 +113,38 @@ class WhereTest < Minitest::Test
113 store_names ["abcde"] 113 store_names ["abcde"]
114 # regular expressions are always anchored right now 114 # regular expressions are always anchored right now
115 # TODO change in future release 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 end 128 end
121 129
122 def test_regexp_anchored 130 def test_regexp_anchored
123 store_names ["abcde"] 131 store_names ["abcde"]
124 assert_search "*", ["abcde"], where: {name: /\Aabcde\z/} 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 end 139 end
128 140
129 def test_regexp_case 141 def test_regexp_case
130 store_names ["abcde"] 142 store_names ["abcde"]
131 assert_search "*", [], where: {name: /\AABCDE\z/} 143 assert_search "*", [], where: {name: /\AABCDE\z/}
132 # flags don't work 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 end 148 end
135 149
136 def test_prefix 150 def test_prefix