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]; } 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_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\``, +}); 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);