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.test.InMemoryPermissionsStore
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 org.junit.Rule
import org.junit.Test
@@ -107,7 +109,10 @@ class DefaultPermissionsPresenterTest {
FakeComposablePermissionStateProvider(
permissionState
)
val permissionActions = FakePermissionActions()
val openSettingsAction = lambdaRecorder<String, Unit> { }
val permissionActions = FakePermissionActions(
openSettingsAction = openSettingsAction,
)
val presenter = DefaultPermissionsPresenter(
A_PERMISSION,
permissionsStore,
@@ -122,10 +127,10 @@ class DefaultPermissionsPresenterTest {
initialState.eventSink.invoke(PermissionsEvents.RequestPermissions)
val withDialogState = awaitItem()
assertThat(withDialogState.showDialog).isTrue()
assertThat(permissionActions.openSettingsCalled).isFalse()
openSettingsAction.assertions().isNeverCalled()
withDialogState.eventSink.invoke(PermissionsEvents.OpenSystemSettingAndCloseDialog)
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
class FakePermissionActions(
val openSettingsAction: (String) -> Unit = {}
) : PermissionActions {
var openSettingsCalled = false
private set
import io.element.android.tests.testutils.lambda.lambdaError
class FakePermissionActions(
val openSettingsAction: (String) -> Unit = { lambdaError() }
) : PermissionActions {
override fun openSettings(permission: String) {
openSettingsAction(permission)
openSettingsCalled = true
}
}