Skip to content

Commit ee1a154

Browse files
author
Andy Hanson
committed
Rename "getScriptLexicalStructureList" to "navigationBar" in fourslash test helpers and remove unnecessary duplicate helpers
1 parent 44f2a99 commit ee1a154

35 files changed

+112
-149
lines changed

src/harness/fourslash.ts

+29-64
Original file line numberDiff line numberDiff line change
@@ -1912,47 +1912,6 @@ namespace FourSlash {
19121912
}
19131913
}
19141914

1915-
public verifyNavigationBarCount(count: number) {
1916-
const actual = this.navigationBarItems().length;
1917-
if (actual !== count) {
1918-
this.raiseError(`Expected ${count} items in navigation bar, got ${actual}`);
1919-
}
1920-
}
1921-
1922-
public verifyNavigationBarItem(text: string, kind: string) {
1923-
this.verifyNavigationBarItemExists(this.navigationBarItems(), text, kind);
1924-
}
1925-
1926-
public verifyNavigationBarChildItem(parent: string, text: string, kind: string) {
1927-
const items = this.navigationBarItems();
1928-
1929-
// TODO: ts.find?
1930-
for (let i = 0; i < items.length; i++) {
1931-
const item = items[i];
1932-
if (item.text === parent) {
1933-
this.verifyNavigationBarItemExists(item.childItems, text, kind);
1934-
return;
1935-
}
1936-
}
1937-
1938-
this.raiseError(`Could not find any parent named ${parent} in: ${JSON.stringify(items, undefined, 2)}`);
1939-
}
1940-
1941-
private navigationBarItems() {
1942-
return this.languageService.getNavigationBarItems(this.activeFile.fileName);
1943-
}
1944-
1945-
private verifyNavigationBarItemExists(items: ts.NavigationBarItem[], text: string, kind: string) {
1946-
for (let i = 0; i < items.length; i++) {
1947-
const item = items[i];
1948-
if (item.text === text && item.kind === kind) {
1949-
return;
1950-
}
1951-
}
1952-
1953-
this.raiseError(`Could not find ${JSON.stringify({text, kind}, undefined, 2)} in the navigation bar: ${JSON.stringify(items, undefined, 2)}`);
1954-
}
1955-
19561915
/*
19571916
Check number of navigationItems which match both searchValue and matchKind.
19581917
Report an error if expected value and actual value do not match.
@@ -2009,12 +1968,12 @@ namespace FourSlash {
20091968
}
20101969
}
20111970

2012-
public verifyGetScriptLexicalStructureListCount(expected: number) {
1971+
public verifyNavigationBarCount(expected: number) {
20131972
const items = this.languageService.getNavigationBarItems(this.activeFile.fileName);
20141973
const actual = this.getNavigationBarItemsCount(items);
20151974

20161975
if (expected !== actual) {
2017-
this.raiseError(`verifyGetScriptLexicalStructureListCount failed - found: ${actual} navigation items, expected: ${expected}.`);
1976+
this.raiseError(`verifyNavigationBarCount failed - found: ${actual} navigation items, expected: ${expected}.`);
20181977
}
20191978
}
20201979

@@ -2030,19 +1989,19 @@ namespace FourSlash {
20301989
return result;
20311990
}
20321991

2033-
public verifyGetScriptLexicalStructureListContains(name: string, kind: string) {
1992+
public verifyNavigationBarContains(name: string, kind: string) {
20341993
const items = this.languageService.getNavigationBarItems(this.activeFile.fileName);
20351994

20361995
if (!items || items.length === 0) {
2037-
this.raiseError("verifyGetScriptLexicalStructureListContains failed - found 0 navigation items, expected at least one.");
1996+
this.raiseError("verifyNavigationBarContains failed - found 0 navigation items, expected at least one.");
20381997
}
20391998

20401999
if (this.navigationBarItemsContains(items, name, kind)) {
20412000
return;
20422001
}
20432002

2044-
const missingItem = { name: name, kind: kind };
2045-
this.raiseError(`verifyGetScriptLexicalStructureListContains failed - could not find the item: ${JSON.stringify(missingItem, undefined, 2)} in the returned list: (${JSON.stringify(items, undefined, 2)})`);
2003+
const missingItem = { name, kind };
2004+
this.raiseError(`verifyNavigationBarContains failed - could not find the item: ${JSON.stringify(missingItem, undefined, 2)} in the returned list: (${JSON.stringify(items, undefined, 2)})`);
20462005
}
20472006

20482007
private navigationBarItemsContains(items: ts.NavigationBarItem[], name: string, kind: string) {
@@ -2062,6 +2021,20 @@ namespace FourSlash {
20622021
return false;
20632022
}
20642023

2024+
public verifyNavigationBarChildItem(parent: string, name: string, kind: string) {
2025+
const items = this.languageService.getNavigationBarItems(this.activeFile.fileName);
2026+
2027+
for (let i = 0; i < items.length; i++) {
2028+
const item = items[i];
2029+
if (item.text === parent) {
2030+
if (this.navigationBarItemsContains(item.childItems, name, kind))
2031+
return;
2032+
const missingItem = { name, kind };
2033+
this.raiseError(`verifyNavigationBarChildItem failed - could not find the item: ${JSON.stringify(missingItem)} in the children list: (${JSON.stringify(item.childItems, undefined, 2)})`);
2034+
}
2035+
}
2036+
}
2037+
20652038
public printNavigationItems(searchValue: string) {
20662039
const items = this.languageService.getNavigateToItems(searchValue);
20672040
const length = items && items.length;
@@ -2074,7 +2047,7 @@ namespace FourSlash {
20742047
}
20752048
}
20762049

2077-
public printScriptLexicalStructureItems() {
2050+
public printNavigationBar() {
20782051
const items = this.languageService.getNavigationBarItems(this.activeFile.fileName);
20792052
const length = items && items.length;
20802053

@@ -3070,31 +3043,23 @@ namespace FourSlashInterface {
30703043
this.DocCommentTemplate(/*expectedText*/ undefined, /*expectedOffset*/ undefined, /*empty*/ true);
30713044
}
30723045

