Add missing test
This commit is contained in:
parent
086229f5dc
commit
05fc9ea217
2 changed files with 27 additions and 4 deletions
|
|
@ -64,7 +64,7 @@ class LinkNewDeviceRootPresenter(
|
||||||
|
|
||||||
fun handleEvent(event: LinkNewDeviceRootEvent) {
|
fun handleEvent(event: LinkNewDeviceRootEvent) {
|
||||||
when (event) {
|
when (event) {
|
||||||
is LinkNewDeviceRootEvent.LinkMobileDevice -> coroutineScope.launch {
|
LinkNewDeviceRootEvent.LinkMobileDevice -> coroutineScope.launch {
|
||||||
qrCodeData = AsyncData.Loading()
|
qrCodeData = AsyncData.Loading()
|
||||||
// Wait for the QrCode to be ready
|
// Wait for the QrCode to be ready
|
||||||
linkNewMobileHandler.reset()
|
linkNewMobileHandler.reset()
|
||||||
|
|
|
||||||
|
|
@ -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.api.MatrixClient
|
||||||
import io.element.android.libraries.matrix.test.AN_EXCEPTION
|
import io.element.android.libraries.matrix.test.AN_EXCEPTION
|
||||||
import io.element.android.libraries.matrix.test.FakeMatrixClient
|
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.WarmUpRule
|
||||||
import io.element.android.tests.testutils.test
|
import io.element.android.tests.testutils.test
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
|
|
@ -25,7 +26,7 @@ class LinkNewDeviceRootPresenterTest {
|
||||||
@Test
|
@Test
|
||||||
fun `present - initial state`() = runTest {
|
fun `present - initial state`() = runTest {
|
||||||
val matrixClient = FakeMatrixClient(
|
val matrixClient = FakeMatrixClient(
|
||||||
canLinkNewDeviceResult = { Result.success(true) }
|
canLinkNewDeviceResult = { Result.success(true) },
|
||||||
)
|
)
|
||||||
createPresenter(
|
createPresenter(
|
||||||
matrixClient = matrixClient,
|
matrixClient = matrixClient,
|
||||||
|
|
@ -39,7 +40,7 @@ class LinkNewDeviceRootPresenterTest {
|
||||||
@Test
|
@Test
|
||||||
fun `present - new login device not supported`() = runTest {
|
fun `present - new login device not supported`() = runTest {
|
||||||
val matrixClient = FakeMatrixClient(
|
val matrixClient = FakeMatrixClient(
|
||||||
canLinkNewDeviceResult = { Result.success(false) }
|
canLinkNewDeviceResult = { Result.success(false) },
|
||||||
)
|
)
|
||||||
createPresenter(
|
createPresenter(
|
||||||
matrixClient = matrixClient,
|
matrixClient = matrixClient,
|
||||||
|
|
@ -53,7 +54,7 @@ class LinkNewDeviceRootPresenterTest {
|
||||||
@Test
|
@Test
|
||||||
fun `present - error`() = runTest {
|
fun `present - error`() = runTest {
|
||||||
val matrixClient = FakeMatrixClient(
|
val matrixClient = FakeMatrixClient(
|
||||||
canLinkNewDeviceResult = { Result.failure(AN_EXCEPTION) }
|
canLinkNewDeviceResult = { Result.failure(AN_EXCEPTION) },
|
||||||
)
|
)
|
||||||
createPresenter(
|
createPresenter(
|
||||||
matrixClient = matrixClient,
|
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(
|
private fun createPresenter(
|
||||||
matrixClient: MatrixClient = FakeMatrixClient(),
|
matrixClient: MatrixClient = FakeMatrixClient(),
|
||||||
linkNewMobileHandler: LinkNewMobileHandler = LinkNewMobileHandler(matrixClient),
|
linkNewMobileHandler: LinkNewMobileHandler = LinkNewMobileHandler(matrixClient),
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue