Improve test.

This commit is contained in:
Benoit Marty 2025-12-10 10:36:15 +01:00
parent b34f2cddef
commit 0309b9d4cb
2 changed files with 12 additions and 9 deletions

View file

@ -20,6 +20,8 @@ import io.element.android.libraries.permissions.api.PermissionsEvents
import io.element.android.libraries.permissions.impl.action.FakePermissionActions import io.element.android.libraries.permissions.impl.action.FakePermissionActions
import io.element.android.libraries.permissions.test.InMemoryPermissionsStore import io.element.android.libraries.permissions.test.InMemoryPermissionsStore
import io.element.android.tests.testutils.WarmUpRule import io.element.android.tests.testutils.WarmUpRule
import io.element.android.tests.testutils.lambda.lambdaRecorder
import io.element.android.tests.testutils.lambda.value
import kotlinx.coroutines.test.runTest import kotlinx.coroutines.test.runTest
import org.junit.Rule import org.junit.Rule
import org.junit.Test import org.junit.Test
@ -107,7 +109,10 @@ class DefaultPermissionsPresenterTest {
FakeComposablePermissionStateProvider( FakeComposablePermissionStateProvider(
permissionState permissionState
) )
val permissionActions = FakePermissionActions() val openSettingsAction = lambdaRecorder<String, Unit> { }
val permissionActions = FakePermissionActions(
openSettingsAction = openSettingsAction,
)
val presenter = DefaultPermissionsPresenter( val presenter = DefaultPermissionsPresenter(
A_PERMISSION, A_PERMISSION,
permissionsStore, permissionsStore,
@ -122,10 +127,10 @@ class DefaultPermissionsPresenterTest {
initialState.eventSink.invoke(PermissionsEvents.RequestPermissions) initialState.eventSink.invoke(PermissionsEvents.RequestPermissions)
val withDialogState = awaitItem() val withDialogState = awaitItem()
assertThat(withDialogState.showDialog).isTrue() assertThat(withDialogState.showDialog).isTrue()
assertThat(permissionActions.openSettingsCalled).isFalse() openSettingsAction.assertions().isNeverCalled()
withDialogState.eventSink.invoke(PermissionsEvents.OpenSystemSettingAndCloseDialog) withDialogState.eventSink.invoke(PermissionsEvents.OpenSystemSettingAndCloseDialog)
assertThat(awaitItem().showDialog).isFalse() assertThat(awaitItem().showDialog).isFalse()
assertThat(permissionActions.openSettingsCalled).isTrue() openSettingsAction.assertions().isCalledOnce().with(value(A_PERMISSION))
} }
} }

View file

@ -8,14 +8,12 @@
package io.element.android.libraries.permissions.impl.action package io.element.android.libraries.permissions.impl.action
class FakePermissionActions( import io.element.android.tests.testutils.lambda.lambdaError
val openSettingsAction: (String) -> Unit = {}
) : PermissionActions {
var openSettingsCalled = false
private set
class FakePermissionActions(
val openSettingsAction: (String) -> Unit = { lambdaError() }
) : PermissionActions {
override fun openSettings(permission: String) { override fun openSettings(permission: String) {
openSettingsAction(permission) openSettingsAction(permission)
openSettingsCalled = true
} }
} }