3073-
public getScriptLexicalStructureListCount(count: number) {
3074-
this.state.verifyGetScriptLexicalStructureListCount(count);
3046+
public navigationBarCount(count: number) {
3047+
this.state.verifyNavigationBarCount(count);
30753048
}
30763049

30773050
// TODO: figure out what to do with the unused arguments.
3078-
public getScriptLexicalStructureListContains(
3051+
public navigationBarContains(
30793052
name: string,
30803053
kind: string,
30813054
fileName?: string,
30823055
parentName?: string,
30833056
isAdditionalSpan?: boolean,
30843057
markerPosition?: number) {
3085-
this.state.verifyGetScriptLexicalStructureListContains(name, kind);
3086-
}
3087-
3088-
public navigationBarCount(count: number) {
3089-
this.state.verifyNavigationBarCount(count);
3090-
}
3091-
3092-
public navigationBarItem(text: string, kind: string) {
3093-
this.state.verifyNavigationBarItem(text, kind);
3058+
this.state.verifyNavigationBarContains(name, kind);
30943059
}
30953060

3096-
public navigationBarChildItem(parent: string, text: string, kind: string) {
3097-
this.state.verifyNavigationBarChildItem(parent, text, kind);
3061+
public navigationBarChildItem(parent: string, name: string, kind: string) {
3062+
this.state.verifyNavigationBarChildItem(parent, name, kind);
30983063
}
30993064

31003065
public navigationItemsListCount(count: number, searchValue: string, matchKind?: string) {
@@ -3287,8 +3252,8 @@ namespace FourSlashInterface {
32873252
this.state.printNavigationItems(searchValue);
32883253
}
32893254

3290-
public printScriptLexicalStructureItems() {
3291-
this.state.printScriptLexicalStructureItems();
3255+
public printNavigationBar() {
3256+
this.state.printNavigationBar();
32923257
}
32933258

32943259
public printReferences() {

tests/cases/fourslash/deleteClassWithEnumPresent.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@
55

66
goTo.marker();
77
edit.deleteAtCaret('class Bar { }'.length);
8-
verify.getScriptLexicalStructureListContains('Foo', 'enum', 'tests/cases/fourslash/deleteClassWithEnumPresent.ts', '');
8+
verify.navigationBarContains('Foo', 'enum', 'tests/cases/fourslash/deleteClassWithEnumPresent.ts', '');

tests/cases/fourslash/fourslash.ts

+2-4
Original file line numberDiff line numberDiff line change
@@ -175,10 +175,8 @@ declare namespace FourSlashInterface {
175175
DocCommentTemplate(expectedText: string, expectedOffset: number, empty?: boolean): void;
176176
noDocCommentTemplate(): void;
177177

178-
getScriptLexicalStructureListCount(count: number): void;
179-
getScriptLexicalStructureListContains(name: string, kind: string, fileName?: string, parentName?: string, isAdditionalSpan?: boolean, markerPosition?: number): void;
180-
navigationBarCount(count: number);
181-
navigationBarItem(text: string, kind: string): void;
178+
navigationBarCount(count: number): void;
179+
navigationBarContains(name: string, kind: string, fileName?: string, parentName?: string, isAdditionalSpan?: boolean, markerPosition?: number): void;
182180
navigationBarChildItem(parent: string, text: string, kind: string): void;
183181
navigationItemsListCount(count: number, searchValue: string, matchKind?: string): void;
184182
navigationItemsListContains(name: string, kind: string, searchValue: string, matchKind: string, fileName?: string, parentName?: string): void;

tests/cases/fourslash/getNavigationBarItems.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
//// ["bar"]: string;
66
////}
77

8-
verify.navigationBarCount(1);
9-
verify.navigationBarItem("C", "class");
8+
verify.navigationBarCount(3);
9+
verify.navigationBarContains("C", "class");
1010
verify.navigationBarChildItem("C", "[\"bar\"]", "property");
1111
verify.navigationBarChildItem("C", "foo", "property");

tests/cases/fourslash/navbar_const.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
//// {| "itemName": "c", "kind": "const", "parentName": "" |}const c = 0;
44

55
test.markers().forEach(marker => {
6-
verify.getScriptLexicalStructureListContains(
6+
verify.navigationBarContains(
77
marker.data.itemName,
88
marker.data.kind,
99
marker.fileName,

tests/cases/fourslash/navbar_contains-no-duplicates.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929

3030
test.markers().forEach(marker => {
3131
if (marker.data) {
32-
verify.getScriptLexicalStructureListContains(
32+
verify.navigationBarContains(
3333
marker.data.itemName,
3434
marker.data.kind,
3535
marker.fileName,
@@ -38,4 +38,4 @@ test.markers().forEach(marker => {
3838
marker.position);
3939
}
4040
});
41-
verify.getScriptLexicalStructureListCount(12);
41+
verify.navigationBarCount(12);

tests/cases/fourslash/navbar_exportDefault.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
test.markers().forEach(marker => {
1616
goTo.file(marker.fileName);
17-
verify.getScriptLexicalStructureListContains(
17+
verify.navigationBarContains(
1818
marker.data.itemName,
1919
marker.data.kind,
2020
marker.fileName,

tests/cases/fourslash/navbar_let.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
//// {| "itemName": "c", "kind": "let", "parentName": "" |}let c = 0;
44

55
test.markers().forEach(marker => {
6-
verify.getScriptLexicalStructureListContains(
6+
verify.navigationBarContains(
77
marker.data.itemName,
88
marker.data.kind,
99
marker.fileName,

tests/cases/fourslash/navigationBarItemsBindingPatterns.ts

+12-12
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,16 @@
66
////const bar1, [c, d]
77
////var {e, x: [f, g]} = {a:1, x:[]};
88

9-
verify.getScriptLexicalStructureListCount(12); // global (1) + variable declarations (4) + binding patterns (7)
10-
verify.getScriptLexicalStructureListContains("foo", "var");
11-
verify.getScriptLexicalStructureListContains("bar", "var");
12-
verify.getScriptLexicalStructureListContains("foo1", "let")
13-
verify.getScriptLexicalStructureListContains("a", "let");
14-
verify.getScriptLexicalStructureListContains("b", "let");
15-
verify.getScriptLexicalStructureListContains("bar1", "const");
16-
verify.getScriptLexicalStructureListContains("c", "const");
17-
verify.getScriptLexicalStructureListContains("d", "const");
18-
verify.getScriptLexicalStructureListContains("e", "var");
19-
verify.getScriptLexicalStructureListContains("f", "var");
20-
verify.getScriptLexicalStructureListContains("g", "var");
9+
verify.navigationBarCount(12); // global (1) + variable declarations (4) + binding patterns (7)
10+
verify.navigationBarContains("foo", "var");
11+
verify.navigationBarContains("bar", "var");
12+
verify.navigationBarContains("foo1", "let")
13+
verify.navigationBarContains("a", "let");
14+
verify.navigationBarContains("b", "let");
15+
verify.navigationBarContains("bar1", "const");
16+
verify.navigationBarContains("c", "const");
17+
verify.navigationBarContains("d", "const");
18+
verify.navigationBarContains("e", "var");
19+
verify.navigationBarContains("f", "var");
20+
verify.navigationBarContains("g", "var");
2121

tests/cases/fourslash/navigationBarItemsBindingPatternsInConstructor.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,4 @@
1111
//// }
1212
////}
1313

14-
verify.getScriptLexicalStructureListCount(6); // 2x(class + field + constructor)
14+
verify.navigationBarCount(6); // 2x(class + field + constructor)

tests/cases/fourslash/navigationBarItemsEmptyConstructors.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
//// }
66
////}
77

8-
verify.getScriptLexicalStructureListContains("Test", "class");
9-
verify.getScriptLexicalStructureListContains("constructor", "constructor");
8+
verify.navigationBarContains("Test", "class");
9+
verify.navigationBarContains("constructor", "constructor");
1010

1111
// no other items
12-
verify.getScriptLexicalStructureListCount(2);
12+
verify.navigationBarCount(2);

tests/cases/fourslash/navigationBarItemsExports.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111

1212
test.markers().forEach((marker) => {
1313
if (marker.data) {
14-
verify.getScriptLexicalStructureListContains(marker.data.itemName, marker.data.kind, marker.fileName, marker.data.parentName);
14+
verify.navigationBarContains(marker.data.itemName, marker.data.kind, marker.fileName, marker.data.parentName);
1515
}
1616
});
1717

18-
verify.getScriptLexicalStructureListCount(4);
18+
verify.navigationBarCount(4);

tests/cases/fourslash/navigationBarItemsFunctions.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
////}
1818

1919
test.markers().forEach((marker) => {
20-
verify.getScriptLexicalStructureListContains(marker.data.itemName, marker.data.kind, marker.fileName, marker.data.parentName);
20+
verify.navigationBarContains(marker.data.itemName, marker.data.kind, marker.fileName, marker.data.parentName);
2121
});
2222

23-
verify.getScriptLexicalStructureListCount(8); // 4 functions + global. Note: there are 8 because of the functions show up at the top level and as child items.
23+
verify.navigationBarCount(8); // 4 functions + global. Note: there are 8 because of the functions show up at the top level and as child items.

tests/cases/fourslash/navigationBarItemsFunctionsBroken.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
////}
77

88
test.markers().forEach((marker) => {
9-
verify.getScriptLexicalStructureListContains(marker.data.itemName, marker.data.kind, marker.fileName, marker.data.parentName);
9+
verify.navigationBarContains(marker.data.itemName, marker.data.kind, marker.fileName, marker.data.parentName);
1010
});
1111

12-
verify.getScriptLexicalStructureListCount(3); // <global> and 'f'.
12+
verify.navigationBarCount(3); // <global> and 'f'.

tests/cases/fourslash/navigationBarItemsFunctionsBroken2.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
////}
88

99
test.markers().forEach((marker) => {
10-
verify.getScriptLexicalStructureListContains(marker.data.itemName, marker.data.kind, marker.fileName, marker.data.parentName);
10+
verify.navigationBarContains(marker.data.itemName, marker.data.kind, marker.fileName, marker.data.parentName);
1111
});
1212

13-
verify.getScriptLexicalStructureListCount(3); // <global> and 'f'
13+
verify.navigationBarCount(3); // <global> and 'f'

tests/cases/fourslash/navigationBarItemsImports.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818

1919
test.markers().forEach((marker) => {
2020
if (marker.data) {
21-
verify.getScriptLexicalStructureListContains(marker.data.itemName, marker.data.kind, marker.fileName, marker.data.parentName);
21+
verify.navigationBarContains(marker.data.itemName, marker.data.kind, marker.fileName, marker.data.parentName);
2222
}
2323
});
2424

25-
verify.getScriptLexicalStructureListCount(9);
25+
verify.navigationBarCount(9);

tests/cases/fourslash/navigationBarItemsInsideMethodsAndConstructors.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@
3535
////}
3636

3737
test.markers().forEach((marker) => {
38-
verify.getScriptLexicalStructureListContains(marker.data.itemName, marker.data.kind, marker.fileName, marker.data.parentName);
38+
verify.navigationBarContains(marker.data.itemName, marker.data.kind, marker.fileName, marker.data.parentName);
3939
});
4040

4141
// no other items
42-
verify.getScriptLexicalStructureListCount(17);
42+
verify.navigationBarCount(17);

tests/cases/fourslash/navigationBarItemsItems.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@
4545

4646
test.markers().forEach((marker) => {
4747
if (marker.data) {
48-
verify.getScriptLexicalStructureListContains(marker.data.itemName, marker.data.kind, marker.fileName, marker.data.parentName);
48+
verify.navigationBarContains(marker.data.itemName, marker.data.kind, marker.fileName, marker.data.parentName);
4949
}
5050
});
5151

52-
verify.getScriptLexicalStructureListCount(23);
52+
verify.navigationBarCount(23);

tests/cases/fourslash/navigationBarItemsItems2.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@ edit.insertLine("module A");
88
edit.insert("export class ");
99

1010
// should not crash
11-
verify.getScriptLexicalStructureListCount(2);
11+
verify.navigationBarCount(2);
1212

0 commit comments

Comments
 (0)