Browse Source

Add missing test for SecureBackupEnablePresenter

pull/2120/head
Benoit Marty 9 months ago
parent
commit
35baaa6209
  1. 21
      features/securebackup/impl/src/test/kotlin/io/element/android/features/securebackup/impl/enable/SecureBackupEnablePresenterTest.kt
  2. 7
      libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/encryption/FakeEncryptionService.kt

21
features/securebackup/impl/src/test/kotlin/io/element/android/features/securebackup/impl/enable/SecureBackupEnablePresenterTest.kt

@ -22,6 +22,7 @@ import app.cash.turbine.test @@ -22,6 +22,7 @@ import app.cash.turbine.test
import com.google.common.truth.Truth.assertThat
import io.element.android.libraries.architecture.Async
import io.element.android.libraries.matrix.api.encryption.EncryptionService
import io.element.android.libraries.matrix.test.AN_EXCEPTION
import io.element.android.libraries.matrix.test.encryption.FakeEncryptionService
import io.element.android.tests.testutils.WarmUpRule
import kotlinx.coroutines.test.runTest
@ -58,6 +59,26 @@ class SecureBackupEnablePresenterTest { @@ -58,6 +59,26 @@ class SecureBackupEnablePresenterTest {
}
}
@Test
fun `present - user enable backup with error`() = runTest {
val encryptionService = FakeEncryptionService()
encryptionService.givenEnableBackupsFailure(AN_EXCEPTION)
val presenter = createPresenter(encryptionService = encryptionService)
moleculeFlow(RecompositionMode.Immediate) {
presenter.present()
}.test {
val initialState = awaitItem()
initialState.eventSink(SecureBackupEnableEvents.EnableBackup)
val loadingState = awaitItem()
assertThat(loadingState.enableAction).isInstanceOf(Async.Loading::class.java)
val errorState = awaitItem()
assertThat(errorState.enableAction).isEqualTo(Async.Failure<Unit>(AN_EXCEPTION))
errorState.eventSink(SecureBackupEnableEvents.DismissDialog)
val finalState = awaitItem()
assertThat(finalState.enableAction).isEqualTo(Async.Uninitialized)
}
}
private fun createPresenter(
encryptionService: EncryptionService = FakeEncryptionService(),
) = SecureBackupEnablePresenter(

7
libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/encryption/FakeEncryptionService.kt

@ -36,7 +36,14 @@ class FakeEncryptionService : EncryptionService { @@ -36,7 +36,14 @@ class FakeEncryptionService : EncryptionService {
private var recoverFailure: Exception? = null
private var doesBackupExistOnServerResult: Result<Boolean> = Result.success(true)
private var enableBackupsFailure: Exception? = null
fun givenEnableBackupsFailure(exception: Exception?) {
enableBackupsFailure = exception
}
override suspend fun enableBackups(): Result<Unit> = simulateLongTask {
enableBackupsFailure?.let { return Result.failure(it) }
return Result.success(Unit)
}

Loading…
Cancel
Save