From 0999e16e95f36d77e849072bd57b9d9ab9664970 Mon Sep 17 00:00:00 2001 From: Keith Date: Thu, 31 Jul 2025 14:52:22 +0000 Subject: [PATCH 1/6] Adding resource_id sort fix and test --- app/controllers/admin/users_controller.rb | 2 +- spec/system/admin/users_system_spec.rb | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/app/controllers/admin/users_controller.rb b/app/controllers/admin/users_controller.rb index be7a2151f5..141ddc7819 100644 --- a/app/controllers/admin/users_controller.rb +++ b/app/controllers/admin/users_controller.rb @@ -65,7 +65,7 @@ def resource_ids raise "Unknown resource type #{params[:resource_type]}" end - objects = klass.where("name LIKE ?", "%#{params[:q]}%").select(:id, :name) + objects = klass.where("name LIKE ?", "%#{params[:q]}%").select(:id, :name).order(:name) object_json = objects.map do |obj| { id: obj.id, diff --git a/spec/system/admin/users_system_spec.rb b/spec/system/admin/users_system_spec.rb index 0b563bbf43..33b388966d 100644 --- a/spec/system/admin/users_system_spec.rb +++ b/spec/system/admin/users_system_spec.rb @@ -167,4 +167,24 @@ end end end + + describe "Resourse Dropdown List: Validate Order" do + before do + sign_in(super_admin) + end + + it "Should sort display resource in human alphabetical order" do + FactoryBot.create(:organization, name: "Pawnee") + FactoryBot.create(:organization, name: "SF Diaper") + FactoryBot.create(:organization, name: "Second City") + + # params + # - resource_type - Organization, Resource + # - q - query string + # visit admin_users_resource_ids_path # (name: "Organization", q: "") + + visit "/admin/users/resource_ids?resource_type=org_admin" + expect(page).to have_content("{\"id\":2,\"text\":\"Pawnee\"},{\"id\":4,\"text\":\"Second City\"},{\"id\":3,\"text\":\"SF Diaper\"}") + end + end end From 5de4794bf3e5c085c6d3180c46934c051aba8eb9 Mon Sep 17 00:00:00 2001 From: Keith Date: Fri, 1 Aug 2025 14:40:17 +0000 Subject: [PATCH 2/6] Fixed use of ids to be able to pass tests anywhere. --- spec/system/admin/users_system_spec.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/spec/system/admin/users_system_spec.rb b/spec/system/admin/users_system_spec.rb index 33b388966d..b087928157 100644 --- a/spec/system/admin/users_system_spec.rb +++ b/spec/system/admin/users_system_spec.rb @@ -174,9 +174,9 @@ end it "Should sort display resource in human alphabetical order" do - FactoryBot.create(:organization, name: "Pawnee") - FactoryBot.create(:organization, name: "SF Diaper") - FactoryBot.create(:organization, name: "Second City") + FactoryBot.create(:organization, id: 2, name: "Pawnee") + FactoryBot.create(:organization, id: 3, name: "SF Diaper") + FactoryBot.create(:organization, id: 4, name: "Second City") # params # - resource_type - Organization, Resource From 94b5f3e196fdcd27dafb1a35c8f6c3c3d1d844d9 Mon Sep 17 00:00:00 2001 From: Keith Date: Fri, 8 Aug 2025 21:20:50 +0000 Subject: [PATCH 3/6] Modified to work for Postgres and not MySQL :-) --- app/controllers/admin/users_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/admin/users_controller.rb b/app/controllers/admin/users_controller.rb index 141ddc7819..9ea56263c5 100644 --- a/app/controllers/admin/users_controller.rb +++ b/app/controllers/admin/users_controller.rb @@ -65,7 +65,7 @@ def resource_ids raise "Unknown resource type #{params[:resource_type]}" end - objects = klass.where("name LIKE ?", "%#{params[:q]}%").select(:id, :name).order(:name) + objects = klass.where("name ILIKE ?", "%#{params[:q]}%").order("lower(name)").select(:id, :name) object_json = objects.map do |obj| { id: obj.id, From 81b68ef5e9c680fbf18e9dbcad6ae0322a0fa79e Mon Sep 17 00:00:00 2001 From: Keith Date: Thu, 28 Aug 2025 22:38:58 +0000 Subject: [PATCH 4/6] Moved and cleaned up rspec --- spec/requests/admin/users_requests_spec.rb | 11 +++++++++++ spec/system/admin/users_system_spec.rb | 20 -------------------- 2 files changed, 11 insertions(+), 20 deletions(-) diff --git a/spec/requests/admin/users_requests_spec.rb b/spec/requests/admin/users_requests_spec.rb index 21190b4cc4..90ef0e72b7 100644 --- a/spec/requests/admin/users_requests_spec.rb +++ b/spec/requests/admin/users_requests_spec.rb @@ -237,6 +237,17 @@ end end end + describe "Validate Order of returned organization list" do + let!(:pawnee_organization) { create(:organization, id: 2, name: "Pawnee") } + let!(:sf_diaper_organization) { create(:organization, id: 3, name: "SF Diaper") } + let!(:second_city_organization) { create(:organization, id: 4, name: "Second City") } + + it "Should sort display resource in human alphabetical order" do + get "/admin/users/resource_ids?resource_type=org_admin" + puts response.body + expect(response.body).to match(/{\"results\":\[{\"id\":\d+,\"text\":\"Org ABC\"},{\"id\":\d+,\"text\":\"Pawnee\"},{\"id\":\d+,\"text\":\"Second City\"},{\"id\":\d+,\"text\":\"SF Diaper\"}]}/) + end + end end context "When logged in as an organization_admin" do diff --git a/spec/system/admin/users_system_spec.rb b/spec/system/admin/users_system_spec.rb index b087928157..0b563bbf43 100644 --- a/spec/system/admin/users_system_spec.rb +++ b/spec/system/admin/users_system_spec.rb @@ -167,24 +167,4 @@ end end end - - describe "Resourse Dropdown List: Validate Order" do - before do - sign_in(super_admin) - end - - it "Should sort display resource in human alphabetical order" do - FactoryBot.create(:organization, id: 2, name: "Pawnee") - FactoryBot.create(:organization, id: 3, name: "SF Diaper") - FactoryBot.create(:organization, id: 4, name: "Second City") - - # params - # - resource_type - Organization, Resource - # - q - query string - # visit admin_users_resource_ids_path # (name: "Organization", q: "") - - visit "/admin/users/resource_ids?resource_type=org_admin" - expect(page).to have_content("{\"id\":2,\"text\":\"Pawnee\"},{\"id\":4,\"text\":\"Second City\"},{\"id\":3,\"text\":\"SF Diaper\"}") - end - end end From 5128decfa8109e6cf9046378c5091f07fb68a024 Mon Sep 17 00:00:00 2001 From: Keith Date: Fri, 29 Aug 2025 16:59:37 +0000 Subject: [PATCH 5/6] fixing lint issue --- spec/requests/admin/users_requests_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/requests/admin/users_requests_spec.rb b/spec/requests/admin/users_requests_spec.rb index 90ef0e72b7..64aa9cabd0 100644 --- a/spec/requests/admin/users_requests_spec.rb +++ b/spec/requests/admin/users_requests_spec.rb @@ -245,7 +245,7 @@ it "Should sort display resource in human alphabetical order" do get "/admin/users/resource_ids?resource_type=org_admin" puts response.body - expect(response.body).to match(/{\"results\":\[{\"id\":\d+,\"text\":\"Org ABC\"},{\"id\":\d+,\"text\":\"Pawnee\"},{\"id\":\d+,\"text\":\"Second City\"},{\"id\":\d+,\"text\":\"SF Diaper\"}]}/) + expect(response.body).to match(/{"results":\[{"id":\d+,"text":"Org ABC"},{"id":\d+,"text":"Pawnee"},{"id":\d+,"text":"Second City"},{"id":\d+,"text":"SF Diaper"}]}/) end end end From cb70badce12a5c3fb3ea8ccb73aa71fbabe5d0d3 Mon Sep 17 00:00:00 2001 From: Keith Date: Sat, 6 Sep 2025 19:07:12 +0000 Subject: [PATCH 6/6] Replace regex rspec test. --- spec/requests/admin/users_requests_spec.rb | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/spec/requests/admin/users_requests_spec.rb b/spec/requests/admin/users_requests_spec.rb index 64aa9cabd0..c7840fd0b6 100644 --- a/spec/requests/admin/users_requests_spec.rb +++ b/spec/requests/admin/users_requests_spec.rb @@ -9,6 +9,9 @@ before do sign_in(super_admin) AddRoleService.call(user_id: user.id, resource_type: Role::PARTNER, resource_id: partner.id) + create(:organization, name: "Pawnee") + create(:organization, name: "SF Diaper") + create(:organization, name: "Second City") end describe "GET #index" do @@ -238,14 +241,12 @@ end end describe "Validate Order of returned organization list" do - let!(:pawnee_organization) { create(:organization, id: 2, name: "Pawnee") } - let!(:sf_diaper_organization) { create(:organization, id: 3, name: "SF Diaper") } - let!(:second_city_organization) { create(:organization, id: 4, name: "Second City") } - it "Should sort display resource in human alphabetical order" do get "/admin/users/resource_ids?resource_type=org_admin" - puts response.body - expect(response.body).to match(/{"results":\[{"id":\d+,"text":"Org ABC"},{"id":\d+,"text":"Pawnee"},{"id":\d+,"text":"Second City"},{"id":\d+,"text":"SF Diaper"}]}/) + body_json = JSON.parse(response.body) + expect(body_json["results"].length).to be(4) + text_list = body_json["results"].map { |obj| obj["text"] } + expect(text_list).to match_array(["Org ABC", "Pawnee", "SF Diaper", "Second City"]) end end end