forked from fedi/mastodon
Change custom emoji search to ILIKE
instead of =
(#7099)
This commit is contained in:
parent
219a4423d8
commit
8f800ad691
|
@ -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
|
||||||
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
|
||||||
|
|
|
@ -1,6 +1,30 @@
|
||||||
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) }
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue