diff --git a/web/compose-compiler-integration/build.gradle.kts b/web/compose-compiler-integration/build.gradle.kts index 014fe3c6..5e75b5d1 100644 --- a/web/compose-compiler-integration/build.gradle.kts +++ b/web/compose-compiler-integration/build.gradle.kts @@ -9,6 +9,7 @@ kotlin { browser() { testTask { useKarma { + useConfigDirectory("${rootProject.projectDir}/test-utils/conf/karma.config.common.d") useChromeHeadless() useFirefox() } diff --git a/web/core/build.gradle.kts b/web/core/build.gradle.kts index 489abac9..337bd960 100644 --- a/web/core/build.gradle.kts +++ b/web/core/build.gradle.kts @@ -10,6 +10,7 @@ kotlin { browser() { testTask { useKarma { + useConfigDirectory("${rootProject.projectDir}/test-utils/conf/karma.config.common.d") useChromeHeadless() //useFirefox() } diff --git a/web/integration-core/build.gradle.kts b/web/integration-core/build.gradle.kts index e30dd8ec..92c23fbb 100644 --- a/web/integration-core/build.gradle.kts +++ b/web/integration-core/build.gradle.kts @@ -19,6 +19,7 @@ kotlin { browser() { testTask { useKarma { + useConfigDirectory("${rootProject.projectDir}/test-utils/conf/karma.config.common.d") useChromeHeadless() useFirefox() } diff --git a/web/integration-widgets/build.gradle.kts b/web/integration-widgets/build.gradle.kts index c41575ed..2724214f 100644 --- a/web/integration-widgets/build.gradle.kts +++ b/web/integration-widgets/build.gradle.kts @@ -9,6 +9,7 @@ kotlin { browser() { testTask { useKarma { + useConfigDirectory("${rootProject.projectDir}/test-utils/conf/karma.config.common.d") useChromeHeadless() useFirefox() } diff --git a/web/internal-web-core-runtime/build.gradle.kts b/web/internal-web-core-runtime/build.gradle.kts index 78cfb25d..a3bb1684 100644 --- a/web/internal-web-core-runtime/build.gradle.kts +++ b/web/internal-web-core-runtime/build.gradle.kts @@ -9,6 +9,7 @@ kotlin { browser() { testTask { useKarma { + useConfigDirectory("${rootProject.projectDir}/test-utils/conf/karma.config.common.d") useChromeHeadless() useFirefox() } diff --git a/web/svg/build.gradle.kts b/web/svg/build.gradle.kts index f4ffe8bd..80cd74d3 100644 --- a/web/svg/build.gradle.kts +++ b/web/svg/build.gradle.kts @@ -9,6 +9,7 @@ kotlin { browser() { testTask { useKarma { + useConfigDirectory("${rootProject.projectDir}/test-utils/conf/karma.config.common.d") useChromeHeadless() } } diff --git a/web/test-utils/build.gradle.kts b/web/test-utils/build.gradle.kts index 5ed41c1a..154c682a 100644 --- a/web/test-utils/build.gradle.kts +++ b/web/test-utils/build.gradle.kts @@ -13,6 +13,7 @@ kotlin { browser() { testTask { useKarma { + useConfigDirectory("${rootProject.projectDir}/test-utils/conf/karma.config.common.d") useChromeHeadless() useFirefox() } diff --git a/web/test-utils/conf/karma-kotlin-runner-decorator/karma-kotlin-reporter-decorated.js b/web/test-utils/conf/karma-kotlin-runner-decorator/karma-kotlin-reporter-decorated.js new file mode 100644 index 00000000..139fc782 --- /dev/null +++ b/web/test-utils/conf/karma-kotlin-runner-decorator/karma-kotlin-reporter-decorated.js @@ -0,0 +1,32 @@ +// This is a workaround for https://github.com/karma-runner/karma-teamcity-reporter/issues/86 + +const kotlinReporterModule = require("../../../build/js/packages_imported/kotlin-test-js-runner/1.5.31/karma-kotlin-reporter"); + +const KotlinReporter = kotlinReporterModule['reporter:karma-kotlin-reporter'][1]; + +const NewReporter = function(baseReporterDecorator, config, emitter) { + KotlinReporter.call(this, baseReporterDecorator, config, emitter); + + const onBrowserLogOriginal = this.onBrowserLog; + const onSpecCompleteOriginal = this.onSpecComplete; + + this.onBrowserLog = (browser, log, type) => { + if (!this.browserResults[browser.id]) { + this.initializeBrowser(browser); + } + onBrowserLogOriginal(browser, log, type); + } + + this.onSpecComplete = function (browser, result) { + if (!this.browserResults[browser.id]) { + this.initializeBrowser(browser); + } + onSpecCompleteOriginal(browser, result); + } +} + +NewReporter.$inject = KotlinReporter.$inject; + +module.exports = { + 'reporter:karma-kotlin-reporter': ['type', NewReporter] +}; diff --git a/web/test-utils/conf/karma.config.common.d/patch.js b/web/test-utils/conf/karma.config.common.d/patch.js new file mode 100644 index 00000000..d63f2cb4 --- /dev/null +++ b/web/test-utils/conf/karma.config.common.d/patch.js @@ -0,0 +1,4 @@ +config.plugins = config.plugins || []; +config.plugins = config.plugins.filter(it => it !== "kotlin-test-js-runner/karma-kotlin-reporter.js"); +config.plugins.push("../../../../../test-utils/conf/karma-kotlin-runner-decorator/karma-kotlin-reporter-decorated.js"); + diff --git a/web/widgets/build.gradle.kts b/web/widgets/build.gradle.kts index f417f37d..b9740831 100644 --- a/web/widgets/build.gradle.kts +++ b/web/widgets/build.gradle.kts @@ -10,6 +10,7 @@ kotlin { browser() { testTask { useKarma { + useConfigDirectory("${rootProject.projectDir}/test-utils/conf/karma.config.common.d") useChromeHeadless() useFirefox() }