Skip to content

Commit 9c9fd4c

Browse files
Fix unit tests
1 parent 5985ed4 commit 9c9fd4c

File tree

1 file changed

+11
-38
lines changed

1 file changed

+11
-38
lines changed

WooCommerce/src/test/kotlin/com/woocommerce/android/ui/common/UserEligibilityErrorViewModelTest.kt

Lines changed: 11 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -6,42 +6,32 @@ import com.woocommerce.android.R.string
66
import com.woocommerce.android.extensions.takeIfNotEqualTo
77
import com.woocommerce.android.model.toAppModel
88
import com.woocommerce.android.ui.common.UserEligibilityErrorViewModel.ViewState
9+
import com.woocommerce.android.ui.login.AccountRepository
910
import com.woocommerce.android.viewmodel.BaseUnitTest
10-
import com.woocommerce.android.viewmodel.MultiLiveEvent.Event.*
11+
import com.woocommerce.android.viewmodel.MultiLiveEvent.Event.Exit
12+
import com.woocommerce.android.viewmodel.MultiLiveEvent.Event.Logout
13+
import com.woocommerce.android.viewmodel.MultiLiveEvent.Event.ShowSnackbar
1114
import kotlinx.coroutines.ExperimentalCoroutinesApi
1215
import org.assertj.core.api.Assertions.assertThat
1316
import org.junit.Before
1417
import org.junit.Test
15-
import org.mockito.kotlin.KArgumentCaptor
1618
import org.mockito.kotlin.any
17-
import org.mockito.kotlin.argumentCaptor
18-
import org.mockito.kotlin.clearInvocations
1919
import org.mockito.kotlin.doReturn
2020
import org.mockito.kotlin.mock
21-
import org.mockito.kotlin.spy
2221
import org.mockito.kotlin.times
2322
import org.mockito.kotlin.verify
2423
import org.mockito.kotlin.whenever
25-
import org.wordpress.android.fluxc.Dispatcher
26-
import org.wordpress.android.fluxc.action.AccountAction.SIGN_OUT
27-
import org.wordpress.android.fluxc.action.SiteAction
28-
import org.wordpress.android.fluxc.annotations.action.Action
2924
import org.wordpress.android.fluxc.model.user.WCUserModel
30-
import org.wordpress.android.fluxc.store.AccountStore
31-
import org.wordpress.android.fluxc.store.AccountStore.OnAccountChanged
32-
import kotlin.test.assertEquals
3325
import kotlin.test.assertFalse
3426
import kotlin.test.assertTrue
3527

3628
@ExperimentalCoroutinesApi
3729
class UserEligibilityErrorViewModelTest : BaseUnitTest() {
3830
private val appPrefsWrapper: AppPrefs = mock()
39-
private val dispatcher: Dispatcher = mock()
40-
private val accountStore: AccountStore = mock()
31+
private val accountRepository: AccountRepository = mock()
4132
private val userEligibilityFetcher: UserEligibilityFetcher = mock()
4233

4334
private lateinit var viewModel: UserEligibilityErrorViewModel
44-
private lateinit var actionCaptor: KArgumentCaptor<Action<*>>
4535

4636
private val testUser = WCUserModel().apply {
4737
remoteUserId = 1L
@@ -56,23 +46,12 @@ class UserEligibilityErrorViewModelTest : BaseUnitTest() {
5646

5747
@Before
5848
fun setup() {
59-
actionCaptor = argumentCaptor()
60-
61-
viewModel = spy(
62-
UserEligibilityErrorViewModel(
49+
viewModel = UserEligibilityErrorViewModel(
6350
SavedStateHandle(),
6451
appPrefsWrapper,
65-
dispatcher,
66-
accountStore,
52+
accountRepository,
6753
userEligibilityFetcher
6854
)
69-
)
70-
71-
clearInvocations(
72-
viewModel,
73-
userEligibilityFetcher,
74-
appPrefsWrapper
75-
)
7655
}
7756

7857
@Test
@@ -149,23 +128,17 @@ class UserEligibilityErrorViewModelTest : BaseUnitTest() {
149128
}
150129

151130
@Test
152-
fun `Handles logout button click correctly`() {
153-
doReturn(false).whenever(accountStore).hasAccessToken()
131+
fun `Handles logout button click correctly`() = testBlocking {
132+
doReturn(true).whenever(accountRepository).logout()
154133

155134
var logoutEvent: Logout? = null
156135
viewModel.event.observeForever {
157-
if (it is Logout) logoutEvent = it
136+
logoutEvent = it as? Logout
158137
}
159138

160139
viewModel.onLogoutButtonClicked()
161140

162-
// note that we expect two dispatches because there's one to sign out the user and
163-
// the other to remove WPcom and Jetpack sites from local db
164-
verify(dispatcher, times(2)).dispatch(actionCaptor.capture())
165-
assertEquals(SIGN_OUT, actionCaptor.firstValue.type)
166-
assertEquals(SiteAction.REMOVE_WPCOM_AND_JETPACK_SITES, actionCaptor.secondValue.type)
167-
168-
viewModel.onAccountChanged(OnAccountChanged())
141+
verify(accountRepository).logout()
169142
assertThat(logoutEvent).isNotNull
170143
}
171144
}

0 commit comments

Comments
 (0)