From 95503f581103293754de1f7d0c4b02462db93173 Mon Sep 17 00:00:00 2001 From: taitus Date: Thu, 25 Mar 2021 10:43:53 +0100 Subject: [PATCH] Allow search User through name with whitespaces --- app/models/user.rb | 5 ++++- spec/models/user_spec.rb | 8 ++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/app/models/user.rb b/app/models/user.rb index 35dd762cc..0bb7e62a3 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -302,7 +302,10 @@ class User < ApplicationRecord end def self.search(term) - term.present? ? where("email = ? OR username ILIKE ?", term.strip, "%#{term}%") : none + return none if term.blank? + + search = term.strip + where("email = ? OR username ILIKE ?", search, "%#{search}%") end def self.username_max_length diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 0b7eb3c20..c37ec298c 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -440,6 +440,14 @@ describe User do expect(search).to eq [user1] end + it "find users by name with whitespaces" do + user1 = create(:user, username: "Larry Bird") + create(:user, username: "Robert Parish") + search = User.search(" larry ") + + expect(search).to eq [user1] + end + it "returns no results if no search term provided" do expect(User.search(" ")).to be_empty end