Improve test.
This commit is contained in:
parent
b34f2cddef
commit
0309b9d4cb
2 changed files with 12 additions and 9 deletions
|
|
@ -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))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue