Merge branch 'jprovazn-search-issues' into 'master'

Skip projects filter on issues search

See merge request gitlab-org/gitlab-ce!16117
This commit is contained in:
Sean McGivern 2018-01-03 09:21:09 +00:00
commit 5e3103678b
3 changed files with 37 additions and 8 deletions

View File

@ -0,0 +1,5 @@
---
title: Improve search query for issues.
merge_request:
author:
type: performance

View File

@ -82,7 +82,10 @@ module Gitlab
end end
def issues def issues
issues = IssuesFinder.new(current_user).execute.where(project_id: project_ids_relation) issues = IssuesFinder.new(current_user).execute
unless default_project_filter
issues = issues.where(project_id: project_ids_relation)
end
issues = issues =
if query =~ /#(\d+)\z/ if query =~ /#(\d+)\z/

View File

@ -52,15 +52,36 @@ describe Gitlab::SearchResults do
expect(results.objects('merge_requests')).to include merge_request_2 expect(results.objects('merge_requests')).to include merge_request_2
end end
it 'includes project filter by default' do describe '#merge_requests' do
expect(results).to receive(:project_ids_relation).and_call_original it 'includes project filter by default' do
results.objects('merge_requests') expect(results).to receive(:project_ids_relation).and_call_original
results.objects('merge_requests')
end
it 'it skips project filter if default project context is used' do
allow(results).to receive(:default_project_filter).and_return(true)
expect(results).not_to receive(:project_ids_relation)
results.objects('merge_requests')
end
end end
it 'it skips project filter if default is used' do describe '#issues' do
allow(results).to receive(:default_project_filter).and_return(true) it 'includes project filter by default' do
expect(results).not_to receive(:project_ids_relation) expect(results).to receive(:project_ids_relation).and_call_original
results.objects('merge_requests')
results.objects('issues')
end
it 'it skips project filter if default project context is used' do
allow(results).to receive(:default_project_filter).and_return(true)
expect(results).not_to receive(:project_ids_relation)
results.objects('issues')
end
end end
end end