Преглед изворни кода

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

master
Paul Woolcock пре 6 година
committed by Eugen Rochko
родитељ
комит
8f800ad691
3 измењених фајлова са 29 додато и 1 уклоњено
  1. +4
    -0
      app/models/custom_emoji.rb
  2. +1
    -1
      app/models/custom_emoji_filter.rb
  3. +24
    -0
      spec/models/custom_emoji_spec.rb

+ 4
- 0
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

+ 1
- 1
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


+ 24
- 0
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) }



Loading…
Откажи
Сачувај