diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kotlin2JsGradlePluginIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kotlin2JsGradlePluginIT.kt index c4cdfe18d69..846aeae5f82 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kotlin2JsGradlePluginIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kotlin2JsGradlePluginIT.kt @@ -1691,4 +1691,14 @@ class Kotlin2JsIrGradlePluginIT : KGPBaseTest() { build("assemble") } } + + @DisplayName("Cross modules work correctly with compose dependency ('KT60852')") + @GradleTest + fun crossModulesWorkCorrectlyWithComposeDependencyKT60852(gradleVersion: GradleVersion) { + project("kotlin-js-compose-dependency", gradleVersion) { + build("compileDevelopmentExecutableKotlinJs") { + assertTasksExecuted(":compileDevelopmentExecutableKotlinJs") + } + } + } } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin-js-compose-dependency/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin-js-compose-dependency/build.gradle.kts new file mode 100644 index 00000000000..13a2b77160d --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin-js-compose-dependency/build.gradle.kts @@ -0,0 +1,29 @@ +plugins { + id("org.jetbrains.kotlin.multiplatform") +} + +repositories { + mavenLocal() + mavenCentral() +} + +kotlin { + js { + useCommonJs() + binaries.executable() + nodejs { + } + } + sourceSets { + val commonMain by getting { + dependencies { + implementation("org.jetbrains.compose.runtime:runtime:1.4.3") // commenting this out and uncommenting in jsMain fixes the issue + } + } + val jsMain by getting { + dependencies { + implementation("org.jetbrains.compose.html:html-core:1.4.3") + } + } + } +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin-js-compose-dependency/gradle.properties b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin-js-compose-dependency/gradle.properties new file mode 100644 index 00000000000..cc1416ef297 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin-js-compose-dependency/gradle.properties @@ -0,0 +1 @@ +kotlin.tests.individualTaskReports=true diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin-js-compose-dependency/src/jsMain/kotlin/Base.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin-js-compose-dependency/src/jsMain/kotlin/Base.kt new file mode 100644 index 00000000000..0da3283ae6e --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin-js-compose-dependency/src/jsMain/kotlin/Base.kt @@ -0,0 +1,7 @@ +import org.jetbrains.compose.web.internal.runtime.ComposeWebInternalApi +import org.jetbrains.compose.web.internal.runtime.DomApplier + +@OptIn(ComposeWebInternalApi::class) +fun main() { + DomApplier::class.js +} \ No newline at end of file