diff options
| author | Kalle Lindström <karl.lindstrom@mullvad.net> | 2024-10-09 13:08:23 +0200 |
|---|---|---|
| committer | David Göransson <david.goransson@mullvad.net> | 2024-10-15 14:38:37 +0200 |
| commit | 57aa8880dcd2d739d852fee1fa60bdd49dec9f80 (patch) | |
| tree | 698af4176e8685c2ca8d2517fb16488df391ae32 /android/app/src/test | |
| parent | 9e2e53486a66fd3ad83d5775b050041a29131652 (diff) | |
| download | mullvadvpn-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.kt | 27 |
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 { |
