From 41b981c99808dae81edd6469a539bb97834259d3 Mon Sep 17 00:00:00 2001 From: Zzzen Date: Tue, 1 Mar 2022 02:40:48 +0800 Subject: [PATCH] fix(47853): Convert to template string issue (#47976) --- .../refactors/convertStringOrTemplateLiteral.ts | 2 +- ...ConvertStringOrTemplateLiteral_TemplateString13.ts | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 tests/cases/fourslash/refactorConvertStringOrTemplateLiteral_TemplateString13.ts diff --git a/src/services/refactors/convertStringOrTemplateLiteral.ts b/src/services/refactors/convertStringOrTemplateLiteral.ts index 28baa74c65b..82c7452f819 100644 --- a/src/services/refactors/convertStringOrTemplateLiteral.ts +++ b/src/services/refactors/convertStringOrTemplateLiteral.ts @@ -215,7 +215,7 @@ namespace ts.refactor.convertStringOrTemplateLiteral { const isLastSpan = index === currentNode.templateSpans.length - 1; const text = span.literal.text + (isLastSpan ? subsequentText : ""); const rawText = getRawTextOfTemplate(span.literal) + (isLastSpan ? rawSubsequentText : ""); - return factory.createTemplateSpan(span.expression, isLast + return factory.createTemplateSpan(span.expression, isLast && isLastSpan ? factory.createTemplateTail(text, rawText) : factory.createTemplateMiddle(text, rawText)); }); diff --git a/tests/cases/fourslash/refactorConvertStringOrTemplateLiteral_TemplateString13.ts b/tests/cases/fourslash/refactorConvertStringOrTemplateLiteral_TemplateString13.ts new file mode 100644 index 00000000000..c2d43921461 --- /dev/null +++ b/tests/cases/fourslash/refactorConvertStringOrTemplateLiteral_TemplateString13.ts @@ -0,0 +1,11 @@ +/// + +////fetch(/*start*/process.env.API_URL + `/foo/bar?id=${id}&token=${token}`/*end*/); + +goTo.select("start", "end"); +edit.applyRefactor({ + refactorName: "Convert to template string", + actionName: "Convert to template string", + actionDescription: ts.Diagnostics.Convert_to_template_string.message, + newContent: "fetch(`${process.env.API_URL}/foo/bar?id=${id}&token=${token}`);", +});