From 431d633dd8d3f5002d044e6e7907269c081e7385 Mon Sep 17 00:00:00 2001 From: Andrew Kane Date: Tue, 3 Aug 2021 09:37:09 -0700 Subject: [PATCH] Improved test output --- test/query_test.rb | 4 +++- test/reindex_test.rb | 4 +++- test/test_helper.rb | 7 +++++++ test/where_test.rb | 28 +++++++++++++++++++++------- 4 files changed, 34 insertions(+), 9 deletions(-) diff --git a/test/query_test.rb b/test/query_test.rb index 19ee91d..f1c2f0c 100644 --- a/test/query_test.rb +++ b/test/query_test.rb @@ -84,6 +84,8 @@ class QueryTest < Minitest::Test skip unless activerecord? store_names ["Product A", "Product B"] - assert_search "product", ["Product A"], scope_results: ->(r) { r.where(name: "Product A") } + assert_warns "Records in search index do not exist in database" do + assert_search "product", ["Product A"], scope_results: ->(r) { r.where(name: "Product A") } + end end end diff --git a/test/reindex_test.rb b/test/reindex_test.rb index 7d28717..bd22bb6 100644 --- a/test/reindex_test.rb +++ b/test/reindex_test.rb @@ -145,7 +145,9 @@ class ReindexTest < Minitest::Test def test_full_partial_async store_names ["Product A"] # warn for now - Product.reindex(:search_name, async: true) + assert_warns "unsupported keywords: :async" do + Product.reindex(:search_name, async: true) + end end def test_callbacks_false diff --git a/test/test_helper.rb b/test/test_helper.rb index 479ac9c..7a37774 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -114,6 +114,13 @@ class Minitest::Test assert_search(term, expected, options, klass) end + def assert_warns(message) + _, stderr = capture_io do + yield + end + assert_match "[searchkick] WARNING: #{message}", stderr + end + def with_options(options, klass = default_model) previous_options = klass.searchkick_options.dup begin diff --git a/test/where_test.rb b/test/where_test.rb index 8294a89..e9adb49 100644 --- a/test/where_test.rb +++ b/test/where_test.rb @@ -113,24 +113,38 @@ class WhereTest < Minitest::Test store_names ["abcde"] # regular expressions are always anchored right now # TODO change in future release - assert_search "*", [], where: {name: /abcd/} - assert_search "*", [], where: {name: /bcde/} - assert_search "*", ["abcde"], where: {name: /abcde/} - assert_search "*", ["abcde"], where: {name: /.*bcd.*/} + assert_warns "Regular expressions are always anchored in Elasticsearch" do + assert_search "*", [], where: {name: /abcd/} + end + assert_warns "Regular expressions are always anchored in Elasticsearch" do + assert_search "*", [], where: {name: /bcde/} + end + assert_warns "Regular expressions are always anchored in Elasticsearch" do + assert_search "*", ["abcde"], where: {name: /abcde/} + end + assert_warns "Regular expressions are always anchored in Elasticsearch" do + assert_search "*", ["abcde"], where: {name: /.*bcd.*/} + end end def test_regexp_anchored store_names ["abcde"] assert_search "*", ["abcde"], where: {name: /\Aabcde\z/} - assert_search "*", [], where: {name: /\Abcd/} - assert_search "*", [], where: {name: /bcd\z/} + assert_warns "Regular expressions are always anchored in Elasticsearch" do + assert_search "*", [], where: {name: /\Abcd/} + end + assert_warns "Regular expressions are always anchored in Elasticsearch" do + assert_search "*", [], where: {name: /bcd\z/} + end end def test_regexp_case store_names ["abcde"] assert_search "*", [], where: {name: /\AABCDE\z/} # flags don't work - assert_search "*", [], where: {name: /\AABCDE\z/i} + assert_warns "Case-insensitive flag does not work with Elasticsearch" do + assert_search "*", [], where: {name: /\AABCDE\z/i} + end end def test_prefix -- libgit2 0.21.0