[JS][Gradle] Add an option to configure nodeJs arguments
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 f3131da..c96daaf 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 @@
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 a4a1f53..fd3be4f 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 @@
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 4c7601c..a006f7c 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 @@
}
}
+ @Input
+ val nodeJsArgs: MutableList<String> =
+ mutableListOf()
+
override val nodeModulesRequired: Boolean
@Internal get() = testFramework!!.nodeModulesRequired
@@ -174,8 +178,6 @@
forkOptions.environment(key, value)
}
- val nodeJsArgs = mutableListOf<String>()
-
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 237eb16..70bdbde 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 @@
val args = mutableListOf<String>()
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 abb20c1..bc26b00 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 @@
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 de35305..84ae86d 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 @@
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 @@
val dryRunArgs = if (platformType == KotlinPlatformType.wasm)
null
else {
- mutableListOf(
+ nodeJsArgs + mutableListOf(
"--require",
npmProject.require("source-map-support/register.js")
).apply {