From 206d39e9b5153ba9c8264a0d34db514437068171 Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Thu, 13 Feb 2020 11:51:13 -0800 Subject: [PATCH 1/3] Add/convert to failing tests. --- ...torConvertStringOrTemplateLiteral_OnModuleSpecifier.ts | 6 ++++++ ...orConvertStringOrTemplateLiteral_ToTemplateBackTick.ts | 8 +------- ...ctorConvertStringOrTemplateLiteral_ToTemplateSimple.ts | 8 +------- ...onvertStringOrTemplateLiteral_ToTemplateSingleQuote.ts | 8 +------- 4 files changed, 9 insertions(+), 21 deletions(-) create mode 100644 tests/cases/fourslash/refactorConvertStringOrTemplateLiteral_OnModuleSpecifier.ts diff --git a/tests/cases/fourslash/refactorConvertStringOrTemplateLiteral_OnModuleSpecifier.ts b/tests/cases/fourslash/refactorConvertStringOrTemplateLiteral_OnModuleSpecifier.ts new file mode 100644 index 0000000000000..850a2d2863fc8 --- /dev/null +++ b/tests/cases/fourslash/refactorConvertStringOrTemplateLiteral_OnModuleSpecifier.ts @@ -0,0 +1,6 @@ +/// + +////import { x } from /*x*/"foo"/*y*/; + +goTo.select("x", "y"); +verify.not.refactorAvailable(ts.Diagnostics.Convert_to_template_string.message); diff --git a/tests/cases/fourslash/refactorConvertStringOrTemplateLiteral_ToTemplateBackTick.ts b/tests/cases/fourslash/refactorConvertStringOrTemplateLiteral_ToTemplateBackTick.ts index fcb1998dfd058..1e4ffa0b49e38 100644 --- a/tests/cases/fourslash/refactorConvertStringOrTemplateLiteral_ToTemplateBackTick.ts +++ b/tests/cases/fourslash/refactorConvertStringOrTemplateLiteral_ToTemplateBackTick.ts @@ -3,10 +3,4 @@ //// const foo = "/*x*/w/*y*/ith back`tick" goTo.select("x", "y"); -edit.applyRefactor({ - refactorName: "Convert to template string", - actionName: "Convert to template string", - actionDescription: ts.Diagnostics.Convert_to_template_string.message, - newContent: -"const foo = `with back\\`tick`", -}); +verify.not.refactorAvailable(ts.Diagnostics.Convert_to_template_string.message); diff --git a/tests/cases/fourslash/refactorConvertStringOrTemplateLiteral_ToTemplateSimple.ts b/tests/cases/fourslash/refactorConvertStringOrTemplateLiteral_ToTemplateSimple.ts index 11fee10594b8a..86b1300ad0184 100644 --- a/tests/cases/fourslash/refactorConvertStringOrTemplateLiteral_ToTemplateSimple.ts +++ b/tests/cases/fourslash/refactorConvertStringOrTemplateLiteral_ToTemplateSimple.ts @@ -3,10 +3,4 @@ //// const foo = "/*x*/f/*y*/oobar rocks" goTo.select("x", "y"); -edit.applyRefactor({ - refactorName: "Convert to template string", - actionName: "Convert to template string", - actionDescription: ts.Diagnostics.Convert_to_template_string.message, - newContent: -`const foo = \`foobar rocks\``, -}); +verify.not.refactorAvailable(ts.Diagnostics.Convert_to_template_string.message); \ No newline at end of file diff --git a/tests/cases/fourslash/refactorConvertStringOrTemplateLiteral_ToTemplateSingleQuote.ts b/tests/cases/fourslash/refactorConvertStringOrTemplateLiteral_ToTemplateSingleQuote.ts index 0b6c94dadcddb..8883cbb3ae35e 100644 --- a/tests/cases/fourslash/refactorConvertStringOrTemplateLiteral_ToTemplateSingleQuote.ts +++ b/tests/cases/fourslash/refactorConvertStringOrTemplateLiteral_ToTemplateSingleQuote.ts @@ -3,10 +3,4 @@ //// const foo = '/*x*/f/*y*/oobar rocks' goTo.select("x", "y"); -edit.applyRefactor({ - refactorName: "Convert to template string", - actionName: "Convert to template string", - actionDescription: ts.Diagnostics.Convert_to_template_string.message, - newContent: -`const foo = \`foobar rocks\``, -}); +verify.not.refactorAvailable(ts.Diagnostics.Convert_to_template_string.message); From 11e827ba84dbf07de7b359d3911260c10ff5ae0f Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Thu, 13 Feb 2020 11:52:25 -0800 Subject: [PATCH 2/3] Stop offering to convert single string literals to template expressions. --- src/services/refactors/convertStringOrTemplateLiteral.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/services/refactors/convertStringOrTemplateLiteral.ts b/src/services/refactors/convertStringOrTemplateLiteral.ts index 02a2afc4f48b0..58a62a77d7e3c 100644 --- a/src/services/refactors/convertStringOrTemplateLiteral.ts +++ b/src/services/refactors/convertStringOrTemplateLiteral.ts @@ -11,7 +11,7 @@ namespace ts.refactor.convertStringOrTemplateLiteral { const maybeBinary = getParentBinaryExpression(node); const refactorInfo: ApplicableRefactorInfo = { name: refactorName, description: refactorDescription, actions: [] }; - if ((isBinaryExpression(maybeBinary) || isStringLiteral(maybeBinary)) && isStringConcatenationValid(maybeBinary)) { + if (isBinaryExpression(maybeBinary) && isStringConcatenationValid(maybeBinary)) { refactorInfo.actions.push({ name: refactorName, description: refactorDescription }); return [refactorInfo]; } From 7d3ad0c8f6f29f4b92967a1638d58967b6cabbdf Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Thu, 13 Feb 2020 11:55:57 -0800 Subject: [PATCH 3/3] Ensure we're actually testing for single quotes. --- ...emplateLiteral_ToTemplateBinaryExprSingleQuote.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 tests/cases/fourslash/refactorConvertStringOrTemplateLiteral_ToTemplateBinaryExprSingleQuote.ts diff --git a/tests/cases/fourslash/refactorConvertStringOrTemplateLiteral_ToTemplateBinaryExprSingleQuote.ts b/tests/cases/fourslash/refactorConvertStringOrTemplateLiteral_ToTemplateBinaryExprSingleQuote.ts new file mode 100644 index 0000000000000..1063ad2ac77c7 --- /dev/null +++ b/tests/cases/fourslash/refactorConvertStringOrTemplateLiteral_ToTemplateBinaryExprSingleQuote.ts @@ -0,0 +1,12 @@ +/// + +//// const foo = '/*x*/f/*y*/oobar is ' + (42 + 6) + ' years old' + +goTo.select("x", "y"); +edit.applyRefactor({ + refactorName: "Convert to template string", + actionName: "Convert to template string", + actionDescription: ts.Diagnostics.Convert_to_template_string.message, + newContent: +`const foo = \`foobar is \${42 + 6} years old\``, +});