Add missing test

This commit is contained in:
Benoit Marty
2025-12-16 20:13:07 +01:00
parent 086229f5dc
commit 05fc9ea217
2 changed files with 27 additions and 4 deletions

View File

@@ -64,7 +64,7 @@ class LinkNewDeviceRootPresenter(
fun handleEvent(event: LinkNewDeviceRootEvent) {
when (event) {
is LinkNewDeviceRootEvent.LinkMobileDevice -> coroutineScope.launch {
LinkNewDeviceRootEvent.LinkMobileDevice -> coroutineScope.launch {
qrCodeData = AsyncData.Loading()
// Wait for the QrCode to be ready
linkNewMobileHandler.reset()

View File

@@ -12,6 +12,7 @@ import io.element.android.features.linknewdevice.impl.LinkNewMobileHandler
import io.element.android.libraries.matrix.api.MatrixClient
import io.element.android.libraries.matrix.test.AN_EXCEPTION
import io.element.android.libraries.matrix.test.FakeMatrixClient
import io.element.android.libraries.matrix.test.linknewdevice.FakeLinkMobileHandler
import io.element.android.tests.testutils.WarmUpRule
import io.element.android.tests.testutils.test
import kotlinx.coroutines.test.runTest
@@ -25,7 +26,7 @@ class LinkNewDeviceRootPresenterTest {
@Test
fun `present - initial state`() = runTest {
val matrixClient = FakeMatrixClient(
canLinkNewDeviceResult = { Result.success(true) }
canLinkNewDeviceResult = { Result.success(true) },
)
createPresenter(
matrixClient = matrixClient,
@@ -39,7 +40,7 @@ class LinkNewDeviceRootPresenterTest {
@Test
fun `present - new login device not supported`() = runTest {
val matrixClient = FakeMatrixClient(
canLinkNewDeviceResult = { Result.success(false) }
canLinkNewDeviceResult = { Result.success(false) },
)
createPresenter(
matrixClient = matrixClient,
@@ -53,7 +54,7 @@ class LinkNewDeviceRootPresenterTest {
@Test
fun `present - error`() = runTest {
val matrixClient = FakeMatrixClient(
canLinkNewDeviceResult = { Result.failure(AN_EXCEPTION) }
canLinkNewDeviceResult = { Result.failure(AN_EXCEPTION) },
)
createPresenter(
matrixClient = matrixClient,
@@ -64,6 +65,28 @@ class LinkNewDeviceRootPresenterTest {
}
}
@Test
fun `present - link new mobile device`() = runTest {
val linkMobileHandler = FakeLinkMobileHandler(
startResult = {},
)
val matrixClient = FakeMatrixClient(
canLinkNewDeviceResult = { Result.success(true) },
sessionCoroutineScope = backgroundScope,
createLinkMobileHandlerResult = { Result.success(linkMobileHandler) }
)
createPresenter(
matrixClient = matrixClient,
).test {
skipItems(1)
val initialState = awaitItem()
assertThat(initialState.isSupported.dataOrNull()).isTrue()
initialState.eventSink(LinkNewDeviceRootEvent.LinkMobileDevice)
val loadingState = awaitItem()
assertThat(loadingState.qrCodeData.isLoading()).isTrue()
}
}
private fun createPresenter(
matrixClient: MatrixClient = FakeMatrixClient(),
linkNewMobileHandler: LinkNewMobileHandler = LinkNewMobileHandler(matrixClient),