From 44ce32e4ed8d0a25c776c74483f2a8f4a88b1668 Mon Sep 17 00:00:00 2001 From: Leon Kiefer Date: Thu, 19 Oct 2023 17:52:47 +0200 Subject: [PATCH] Fix CodeBlock of handle CodeBlock args wrong --- .../io/outfoxx/typescriptpoet/CodeBlock.kt | 2 +- .../typescriptpoet/test/CodeWriterTests.kt | 22 +++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/outfoxx/typescriptpoet/CodeBlock.kt b/src/main/java/io/outfoxx/typescriptpoet/CodeBlock.kt index 7a726283..58eb6347 100644 --- a/src/main/java/io/outfoxx/typescriptpoet/CodeBlock.kt +++ b/src/main/java/io/outfoxx/typescriptpoet/CodeBlock.kt @@ -336,7 +336,7 @@ private constructor( } private fun argToLiteral(o: Any?) = when (o) { - is CodeBlock -> o.toString() + is CodeBlock -> o else -> o.toString() } diff --git a/src/test/java/io/outfoxx/typescriptpoet/test/CodeWriterTests.kt b/src/test/java/io/outfoxx/typescriptpoet/test/CodeWriterTests.kt index da2640fe..9d5b2b80 100644 --- a/src/test/java/io/outfoxx/typescriptpoet/test/CodeWriterTests.kt +++ b/src/test/java/io/outfoxx/typescriptpoet/test/CodeWriterTests.kt @@ -46,4 +46,26 @@ class CodeWriterTests { ) ) } + + @Test + fun `test CodeBlock with import`() { + val testFunc = FunctionSpec.builder("test") + .returns(STRING) + .addCode(CodeBlock.of("return new %T()", TypeName.namedImport("X", "x"))) + .build() + + MatcherAssert.assertThat( + testFunc.toString(), + CoreMatchers.equalTo( + """ + import { X } from 'x'; + + function test(): string { + return new X(); + } + + """.trimIndent() + ) + ) + } }