Do not crash, but suggest '--multiple-file-output-path' when specifying a directory as output file (#1038)

When specifying a directory instead of a file for the output, pkl won't crash anymore, but instead output an error message, suggesting --multiple-file-output-path.
This commit is contained in:
Jeroen Soeters
2025-04-08 12:56:15 -05:00
committed by GitHub
parent 3119e0781b
commit 854074e619
2 changed files with 40 additions and 0 deletions

View File

@@ -725,6 +725,39 @@ result = someLib.x
assertThat(output).endsWith("\n")
}
@Test
fun `file output throws if output file is a directory`() {
val sourceFiles =
listOf(
writePklFile(
"test.pkl",
"""
name = "test"
output {
files {
["\(name).txt"] {
text = "test"
}
}
}
"""
.trimIndent(),
)
)
val err =
assertThrows<CliException> {
evalToFiles(
CliEvaluatorOptions(
CliBaseOptions(sourceModules = sourceFiles),
outputPath = tempDir.toString(),
)
)
}
assertThat(err)
.hasMessageContaining("Output file `$tempDir` is a directory. ")
.hasMessageContaining("Did you mean `--multiple-file-output-path`?")
}
@Test
fun `multiple file output writes multiple files to the provided directory`() {
val contents =