Commit 431d633dd8d3f5002d044e6e7907269c081e7385
1 parent
4f74b9af
Exists in
master
and in
5 other branches
Improved test output
Showing
4 changed files
with
34 additions
and
9 deletions
Show diff stats
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 |