From 5e156fbe855750ef3ee36914b7763e46fbd25138 Mon Sep 17 00:00:00 2001 From: Guo Xiang Tan Date: Thu, 29 Jun 2017 16:36:51 +0900 Subject: [PATCH] FIX: `Group.search` should look up `Group#full_name` too. https://meta.discourse.org/t/mentioning-group-by-full-name-doesnt-work/63437/3 --- app/models/group.rb | 4 +++- spec/models/group_spec.rb | 14 ++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/app/models/group.rb b/app/models/group.rb index ecfab9ec29b..90d6f063542 100644 --- a/app/models/group.rb +++ b/app/models/group.rb @@ -282,7 +282,9 @@ class Group < ActiveRecord::Base end def self.search_group(name) - Group.where(visible: true).where("name ILIKE :term_like", term_like: "#{name}%") + Group.where(visible: true).where( + "name ILIKE :term_like OR full_name ILIKE :term_like", term_like: "#{name}%" + ) end def self.lookup_group(name) diff --git a/spec/models/group_spec.rb b/spec/models/group_spec.rb index b066566c113..8ec3348e459 100644 --- a/spec/models/group_spec.rb +++ b/spec/models/group_spec.rb @@ -487,4 +487,18 @@ describe Group do end end end + + describe '.search_group' do + let(:group) { Fabricate(:group, name: 'tEsT', full_name: 'eSTt') } + + it 'should return the right groups' do + group + + expect(Group.search_group('te')).to eq([group]) + expect(Group.search_group('TE')).to eq([group]) + expect(Group.search_group('es')).to eq([group]) + expect(Group.search_group('ES')).to eq([group]) + expect(Group.search_group('test2')).to eq([]) + end + end end