Commit bbd7077ad58048cd420d089ed1dce4d39434de0c

Authored by Andrew Kane
1 parent 12af1e2d

Raise ArgumentError (instead of warning) for invalid regular expression modifiers

CHANGELOG.md
1 1 ## 5.0.0 (unreleased)
2 2  
3 3 - Raise error when `search` called on relations
  4 +- Raise `ArgumentError` (instead of warning) for invalid regular expression modifiers
4 5 - Dropped support for Ruby < 2.6 and Active Record < 5.2
5 6 - Dropped support for NoBrainer and Cequel
6 7 - Dropped support for `faraday_middleware-aws-signers-v4` (use `faraday_middleware-aws-sigv4` instead)
... ...
lib/searchkick/query.rb
... ... @@ -1058,7 +1058,7 @@ module Searchkick
1058 1058  
1059 1059 if below710?
1060 1060 if value.casefold?
1061   - Searchkick.warn("Case-insensitive flag does not work with Elasticsearch < 7.10")
  1061 + raise Searchkick::Error, "Case-insensitive flag does not work with Elasticsearch < 7.10"
1062 1062 end
1063 1063 {regexp: {field => {value: source, flags: "NONE"}}}
1064 1064 else
... ...
test/where_test.rb
... ... @@ -143,12 +143,13 @@ class WhereTest &lt; Minitest::Test
143 143 def test_regexp_case
144 144 store_names ["abcde"]
145 145 assert_search "*", [], where: {name: /\AABCDE\z/}
146   - unless case_insensitive_supported?
147   - assert_warns "Case-insensitive flag does not work with Elasticsearch < 7.10" do
  146 + if case_insensitive_supported?
  147 + assert_search "*", ["abcde"], where: {name: /\AABCDE\z/i}
  148 + else
  149 + error = assert_raises(Searchkick::Error) do
148 150 assert_search "*", [], where: {name: /\AABCDE\z/i}
149 151 end
150   - else
151   - assert_search "*", ["abcde"], where: {name: /\AABCDE\z/i}
  152 + assert_equal "Case-insensitive flag does not work with Elasticsearch < 7.10", error.message
152 153 end
153 154 end
154 155  
... ...