@@ -5,6 +5,9 @@ import dev.mokkery.answering.returns
55import dev.mokkery.everySuspend
66import dev.mokkery.matcher.any
77import dev.mokkery.mock
8+ import dev.mokkery.spy
9+ import dev.mokkery.verify.VerifyMode.Companion.atMost
10+ import dev.mokkery.verifySuspend
811import dev.reprator.github.features.userList.domain.UserModel
912import dev.reprator.github.features.userList.domain.usecase.UserListUseCase
1013import dev.reprator.github.fixtures.SEARCH_QUERY
@@ -17,6 +20,7 @@ import dev.reprator.github.util.AppError
1720import dev.reprator.github.util.AppSuccess
1821import dev.reprator.github.util.MainDispatcherRule
1922import dev.reprator.github.util.base.mvi.Middleware
23+ import dev.reprator.github.util.base.mvi.Reducer
2024import dev.reprator.github.util.runViewModelTest
2125import kotlinx.coroutines.test.runTest
2226import kotlin.test.BeforeTest
@@ -36,7 +40,7 @@ class UserListViewModelTest: MainDispatcherRule() {
3640
3741 private lateinit var userListViewModel: UserListViewModel
3842
39- private lateinit var reducer: UserListScreenReducer
43+ private val reducer = spy< Reducer < UserListState , UserListAction , UserListEffect >>( UserListScreenReducer ())
4044 private lateinit var middleware: Middleware <UserListState , UserListAction , UserListEffect >
4145
4246 @BeforeTest
@@ -48,7 +52,6 @@ class UserListViewModelTest: MainDispatcherRule() {
4852 testDispatcher, testDispatcher, testDispatcher,
4953 testDispatcher)
5054
51- reducer = UserListScreenReducer ()
5255 middleware = UserListMiddleware (fetchUseCase, dispatchers)
5356
5457 userListViewModel = UserListViewModel (
@@ -57,6 +60,7 @@ class UserListViewModelTest: MainDispatcherRule() {
5760 reducer = reducer,
5861 middleWareList = setOf (middleware)
5962 )
63+
6064 }
6165
6266 @Test
@@ -94,6 +98,11 @@ class UserListViewModelTest: MainDispatcherRule() {
9498
9599 state.expectNoEvents()
96100 }
101+
102+ verifySuspend(atMost(1 )) {
103+ fetchUseCase()
104+ reducer.reduce(any(), UserListAction .SearchUsers (" " , true ))
105+ }
97106 }
98107
99108 @Test
@@ -131,6 +140,11 @@ class UserListViewModelTest: MainDispatcherRule() {
131140
132141 state.expectNoEvents()
133142 }
143+
144+ verifySuspend(atMost(1 )) {
145+ fetchUseCase()
146+ reducer.reduce(any(), UserListAction .SearchUsers (" " , true ))
147+ }
134148 }
135149
136150 @Test
@@ -260,7 +274,7 @@ class UserListViewModelTest: MainDispatcherRule() {
260274 }
261275
262276
263- @Test
277+ @Test
264278 fun searchForUserOnTypeWhenDefaultUserListIsEmpty () {
265279
266280 everySuspend {
0 commit comments