diff --git a/src/main/kotlin/it/krzeminski/githubactionstyping/ManifestsToReport.kt b/src/main/kotlin/it/krzeminski/githubactionstyping/ManifestsToReport.kt index aa9f9d5..a65bc30 100644 --- a/src/main/kotlin/it/krzeminski/githubactionstyping/ManifestsToReport.kt +++ b/src/main/kotlin/it/krzeminski/githubactionstyping/ManifestsToReport.kt @@ -1,6 +1,7 @@ package it.krzeminski.githubactionstyping import it.krzeminski.githubactionstyping.github.getBooleanInput +import it.krzeminski.githubactionstyping.parsing.TypesManifest import it.krzeminski.githubactionstyping.parsing.parseManifest import it.krzeminski.githubactionstyping.parsing.parseTypesManifest import it.krzeminski.githubactionstyping.reporting.toPlaintextReport @@ -8,7 +9,11 @@ import it.krzeminski.githubactionstyping.validation.ItemValidationResult import it.krzeminski.githubactionstyping.validation.validate fun manifestsToReport(manifest: String, typesManifest: String): Pair { - val parsedTypesManifest = parseTypesManifest(typesManifest) + val parsedTypesManifest = if (typesManifest.isNotBlank()) { + parseTypesManifest(typesManifest) + } else { + TypesManifest() + } val parsedManifest = parseManifest(manifest) val inputsInTypesManifest = parsedTypesManifest.inputs.keys diff --git a/src/test/kotlin/it/krzeminski/githubactionstyping/validation/ManifestsToReportTest.kt b/src/test/kotlin/it/krzeminski/githubactionstyping/validation/ManifestsToReportTest.kt index a811667..e116e3f 100644 --- a/src/test/kotlin/it/krzeminski/githubactionstyping/validation/ManifestsToReportTest.kt +++ b/src/test/kotlin/it/krzeminski/githubactionstyping/validation/ManifestsToReportTest.kt @@ -120,6 +120,39 @@ class ManifestsToReportTest : FunSpec({ } } + test("blank types YAML") { + // when + val manifest = """ + name: GitHub Actions Typing + description: Bring type-safety to your GitHub actions' API! + author: Piotr Krzemiński + runs: + using: 'docker' + image: 'Dockerfile' + """.trimIndent() + val typesManifest = " " + + // when + val (isValid, report) = manifestsToReport(manifest, typesManifest) + + // then + assertSoftly { + isValid shouldBe true + report shouldBe """ + Overall result: + ${'\u001b'}[32m✔ VALID${'\u001b'}[0m + + Inputs: + None. + + Outputs: + None. + + + """.trimIndent() + } + } + test("enum: missing allowed values") { // when val manifest = """