From 985088a3f1bda3c67a21d9627b991f0ca31b64ad Mon Sep 17 00:00:00 2001 From: Ilya Goncharov Date: Mon, 7 Sep 2020 14:29:43 +0300 Subject: [PATCH] [Gradle, JS] Add test on dukat with both mode --- .../kotlin/gradle/DukatIntegrationIT.kt | 35 +++++++++++++++++++ .../dukat-integration/both/build.gradle.kts | 19 ++++++++++ .../both/settings.gradle.kts | 6 ++++ 3 files changed, 60 insertions(+) create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/dukat-integration/both/build.gradle.kts create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/dukat-integration/both/settings.gradle.kts diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/DukatIntegrationIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/DukatIntegrationIT.kt index 85d4be6dd0b..bdd14f8c038 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/DukatIntegrationIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/DukatIntegrationIT.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.gradle import org.jetbrains.kotlin.gradle.util.modify import org.junit.Test +import kotlin.test.assertTrue class DukatIntegrationIT : BaseGradleIT() { @Test @@ -242,6 +243,40 @@ class DukatIntegrationIT : BaseGradleIT() { } } + @Test + fun testBothOnlyOnceGenerateDependencies() { + val project = Project( + projectName = "both", + directoryPrefix = "dukat-integration" + ) + project.setupWorkingDir() + project.gradleBuildScript().modify(::transformBuildScriptWithPluginsDsl) + + val externalSrcs = "build/externals/both-jsLegacy/src" + project.build("compileKotlinJsIr") { + assertSuccessful() + assertTasksExecuted(":legacyGenerateExternalsIntegrated") + + assertSingleFileExists(externalSrcs, "index.module_decamelize.kt") + val irExternals = "build/externals/both-jsIr/src" + val directoryFile = fileInWorkingDir(irExternals) + assertTrue( + !directoryFile.exists(), + "[$irExternals] should not contain files" + ) + } + + project.build( + "compileKotlinJsLegacy", + "--rerun-tasks" + ) { + assertSuccessful() + assertTasksExecuted(":legacyGenerateExternalsIntegrated") + + assertSingleFileExists(externalSrcs, "index.module_decamelize.kt") + } + } + private fun projectName( dslType: DslType, dependenciesLocation: DependenciesLocation diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/dukat-integration/both/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/dukat-integration/both/build.gradle.kts new file mode 100644 index 00000000000..3cbe9d480b7 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/dukat-integration/both/build.gradle.kts @@ -0,0 +1,19 @@ +plugins { + kotlin("js") version "" +} + +repositories { + mavenLocal() + jcenter() +} + +dependencies { + implementation(kotlin("stdlib-js")) + implementation(npm("decamelize", "4.0.0", true)) +} + +kotlin { + js(BOTH) { + nodejs() + } +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/dukat-integration/both/settings.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/dukat-integration/both/settings.gradle.kts new file mode 100644 index 00000000000..3b582363c98 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/dukat-integration/both/settings.gradle.kts @@ -0,0 +1,6 @@ +pluginManagement { + repositories { + mavenLocal() + gradlePluginPortal() + } +}