From b123921ba54303203bd426844ca768a05c33aca2 Mon Sep 17 00:00:00 2001 From: Michael Bull Date: Wed, 26 Aug 2020 19:26:02 +0100 Subject: [PATCH] Make runBlockingTest match signature of kotlinx-coroutines-test --- .../result/coroutines/binding/SuspendableBinding.kt | 2 +- .../RunBlockingTest.kt | 7 ++++++- .../michaelbull/result/coroutines/RunBlockingTest.kt | 7 ++++++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/kotlin-result-coroutines/src/commonMain/kotlin/com/github/michaelbull/result/coroutines/binding/SuspendableBinding.kt b/kotlin-result-coroutines/src/commonMain/kotlin/com/github/michaelbull/result/coroutines/binding/SuspendableBinding.kt index b4f5cf3..7a1d47f 100644 --- a/kotlin-result-coroutines/src/commonMain/kotlin/com/github/michaelbull/result/coroutines/binding/SuspendableBinding.kt +++ b/kotlin-result-coroutines/src/commonMain/kotlin/com/github/michaelbull/result/coroutines/binding/SuspendableBinding.kt @@ -43,7 +43,7 @@ internal class SuspendableResultBindingImpl : SuspendableResultBinding { is Ok -> value is Err -> { mutex.withLock { - if (::internalError.isInitialized.not()){ + if (::internalError.isInitialized.not()) { internalError = this } } diff --git a/kotlin-result-coroutines/src/commonTest/kotlin/com.github.michaelbull.result.coroutines/RunBlockingTest.kt b/kotlin-result-coroutines/src/commonTest/kotlin/com.github.michaelbull.result.coroutines/RunBlockingTest.kt index 46d683a..f57fa3f 100644 --- a/kotlin-result-coroutines/src/commonTest/kotlin/com.github.michaelbull.result.coroutines/RunBlockingTest.kt +++ b/kotlin-result-coroutines/src/commonTest/kotlin/com.github.michaelbull.result.coroutines/RunBlockingTest.kt @@ -1,9 +1,14 @@ package com.github.michaelbull.result.coroutines import kotlinx.coroutines.CoroutineScope +import kotlin.coroutines.CoroutineContext +import kotlin.coroutines.EmptyCoroutineContext /** * Workaround to use suspending functions in unit tests for multiplatform/native projects. * Solution was found here: https://github.com/Kotlin/kotlinx.coroutines/issues/885#issuecomment-446586161 */ -expect fun runBlockingTest(block: suspend (scope : CoroutineScope) -> Unit) +expect fun runBlockingTest( + context: CoroutineContext = EmptyCoroutineContext, + testBody: suspend CoroutineScope.() -> Unit +) diff --git a/kotlin-result-coroutines/src/jvmTest/kotlin/com/github/michaelbull/result/coroutines/RunBlockingTest.kt b/kotlin-result-coroutines/src/jvmTest/kotlin/com/github/michaelbull/result/coroutines/RunBlockingTest.kt index 1abb138..ee1f583 100644 --- a/kotlin-result-coroutines/src/jvmTest/kotlin/com/github/michaelbull/result/coroutines/RunBlockingTest.kt +++ b/kotlin-result-coroutines/src/jvmTest/kotlin/com/github/michaelbull/result/coroutines/RunBlockingTest.kt @@ -2,5 +2,10 @@ package com.github.michaelbull.result.coroutines import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.runBlocking +import kotlin.coroutines.CoroutineContext -actual fun runBlockingTest(block: suspend (scope : CoroutineScope) -> Unit) = runBlocking { block(this) } +actual fun runBlockingTest(context: CoroutineContext, testBody: suspend CoroutineScope.() -> Unit) { + runBlocking { + testBody(this) + } +}