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 d7475c6471d..b902e67dab1 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 @@ -32,11 +32,16 @@ open class KotlinBrowserJsIr @Inject constructor(target: KotlinJsIrTarget) : private lateinit var buildVariants: NamedDomainObjectContainer - private val producingConfiguredHandlers: MutableList Unit> = mutableListOf() - override val testTaskDescription: String get() = "Run all ${target.name} tests inside browser using karma and webpack" + override fun configure() { + super.configure() + browserProducingConfiguredHandlers.forEach { handler -> + handler(this) + } + } + override fun configureDefaultTestFramework(it: KotlinJsTest) { it.useKarma { useChromeHeadless() @@ -209,7 +214,7 @@ open class KotlinBrowserJsIr @Inject constructor(target: KotlinJsIrTarget) : if (producingConfigured) { this.body() } else { - producingConfiguredHandlers += body + browserProducingConfiguredHandlers += body } } 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 6259554922b..2e677db867b 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 @@ -38,7 +38,10 @@ abstract class KotlinJsIrSubTarget( protected val producingConfigured: Boolean = false - private fun configure() { + protected val browserProducingConfiguredHandlers: MutableList Unit> = mutableListOf() + protected val nodejsProducingConfiguredHandlers: MutableList Unit> = mutableListOf() + + protected open fun configure() { NpmResolverPlugin.apply(project) configureBuildVariants() 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 a3d71b74d33..235fe81d404 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 @@ -17,10 +17,15 @@ open class KotlinNodeJsIr @Inject constructor(target: KotlinJsIrTarget) : override val testTaskDescription: String get() = "Run all ${target.name} tests inside nodejs using the builtin test framework" - private val producingConfiguredHandlers: MutableList Unit> = mutableListOf() - private val runTaskName = disambiguateCamelCased("run") + override fun configure() { + super.configure() + nodejsProducingConfiguredHandlers.forEach { handler -> + handler(this) + } + } + override fun runTask(body: NodeJsExec.() -> Unit) { (project.tasks.getByName(runTaskName) as NodeJsExec).body() } @@ -47,7 +52,7 @@ open class KotlinNodeJsIr @Inject constructor(target: KotlinJsIrTarget) : if (producingConfigured) { this.body() } else { - producingConfiguredHandlers += body + nodejsProducingConfiguredHandlers += body } } } \ No newline at end of file