From 48242bdd57ba2b452f18df0912391df95c232ff4 Mon Sep 17 00:00:00 2001 From: Eliezer Graber Date: Wed, 22 Oct 2025 14:07:43 -0400 Subject: [PATCH] Replace bespoke runTest with coroutines-test --- gradle/libs.versions.toml | 6 ++++-- .../kotlin/me/tatarka/inject/test/ScopeTest.kt | 1 + .../kotlin/me/tatarka/inject/test/SuspendTest.kt | 1 + integration-tests/ksp/build.gradle.kts | 1 + .../kotlin/me/tatarka/inject/test/runTest.kt | 8 -------- .../kotlin/me/tatarka/inject/test/runTest.kt | 14 -------------- .../kotlin/me/tatarka/inject/test/runTest.kt | 9 --------- .../kotlin/me/tatarka/inject/test/runTest.kt | 9 --------- .../kotlin/me/tatarka/inject/test/runTest.kt | 14 -------------- integration-tests/ksp1/build.gradle.kts | 1 + 10 files changed, 8 insertions(+), 56 deletions(-) delete mode 100644 integration-tests/ksp/src/commonTest/kotlin/me/tatarka/inject/test/runTest.kt delete mode 100644 integration-tests/ksp/src/jsTest/kotlin/me/tatarka/inject/test/runTest.kt delete mode 100644 integration-tests/ksp/src/jvmTest/kotlin/me/tatarka/inject/test/runTest.kt delete mode 100644 integration-tests/ksp/src/nativeTest/kotlin/me/tatarka/inject/test/runTest.kt delete mode 100644 integration-tests/ksp/src/wasmJsTest/kotlin/me/tatarka/inject/test/runTest.kt diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 15c51776..43101541 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,4 +1,5 @@ [versions] +kotlinx-coroutines = "1.9.0" kotlin-inject = "0.8.1-SNAPSHOT" kotlin = "2.1.20" ksp = "2.1.20-2.0.0" @@ -15,7 +16,8 @@ kotlin-reflect = { module = "org.jetbrains.kotlin:kotlin-reflect", version.ref = kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" } kotlin-compile-testing = { module = "dev.zacsweers.kctfork:ksp", version = "0.7.0" } kotlin-metadata-jvm = { module = "org.jetbrains.kotlin:kotlin-metadata-jvm", version.ref = "kotlin" } -kotlinx-coroutines = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version = "1.8.0" } +kotlinx-coroutines = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlinx-coroutines" } +kotlinx-coroutinesTest = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "kotlinx-coroutines" } kotlinx-atomicfu = { module = "org.jetbrains.kotlinx:atomicfu", version = "0.23.2" } kotlinx-wasm-browser = "org.jetbrains.kotlinx:kotlinx-browser:0.3" jdk-compiler = { module = "io.earcam.wrapped:jdk.compiler", version = "1.8.132" } @@ -38,4 +40,4 @@ kotlin-test-junit5 = ["junit5-api", "junit5-params", "kotlin-reflect"] ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" } nexus-publish = { id = "io.github.gradle-nexus.publish-plugin", version = "2.0.0" } jmh = { id = "me.champeau.jmh", version = "0.6.6" } -changelog = { id = "org.jetbrains.changelog", version = "2.2.1" } \ No newline at end of file +changelog = { id = "org.jetbrains.changelog", version = "2.2.1" } diff --git a/integration-tests/common-test/src/test/kotlin/me/tatarka/inject/test/ScopeTest.kt b/integration-tests/common-test/src/test/kotlin/me/tatarka/inject/test/ScopeTest.kt index 973a3668..3722b361 100644 --- a/integration-tests/common-test/src/test/kotlin/me/tatarka/inject/test/ScopeTest.kt +++ b/integration-tests/common-test/src/test/kotlin/me/tatarka/inject/test/ScopeTest.kt @@ -5,6 +5,7 @@ import assertk.assertions.isEqualTo import assertk.assertions.isNotNull import assertk.assertions.isNotSameInstanceAs import assertk.assertions.isSameInstanceAs +import kotlinx.coroutines.test.runTest import me.tatarka.inject.test.different.DifferentPackageScopedComponent import me.tatarka.inject.test.different.create import me.tatarka.inject.test.module.ExternalChildComponent diff --git a/integration-tests/common-test/src/test/kotlin/me/tatarka/inject/test/SuspendTest.kt b/integration-tests/common-test/src/test/kotlin/me/tatarka/inject/test/SuspendTest.kt index 86a749e4..5e8ab656 100644 --- a/integration-tests/common-test/src/test/kotlin/me/tatarka/inject/test/SuspendTest.kt +++ b/integration-tests/common-test/src/test/kotlin/me/tatarka/inject/test/SuspendTest.kt @@ -2,6 +2,7 @@ package me.tatarka.inject.test import assertk.assertThat import assertk.assertions.isInstanceOf +import kotlinx.coroutines.test.runTest import kotlin.test.Test class SuspendTest { diff --git a/integration-tests/ksp/build.gradle.kts b/integration-tests/ksp/build.gradle.kts index 0d872a9e..f14ec49b 100644 --- a/integration-tests/ksp/build.gradle.kts +++ b/integration-tests/ksp/build.gradle.kts @@ -27,6 +27,7 @@ kotlin { dependencies { implementation(kotlin("test")) implementation(libs.kotlinx.coroutines) + implementation(libs.kotlinx.coroutinesTest) implementation(libs.assertk) } } diff --git a/integration-tests/ksp/src/commonTest/kotlin/me/tatarka/inject/test/runTest.kt b/integration-tests/ksp/src/commonTest/kotlin/me/tatarka/inject/test/runTest.kt deleted file mode 100644 index 5c4295b6..00000000 --- a/integration-tests/ksp/src/commonTest/kotlin/me/tatarka/inject/test/runTest.kt +++ /dev/null @@ -1,8 +0,0 @@ -package me.tatarka.inject.test - -import kotlinx.coroutines.CoroutineScope - -/** - * Workaround to use suspending functions in unit tests - */ -expect fun runTest(block: suspend (scope: CoroutineScope) -> Unit) \ No newline at end of file diff --git a/integration-tests/ksp/src/jsTest/kotlin/me/tatarka/inject/test/runTest.kt b/integration-tests/ksp/src/jsTest/kotlin/me/tatarka/inject/test/runTest.kt deleted file mode 100644 index afba9632..00000000 --- a/integration-tests/ksp/src/jsTest/kotlin/me/tatarka/inject/test/runTest.kt +++ /dev/null @@ -1,14 +0,0 @@ -package me.tatarka.inject.test - -import kotlinx.coroutines.CoroutineScope -import kotlinx.coroutines.DelicateCoroutinesApi -import kotlinx.coroutines.GlobalScope -import kotlinx.coroutines.promise - -/** - * Workaround to use suspending functions in unit tests - */ -@OptIn(DelicateCoroutinesApi::class) -actual fun runTest(block: suspend (scope: CoroutineScope) -> Unit) { - GlobalScope.promise { block(this) } -} diff --git a/integration-tests/ksp/src/jvmTest/kotlin/me/tatarka/inject/test/runTest.kt b/integration-tests/ksp/src/jvmTest/kotlin/me/tatarka/inject/test/runTest.kt deleted file mode 100644 index 2033e24d..00000000 --- a/integration-tests/ksp/src/jvmTest/kotlin/me/tatarka/inject/test/runTest.kt +++ /dev/null @@ -1,9 +0,0 @@ -package me.tatarka.inject.test - -import kotlinx.coroutines.CoroutineScope -import kotlinx.coroutines.runBlocking - -/** - * Workaround to use suspending functions in unit tests - */ -actual fun runTest(block: suspend (scope: CoroutineScope) -> Unit) = runBlocking { block(this) } \ No newline at end of file diff --git a/integration-tests/ksp/src/nativeTest/kotlin/me/tatarka/inject/test/runTest.kt b/integration-tests/ksp/src/nativeTest/kotlin/me/tatarka/inject/test/runTest.kt deleted file mode 100644 index 2033e24d..00000000 --- a/integration-tests/ksp/src/nativeTest/kotlin/me/tatarka/inject/test/runTest.kt +++ /dev/null @@ -1,9 +0,0 @@ -package me.tatarka.inject.test - -import kotlinx.coroutines.CoroutineScope -import kotlinx.coroutines.runBlocking - -/** - * Workaround to use suspending functions in unit tests - */ -actual fun runTest(block: suspend (scope: CoroutineScope) -> Unit) = runBlocking { block(this) } \ No newline at end of file diff --git a/integration-tests/ksp/src/wasmJsTest/kotlin/me/tatarka/inject/test/runTest.kt b/integration-tests/ksp/src/wasmJsTest/kotlin/me/tatarka/inject/test/runTest.kt deleted file mode 100644 index 27537935..00000000 --- a/integration-tests/ksp/src/wasmJsTest/kotlin/me/tatarka/inject/test/runTest.kt +++ /dev/null @@ -1,14 +0,0 @@ -package me.tatarka.inject.test - -import kotlinx.coroutines.CoroutineScope -import kotlinx.coroutines.DelicateCoroutinesApi -import kotlinx.coroutines.GlobalScope -import kotlinx.coroutines.promise - -/** - * Workaround to use suspending functions in unit tests - */ -@OptIn(DelicateCoroutinesApi::class) -actual fun runTest(block: suspend (scope: CoroutineScope) -> Unit) { - GlobalScope.promise { block(this) } -} \ No newline at end of file diff --git a/integration-tests/ksp1/build.gradle.kts b/integration-tests/ksp1/build.gradle.kts index fe24d40e..6a0bcafc 100644 --- a/integration-tests/ksp1/build.gradle.kts +++ b/integration-tests/ksp1/build.gradle.kts @@ -29,6 +29,7 @@ kotlin { dependencies { implementation(kotlin("test")) implementation(libs.kotlinx.coroutines) + implementation(libs.kotlinx.coroutinesTest) implementation(libs.assertk) } }