From 8c46fab6d80ff2fdc9ce5d9009a7f006f45a70af Mon Sep 17 00:00:00 2001 From: Ilya Goncharov Date: Thu, 12 Sep 2019 15:12:47 +0300 Subject: [PATCH] Add own reporter that reports only browser log in specific format --- .../targets/js/testing/karma/KotlinKarma.kt | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) 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 7958b991ed3..a9d5e41338c 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 @@ -52,6 +52,7 @@ class KotlinKarma(override val compilation: KotlinJsCompilation) : KotlinJsTestF init { requiredDependencies.add(versions.karma) + useLogReporter() useTeamcityReporter() useMocha() useWebpack() @@ -66,6 +67,34 @@ class KotlinKarma(override val compilation: KotlinJsCompilation) : KotlinJsTestF config.reporters.add("teamcity") } + private fun useLogReporter() { + config.reporters.add("karma-browser-log-reporter") + + confJsWriters.add { + //language=ES6 + it.appendln( + """ + // reporter for browser logs + const LogReporter = function (baseReporterDecorator) { + baseReporterDecorator(this); + + this.onBrowserLog = (browser, log, type) => { + this.write("##browser[" + "browser='" + browser + "' " + "type='" + type + "' " + "log=" + log + "]##browser\n"); + } + }; + + LogReporter.${'$'}inject = ['baseReporterDecorator']; + + config.plugins = config.plugins || []; + config.plugins.push('karma-*'); // default + config.plugins.push({ + 'reporter:karma-browser-log-reporter': ['type', LogReporter] + }); + """.trimIndent() + ) + } + } + internal fun watch() { config.singleRun = false config.autoWatch = true