From 0e3950be7437db47f0fa3aede06e3a54a6cf68cc Mon Sep 17 00:00:00 2001 From: Ted Date: Mon, 23 May 2022 11:40:09 +0100 Subject: [PATCH] Search is now non case sensitive --- app/controllers/users_controller.rb | 2 +- spec/requests/users_controller_spec.rb | 25 +++++++++++++++++++------ 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index bfa4078aa..067d27c48 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -80,7 +80,7 @@ private def filtered_users search_param = params["user-search-field"] if search_param - User.where("name LIKE ?", "%#{search_param}%").where(active: true).includes(:organisation) + User.where("name ILIKE ?", "%#{search_param}%").where(active: true).includes(:organisation) else User.all.where(active: true).includes(:organisation) end diff --git a/spec/requests/users_controller_spec.rb b/spec/requests/users_controller_spec.rb index fabf309d9..948121a76 100644 --- a/spec/requests/users_controller_spec.rb +++ b/spec/requests/users_controller_spec.rb @@ -757,14 +757,27 @@ RSpec.describe UsersController, type: :request do context "when a search parameter is passed" do before do - get "/users?user-search-field=Danny" + get "/users?user-search-field=#{search_param}" end - it "returns only matching results" do - expect(page).to have_content(user.name) - expect(page).not_to have_content(other_user.name) - expect(page).not_to have_content(inactive_user.name) - expect(page).not_to have_content(other_org_user.name) + context "when our search string matches case" do + let (:search_param){"Danny"} + it "returns only matching results" do + expect(page).to have_content(user.name) + expect(page).not_to have_content(other_user.name) + expect(page).not_to have_content(inactive_user.name) + expect(page).not_to have_content(other_org_user.name) + end + end + + context "when we need case insensitive search" do + let (:search_param){"danny"} + it "returns only matching results" do + expect(page).to have_content(user.name) + expect(page).not_to have_content(other_user.name) + expect(page).not_to have_content(inactive_user.name) + expect(page).not_to have_content(other_org_user.name) + end end end end