Skip to content

Commit 14f4c99

Browse files
committed
fix vm tests
1 parent 308e017 commit 14f4c99

File tree

6 files changed

+335
-208
lines changed

6 files changed

+335
-208
lines changed

data/src/test/java/com/hoc/flowmvi/data/UserRepositoryImplTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ class UserRepositoryImplTest {
119119

120120
repo = UserRepositoryImpl(
121121
userApiService = userApiService,
122-
dispatchers = TestDispatchers(coroutineRule.testCoroutineDispatcher),
122+
dispatchers = TestDispatchers(coroutineRule.testDispatcher),
123123
responseToDomain = responseToDomain,
124124
domainToBody = domainToBody,
125125
errorMapper = errorMapper

feature-add/src/test/java/com/hoc/flowmvi/ui/add/AddVMTest.kt

Lines changed: 24 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import com.hoc.flowmvi.domain.model.UserValidationError.TOO_SHORT_LAST_NAME
1111
import com.hoc.flowmvi.domain.usecase.AddUserUseCase
1212
import com.hoc.flowmvi.mvi_testing.BaseMviViewModelTest
1313
import com.hoc.flowmvi.mvi_testing.mapRight
14+
import com.hoc.flowmvi.mvi_testing.returnsWithDelay
1415
import com.hoc.flowmvi.test_utils.valueOrThrow
1516
import io.mockk.coEvery
1617
import io.mockk.coVerify
@@ -19,7 +20,6 @@ import io.mockk.mockk
1920
import kotlinx.coroutines.ExperimentalCoroutinesApi
2021
import kotlinx.coroutines.flow.flowOf
2122
import kotlin.test.Test
22-
import kotlin.time.Duration.Companion.seconds
2323
import kotlin.time.ExperimentalTime
2424

2525
private val ALL_ERRORS = UserValidationError.values().toSet()
@@ -55,7 +55,7 @@ class AddVMTest : BaseMviViewModelTest<ViewIntent, ViewState, SingleEvent, AddVM
5555

5656
@Test
5757
fun test_withFormValueIntents_returnsStateWithChangedValuesAndErrors() {
58-
test(
58+
runVMTest(
5959
vmProducer = { vm },
6060
intents = flowOf(
6161
ViewIntent.EmailChanged(""),
@@ -147,7 +147,7 @@ class AddVMTest : BaseMviViewModelTest<ViewIntent, ViewState, SingleEvent, AddVM
147147

148148
@Test
149149
fun test_withFormValueIntents_returnsStateWithChangedValuesAndNoErrors() {
150-
test(
150+
runVMTest(
151151
vmProducer = { vm },
152152
intents = flowOf(
153153
ViewIntent.EmailChanged(""),
@@ -277,16 +277,11 @@ class AddVMTest : BaseMviViewModelTest<ViewIntent, ViewState, SingleEvent, AddVM
277277
avatar = ""
278278
).valueOrThrow
279279

280-
coEvery { addUser(user) } returns Unit.right()
280+
coEvery { addUser(user) } returnsWithDelay Unit.right()
281281

282-
test(
282+
runVMTest(
283283
vmProducer = { vm },
284284
intents = flowOf(ViewIntent.Submit),
285-
intentsBeforeCollecting = flowOf(
286-
ViewIntent.EmailChanged(EMAIL),
287-
ViewIntent.FirstNameChanged(NAME),
288-
ViewIntent.LastNameChanged(NAME),
289-
),
290285
expectedStates = listOf(
291286
ViewState(
292287
errors = emptySet(),
@@ -322,7 +317,11 @@ class AddVMTest : BaseMviViewModelTest<ViewIntent, ViewState, SingleEvent, AddVM
322317
expectedEvents = listOf(
323318
SingleEvent.AddUserSuccess(user),
324319
).mapRight(),
325-
delayAfterDispatchingIntents = 1.seconds,
320+
preProcessingIntents = flowOf(
321+
ViewIntent.EmailChanged(EMAIL),
322+
ViewIntent.FirstNameChanged(NAME),
323+
ViewIntent.LastNameChanged(NAME),
324+
),
326325
) {
327326
coVerify { addUser(user) }
328327
}
@@ -339,16 +338,11 @@ class AddVMTest : BaseMviViewModelTest<ViewIntent, ViewState, SingleEvent, AddVM
339338
).valueOrThrow
340339
val networkError = UserError.NetworkError
341340

342-
coEvery { addUser(user) } returns networkError.left()
341+
coEvery { addUser(user) } returnsWithDelay networkError.left()
343342

344-
test(
343+
runVMTest(
345344
vmProducer = { vm },
346345
intents = flowOf(ViewIntent.Submit),
347-
intentsBeforeCollecting = flowOf(
348-
ViewIntent.EmailChanged(EMAIL),
349-
ViewIntent.FirstNameChanged(NAME),
350-
ViewIntent.LastNameChanged(NAME),
351-
),
352346
expectedStates = listOf(
353347
ViewState(
354348
errors = emptySet(),
@@ -384,22 +378,21 @@ class AddVMTest : BaseMviViewModelTest<ViewIntent, ViewState, SingleEvent, AddVM
384378
expectedEvents = listOf(
385379
SingleEvent.AddUserFailure(user = user, error = networkError),
386380
).mapRight(),
387-
delayAfterDispatchingIntents = 1.seconds,
381+
preProcessingIntents = flowOf(
382+
ViewIntent.EmailChanged(EMAIL),
383+
ViewIntent.FirstNameChanged(NAME),
384+
ViewIntent.LastNameChanged(NAME),
385+
),
388386
) {
389387
coVerify { addUser(user) }
390388
}
391389
}
392390

393391
@Test
394392
fun test_withSubmitIntentWhenFormInvalid_doNothing() {
395-
test(
393+
runVMTest(
396394
vmProducer = { vm },
397395
intents = flowOf(ViewIntent.Submit),
398-
intentsBeforeCollecting = flowOf(
399-
ViewIntent.EmailChanged(""),
400-
ViewIntent.FirstNameChanged(""),
401-
ViewIntent.LastNameChanged(""),
402-
),
403396
expectedStates = listOf(
404397
ViewState(
405398
errors = ALL_ERRORS,
@@ -413,13 +406,17 @@ class AddVMTest : BaseMviViewModelTest<ViewIntent, ViewState, SingleEvent, AddVM
413406
),
414407
).mapRight(),
415408
expectedEvents = emptyList(),
416-
delayAfterDispatchingIntents = 1.seconds,
409+
preProcessingIntents = flowOf(
410+
ViewIntent.EmailChanged(""),
411+
ViewIntent.FirstNameChanged(""),
412+
ViewIntent.LastNameChanged(""),
413+
),
417414
)
418415
}
419416

420417
@Test
421418
fun test_withFirstChangeIntents_returnsStateWithFirstChangesSetToTrue() {
422-
test(
419+
runVMTest(
423420
vmProducer = { vm },
424421
intents = flowOf(
425422
ViewIntent.EmailChangedFirstTime,

0 commit comments

Comments
 (0)