diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin-js-nodejs-custom-node-module/build.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin-js-nodejs-custom-node-module/build.gradle index f3131da4594..c96daaf9db0 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin-js-nodejs-custom-node-module/build.gradle +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin-js-nodejs-custom-node-module/build.gradle @@ -20,6 +20,7 @@ kotlin { testTask { environment("hello", "hello") environment("NODE_PATH", projectDir.absolutePath) + nodeJsArgs.add("--title=KGP_CUSTOM_NODEJS_TITLE") } } } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin-js-nodejs-custom-node-module/src/test/kotlin/Tests.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin-js-nodejs-custom-node-module/src/test/kotlin/Tests.kt index a4a1f53fbe8..fd3be4f20c7 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin-js-nodejs-custom-node-module/src/test/kotlin/Tests.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin-js-nodejs-custom-node-module/src/test/kotlin/Tests.kt @@ -16,6 +16,11 @@ class Tests { fun test2() { assertEquals("foo", foo.foo()) } + + @Test + fun test3() { + assertEquals(process.title, "KGP_CUSTOM_NODEJS_TITLE") + } } external val process: dynamic \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/KotlinJsTest.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/KotlinJsTest.kt index 4c7601c830f..a006f7cf585 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/KotlinJsTest.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/KotlinJsTest.kt @@ -106,6 +106,10 @@ constructor( } } + @Input + val nodeJsArgs: MutableList = + mutableListOf() + override val nodeModulesRequired: Boolean @Internal get() = testFramework!!.nodeModulesRequired @@ -174,8 +178,6 @@ constructor( forkOptions.environment(key, value) } - val nodeJsArgs = mutableListOf() - return testFramework!!.createTestExecutionSpec( task = this, forkOptions = forkOptions, diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/KotlinWasmNode.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/KotlinWasmNode.kt index 237eb169d61..70bdbdec9a3 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/KotlinWasmNode.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/KotlinWasmNode.kt @@ -50,6 +50,7 @@ internal class KotlinWasmNode(private val kotlinJsTest: KotlinJsTest) : KotlinJs val args = mutableListOf() with(args) { + addAll(nodeJsArgs) addWasmExperimentalArguments() add(testRunnerFile.absolutePath) addAll(cliArgs.toList()) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/karma/KotlinKarma.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/karma/KotlinKarma.kt index abb20c1e907..bc26b00250d 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/karma/KotlinKarma.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/karma/KotlinKarma.kt @@ -444,7 +444,7 @@ class KotlinKarma( val karmaConfigAbsolutePath = karmaConfJs.absolutePath val args = if (debug) { - listOf( + nodeJsArgs + listOf( npmProject.require("kotlin-test-js-runner/karma-debug-runner.js"), karmaConfigAbsolutePath ) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/mocha/KotlinMocha.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/mocha/KotlinMocha.kt index de353051ddb..84ae86de304 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/mocha/KotlinMocha.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/mocha/KotlinMocha.kt @@ -70,7 +70,7 @@ class KotlinMocha(@Transient override val compilation: KotlinJsCompilation, priv val file = task.inputFileProperty.get().asFile.toString() - val args = mutableListOf( + val args = nodeJsArgs + mutableListOf( "--require", npmProject.require("source-map-support/register.js") ).apply { @@ -95,7 +95,7 @@ class KotlinMocha(@Transient override val compilation: KotlinJsCompilation, priv val dryRunArgs = if (platformType == KotlinPlatformType.wasm) null else { - mutableListOf( + nodeJsArgs + mutableListOf( "--require", npmProject.require("source-map-support/register.js") ).apply {