diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/karma/KotlinKarma.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/karma/KotlinKarma.kt index a7ed963c973..63a277b6015 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/karma/KotlinKarma.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/karma/KotlinKarma.kt @@ -246,7 +246,7 @@ class KotlinKarma(override val compilation: KotlinJsCompilation) : KotlinJsTestF val npmProject = compilation.npmProject val files = it.nodeModulesToLoad.map { npmProject.require(it) } - val adapterJs = npmProject.dir.resolve("adapter.js") + val adapterJs = npmProject.dir.resolve("adapter-browser.js") adapterJs.printWriter().use { writer -> val karmaRunner = npmProject.require("kotlin-test-js-runner/kotlin-test-karma-runner.js") writer.println("require(${karmaRunner.jsQuoted()})") diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/mocha/KotlinMocha.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/mocha/KotlinMocha.kt index cc1437a8d0a..527f70680d9 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/mocha/KotlinMocha.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/mocha/KotlinMocha.kt @@ -13,6 +13,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation import org.jetbrains.kotlin.gradle.targets.js.KotlinGradleNpmPackage import org.jetbrains.kotlin.gradle.targets.js.RequiredKotlinJsDependency import org.jetbrains.kotlin.gradle.targets.js.internal.parseNodeJsStackTraceAsJvm +import org.jetbrains.kotlin.gradle.targets.js.jsQuoted import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTest @@ -50,14 +51,15 @@ class KotlinMocha(override val compilation: KotlinJsCompilation) : KotlinJsTestF val npmProject = compilation.npmProject val cliArgs = KotlinTestRunnerCliArgs( - task.nodeModulesToLoad.map { npmProject.require(it) }, - task.includePatterns, - task.excludePatterns + include = task.includePatterns, + exclude = task.excludePatterns ) + createAdapterJs(task) + val nodeModules = listOf( "mocha/bin/mocha", - task.nodeModulesToLoad.single() + "./$ADAPTER_NODEJS" ) val args = nodeJsArgs + @@ -66,8 +68,7 @@ class KotlinMocha(override val compilation: KotlinJsCompilation) : KotlinJsTestF } + cliArgs.toList() + listOf("--reporter", "mocha-teamcity-reporter") + listOf( - "-r", "kotlin-test-js-runner/kotlin-nodejs-source-map-support.js", - "-r", "kotlin-test-js-runner/kotlin-test-nodejs-runner.js" + "-r", "kotlin-test-js-runner/kotlin-nodejs-source-map-support.js" ) return TCServiceMessagesTestExecutionSpec( @@ -77,4 +78,23 @@ class KotlinMocha(override val compilation: KotlinJsCompilation) : KotlinJsTestF clientSettings ) } + + private fun createAdapterJs(task: KotlinJsTest) { + val npmProject = compilation.npmProject + val file = task.nodeModulesToLoad + .map { npmProject.require(it) } + .single() + + val adapterJs = npmProject.dir.resolve(ADAPTER_NODEJS) + adapterJs.printWriter().use { writer -> + val adapter = npmProject.require("kotlin-test-js-runner/kotlin-test-nodejs-runner.js") + writer.println("require(${adapter.jsQuoted()})") + + writer.println("require(${file.jsQuoted()})") + } + } + + companion object { + const val ADAPTER_NODEJS = "adapter-nodejs.js" + } } \ No newline at end of file diff --git a/libraries/tools/kotlin-test-js-runner/nodejs.ts b/libraries/tools/kotlin-test-js-runner/nodejs.ts index b987f9a022c..270b34cb67e 100755 --- a/libraries/tools/kotlin-test-js-runner/nodejs.ts +++ b/libraries/tools/kotlin-test-js-runner/nodejs.ts @@ -10,8 +10,6 @@ const defaultMochaArgs = [ 'place-holder', '--require', 'place-holder', - '--require', - 'place-holder', '--no-config', '--no-package', '--no-opts', @@ -28,6 +26,5 @@ const defaultMochaArgs = [ const processArgs = process.argv.slice(2, -1 * defaultMochaArgs.length); const untypedArgs = parser.parse(processArgs); -// TODO(ilgonmic): Try to detect adapter -const initialAdapter = new kotlin_test.kotlin.test.adapters.JasmineLikeAdapter(); +const initialAdapter = kotlin_test.kotlin.test.detectAdapter_8be2vx$(); kotlin_test.setAdapter(runWithFilteringAndConsoleAdapters(initialAdapter, untypedArgs)); \ No newline at end of file