From 760ef44c36e3dc6e4a88800fd094f925882ec94b Mon Sep 17 00:00:00 2001 From: Arthur Ozga Date: Wed, 16 Aug 2017 18:48:27 -0700 Subject: [PATCH] test if `onlyMultiLine` flag changes answer --- src/harness/fourslash.ts | 15 +++++++----- tests/cases/fourslash/fourslash.ts | 2 +- tests/cases/fourslash/isInMultiLineComment.ts | 23 +++++++++---------- .../isInMultiLineCommentInJsxText.ts | 2 +- .../isInMultiLineCommentInTemplateLiteral.ts | 2 +- .../isInMultiLineCommentOnlyTrivia.ts | 19 ++++++++------- 6 files changed, 32 insertions(+), 31 deletions(-) diff --git a/src/harness/fourslash.ts b/src/harness/fourslash.ts index f50ebcc3a1..32c9fb67da 100644 --- a/src/harness/fourslash.ts +++ b/src/harness/fourslash.ts @@ -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() { diff --git a/tests/cases/fourslash/fourslash.ts b/tests/cases/fourslash/fourslash.ts index 088cbfaa49..87e11ae426 100644 --- a/tests/cases/fourslash/fourslash.ts +++ b/tests/cases/fourslash/fourslash.ts @@ -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; diff --git a/tests/cases/fourslash/isInMultiLineComment.ts b/tests/cases/fourslash/isInMultiLineComment.ts index 3dc8a6e15d..96da4f0021 100644 --- a/tests/cases/fourslash/isInMultiLineComment.ts +++ b/tests/cases/fourslash/isInMultiLineComment.ts @@ -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(); diff --git a/tests/cases/fourslash/isInMultiLineCommentInJsxText.ts b/tests/cases/fourslash/isInMultiLineCommentInJsxText.ts index db88f6b9a5..1664ca0cd1 100644 --- a/tests/cases/fourslash/isInMultiLineCommentInJsxText.ts +++ b/tests/cases/fourslash/isInMultiLineCommentInJsxText.ts @@ -23,5 +23,5 @@ for (let i = 0; i < 10; ++i) { goTo.marker(i.toString()); - verify.not.isInCommentAtPosition(/*onlyMultiLine*/ false); + verify.not.isInCommentAtPosition(); } diff --git a/tests/cases/fourslash/isInMultiLineCommentInTemplateLiteral.ts b/tests/cases/fourslash/isInMultiLineCommentInTemplateLiteral.ts index ca6f11499d..c3e2ae92e8 100644 --- a/tests/cases/fourslash/isInMultiLineCommentInTemplateLiteral.ts +++ b/tests/cases/fourslash/isInMultiLineCommentInTemplateLiteral.ts @@ -23,5 +23,5 @@ for (let i = 0; i < 9; ++i) { goTo.marker(i.toString()); - verify.not.isInCommentAtPosition(/*onlyMultiLine*/ false); + verify.not.isInCommentAtPosition(); } \ No newline at end of file diff --git a/tests/cases/fourslash/isInMultiLineCommentOnlyTrivia.ts b/tests/cases/fourslash/isInMultiLineCommentOnlyTrivia.ts index e279af4769..41c9bbadfd 100644 --- a/tests/cases/fourslash/isInMultiLineCommentOnlyTrivia.ts +++ b/tests/cases/fourslash/isInMultiLineCommentOnlyTrivia.ts @@ -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); \ No newline at end of file +verify.isInCommentAtPosition(/*onlyMultiLineDiverges*/ true); \ No newline at end of file