Commit 8f800ad6 authored by Paul Woolcock's avatar Paul Woolcock Committed by Eugen Rochko

Change custom emoji search to `ILIKE` instead of `=` (#7099)

parent 219a4423
...@@ -58,5 +58,9 @@ class CustomEmoji < ApplicationRecord ...@@ -58,5 +58,9 @@ class CustomEmoji < ApplicationRecord
where(shortcode: shortcodes, domain: domain, disabled: false) where(shortcode: shortcodes, domain: domain, disabled: false)
end end
def search(shortcode)
where('"custom_emojis"."shortcode" ILIKE ?', "%#{shortcode}%")
end
end end
end end
...@@ -28,7 +28,7 @@ class CustomEmojiFilter ...@@ -28,7 +28,7 @@ class CustomEmojiFilter
when 'by_domain' when 'by_domain'
CustomEmoji.where(domain: value) CustomEmoji.where(domain: value)
when 'shortcode' when 'shortcode'
CustomEmoji.where(shortcode: value) CustomEmoji.search(value)
else else
raise "Unknown filter: #{key}" raise "Unknown filter: #{key}"
end end
......
require 'rails_helper' require 'rails_helper'
RSpec.describe CustomEmoji, type: :model do RSpec.describe CustomEmoji, type: :model do
describe '#search' do
let(:custom_emoji) { Fabricate(:custom_emoji, shortcode: shortcode) }
subject { described_class.search(search_term) }
context 'shortcode is exact' do
let(:shortcode) { 'blobpats' }
let(:search_term) { 'blobpats' }
it 'finds emoji' do
is_expected.to include(custom_emoji)
end
end
context 'shortcode is partial' do
let(:shortcode) { 'blobpats' }
let(:search_term) { 'blob' }
it 'finds emoji' do
is_expected.to include(custom_emoji)
end
end
end
describe '#local?' do describe '#local?' do
let(:custom_emoji) { Fabricate(:custom_emoji, domain: domain) } let(:custom_emoji) { Fabricate(:custom_emoji, domain: domain) }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment