From fbca2b28d03681c3b9ece5697d790e0957a99525 Mon Sep 17 00:00:00 2001 From: Mikhail Obidin Date: Tue, 3 Jun 2025 09:26:32 +0200 Subject: [PATCH] [gradle-plugin] Pass openapiGeneratorIgnoreList option from the openApiGenerate extension to the corresponding task (#21363) --- .../gradle/plugin/OpenApiGeneratorPlugin.kt | 1 + .../src/test/kotlin/GenerateTaskDslTest.kt | 51 +++++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/OpenApiGeneratorPlugin.kt b/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/OpenApiGeneratorPlugin.kt index bd8f7767bed..d5939d5a191 100644 --- a/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/OpenApiGeneratorPlugin.kt +++ b/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/OpenApiGeneratorPlugin.kt @@ -117,6 +117,7 @@ class OpenApiGeneratorPlugin : Plugin { 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) diff --git a/modules/openapi-generator-gradle-plugin/src/test/kotlin/GenerateTaskDslTest.kt b/modules/openapi-generator-gradle-plugin/src/test/kotlin/GenerateTaskDslTest.kt index 247a57c0390..b2796f1da58 100644 --- a/modules/openapi-generator-gradle-plugin/src/test/kotlin/GenerateTaskDslTest.kt +++ b/modules/openapi-generator-gradle-plugin/src/test/kotlin/GenerateTaskDslTest.kt @@ -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}" + ) + } }