Skip to content

Commit 3bb2940

Browse files
committed
add tests for AddVM
1 parent c6b8bac commit 3bb2940

File tree

2 files changed

+30
-3
lines changed

2 files changed

+30
-3
lines changed

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

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,7 @@ class AddVMTest : BaseMviViewModelTest<ViewIntent, ViewState, SingleEvent, AddVM
265265
}
266266

267267
@Test
268-
fun test_withSubmitIntentFormValid_callAddUser() {
268+
fun test_withSubmitIntentWhenFormValid_callAddUserAndReturnsStateWithLoading() {
269269
val user = User(
270270
id = "",
271271
email = EMAIL,
@@ -324,4 +324,31 @@ class AddVMTest : BaseMviViewModelTest<ViewIntent, ViewState, SingleEvent, AddVM
324324
coVerify { addUser(user) }
325325
}
326326
}
327+
328+
@Test
329+
fun test_withSubmitIntentWhenFormInvalid_doNothing() {
330+
test(
331+
vmProducer = { vm },
332+
intents = flowOf(ViewIntent.Submit),
333+
intentsBeforeCollecting = flowOf(
334+
ViewIntent.EmailChanged(""),
335+
ViewIntent.FirstNameChanged(""),
336+
ViewIntent.LastNameChanged(""),
337+
),
338+
expectedStates = listOf(
339+
ViewState(
340+
errors = ALL_ERRORS,
341+
isLoading = false,
342+
emailChanged = false,
343+
firstNameChanged = false,
344+
lastNameChanged = false,
345+
email = "",
346+
firstName = "",
347+
lastName = "",
348+
),
349+
).mapRight(),
350+
expectedEvents = emptyList(),
351+
delayAfterDispatchingIntents = Duration.seconds(1),
352+
)
353+
}
327354
}

mvi/mvi-testing/src/main/java/com/flowmvi/mvi_testing/BaseMviViewModelTest.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,10 +137,10 @@ abstract class BaseMviViewModelTest<
137137
fun <T> Iterable<T>.mapRight(): List<Either<(T) -> Unit, T>> = map { it.right() }
138138

139139
private fun <T> List<T>.joinToStringWithIndex(): String {
140-
return withIndex().joinToString(
140+
return if (isEmpty()) "[]" else withIndex().joinToString(
141141
separator = ",\n",
142142
prefix = "[\n",
143-
postfix = "]",
143+
postfix = "\n]",
144144
) { (i, v) ->
145145
" [$i]: $v"
146146
}

0 commit comments

Comments
 (0)