Fix rawSearchService to handle maxResults=0 correctly

Fix #79909
This commit is contained in:
Rob Lourens 2019-09-04 14:32:15 -07:00
parent bd9458e6b8
commit 5f36b0ea9a
2 changed files with 20 additions and 1 deletions

View file

@ -254,7 +254,7 @@ export class SearchService implements IRawSearchService {
const query = prepareQuery(config.filePattern || '');
const compare = (matchA: IRawFileMatch, matchB: IRawFileMatch) => compareItemsByScore(matchA, matchB, query, true, FileMatchItemAccessor, scorerCache);
const maxResults = config.maxResults || Number.MAX_VALUE;
const maxResults = typeof config.maxResults === 'number' ? config.maxResults : Number.MAX_VALUE;
return arrays.topAsync(results, compare, maxResults, 10000, token);
}

View file

@ -185,6 +185,25 @@ suite('RawSearchService', () => {
assert.strictEqual(result.results.length, 1, 'Result');
});
test('Handles maxResults=0 correctly', async function () {
this.timeout(testTimeout);
const service = new RawSearchService();
const query: IFileQuery = {
type: QueryType.File,
folderQueries: MULTIROOT_QUERIES,
maxResults: 0,
sortByScore: true,
includePattern: {
'*.txt': true,
'*.js': true
},
};
const result = await DiskSearch.collectResultsFromEvent(service.fileSearch(query));
assert.strictEqual(result.results.length, 0, 'Result');
});
test('Multi-root with include pattern and exists', async function () {
this.timeout(testTimeout);
const service = new RawSearchService();