RoomAliasResolverEvents -> RoomAliasResolverEvent

This commit is contained in:
Benoit Marty
2026-08-25 10:16:32 +02:00
parent 4e2d99c968
commit 15569ef3e8
7 changed files with 15 additions and 15 deletions
@@ -8,7 +8,7 @@
package io.element.android.features.roomaliasresolver.impl package io.element.android.features.roomaliasresolver.impl
sealed interface RoomAliasResolverEvents { sealed interface RoomAliasResolverEvent {
data object Retry : RoomAliasResolverEvents data object Retry : RoomAliasResolverEvent
data object DismissError : RoomAliasResolverEvents data object DismissError : RoomAliasResolverEvent
} }
@@ -48,10 +48,10 @@ class RoomAliasResolverPresenter(
resolveAlias(resolveState) resolveAlias(resolveState)
} }
fun handleEvent(event: RoomAliasResolverEvents) { fun handleEvent(event: RoomAliasResolverEvent) {
when (event) { when (event) {
RoomAliasResolverEvents.Retry -> coroutineScope.resolveAlias(resolveState) RoomAliasResolverEvent.Retry -> coroutineScope.resolveAlias(resolveState)
RoomAliasResolverEvents.DismissError -> resolveState.value = AsyncData.Uninitialized RoomAliasResolverEvent.DismissError -> resolveState.value = AsyncData.Uninitialized
} }
} }
@@ -15,7 +15,7 @@ import io.element.android.libraries.matrix.api.room.alias.ResolvedRoomAlias
data class RoomAliasResolverState( data class RoomAliasResolverState(
val roomAlias: RoomAlias, val roomAlias: RoomAlias,
val resolveState: AsyncData<ResolvedRoomAlias>, val resolveState: AsyncData<ResolvedRoomAlias>,
val eventSink: (RoomAliasResolverEvents) -> Unit val eventSink: (RoomAliasResolverEvent) -> Unit
) )
sealed class RoomAliasResolverFailures : Exception() { sealed class RoomAliasResolverFailures : Exception() {
@@ -30,7 +30,7 @@ open class RoomAliasResolverStatePreviewParam : PreviewParameterProvider<RoomAli
fun aRoomAliasResolverState( fun aRoomAliasResolverState(
roomAlias: RoomAlias = A_ROOM_ALIAS, roomAlias: RoomAlias = A_ROOM_ALIAS,
resolveState: AsyncData<ResolvedRoomAlias> = AsyncData.Uninitialized, resolveState: AsyncData<ResolvedRoomAlias> = AsyncData.Uninitialized,
eventSink: (RoomAliasResolverEvents) -> Unit = {} eventSink: (RoomAliasResolverEvent) -> Unit = {}
) = RoomAliasResolverState( ) = RoomAliasResolverState(
roomAlias = roomAlias, roomAlias = roomAlias,
resolveState = resolveState, resolveState = resolveState,
@@ -66,9 +66,9 @@ fun RoomAliasResolverView(
ResolvedRoomAliasView( ResolvedRoomAliasView(
resolvedRoomAlias = state.resolveState, resolvedRoomAlias = state.resolveState,
onSuccess = onSuccess, onSuccess = onSuccess,
onRetry = { state.eventSink(RoomAliasResolverEvents.Retry) }, onRetry = { state.eventSink(RoomAliasResolverEvent.Retry) },
onDismissError = { onDismissError = {
state.eventSink(RoomAliasResolverEvents.DismissError) state.eventSink(RoomAliasResolverEvent.DismissError)
onBackClick() onBackClick()
} }
) )
@@ -91,7 +91,7 @@ class RoomAliasHelperPresenterTest {
assertThat(awaitItem().resolveState.isLoading()).isTrue() assertThat(awaitItem().resolveState.isLoading()).isTrue()
val resultState = awaitItem() val resultState = awaitItem()
assertThat(resultState.resolveState.errorOrNull()).isEqualTo(AN_EXCEPTION) assertThat(resultState.resolveState.errorOrNull()).isEqualTo(AN_EXCEPTION)
resultState.eventSink(RoomAliasResolverEvents.Retry) resultState.eventSink(RoomAliasResolverEvent.Retry)
val retryLoadingState = awaitItem() val retryLoadingState = awaitItem()
assertThat(retryLoadingState.resolveState.isLoading()).isTrue() assertThat(retryLoadingState.resolveState.isLoading()).isTrue()
val retryState = awaitItem() val retryState = awaitItem()
@@ -30,7 +30,7 @@ import org.junit.Test
class RoomAliasHelperViewTest : RobolectricTest() { class RoomAliasHelperViewTest : RobolectricTest() {
@Test @Test
fun `clicking on back invokes the expected callback`() = runAndroidComposeUiTest { fun `clicking on back invokes the expected callback`() = runAndroidComposeUiTest {
val eventsRecorder = EventsRecorder<RoomAliasResolverEvents>(expectEvents = false) val eventsRecorder = EventsRecorder<RoomAliasResolverEvent>(expectEvents = false)
ensureCalledOnce { ensureCalledOnce {
setRoomAliasResolverView( setRoomAliasResolverView(
aRoomAliasResolverState( aRoomAliasResolverState(
@@ -44,7 +44,7 @@ class RoomAliasHelperViewTest : RobolectricTest() {
@Test @Test
fun `clicking on Retry emits the expected Event`() = runAndroidComposeUiTest { fun `clicking on Retry emits the expected Event`() = runAndroidComposeUiTest {
val eventsRecorder = EventsRecorder<RoomAliasResolverEvents>() val eventsRecorder = EventsRecorder<RoomAliasResolverEvent>()
setRoomAliasResolverView( setRoomAliasResolverView(
aRoomAliasResolverState( aRoomAliasResolverState(
resolveState = AsyncData.Failure(Exception("Error")), resolveState = AsyncData.Failure(Exception("Error")),
@@ -52,13 +52,13 @@ class RoomAliasHelperViewTest : RobolectricTest() {
), ),
) )
clickOn(CommonStrings.action_retry) clickOn(CommonStrings.action_retry)
eventsRecorder.assertSingle(RoomAliasResolverEvents.Retry) eventsRecorder.assertSingle(RoomAliasResolverEvent.Retry)
} }
@Test @Test
fun `success state invokes the expected Callback`() = runAndroidComposeUiTest { fun `success state invokes the expected Callback`() = runAndroidComposeUiTest {
val result = aResolvedRoomAlias() val result = aResolvedRoomAlias()
val eventsRecorder = EventsRecorder<RoomAliasResolverEvents>(expectEvents = false) val eventsRecorder = EventsRecorder<RoomAliasResolverEvent>(expectEvents = false)
ensureCalledOnceWithParam(result) { ensureCalledOnceWithParam(result) {
setRoomAliasResolverView( setRoomAliasResolverView(
aRoomAliasResolverState( aRoomAliasResolverState(