Browse Source

Let FakeKnockRoom and FakeLogoutUseCase use simulateLongTask

pull/3672/head
Benoit Marty 4 days ago committed by Benoit Marty
parent
commit
269551366c
  1. 5
      features/joinroom/impl/src/test/kotlin/io/element/android/features/joinroom/impl/FakeKnockRoom.kt
  2. 5
      features/logout/test/src/main/kotlin/io/element/android/features/logout/test/FakeLogoutUseCase.kt
  3. 5
      features/preferences/impl/src/test/kotlin/io/element/android/features/preferences/impl/developer/DeveloperSettingsPresenterTest.kt

5
features/joinroom/impl/src/test/kotlin/io/element/android/features/joinroom/impl/FakeKnockRoom.kt

@ -9,9 +9,12 @@ package io.element.android.features.joinroom.impl @@ -9,9 +9,12 @@ package io.element.android.features.joinroom.impl
import io.element.android.features.joinroom.impl.di.KnockRoom
import io.element.android.libraries.matrix.api.core.RoomId
import io.element.android.tests.testutils.simulateLongTask
class FakeKnockRoom(
var lambda: (RoomId) -> Result<Unit> = { Result.success(Unit) }
) : KnockRoom {
override suspend fun invoke(roomId: RoomId) = lambda(roomId)
override suspend fun invoke(roomId: RoomId) = simulateLongTask {
lambda(roomId)
}
}

5
features/logout/test/src/main/kotlin/io/element/android/features/logout/test/FakeLogoutUseCase.kt

@ -9,11 +9,12 @@ package io.element.android.features.logout.test @@ -9,11 +9,12 @@ package io.element.android.features.logout.test
import io.element.android.features.logout.api.LogoutUseCase
import io.element.android.tests.testutils.lambda.lambdaError
import io.element.android.tests.testutils.simulateLongTask
class FakeLogoutUseCase(
var logoutLambda: (Boolean) -> String? = { lambdaError() }
) : LogoutUseCase {
override suspend fun logout(ignoreSdkError: Boolean): String? {
return logoutLambda(ignoreSdkError)
override suspend fun logout(ignoreSdkError: Boolean): String? = simulateLongTask {
logoutLambda(ignoreSdkError)
}
}

5
features/preferences/impl/src/test/kotlin/io/element/android/features/preferences/impl/developer/DeveloperSettingsPresenterTest.kt

@ -26,6 +26,7 @@ import io.element.android.libraries.preferences.test.InMemoryAppPreferencesStore @@ -26,6 +26,7 @@ import io.element.android.libraries.preferences.test.InMemoryAppPreferencesStore
import io.element.android.tests.testutils.WarmUpRule
import io.element.android.tests.testutils.awaitLastSequentialItem
import io.element.android.tests.testutils.lambda.lambdaRecorder
import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.first
import kotlinx.coroutines.test.runTest
import org.junit.Rule
@ -168,11 +169,15 @@ class DeveloperSettingsPresenterTest { @@ -168,11 +169,15 @@ class DeveloperSettingsPresenterTest {
initialState.eventSink(DeveloperSettingsEvents.SetSimplifiedSlidingSyncEnabled(true))
assertThat(awaitItem().isSimpleSlidingSyncEnabled).isTrue()
assertThat(preferences.isSimplifiedSlidingSyncEnabledFlow().first()).isTrue()
// Give time for the logout to be called, but for some reason using runCurrent() is not enough
delay(2)
logoutCallRecorder.assertions().isCalledOnce()
initialState.eventSink(DeveloperSettingsEvents.SetSimplifiedSlidingSyncEnabled(false))
assertThat(awaitItem().isSimpleSlidingSyncEnabled).isFalse()
assertThat(preferences.isSimplifiedSlidingSyncEnabledFlow().first()).isFalse()
// Give time for the logout to be called, but for some reason using runCurrent() is not enough
delay(2)
logoutCallRecorder.assertions().isCalledExactly(times = 2)
}
}

Loading…
Cancel
Save