Skip to content

Commit 71b7710

Browse files
committed
Add test case to verify the definition name and container name
Rename dialog will use this name and scope name returned
1 parent 00e5b15 commit 71b7710

File tree

3 files changed

+44
-13
lines changed

3 files changed

+44
-13
lines changed

src/harness/fourslash.ts

Lines changed: 28 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -413,10 +413,14 @@ module FourSlash {
413413
}
414414

415415
private raiseError(message: string) {
416-
message = "Marker: " + currentTestState.lastKnownMarker + "\n" + message;
416+
message = this.assertionMessage(message);
417417
throw new Error(message);
418418
}
419419

420+
private assertionMessage(message: string) {
421+
return "Marker: " + currentTestState.lastKnownMarker + "\n" + message;
422+
}
423+
420424
private getDiagnostics(fileName: string): ts.Diagnostic[] {
421425
var syntacticErrors = this.languageService.getSyntacticDiagnostics(fileName);
422426
var semanticErrors = this.languageService.getSemanticDiagnostics(fileName);
@@ -772,35 +776,31 @@ module FourSlash {
772776
var actualQuickInfoSymbolName = actualQuickInfo ? actualQuickInfo.fullSymbolName : "";
773777
var actualQuickInfoKind = actualQuickInfo ? actualQuickInfo.kind : "";
774778

775-
function assertionMessage(name: string, actualValue: string, expectedValue: string) {
776-
return "\nActual " + name + ":\n\t" + actualValue + "\nExpected value:\n\t" + expectedValue;
777-
}
778-
779779
if (negative) {
780780
if (expectedTypeName !== undefined) {
781-
assert.notEqual(actualQuickInfoMemberName, expectedTypeName, assertionMessage("quick info member name", actualQuickInfoMemberName, expectedTypeName));
781+
assert.notEqual(actualQuickInfoMemberName, expectedTypeName, this.assertionMessage("quick info member name"));
782782
}
783783
if (docComment != undefined) {
784-
assert.notEqual(actualQuickInfoDocComment, docComment, assertionMessage("quick info doc comment", actualQuickInfoDocComment, docComment));
784+
assert.notEqual(actualQuickInfoDocComment, docComment, this.assertionMessage("quick info doc comment"));
785785
}
786786
if (symbolName !== undefined) {
787-
assert.notEqual(actualQuickInfoSymbolName, symbolName, assertionMessage("quick info symbol name", actualQuickInfoSymbolName, symbolName));
787+
assert.notEqual(actualQuickInfoSymbolName, symbolName, this.assertionMessage("quick info symbol name"));
788788
}
789789
if (kind !== undefined) {
790-
assert.notEqual(actualQuickInfoKind, kind, assertionMessage("quick info kind", actualQuickInfoKind, kind));
790+
assert.notEqual(actualQuickInfoKind, kind, this.assertionMessage("quick info kind"));
791791
}
792792
} else {
793793
if (expectedTypeName !== undefined) {
794-
assert.equal(actualQuickInfoMemberName, expectedTypeName, assertionMessage("quick info member", actualQuickInfoMemberName, expectedTypeName));
794+
assert.equal(actualQuickInfoMemberName, expectedTypeName, this.assertionMessage("quick info member"));
795795
}
796796
if (docComment != undefined) {
797-
assert.equal(actualQuickInfoDocComment, docComment, assertionMessage("quick info doc", actualQuickInfoDocComment, docComment));
797+
assert.equal(actualQuickInfoDocComment, docComment, this.assertionMessage("quick info doc"));
798798
}
799799
if (symbolName !== undefined) {
800-
assert.equal(actualQuickInfoSymbolName, symbolName, assertionMessage("quick info symbol name", actualQuickInfoSymbolName, symbolName));
800+
assert.equal(actualQuickInfoSymbolName, symbolName, this.assertionMessage("quick info symbol name"));
801801
}
802802
if (kind !== undefined) {
803-
assert.equal(actualQuickInfoKind, kind, assertionMessage("quick info kind", actualQuickInfoKind, kind));
803+
assert.equal(actualQuickInfoKind, kind, this.assertionMessage("quick info kind"));
804804
}
805805
}
806806
}
@@ -1448,6 +1448,21 @@ module FourSlash {
14481448
}
14491449
}
14501450

1451+
public verifyDefinitionsName(negative: boolean, expectedName: string, expectedContainerName: string) {
1452+
this.taoInvalidReason = 'verifyDefinititionsInfo NYI';
1453+
1454+
var definitions = this.languageService.getDefinitionAtPosition(this.activeFile.fileName, this.currentCaretPosition);
1455+
var actualDefinitionName = definitions && definitions.length ? definitions[0].name : "";
1456+
var actualDefinitionContainerName = definitions && definitions.length ? definitions[0].containerName : "";
1457+
if (negative) {
1458+
assert.notEqual(actualDefinitionName, expectedName, this.assertionMessage("Definition Info Name"));
1459+
assert.notEqual(actualDefinitionName, expectedName, this.assertionMessage("Definition Info Container Name"));
1460+
} else {
1461+
assert.equal(actualDefinitionName, expectedName, this.assertionMessage("Definition Info Name"));
1462+
assert.equal(actualDefinitionName, expectedName, this.assertionMessage("Definition Info Container Name"));
1463+
}
1464+
}
1465+
14511466
public getMarkers(): Marker[] {
14521467
// Return a copy of the list
14531468
return this.testData.markers.slice(0);
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
/// <reference path="fourslash.ts"/>
2+
3+
////enum e {
4+
//// firstMember,
5+
//// secondMember,
6+
//// thirdMember
7+
////}
8+
////var enumMember = e./*1*/thirdMember;
9+
10+
goTo.marker("1");
11+
// This is bug #652
12+
verify.verifyDefinitionsName("e.thirdMember", "e");

tests/cases/fourslash/fourslash.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,10 @@ module FourSlashInterface {
237237
public definitionLocationExists() {
238238
FourSlash.currentTestState.verifyDefinitionLocationExists(this.negative);
239239
}
240+
241+
public verifyDefinitionsName(name: string, containerName: string) {
242+
FourSlash.currentTestState.verifyDefinitionsName(this.negative, name, containerName);
243+
}
240244
}
241245

242246
export class verify extends verifyNegatable {

0 commit comments

Comments
 (0)