test if onlyMultiLine flag changes answer

This commit is contained in:
Arthur Ozga 2017-08-16 18:48:27 -07:00
parent 6029b5cce8
commit 760ef44c36
6 changed files with 32 additions and 31 deletions

View file

@ -2508,16 +2508,19 @@ namespace FourSlash {
}
}
public verifySpanOfEnclosingComment(negative: boolean, onlyMultiLine: boolean) {
public verifySpanOfEnclosingComment(negative: boolean, onlyMultiLineDiverges?: boolean) {
const expected = !negative;
const position = this.currentCaretPosition;
const fileName = this.activeFile.fileName;
const actual = !!this.languageService.getSpanOfEnclosingComment(fileName, position, /*onlyMultiLine*/ onlyMultiLine);
if (expected !== actual) {
const actual = !!this.languageService.getSpanOfEnclosingComment(fileName, position, /*onlyMultiLine*/ false);
const actualOnlyMultiLine = !!this.languageService.getSpanOfEnclosingComment(fileName, position, /*onlyMultiLine*/ true);
if (expected !== actual || onlyMultiLineDiverges === (actual === actualOnlyMultiLine)) {
this.raiseError(`verifySpanOfEnclosingComment failed:
position: '${position}'
fileName: '${fileName}'
onlyMultiLine: '${onlyMultiLine}'
onlyMultiLineDiverges: '${onlyMultiLineDiverges}'
actual: '${actual}'
actualOnlyMultiLine: '${actualOnlyMultiLine}'
expected: '${expected}'.`);
}
}
@ -3662,8 +3665,8 @@ namespace FourSlashInterface {
this.state.verifyBraceCompletionAtPosition(this.negative, openingBrace);
}
public isInCommentAtPosition(onlyMultiLine: boolean) {
this.state.verifySpanOfEnclosingComment(this.negative, onlyMultiLine);
public isInCommentAtPosition(onlyMultiLineDiverges?: boolean) {
this.state.verifySpanOfEnclosingComment(this.negative, onlyMultiLineDiverges);
}
public codeFixAvailable() {

View file

@ -153,7 +153,7 @@ declare namespace FourSlashInterface {
typeDefinitionCountIs(expectedCount: number): void;
implementationListIsEmpty(): void;
isValidBraceCompletionAtPosition(openingBrace?: string): void;
isInCommentAtPosition(onlyMultiLine: boolean): void;
isInCommentAtPosition(onlyMultiLineDiverges?: boolean): void;
codeFixAvailable(): void;
applicableRefactorAvailableAtMarker(markerName: string): void;
codeFixDiagnosticsAvailableAtMarkers(markerNames: string[], diagnosticCode?: number): void;

View file

@ -11,37 +11,36 @@
const firstCommentStart = 0;
const firstCommentEnd = 7;
goTo.position(firstCommentStart);
verify.not.isInCommentAtPosition(/*onlyMultiLine*/ true);
verify.not.isInCommentAtPosition();
goTo.position(firstCommentStart + 1);
verify.isInCommentAtPosition(/*onlyMultiLine*/ true);
verify.isInCommentAtPosition();
goTo.position(firstCommentEnd - 1);
verify.isInCommentAtPosition(/*onlyMultiLine*/ true);
verify.isInCommentAtPosition();
goTo.position(firstCommentEnd);
verify.not.isInCommentAtPosition(/*onlyMultiLine*/ true);
verify.not.isInCommentAtPosition();
const multilineJsDocStart = firstCommentEnd + 1;
const multilineJsDocEnd = multilineJsDocStart + 49;
goTo.position(multilineJsDocStart);
verify.not.isInCommentAtPosition(/*onlyMultiLine*/ true);
verify.not.isInCommentAtPosition();
goTo.position(multilineJsDocStart + 1);
verify.isInCommentAtPosition(/*onlyMultiLine*/ true);
verify.isInCommentAtPosition();
goTo.position(multilineJsDocEnd - 1);
verify.isInCommentAtPosition(/*onlyMultiLine*/ true);
verify.isInCommentAtPosition();
goTo.position(multilineJsDocEnd);
verify.not.isInCommentAtPosition(/*onlyMultiLine*/ true);
verify.not.isInCommentAtPosition();
const singleLineCommentStart = multilineJsDocEnd + 1;
goTo.position(singleLineCommentStart + 1);
verify.not.isInCommentAtPosition(/*onlyMultiLine*/ true);
verify.isInCommentAtPosition(/*onlyMultiLine*/ false);
verify.isInCommentAtPosition(/*onlyMultiLineDiverges*/ true);
const postNodeCommentStart = singleLineCommentStart + 16;
goTo.position(postNodeCommentStart);
verify.not.isInCommentAtPosition(/*onlyMultiLine*/ true);
verify.not.isInCommentAtPosition();
goTo.position(postNodeCommentStart + 1);
verify.isInCommentAtPosition(/*onlyMultiLine*/ true);
verify.isInCommentAtPosition();

View file

@ -23,5 +23,5 @@
for (let i = 0; i < 10; ++i) {
goTo.marker(i.toString());
verify.not.isInCommentAtPosition(/*onlyMultiLine*/ false);
verify.not.isInCommentAtPosition();
}

View file

@ -23,5 +23,5 @@
for (let i = 0; i < 9; ++i) {
goTo.marker(i.toString());
verify.not.isInCommentAtPosition(/*onlyMultiLine*/ false);
verify.not.isInCommentAtPosition();
}

View file

@ -9,30 +9,29 @@
const firstCommentStart = 0;
const firstCommentEnd = 7;
goTo.position(firstCommentStart);
verify.not.isInCommentAtPosition(/*onlyMultiLine*/ true);
verify.not.isInCommentAtPosition();
goTo.position(firstCommentStart + 1);
verify.isInCommentAtPosition(/*onlyMultiLine*/ true);
verify.isInCommentAtPosition();
goTo.position(firstCommentEnd - 1);
verify.isInCommentAtPosition(/*onlyMultiLine*/ true);
verify.isInCommentAtPosition();
goTo.position(firstCommentEnd);
verify.not.isInCommentAtPosition(/*onlyMultiLine*/ true);
verify.not.isInCommentAtPosition();
const multilineJsDocStart = firstCommentEnd + 1;
const multilineJsDocEnd = multilineJsDocStart + 49;
goTo.position(multilineJsDocStart);
verify.not.isInCommentAtPosition(/*onlyMultiLine*/ true);
verify.not.isInCommentAtPosition();
goTo.position(multilineJsDocStart + 1);
verify.isInCommentAtPosition(/*onlyMultiLine*/ true);
verify.isInCommentAtPosition();
goTo.position(multilineJsDocEnd - 1);
verify.isInCommentAtPosition(/*onlyMultiLine*/ true);
verify.isInCommentAtPosition();
goTo.position(multilineJsDocEnd);
verify.not.isInCommentAtPosition(/*onlyMultiLine*/ true);
verify.not.isInCommentAtPosition();
const singleLineCommentStart = multilineJsDocEnd + 1;
goTo.position(singleLineCommentStart + 1);
verify.not.isInCommentAtPosition(/*onlyMultiLine*/ true);
verify.isInCommentAtPosition(/*onlyMultiLine*/ false);
verify.isInCommentAtPosition(/*onlyMultiLineDiverges*/ true);