From 43efac69a9b0a40e661a34ee0e6e4bf2bd2c21bf Mon Sep 17 00:00:00 2001 From: Ilya Goncharov Date: Wed, 1 Apr 2020 15:24:57 +0300 Subject: [PATCH] [Gradle, JS] KT-36784 Move test only to IR #KT-32466 fixed #KT-36784 fixed #KT-36864 fixed --- .../kotlin/gradle/Kotlin2JsGradlePluginIT.kt | 80 +++++++++---------- .../js-composite-build/app/build.gradle.kts | 7 +- .../app/src/test/kotlin/SimpleTest.kt | 15 ++++ .../js-composite-build/lib/build.gradle.kts | 6 +- .../lib/src/main/kotlin/Singleton.kt | 4 +- 5 files changed, 59 insertions(+), 53 deletions(-) create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/js-composite-build/app/src/test/kotlin/SimpleTest.kt 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 c2d5875313d..c3ae654f61e 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 @@ -74,6 +74,45 @@ class Kotlin2JsIrGradlePluginIT : AbstractKotlin2JsGradlePluginIT(true) { } } } + + @Test + fun testJsCompositeBuild() { + val rootProjectName = "js-composite-build" + val appProject = transformProjectWithPluginsDsl( + projectName = "app", + directoryPrefix = rootProjectName, + wrapperVersion = GradleVersionRequired.AtLeast("5.3") + ) + + val libProject = transformProjectWithPluginsDsl( + projectName = "lib", + directoryPrefix = rootProjectName, + wrapperVersion = GradleVersionRequired.AtLeast("5.3") + ) + + libProject.gradleProperties().appendText(jsCompilerType(KotlinJsCompilerType.IR)) + appProject.gradleProperties().appendText(jsCompilerType(KotlinJsCompilerType.IR)) + + libProject.projectDir.copyRecursively(appProject.projectDir.resolve(libProject.projectDir.name)) + + fun Project.asyncVersion(rootModulePath: String, moduleName: String): String = + NpmProjectModules(projectDir.resolve(rootModulePath)) + .require(moduleName) + .let { File(it).parentFile.parentFile.resolve(NpmProject.PACKAGE_JSON) } + .let { fromSrcPackageJson(it) } + .let { it!!.version } + + with(appProject) { + build("build") { + assertSuccessful() + val appAsyncVersion = asyncVersion("build/js/node_modules/app", "async") + assertEquals("3.2.0", appAsyncVersion) + + val libAsyncVersion = asyncVersion("build/js/node_modules/lib2", "async") + assertEquals("2.6.2", libAsyncVersion) + } + } + } } class Kotlin2JsGradlePluginIT : AbstractKotlin2JsGradlePluginIT(false) { @@ -551,47 +590,6 @@ abstract class AbstractKotlin2JsGradlePluginIT(private val irBackend: Boolean) : } } - @Test - fun testJsCompositeBuild() { - val rootProjectName = "js-composite-build" - val appProject = transformProjectWithPluginsDsl( - projectName = "app", - directoryPrefix = rootProjectName, - wrapperVersion = GradleVersionRequired.AtLeast("5.3") - ) - - val libProject = transformProjectWithPluginsDsl( - projectName = "lib", - directoryPrefix = rootProjectName, - wrapperVersion = GradleVersionRequired.AtLeast("5.3") - ) - - if (irBackend) { - libProject.gradleProperties().appendText(jsCompilerType(KotlinJsCompilerType.IR)) - appProject.gradleProperties().appendText(jsCompilerType(KotlinJsCompilerType.IR)) - } - - libProject.projectDir.copyRecursively(appProject.projectDir.resolve(libProject.projectDir.name)) - - fun Project.asyncVersion(rootModulePath: String, moduleName: String): String = - NpmProjectModules(projectDir.resolve(rootModulePath)) - .require(moduleName) - .let { File(it).parentFile.parentFile.resolve(NpmProject.PACKAGE_JSON) } - .let { fromSrcPackageJson(it) } - .let { it!!.version } - - with(appProject) { - build("build", "browserDevelopmentWebpack") { - assertSuccessful() - val appAsyncVersion = asyncVersion("build/js/node_modules/app", "async") - assertEquals("3.2.0", appAsyncVersion) - - val libAsyncVersion = asyncVersion("build/js/node_modules/lib2", "async") - assertEquals("2.6.2", libAsyncVersion) - } - } - } - @Test fun testBrowserDistribution() = with(Project("kotlin-js-browser-project", GradleVersionRequired.AtLeast("5.0"))) { setupWorkingDir() diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/js-composite-build/app/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/js-composite-build/app/build.gradle.kts index f15b4b32ed7..6e1e5cf84a0 100755 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/js-composite-build/app/build.gradle.kts +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/js-composite-build/app/build.gradle.kts @@ -10,11 +10,7 @@ repositories { kotlin.js { binaries.executable() - browser() -} - -tasks.named("browserTest").configure { - enabled = false + nodejs() } rootProject.tasks @@ -35,4 +31,5 @@ dependencies { implementation(kotlin("stdlib-js")) implementation("com.example:lib2") implementation(npm("async", "3.2.0")) + testImplementation(kotlin("test-js")) } \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/js-composite-build/app/src/test/kotlin/SimpleTest.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/js-composite-build/app/src/test/kotlin/SimpleTest.kt new file mode 100644 index 00000000000..7295ed1d1b9 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/js-composite-build/app/src/test/kotlin/SimpleTest.kt @@ -0,0 +1,15 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ +import kotlin.test.Test +import kotlin.test.assertTrue + +class SimpleTest { + @Test + fun simpleTest() { + assertTrue { + Singleton.test() is Long + } + } +} diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/js-composite-build/lib/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/js-composite-build/lib/build.gradle.kts index b2866c64019..2fa3109144b 100755 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/js-composite-build/lib/build.gradle.kts +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/js-composite-build/lib/build.gradle.kts @@ -10,11 +10,7 @@ repositories { mavenLocal() } -kotlin.target.browser() - -tasks.named("browserTest").configure { - enabled = false -} +kotlin.target.nodejs() rootProject.tasks .withType(org.jetbrains.kotlin.gradle.targets.js.npm.tasks.KotlinNpmInstallTask::class.java) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/js-composite-build/lib/src/main/kotlin/Singleton.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/js-composite-build/lib/src/main/kotlin/Singleton.kt index 9c69ccb147e..036066f1160 100755 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/js-composite-build/lib/src/main/kotlin/Singleton.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/js-composite-build/lib/src/main/kotlin/Singleton.kt @@ -1,5 +1,5 @@ object Singleton { - fun test(): String { - return "42" + fun test(): Long { + return 42L } }