diff --git a/pkl-cli/src/test/kotlin/org/pkl/cli/CliEvaluatorTest.kt b/pkl-cli/src/test/kotlin/org/pkl/cli/CliEvaluatorTest.kt index df88c423e..8c3ff4c0b 100644 --- a/pkl-cli/src/test/kotlin/org/pkl/cli/CliEvaluatorTest.kt +++ b/pkl-cli/src/test/kotlin/org/pkl/cli/CliEvaluatorTest.kt @@ -1159,6 +1159,29 @@ result = someLib.x assertThat(buffer.toString()).isEqualTo("new Dynamic { friend { name = \"Bilbo\" } }") } + @Test + fun `evaluate output expression - nested structure to JSON`() { + val moduleUri = + writePklFile( + "test.pkl", + """ + person { + friend { name = "Bilbo" } + } + """ + .trimIndent(), + ) + val options = + CliEvaluatorOptions( + CliBaseOptions(sourceModules = listOf(moduleUri), workingDir = tempDir), + expression = "person", + outputFormat = "json", + ) + val buffer = StringWriter() + CliEvaluator(options, consoleWriter = buffer).run() + assertThat(buffer.toString()).isEqualTo("{ \"friend\": { \"name\": \"Bilbo\" } }") + } + @Test fun `skip PklProject file`() { val moduleUri =