diff --git a/app/helpers/search_helper.rb b/app/helpers/search_helper.rb index 37b213a31859b6be51434e37d3057b843e921e57..1a9ac8d8206efd38471ea920669fa8a5c2694976 100644 --- a/app/helpers/search_helper.rb +++ b/app/helpers/search_helper.rb @@ -356,9 +356,8 @@ def users_autocomplete(term, limit = 5) return [] unless current_user && Ability.allowed?(current_user, :read_users_list) SearchService - .new(current_user, { scope: 'users', search: term }) + .new(current_user, { scope: 'users', per_page: limit, search: term }) .search_objects - .limit(limit) .map do |user| { category: "Users", diff --git a/spec/helpers/search_helper_spec.rb b/spec/helpers/search_helper_spec.rb index 0450ecc0f21d1358361f6b64dc394503790332bc..3d98591ac76d79ffe943c4fe683f55dedd17f802 100644 --- a/spec/helpers/search_helper_spec.rb +++ b/spec/helpers/search_helper_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe SearchHelper do +RSpec.describe SearchHelper, feature_category: :global_search do include MarkupHelper include BadgesHelper @@ -65,7 +65,8 @@ def simple_sanitize(str) let(:term) { 'jane' } it 'makes a call to SearchService' do - expect(SearchService).to receive(:new).with(current_user, { search: term, scope: 'users' }).and_call_original + params = { search: term, per_page: 5, scope: 'users' } + expect(SearchService).to receive(:new).with(current_user, params).and_call_original search_autocomplete_opts(term) end @@ -86,6 +87,15 @@ def simple_sanitize(str) expect(search_autocomplete_opts(term)).to eq([]) end end + + context 'with limiting' do + let!(:users) { create_list(:user, 6, name: 'Jane Doe') } + + it 'only returns the first 5 users' do + result = search_autocomplete_opts(term) + expect(result.size).to eq(5) + end + end end it "includes the required project attrs" do