@@ -11,6 +11,7 @@ import com.hoc.flowmvi.domain.model.UserValidationError.TOO_SHORT_LAST_NAME
11
11
import com.hoc.flowmvi.domain.usecase.AddUserUseCase
12
12
import com.hoc.flowmvi.mvi_testing.BaseMviViewModelTest
13
13
import com.hoc.flowmvi.mvi_testing.mapRight
14
+ import com.hoc.flowmvi.mvi_testing.returnsWithDelay
14
15
import com.hoc.flowmvi.test_utils.valueOrThrow
15
16
import io.mockk.coEvery
16
17
import io.mockk.coVerify
@@ -19,7 +20,6 @@ import io.mockk.mockk
19
20
import kotlinx.coroutines.ExperimentalCoroutinesApi
20
21
import kotlinx.coroutines.flow.flowOf
21
22
import kotlin.test.Test
22
- import kotlin.time.Duration.Companion.seconds
23
23
import kotlin.time.ExperimentalTime
24
24
25
25
private val ALL_ERRORS = UserValidationError .values().toSet()
@@ -55,7 +55,7 @@ class AddVMTest : BaseMviViewModelTest<ViewIntent, ViewState, SingleEvent, AddVM
55
55
56
56
@Test
57
57
fun test_withFormValueIntents_returnsStateWithChangedValuesAndErrors () {
58
- test (
58
+ runVMTest (
59
59
vmProducer = { vm },
60
60
intents = flowOf(
61
61
ViewIntent .EmailChanged (" " ),
@@ -147,7 +147,7 @@ class AddVMTest : BaseMviViewModelTest<ViewIntent, ViewState, SingleEvent, AddVM
147
147
148
148
@Test
149
149
fun test_withFormValueIntents_returnsStateWithChangedValuesAndNoErrors () {
150
- test (
150
+ runVMTest (
151
151
vmProducer = { vm },
152
152
intents = flowOf(
153
153
ViewIntent .EmailChanged (" " ),
@@ -277,16 +277,11 @@ class AddVMTest : BaseMviViewModelTest<ViewIntent, ViewState, SingleEvent, AddVM
277
277
avatar = " "
278
278
).valueOrThrow
279
279
280
- coEvery { addUser(user) } returns Unit .right()
280
+ coEvery { addUser(user) } returnsWithDelay Unit .right()
281
281
282
- test (
282
+ runVMTest (
283
283
vmProducer = { vm },
284
284
intents = flowOf(ViewIntent .Submit ),
285
- intentsBeforeCollecting = flowOf(
286
- ViewIntent .EmailChanged (EMAIL ),
287
- ViewIntent .FirstNameChanged (NAME ),
288
- ViewIntent .LastNameChanged (NAME ),
289
- ),
290
285
expectedStates = listOf (
291
286
ViewState (
292
287
errors = emptySet(),
@@ -322,7 +317,11 @@ class AddVMTest : BaseMviViewModelTest<ViewIntent, ViewState, SingleEvent, AddVM
322
317
expectedEvents = listOf (
323
318
SingleEvent .AddUserSuccess (user),
324
319
).mapRight(),
325
- delayAfterDispatchingIntents = 1 .seconds,
320
+ preProcessingIntents = flowOf(
321
+ ViewIntent .EmailChanged (EMAIL ),
322
+ ViewIntent .FirstNameChanged (NAME ),
323
+ ViewIntent .LastNameChanged (NAME ),
324
+ ),
326
325
) {
327
326
coVerify { addUser(user) }
328
327
}
@@ -339,16 +338,11 @@ class AddVMTest : BaseMviViewModelTest<ViewIntent, ViewState, SingleEvent, AddVM
339
338
).valueOrThrow
340
339
val networkError = UserError .NetworkError
341
340
342
- coEvery { addUser(user) } returns networkError.left()
341
+ coEvery { addUser(user) } returnsWithDelay networkError.left()
343
342
344
- test (
343
+ runVMTest (
345
344
vmProducer = { vm },
346
345
intents = flowOf(ViewIntent .Submit ),
347
- intentsBeforeCollecting = flowOf(
348
- ViewIntent .EmailChanged (EMAIL ),
349
- ViewIntent .FirstNameChanged (NAME ),
350
- ViewIntent .LastNameChanged (NAME ),
351
- ),
352
346
expectedStates = listOf (
353
347
ViewState (
354
348
errors = emptySet(),
@@ -384,22 +378,21 @@ class AddVMTest : BaseMviViewModelTest<ViewIntent, ViewState, SingleEvent, AddVM
384
378
expectedEvents = listOf (
385
379
SingleEvent .AddUserFailure (user = user, error = networkError),
386
380
).mapRight(),
387
- delayAfterDispatchingIntents = 1 .seconds,
381
+ preProcessingIntents = flowOf(
382
+ ViewIntent .EmailChanged (EMAIL ),
383
+ ViewIntent .FirstNameChanged (NAME ),
384
+ ViewIntent .LastNameChanged (NAME ),
385
+ ),
388
386
) {
389
387
coVerify { addUser(user) }
390
388
}
391
389
}
392
390
393
391
@Test
394
392
fun test_withSubmitIntentWhenFormInvalid_doNothing () {
395
- test (
393
+ runVMTest (
396
394
vmProducer = { vm },
397
395
intents = flowOf(ViewIntent .Submit ),
398
- intentsBeforeCollecting = flowOf(
399
- ViewIntent .EmailChanged (" " ),
400
- ViewIntent .FirstNameChanged (" " ),
401
- ViewIntent .LastNameChanged (" " ),
402
- ),
403
396
expectedStates = listOf (
404
397
ViewState (
405
398
errors = ALL_ERRORS ,
@@ -413,13 +406,17 @@ class AddVMTest : BaseMviViewModelTest<ViewIntent, ViewState, SingleEvent, AddVM
413
406
),
414
407
).mapRight(),
415
408
expectedEvents = emptyList(),
416
- delayAfterDispatchingIntents = 1 .seconds,
409
+ preProcessingIntents = flowOf(
410
+ ViewIntent .EmailChanged (" " ),
411
+ ViewIntent .FirstNameChanged (" " ),
412
+ ViewIntent .LastNameChanged (" " ),
413
+ ),
417
414
)
418
415
}
419
416
420
417
@Test
421
418
fun test_withFirstChangeIntents_returnsStateWithFirstChangesSetToTrue () {
422
- test (
419
+ runVMTest (
423
420
vmProducer = { vm },
424
421
intents = flowOf(
425
422
ViewIntent .EmailChangedFirstTime ,
0 commit comments