diff --git a/coroutine-utils-testing/src/main/kotlin/dev/msfjarvis/aps/test/turbine.ext.kt b/coroutine-utils-testing/src/main/kotlin/dev/msfjarvis/aps/test/turbine.ext.kt deleted file mode 100644 index 596be1a1..00000000 --- a/coroutine-utils-testing/src/main/kotlin/dev/msfjarvis/aps/test/turbine.ext.kt +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright © 2014-2022 The Android Password Store Authors. All Rights Reserved. - * SPDX-License-Identifier: GPL-3.0-only - */ - -package dev.msfjarvis.aps.test - -import app.cash.turbine.FlowTurbine -import app.cash.turbine.test -import kotlin.coroutines.coroutineContext -import kotlin.time.Duration -import kotlin.time.Duration.Companion.seconds -import kotlin.time.ExperimentalTime -import kotlinx.coroutines.ExperimentalCoroutinesApi -import kotlinx.coroutines.flow.Flow -import kotlinx.coroutines.flow.flowOn -import kotlinx.coroutines.test.TestCoroutineScheduler -import kotlinx.coroutines.test.UnconfinedTestDispatcher - -/** - * Wrapper for [test] that implements compatibility with kotlinx.coroutines 1.6.0 - * - * @see "https://github.com/cashapp/turbine/issues/42#issuecomment-1000317026" - */ -@ExperimentalTime -@ExperimentalCoroutinesApi -public suspend fun Flow.test2( - timeout: Duration = 1.seconds, - validate: suspend FlowTurbine.() -> Unit, -) { - val testScheduler = coroutineContext[TestCoroutineScheduler] - return if (testScheduler == null) { - test(timeout, validate) - } else { - flowOn(UnconfinedTestDispatcher(testScheduler)).test(timeout, validate) - } -} diff --git a/format-common/src/test/kotlin/dev/msfjarvis/aps/data/passfile/PasswordEntryTest.kt b/format-common/src/test/kotlin/dev/msfjarvis/aps/data/passfile/PasswordEntryTest.kt index 55c62533..201eb611 100644 --- a/format-common/src/test/kotlin/dev/msfjarvis/aps/data/passfile/PasswordEntryTest.kt +++ b/format-common/src/test/kotlin/dev/msfjarvis/aps/data/passfile/PasswordEntryTest.kt @@ -5,8 +5,8 @@ package dev.msfjarvis.aps.data.passfile +import app.cash.turbine.test import dev.msfjarvis.aps.test.CoroutineTestRule -import dev.msfjarvis.aps.test.test2 import dev.msfjarvis.aps.util.time.TestUserClock import dev.msfjarvis.aps.util.time.UserClock import dev.msfjarvis.aps.util.totp.TotpFinder @@ -135,7 +135,7 @@ class PasswordEntryTest { fun testGeneratesOtpFromTotpUri() = runTest { val entry = makeEntry("secret\nextra\n$TOTP_URI") assertTrue(entry.hasTotp()) - entry.totp.test2 { + entry.totp.test { val otp = expectMostRecentItem() assertEquals("818800", otp.value) assertEquals(30.seconds, otp.remainingTime) @@ -152,7 +152,7 @@ class PasswordEntryTest { fun testGeneratedOtpHasCorrectRemainingTime() = runTest { val entry = makeEntry("secret\nextra\n$TOTP_URI", TestUserClock.withAddedSeconds(5)) assertTrue(entry.hasTotp()) - entry.totp.test2 { + entry.totp.test { val otp = expectMostRecentItem() assertEquals("818800", otp.value) assertEquals(25.seconds, otp.remainingTime) @@ -164,7 +164,7 @@ class PasswordEntryTest { fun testGeneratesOtpWithOnlyUriInFile() = runTest { val entry = makeEntry(TOTP_URI) assertNull(entry.password) - entry.totp.test2 { + entry.totp.test { val otp = expectMostRecentItem() assertEquals("818800", otp.value) assertEquals(30.seconds, otp.remainingTime) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 5a557f91..6e14b8d3 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -98,7 +98,7 @@ testing-junit = "junit:junit:4.13.2" testing-kotlintest-junit = { module = "org.jetbrains.kotlin:kotlin-test-junit", version.ref = "kotlin" } testing-robolectric = "org.robolectric:robolectric:4.8" testing-sharedPrefsMock = "com.github.android-password-store:shared-preferences-fake:2.0.0" -testing-turbine = "app.cash.turbine:turbine:0.7.0" +testing-turbine = "app.cash.turbine:turbine:0.8.0" [bundles] androidxLifecycle = ["androidx-lifecycle-common", "androidx-lifecycle-livedataKtx", "androidx-lifecycle-viewmodelKtx"]