logo

mastofe

My custom branche(s) on git.pleroma.social/pleroma/mastofe git clone https://hacktivis.me/git/mastofe.git
commit: 8f800ad6917e5fb41d17098f3f860d0d1aedcabe
parent 219a4423d8371fc89f122f3ef4874e9121b423f7
Author: Paul Woolcock <paul@woolcock.us>
Date:   Tue, 10 Apr 2018 09:46:27 -0400

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


Diffstat:

Mapp/models/custom_emoji.rb4++++
Mapp/models/custom_emoji_filter.rb2+-
Mspec/models/custom_emoji_spec.rb24++++++++++++++++++++++++
3 files changed, 29 insertions(+), 1 deletion(-)

diff --git a/app/models/custom_emoji.rb b/app/models/custom_emoji.rb @@ -58,5 +58,9 @@ class CustomEmoji < ApplicationRecord where(shortcode: shortcodes, domain: domain, disabled: false) end + + def search(shortcode) + where('"custom_emojis"."shortcode" ILIKE ?', "%#{shortcode}%") + end end end diff --git a/app/models/custom_emoji_filter.rb b/app/models/custom_emoji_filter.rb @@ -28,7 +28,7 @@ class CustomEmojiFilter when 'by_domain' CustomEmoji.where(domain: value) when 'shortcode' - CustomEmoji.where(shortcode: value) + CustomEmoji.search(value) else raise "Unknown filter: #{key}" end diff --git a/spec/models/custom_emoji_spec.rb b/spec/models/custom_emoji_spec.rb @@ -1,6 +1,30 @@ require 'rails_helper' 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 let(:custom_emoji) { Fabricate(:custom_emoji, domain: domain) }