DEV: Forces custom search filter matchers to be case insensitive (#28785)

This commit is contained in:
Sérgio Saquetim
2024-09-06 12:30:51 -03:00
committed by GitHub
parent 02f8396cfc
commit f8e3a90ab9
2 changed files with 16 additions and 1 deletions

View File

@ -2832,6 +2832,18 @@ RSpec.describe Search do
Search.advanced_filters.delete(/^min_chars:(\d+)$/)
end
it "forces custom filters matchers to be case insensitive" do
expect(Search.new("advanced").execute.posts).to eq([post1, post0])
Search.advanced_filter(/^MIN_CHARS:(\d+)$/) do |posts, match|
posts.where("(SELECT LENGTH(p2.raw) FROM posts p2 WHERE p2.id = posts.id) >= ?", match.to_i)
end
expect(Search.new("advanced Min_Chars:50").execute.posts).to eq([post0])
ensure
Search.advanced_filters.delete(/^MIN_CHARS:(\d+)$/)
end
it "allows to define custom order" do
expect(Search.new("advanced").execute.posts).to eq([post1, post0])