@@ -8,31 +8,25 @@ import com.squareup.workflow1.action
8
8
import com.squareup.workflow1.asWorker
9
9
import com.squareup.workflow1.renderWorkflowIn
10
10
import com.squareup.workflow1.runningWorker
11
- import kotlinx.coroutines.CompletableDeferred
12
11
import kotlinx.coroutines.CoroutineScope
13
12
import kotlinx.coroutines.Dispatchers.Unconfined
14
13
import kotlinx.coroutines.ExperimentalCoroutinesApi
15
- import kotlinx.coroutines.Job
16
14
import kotlinx.coroutines.cancel
17
15
import kotlinx.coroutines.channels.Channel
18
16
import kotlinx.coroutines.channels.Channel.Factory.UNLIMITED
19
- import kotlinx.coroutines.flow.Flow
20
- import kotlinx.coroutines.flow.MutableStateFlow
21
- import kotlinx.coroutines.flow.StateFlow
22
17
import kotlinx.coroutines.flow.asFlow
23
18
import kotlinx.coroutines.flow.collect
24
19
import kotlinx.coroutines.flow.map
25
20
import kotlinx.coroutines.flow.onEach
26
21
import kotlinx.coroutines.flow.receiveAsFlow
22
+ import kotlinx.coroutines.flow.stateIn
27
23
import kotlinx.coroutines.flow.takeWhile
28
- import kotlinx.coroutines.launch
29
24
import kotlinx.coroutines.runBlocking
30
25
import kotlinx.coroutines.yield
31
26
import okio.Buffer
32
27
import okio.buffer
33
28
import okio.source
34
29
import org.mockito.kotlin.mock
35
- import kotlin.coroutines.coroutineContext
36
30
import kotlin.test.Test
37
31
import kotlin.test.assertEquals
38
32
@@ -92,24 +86,6 @@ internal class TracingWorkflowInterceptorTest {
92
86
assertEquals(expected.readUtf8(), buffer.readUtf8())
93
87
}
94
88
95
- /* *
96
- * TODO(https://github.com/square/workflow/issues/1191) Remove once stateIn ships.
97
- */
98
- @OptIn(ExperimentalCoroutinesApi ::class )
99
- private suspend fun <T > Flow<T>.stateIn (scope : CoroutineScope ): StateFlow <T > {
100
- val stateFlow = CompletableDeferred <MutableStateFlow <T >>(parent = coroutineContext[Job ])
101
- scope.launch {
102
- collect {
103
- if (stateFlow.isCompleted) {
104
- stateFlow.getCompleted().value = it
105
- } else {
106
- stateFlow.complete(MutableStateFlow (it))
107
- }
108
- }
109
- }
110
- return stateFlow.await()
111
- }
112
-
113
89
private inner class TestWorkflow : StatefulWorkflow <Int , String , String , String >() {
114
90
115
91
private val channel = Channel <String >(UNLIMITED )
0 commit comments