[gradle-plugin] Pass openapiGeneratorIgnoreList option from the openApiGenerate extension to the corresponding task (#21363)

This commit is contained in:
Mikhail Obidin 2025-06-03 09:26:32 +02:00 committed by GitHub
parent b929970db2
commit fbca2b28d0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 52 additions and 0 deletions

View File

@ -117,6 +117,7 @@ class OpenApiGeneratorPlugin : Plugin<Project> {
additionalProperties.set(generate.additionalProperties)
serverVariables.set(generate.serverVariables)
languageSpecificPrimitives.set(generate.languageSpecificPrimitives)
openapiGeneratorIgnoreList.set(generate.openapiGeneratorIgnoreList)
importMappings.set(generate.importMappings)
schemaMappings.set(generate.schemaMappings)
inlineSchemaNameMappings.set(generate.inlineSchemaNameMappings)

View File

@ -570,4 +570,55 @@ class GenerateTaskDslTest : TestBase() {
"Dry run results message is missing."
)
}
@Test
fun `openapiGenerate should set openapiGeneratorIgnoreList option`() {
// Arrange
val projectFiles = mapOf(
"spec.yaml" to javaClass.classLoader.getResourceAsStream("specs/petstore-v3.0.yaml")
)
withProject(
"""
plugins {
id 'org.openapi.generator'
}
openApiGenerate {
generatorName = "kotlin"
inputSpec = file("spec.yaml").absolutePath
outputDir = file("build/kotlin").absolutePath
apiPackage = "org.openapitools.example.api"
invokerPackage = "org.openapitools.example.invoker"
modelPackage = "org.openapitools.example.model"
configOptions = [
dateLibrary: "java8"
]
openapiGeneratorIgnoreList = ["README.md"]
}
""".trimIndent(),
projectFiles
)
// Act
val result = GradleRunner.create()
.withProjectDir(temp)
.withArguments("openApiGenerate")
.withPluginClasspath()
.build()
// Assert
assertTrue(
result.output.contains("Successfully generated code to"),
"User friendly generate notice is missing."
)
assertTrue(
"README.md" !in File(temp, "build/kotlin/").list(),
"README.md should not be generated when it is in the openapiGeneratorIgnoreList."
)
assertEquals(
TaskOutcome.SUCCESS, result.task(":openApiGenerate")?.outcome,
"Expected a successful run, but found ${result.task(":openApiGenerate")?.outcome}"
)
}
}