Skip to content

Commit ad9a4ab

Browse files
authored
Fix typings issues with TestInstantiationService (search) (microsoft#165945)
cherry-pick cbef6c2 for fixing testInstatiationService in search
1 parent 1b019bc commit ad9a4ab

File tree

3 files changed

+64
-15
lines changed

3 files changed

+64
-15
lines changed

src/vs/workbench/contrib/search/test/browser/searchActions.test.ts

Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
import * as assert from 'assert';
77
import { Keybinding } from 'vs/base/common/keybindings';
8-
import { OS } from 'vs/base/common/platform';
8+
import { isWindows, OS } from 'vs/base/common/platform';
99
import { URI } from 'vs/base/common/uri';
1010
import { IModelService } from 'vs/editor/common/services/model';
1111
import { ModelService } from 'vs/editor/common/services/modelService';
@@ -16,7 +16,7 @@ import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding';
1616
import { USLayoutResolvedKeybinding } from 'vs/platform/keybinding/common/usLayoutResolvedKeybinding';
1717
import { IFileMatch } from 'vs/workbench/services/search/common/search';
1818
import { getElementToFocusAfterRemoved, getLastNodeFromSameType } from 'vs/workbench/contrib/search/browser/searchActions';
19-
import { FileMatch, FileMatchOrMatch, Match } from 'vs/workbench/contrib/search/common/searchModel';
19+
import { FileMatch, FileMatchOrMatch, FolderMatch, Match, SearchModel } from 'vs/workbench/contrib/search/common/searchModel';
2020
import { MockObjectTree } from 'vs/workbench/contrib/search/test/browser/mockSearchTree';
2121
import { IThemeService } from 'vs/platform/theme/common/themeService';
2222
import { TestThemeService } from 'vs/platform/theme/test/common/testThemeService';
@@ -109,7 +109,37 @@ suite('Search Actions', () => {
109109
resource: URI.file('somepath' + ++counter),
110110
results: []
111111
};
112-
return instantiationService.createInstance(FileMatch, null, null, null, null, rawMatch, null);
112+
113+
const searchModel = instantiationService.createInstance(SearchModel);
114+
const folderMatch = instantiationService.createInstance(FolderMatch, URI.file('somepath'), '', 0, {
115+
type: 1, folderQueries: [{ folder: createFileUriFromPathFromRoot() }], contentPattern: {
116+
pattern: ''
117+
}
118+
}, searchModel.searchResult, searchModel, null);
119+
return instantiationService.createInstance(FileMatch, {
120+
pattern: ''
121+
}, undefined, undefined, folderMatch, rawMatch, null);
122+
}
123+
124+
function createFileUriFromPathFromRoot(path?: string): URI {
125+
const rootName = getRootName();
126+
if (path) {
127+
return URI.file(`${rootName}${path}`);
128+
} else {
129+
if (isWindows) {
130+
return URI.file(`${rootName}/`);
131+
} else {
132+
return URI.file(rootName);
133+
}
134+
}
135+
}
136+
137+
function getRootName(): string {
138+
if (isWindows) {
139+
return 'c:';
140+
} else {
141+
return '';
142+
}
113143
}
114144

115145
function aMatch(fileMatch: FileMatch): Match {

src/vs/workbench/contrib/search/test/browser/searchViewlet.test.ts

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ suite('Search - Viewlet', () => {
4040
});
4141

4242
test('Data Source', function () {
43-
const result: SearchResult = instantiation.createInstance(SearchResult, null);
43+
const result: SearchResult = aSearchResult();
4444
result.query = {
4545
type: QueryType.Text,
4646
contentPattern: { pattern: 'foo' },
@@ -166,20 +166,30 @@ suite('Search - Viewlet', () => {
166166

167167
function aFileMatch(path: string, parentFolder?: FolderMatch, ...lineMatches: ITextSearchMatch[]): FileMatch {
168168
const rawMatch: IFileMatch = {
169-
resource: createFileUriFromPathFromRoot(path),
169+
resource: URI.file('/' + path),
170170
results: lineMatches
171171
};
172-
return instantiation.createInstance(FileMatch, null, null, null, parentFolder, rawMatch, parentFolder);
172+
return instantiation.createInstance(FileMatch, {
173+
pattern: ''
174+
}, undefined, undefined, parentFolder ?? aFolderMatch('', 0), rawMatch, null);
173175
}
174176

175177
function aFolderMatch(path: string, index: number, parent?: SearchResult): FolderMatch {
176178
const searchModel = instantiation.createInstance(SearchModel);
177-
return instantiation.createInstance(FolderMatch, createFileUriFromPathFromRoot(path), path, index, null, parent, searchModel, parent);
179+
return instantiation.createInstance(FolderMatch, createFileUriFromPathFromRoot(path), path, index, {
180+
type: 1, folderQueries: [{ folder: createFileUriFromPathFromRoot() }], contentPattern: {
181+
pattern: ''
182+
}
183+
}, parent ?? aSearchResult().folderMatches()[0], searchModel, null);
178184
}
179185

180186
function aSearchResult(): SearchResult {
181187
const searchModel = instantiation.createInstance(SearchModel);
182-
searchModel.searchResult.query = { type: 1, folderQueries: [{ folder: createFileUriFromPathFromRoot() }] };
188+
searchModel.searchResult.query = {
189+
type: 1, folderQueries: [{ folder: createFileUriFromPathFromRoot() }], contentPattern: {
190+
pattern: ''
191+
}
192+
};
183193
return searchModel.searchResult;
184194
}
185195

src/vs/workbench/contrib/search/test/common/searchResult.test.ts

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -65,12 +65,12 @@ suite('SearchResult', () => {
6565
});
6666

6767
test('File Match', function () {
68-
let fileMatch = aFileMatch('folder/file.txt');
68+
let fileMatch = aFileMatch('folder/file.txt', aSearchResult());
6969
assert.strictEqual(fileMatch.matches().length, 0);
7070
assert.strictEqual(fileMatch.resource.toString(), 'file:///folder/file.txt');
7171
assert.strictEqual(fileMatch.name(), 'file.txt');
7272

73-
fileMatch = aFileMatch('file.txt');
73+
fileMatch = aFileMatch('file.txt', aSearchResult());
7474
assert.strictEqual(fileMatch.matches().length, 0);
7575
assert.strictEqual(fileMatch.resource.toString(), 'file:///file.txt');
7676
assert.strictEqual(fileMatch.name(), 'file.txt');
@@ -147,12 +147,14 @@ suite('SearchResult', () => {
147147
});
148148

149149
test('Match -> FileMatch -> SearchResult hierarchy exists', function () {
150-
const searchResult = instantiationService.createInstance(SearchResult, null);
150+
151+
const searchModel = instantiationService.createInstance(SearchModel);
152+
const searchResult = instantiationService.createInstance(SearchResult, searchModel);
151153
const fileMatch = aFileMatch('far/boo', searchResult);
152154
const lineMatch = new Match(fileMatch, ['foo bar'], new OneLineRange(0, 0, 3), new OneLineRange(1, 0, 3));
153155

154156
assert(lineMatch.parent() === fileMatch);
155-
assert(fileMatch.parent() === searchResult);
157+
assert(fileMatch.parent() === searchResult.folderMatches()[0]);
156158
});
157159

158160
test('Adding a raw match will add a file match with line matches', function () {
@@ -467,17 +469,24 @@ suite('SearchResult', () => {
467469

468470
});
469471

470-
function aFileMatch(path: string, searchResult?: SearchResult, ...lineMatches: ITextSearchMatch[]): FileMatch {
472+
function aFileMatch(path: string, searchResult: SearchResult, ...lineMatches: ITextSearchMatch[]): FileMatch {
471473
const rawMatch: IFileMatch = {
472474
resource: URI.file('/' + path),
473475
results: lineMatches
474476
};
475-
return instantiationService.createInstance(FileMatch, null, null, null, searchResult, rawMatch, searchResult);
477+
const root = searchResult?.folderMatches()[0];
478+
return instantiationService.createInstance(FileMatch, {
479+
pattern: ''
480+
}, undefined, undefined, root, rawMatch, null);
476481
}
477482

478483
function aSearchResult(): SearchResult {
479484
const searchModel = instantiationService.createInstance(SearchModel);
480-
searchModel.searchResult.query = { type: 1, folderQueries: [{ folder: createFileUriFromPathFromRoot() }] };
485+
searchModel.searchResult.query = {
486+
type: 1, folderQueries: [{ folder: createFileUriFromPathFromRoot() }], contentPattern: {
487+
pattern: ''
488+
}
489+
};
481490
return searchModel.searchResult;
482491
}
483492

0 commit comments

Comments
 (0)