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}`);", +});