From 87a0957d9a62cfaa276b8579e9ffbe9f15bdd366 Mon Sep 17 00:00:00 2001 From: Adam Brown Date: Wed, 27 Jul 2022 15:57:42 +0100 Subject: [PATCH] adding test around login with token --- .../onboarding/OnboardingViewModelTest.kt | 20 +++++++++++++++++++ .../vector/app/test/fakes/FakeLoginWizard.kt | 6 ++++++ 2 files changed, 26 insertions(+) diff --git a/vector/src/test/java/im/vector/app/features/onboarding/OnboardingViewModelTest.kt b/vector/src/test/java/im/vector/app/features/onboarding/OnboardingViewModelTest.kt index 23c25354fa..a932f187f0 100644 --- a/vector/src/test/java/im/vector/app/features/onboarding/OnboardingViewModelTest.kt +++ b/vector/src/test/java/im/vector/app/features/onboarding/OnboardingViewModelTest.kt @@ -76,6 +76,7 @@ private const val AN_EMAIL = "hello@example.com" private const val A_PASSWORD = "a-password" private const val A_USERNAME = "hello-world" private const val A_MATRIX_ID = "@$A_USERNAME:matrix.org" +private const val A_LOGIN_TOKEN = "a-login-token" class OnboardingViewModelTest { @@ -141,6 +142,25 @@ class OnboardingViewModelTest { .finish() } + @Test + fun `given can successfully login in with token, when logging in with token, then emits AccountSignedIn`() = runTest { + val test = viewModel.test() + fakeAuthenticationService.givenLoginWizard(fakeLoginWizard) + fakeLoginWizard.givenLoginWithTokenResult(A_LOGIN_TOKEN, fakeSession) + givenInitialisesSession(fakeSession) + + viewModel.handle(OnboardingAction.LoginWithToken(A_LOGIN_TOKEN)) + + test + .assertStatesChanges( + initialState, + { copy(isLoading = true) }, + { copy(isLoading = false) } + ) + .assertEvents(OnboardingViewEvents.OnAccountSignedIn) + .finish() + } + @Test fun `given registration started with currentThreePid, when handling InitWith, then emits restored session OnSendEmailSuccess`() = runTest { val test = viewModel.test() diff --git a/vector/src/test/java/im/vector/app/test/fakes/FakeLoginWizard.kt b/vector/src/test/java/im/vector/app/test/fakes/FakeLoginWizard.kt index 07577ed61c..e255fa7deb 100644 --- a/vector/src/test/java/im/vector/app/test/fakes/FakeLoginWizard.kt +++ b/vector/src/test/java/im/vector/app/test/fakes/FakeLoginWizard.kt @@ -16,10 +16,12 @@ package im.vector.app.test.fakes +import io.mockk.coEvery import io.mockk.coJustRun import io.mockk.coVerify import io.mockk.mockk import org.matrix.android.sdk.api.auth.login.LoginWizard +import org.matrix.android.sdk.api.session.Session class FakeLoginWizard : LoginWizard by mockk() { @@ -27,6 +29,10 @@ class FakeLoginWizard : LoginWizard by mockk() { coJustRun { resetPassword(email) } } + fun givenLoginWithTokenResult(token: String, result: Session) { + coEvery { loginWithToken(token) } returns result + } + fun givenConfirmResetPasswordSuccess(password: String) { coJustRun { resetPasswordMailConfirmed(password) } }