Fix subscribeTo sometimes not emitting initial value (#2076)

* Add a test for `subscribeTo`

* subscribeTo: Fix initial flow value sometimes not propagated

Co-authored-by: schroda <50052685+schroda@users.noreply.github.com>
Co-authored-by: Syer10 <mitchellptbo@gmail.com>

* lint

---------

Co-authored-by: schroda <50052685+schroda@users.noreply.github.com>
Co-authored-by: Syer10 <mitchellptbo@gmail.com>
This commit is contained in:
Constantin Piber
2026-05-31 23:05:09 +02:00
committed by GitHub
parent 2a1f1faae5
commit 911c0ce2e3
2 changed files with 43 additions and 12 deletions

View File

@@ -0,0 +1,26 @@
package suwayomi.tachidesk
import graphql.Assert.assertTrue
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.first
import kotlinx.coroutines.test.runTest
import suwayomi.tachidesk.server.subscribeTo
import java.util.concurrent.CountDownLatch
import java.util.concurrent.TimeUnit
import kotlin.test.Test
class FlowTest {
@Test
fun subscribe() =
runTest {
(1..1000).forEach { _ ->
val testFlow = MutableStateFlow(value = 3)
testFlow.first()
val latch = CountDownLatch(1)
subscribeTo(testFlow, ignoreInitialValue = false) { _ ->
latch.countDown()
}
assertTrue(latch.await(5, TimeUnit.SECONDS))
}
}
}