From 8dedc2e8f975ccf54bebfcdb790afb6950896a59 Mon Sep 17 00:00:00 2001 From: Tony Robalik Date: Wed, 23 Oct 2024 18:24:09 -0700 Subject: [PATCH] feat: support enforcedPlatform as a dependency capability. --- .../kotlindsl/model/DependencyDeclaration.kt | 8 ++++---- .../kotlindsl/utils/DependencyExtractorTest.kt | 16 ++++++++++++++++ 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/core/src/main/kotlin/cash/grammar/kotlindsl/model/DependencyDeclaration.kt b/core/src/main/kotlin/cash/grammar/kotlindsl/model/DependencyDeclaration.kt index 9707dfb..14d0968 100644 --- a/core/src/main/kotlin/cash/grammar/kotlindsl/model/DependencyDeclaration.kt +++ b/core/src/main/kotlin/cash/grammar/kotlindsl/model/DependencyDeclaration.kt @@ -86,22 +86,22 @@ public data class DependencyDeclaration( */ public enum class Capability { DEFAULT, + ENFORCED_PLATFORM, PLATFORM, TEST_FIXTURES, ; public companion object { - private val capabilities = listOf("testFixtures", "platform") + private val capabilities = listOf("testFixtures", "enforcedPlatform", "platform") public fun isCapability(value: String): Boolean = value in capabilities public fun of(value: String): Capability { return when (value) { "testFixtures" -> TEST_FIXTURES + "enforcedPlatform" -> ENFORCED_PLATFORM "platform" -> PLATFORM - else -> error( - "Unrecognized capability: '$value'. Expected one of '$capabilities'." - ) + else -> error("Unrecognized capability: '$value'. Expected one of '$capabilities'.") } } } diff --git a/core/src/test/kotlin/cash/grammar/kotlindsl/utils/DependencyExtractorTest.kt b/core/src/test/kotlin/cash/grammar/kotlindsl/utils/DependencyExtractorTest.kt index cb721fa..b47c489 100644 --- a/core/src/test/kotlin/cash/grammar/kotlindsl/utils/DependencyExtractorTest.kt +++ b/core/src/test/kotlin/cash/grammar/kotlindsl/utils/DependencyExtractorTest.kt @@ -70,6 +70,22 @@ internal class DependencyExtractorTest { capability = Capability.TEST_FIXTURES, type = Type.PROJECT, ), + TestCase( + displayName = "platform capability for version catalog dependency", + fullText = "implementation(platform(libs.bigBom))", + configuration = "implementation", + identifier = "libs.bigBom", + capability = Capability.PLATFORM, + type = Type.MODULE, + ), + TestCase( + displayName = "enforcedPlatform capability for version catalog dependency", + fullText = "implementation(enforcedPlatform(libs.bigBom))", + configuration = "implementation", + identifier = "libs.bigBom", + capability = Capability.ENFORCED_PLATFORM, + type = Type.MODULE, + ), TestCase( displayName = "gradleApi", fullText = "api(gradleApi())",