summaryrefslogtreecommitdiffhomepage
path: root/android/app/src/test
diff options
context:
space:
mode:
authorKalle Lindström <karl.lindstrom@mullvad.net>2024-10-09 13:08:23 +0200
committerDavid Göransson <david.goransson@mullvad.net>2024-10-15 14:38:37 +0200
commit57aa8880dcd2d739d852fee1fa60bdd49dec9f80 (patch)
tree698af4176e8685c2ca8d2517fb16488df391ae32 /android/app/src/test
parent9e2e53486a66fd3ad83d5775b050041a29131652 (diff)
downloadmullvadvpn-57aa8880dcd2d739d852fee1fa60bdd49dec9f80.tar.xz
mullvadvpn-57aa8880dcd2d739d852fee1fa60bdd49dec9f80.zip
Show create account confirm when user has account
Diffstat (limited to 'android/app/src/test')
-rw-r--r--android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/LoginViewModelTest.kt27
1 files changed, 25 insertions, 2 deletions
diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/LoginViewModelTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/LoginViewModelTest.kt
index ba636197f4..1a80597066 100644
--- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/LoginViewModelTest.kt
+++ b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/LoginViewModelTest.kt
@@ -43,13 +43,16 @@ class LoginViewModelTest {
@MockK private lateinit var mockedAccountRepository: AccountRepository
private lateinit var loginViewModel: LoginViewModel
+ private lateinit var accountHistoryFlow: MutableStateFlow<AccountNumber?>
@BeforeEach
fun setup() {
Dispatchers.setMain(UnconfinedTestDispatcher())
MockKAnnotations.init(this, relaxUnitFun = true)
+ accountHistoryFlow = MutableStateFlow(null)
every { connectivityUseCase() } returns true
coEvery { mockedAccountRepository.fetchAccountHistory() } returns null
+ coEvery { mockedAccountRepository.accountHistory } returns accountHistoryFlow
loginViewModel =
LoginViewModel(
@@ -96,13 +99,33 @@ class LoginViewModelTest {
// Act, Assert
uiStates.skipDefaultItem()
- loginViewModel.createAccount()
+ loginViewModel.onCreateAccountConfirmed()
assertEquals(Loading.CreatingAccount, uiStates.awaitItem().loginState)
assertEquals(LoginUiSideEffect.NavigateToWelcome, sideEffects.awaitItem())
}
}
@Test
+ fun `when creating a new account the confirmation dialog should be shown when an account exists in the history`() =
+ runTest {
+ turbineScope {
+ // Arrange
+ val uiStates = loginViewModel.uiState.testIn(backgroundScope)
+ val sideEffects = loginViewModel.uiSideEffect.testIn(backgroundScope)
+
+ // Act, Assert
+ uiStates.skipDefaultItem()
+ accountHistoryFlow.value = DUMMY_ACCOUNT_NUMBER
+ loginViewModel.onCreateAccountClick()
+ assertEquals(Idle(null), uiStates.awaitItem().loginState)
+ assertEquals(
+ LoginUiSideEffect.NavigateToCreateAccountConfirmation,
+ sideEffects.awaitItem(),
+ )
+ }
+ }
+
+ @Test
fun `given valid account when logging in then navigate to connect view`() = runTest {
turbineScope {
// Arrange
@@ -197,7 +220,7 @@ class LoginViewModelTest {
fun `on new accountHistory emission uiState should include lastUsedAccount matching accountHistory`() =
runTest {
// Arrange
- coEvery { mockedAccountRepository.fetchAccountHistory() } returns DUMMY_ACCOUNT_NUMBER
+ accountHistoryFlow.value = DUMMY_ACCOUNT_NUMBER
// Act, Assert
loginViewModel.uiState.test {