From e86fd4e72c471d12c81bd7d1a57b89ccc0639b5c Mon Sep 17 00:00:00 2001 From: Gustavo Fao Valvassori Date: Fri, 11 Sep 2026 15:36:19 -0300 Subject: [PATCH 1/2] importing karma config with same configs from KJWT to attempt to avoid timeout errors on KotlinJS tests --- karma.config.d/config.js | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 karma.config.d/config.js diff --git a/karma.config.d/config.js b/karma.config.d/config.js new file mode 100644 index 00000000..0e509e89 --- /dev/null +++ b/karma.config.d/config.js @@ -0,0 +1,7 @@ +// Taken from https://github.com/touchlab/kjwt/blob/main/karma.config.d/config.js + +config.client = config.client || {} +config.client.mocha = config.client.mocha || {} +config.client.mocha.timeout = '6000s' +config.browserNoActivityTimeout = 6000000 +config.browserDisconnectTimeout = 6000000 From 8fc074603218025baa9347e1caaabbe8da6269e6 Mon Sep 17 00:00:00 2001 From: Gustavo Fao Valvassori Date: Mon, 14 Sep 2026 13:54:31 -0300 Subject: [PATCH 2/2] manually pointing to karma config --- .../kermit.multiplatform-library.gradle.kts | 3 ++ .../src/main/kotlin/kermit/tests.kt | 32 +++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 convention-plugins/src/main/kotlin/kermit/tests.kt diff --git a/convention-plugins/src/main/kotlin/kermit.multiplatform-library.gradle.kts b/convention-plugins/src/main/kotlin/kermit.multiplatform-library.gradle.kts index f947f96b..3b034972 100644 --- a/convention-plugins/src/main/kotlin/kermit.multiplatform-library.gradle.kts +++ b/convention-plugins/src/main/kotlin/kermit.multiplatform-library.gradle.kts @@ -1,3 +1,4 @@ +import kermit.configureTests import org.gradle.kotlin.dsl.withType import org.jetbrains.kotlin.gradle.dsl.JvmTarget import org.jetbrains.kotlin.gradle.tasks.KotlinCompile @@ -49,6 +50,8 @@ kotlin { } } } + + configureTests() } project.afterEvaluate { diff --git a/convention-plugins/src/main/kotlin/kermit/tests.kt b/convention-plugins/src/main/kotlin/kermit/tests.kt new file mode 100644 index 00000000..053dbf11 --- /dev/null +++ b/convention-plugins/src/main/kotlin/kermit/tests.kt @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2026 Touchlab + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + */ + +package kermit + +import org.gradle.kotlin.dsl.withType +import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension +import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrTarget + +fun KotlinMultiplatformExtension.configureTests() { + configureJSTests() +} + +private fun KotlinMultiplatformExtension.configureJSTests() { + targets.withType().configureEach { + whenBrowserConfigured { + testTask { + useKarma { + useConfigDirectory(project.rootProject.rootDir.resolve("karma.config.d")) + useChromeHeadless() + } + } + } + } +}