diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsPlatformTestRun.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsPlatformTestRun.kt index a2fec413564..d6dd9ed4d8e 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsPlatformTestRun.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsPlatformTestRun.kt @@ -10,8 +10,10 @@ import org.jetbrains.kotlin.gradle.plugin.CompilationExecutionSource import org.jetbrains.kotlin.gradle.plugin.CompilationExecutionSourceSupport import org.jetbrains.kotlin.gradle.plugin.KotlinTargetTestRun import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation +import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrCompilation import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrSubTarget import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrTarget +import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrTest import org.jetbrains.kotlin.gradle.targets.js.subtargets.KotlinJsSubTarget import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTest import org.jetbrains.kotlin.gradle.testing.KotlinReportAggregatingTestRun @@ -22,6 +24,9 @@ import kotlin.properties.Delegates class JsCompilationExecutionSource(override val compilation: KotlinJsCompilation) : CompilationExecutionSource +class JsIrCompilationExecutionSource(override val compilation: KotlinJsIrCompilation) : + CompilationExecutionSource + open class KotlinJsPlatformTestRun(testRunName: String, subtarget: KotlinJsSubTarget) : KotlinTaskTestRun(testRunName, subtarget.target), CompilationExecutionSourceSupport { @@ -43,22 +48,22 @@ open class KotlinJsPlatformTestRun(testRunName: String, subtarget: KotlinJsSubTa } open class KotlinJsIrPlatformTestRun(testRunName: String, subtarget: KotlinJsIrSubTarget) : - KotlinTaskTestRun(testRunName, subtarget.target), - CompilationExecutionSourceSupport { + KotlinTaskTestRun(testRunName, subtarget.target), + CompilationExecutionSourceSupport { - private var _executionSource: JsCompilationExecutionSource by Delegates.notNull() + private var _executionSource: JsIrCompilationExecutionSource by Delegates.notNull() - final override var executionSource: JsCompilationExecutionSource + final override var executionSource: JsIrCompilationExecutionSource get() = _executionSource set(value) { executionTask.configure { it.compilation = value.compilation } _executionSource = value } - override fun setExecutionSourceFrom(compilation: KotlinJsCompilation) { + override fun setExecutionSourceFrom(compilation: KotlinJsIrCompilation) { requireCompilationOfTarget(compilation, target) - executionSource = JsCompilationExecutionSource(compilation) + executionSource = JsIrCompilationExecutionSource(compilation) } } @@ -70,9 +75,9 @@ class JsAggregatingExecutionSource(private val aggregatingTestRun: KotlinJsRepor } class JsIrAggregatingExecutionSource(private val aggregatingTestRun: KotlinJsIrReportAggregatingTestRun) : - KotlinAggregateExecutionSource { + KotlinAggregateExecutionSource { - override val executionSources: Iterable + override val executionSources: Iterable get() = aggregatingTestRun.getConfiguredExecutions().map { it.executionSource } } @@ -114,11 +119,11 @@ open class KotlinJsReportAggregatingTestRun( open class KotlinJsIrReportAggregatingTestRun( testRunName: String, override val target: KotlinJsIrTarget -) : KotlinReportAggregatingTestRun(testRunName), +) : KotlinReportAggregatingTestRun(testRunName), KotlinTargetTestRun, - CompilationExecutionSourceSupport { + CompilationExecutionSourceSupport { - override fun setExecutionSourceFrom(compilation: KotlinJsCompilation) = configureAllExecutions { + override fun setExecutionSourceFrom(compilation: KotlinJsIrCompilation) = configureAllExecutions { setExecutionSourceFrom(compilation) } diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/dsl/KotlinJsTargetDsl.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/dsl/KotlinJsTargetDsl.kt index 9db0d81155d..cad6b3500f5 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/dsl/KotlinJsTargetDsl.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/dsl/KotlinJsTargetDsl.kt @@ -13,6 +13,7 @@ import org.jetbrains.kotlin.gradle.targets.js.KotlinJsIrPlatformTestRun import org.jetbrains.kotlin.gradle.targets.js.KotlinJsIrReportAggregatingTestRun import org.jetbrains.kotlin.gradle.targets.js.KotlinJsPlatformTestRun import org.jetbrains.kotlin.gradle.targets.js.KotlinJsReportAggregatingTestRun +import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrTest import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsExec import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTest import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpack @@ -69,7 +70,7 @@ interface KotlinJsSubTargetDsl { } interface KotlinJsIrSubTargetDsl { - fun testTask(body: KotlinJsTest.() -> Unit) + fun testTask(body: KotlinJsIrTest.() -> Unit) fun testTask(fn: Closure<*>) { testTask { ConfigureUtil.configure(fn, this) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinBrowserJsIr.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinBrowserJsIr.kt index 41edf5411c5..baccbb73218 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinBrowserJsIr.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinBrowserJsIr.kt @@ -13,7 +13,6 @@ import org.gradle.language.base.plugins.LifecycleBasePlugin import org.jetbrains.kotlin.gradle.targets.js.dsl.* import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin import org.jetbrains.kotlin.gradle.targets.js.subtargets.BrowserDistribution -import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTest import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpack import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig.Devtool @@ -41,7 +40,7 @@ open class KotlinBrowserJsIr @Inject constructor(target: KotlinJsIrTarget) : } } - override fun configureDefaultTestFramework(it: KotlinJsTest) { + override fun configureDefaultTestFramework(it: KotlinJsIrTest) { it.useKarma { useChromeHeadless() } diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrSubTarget.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrSubTarget.kt index 7891276e0ca..90b31643871 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrSubTarget.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrSubTarget.kt @@ -17,7 +17,6 @@ import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsIrSubTargetDsl import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin import org.jetbrains.kotlin.gradle.targets.js.npm.NpmResolverPlugin import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject -import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTest import org.jetbrains.kotlin.gradle.tasks.registerTask import org.jetbrains.kotlin.gradle.testing.internal.configureConventions import org.jetbrains.kotlin.gradle.testing.internal.kotlinTestRegistry @@ -87,7 +86,7 @@ abstract class KotlinJsIrSubTarget( } } - override fun testTask(body: KotlinJsTest.() -> Unit) { + override fun testTask(body: KotlinJsIrTest.() -> Unit) { testRuns.getByName(KotlinTargetWithTests.DEFAULT_TEST_RUN_NAME).executionTask.configure(body) } @@ -119,7 +118,7 @@ abstract class KotlinJsIrSubTarget( ) ) - val testJs = project.registerTask(testRun.subtargetTestTaskName()) { testJs -> + val testJs = project.registerTask(testRun.subtargetTestTaskName()) { testJs -> val compileTask = compilation.compileKotlinTask testJs.group = LifecycleBasePlugin.VERIFICATION_GROUP @@ -157,7 +156,7 @@ abstract class KotlinJsIrSubTarget( } } - protected abstract fun configureDefaultTestFramework(it: KotlinJsTest) + protected abstract fun configureDefaultTestFramework(it: KotlinJsIrTest) private fun configureMain() { target.compilations.all { compilation -> diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTestFramework.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTestFramework.kt index ba78e6d9f10..ca502b0a43d 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTestFramework.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTestFramework.kt @@ -19,7 +19,7 @@ interface KotlinJsIrTestFramework : RequiresNpmDependencies { debug: Boolean ): TCServiceMessagesTestExecutionSpec - /* + /* because KotlinJsTestFramework override it too override val nodeModulesRequired: Boolean get() = true */ diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinNodeJsIr.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinNodeJsIr.kt index 6794dbac05d..d880c4fcc6c 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinNodeJsIr.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinNodeJsIr.kt @@ -7,7 +7,6 @@ package org.jetbrains.kotlin.gradle.targets.js.ir import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsIrNodeDsl import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsExec -import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTest import javax.inject.Inject open class KotlinNodeJsIr @Inject constructor(target: KotlinJsIrTarget) : @@ -29,7 +28,7 @@ open class KotlinNodeJsIr @Inject constructor(target: KotlinJsIrTarget) : (project.tasks.getByName(runTaskName) as NodeJsExec).body() } - override fun configureDefaultTestFramework(it: KotlinJsTest) { + override fun configureDefaultTestFramework(it: KotlinJsIrTest) { it.useMocha { } }