EditRoomAddressEvents -> EditRoomAddressEvent

This commit is contained in:
Benoit Marty
2026-08-25 10:23:12 +02:00
parent b8b6dc1df6
commit deb08a3a6c
7 changed files with 36 additions and 36 deletions
@@ -8,8 +8,8 @@
package io.element.android.features.securityandprivacy.impl.editroomaddress
sealed interface EditRoomAddressEvents {
data object Save : EditRoomAddressEvents
data object DismissError : EditRoomAddressEvents
data class RoomAddressChanged(val roomAddress: String) : EditRoomAddressEvents
sealed interface EditRoomAddressEvent {
data object Save : EditRoomAddressEvent
data object DismissError : EditRoomAddressEvent
data class RoomAddressChanged(val roomAddress: String) : EditRoomAddressEvent
}
@@ -63,17 +63,17 @@ class EditRoomAddressPresenter(
)
}
fun handleEvent(event: EditRoomAddressEvents) {
fun handleEvent(event: EditRoomAddressEvent) {
when (event) {
EditRoomAddressEvents.Save -> coroutineScope.save(
EditRoomAddressEvent.Save -> coroutineScope.save(
saveAction = saveAction,
serverName = homeserverName,
newRoomAddress = newRoomAddress
)
is EditRoomAddressEvents.RoomAddressChanged -> {
is EditRoomAddressEvent.RoomAddressChanged -> {
newRoomAddress = event.roomAddress
}
EditRoomAddressEvents.DismissError -> {
EditRoomAddressEvent.DismissError -> {
saveAction.value = AsyncAction.Uninitialized
}
}
@@ -16,7 +16,7 @@ data class EditRoomAddressState(
val roomAddress: String,
val roomAddressValidity: RoomAddressValidity,
val saveAction: AsyncAction<Unit>,
val eventSink: (EditRoomAddressEvents) -> Unit
val eventSink: (EditRoomAddressEvent) -> Unit
) {
val canBeSaved = roomAddressValidity == RoomAddressValidity.Valid
}
@@ -28,7 +28,7 @@ fun anEditRoomAddressState(
roomAddressValidity: RoomAddressValidity = RoomAddressValidity.Unknown,
homeserverName: String = ":myserver.org",
saveAction: AsyncAction<Unit> = AsyncAction.Uninitialized,
eventSink: (EditRoomAddressEvents) -> Unit = {}
eventSink: (EditRoomAddressEvent) -> Unit = {}
) = EditRoomAddressState(
roomAddress = roomAddress,
roomAddressValidity = roomAddressValidity,
@@ -46,7 +46,7 @@ fun EditRoomAddressView(
isSaveActionEnabled = state.canBeSaved,
onBackClick = onBackClick,
onSaveClick = {
state.eventSink(EditRoomAddressEvents.Save)
state.eventSink(EditRoomAddressEvent.Save)
},
)
}
@@ -63,7 +63,7 @@ fun EditRoomAddressView(
homeserverName = state.homeserverName,
addressValidity = state.roomAddressValidity,
onAddressChange = {
state.eventSink(EditRoomAddressEvents.RoomAddressChanged(it))
state.eventSink(EditRoomAddressEvent.RoomAddressChanged(it))
},
label = stringResource(R.string.screen_edit_room_address_title),
supportingText = stringResource(R.string.screen_edit_room_address_room_address_section_footer),
@@ -81,8 +81,8 @@ fun EditRoomAddressView(
},
onSuccess = {},
errorMessage = { stringResource(CommonStrings.error_unknown) },
onRetry = { state.eventSink(EditRoomAddressEvents.Save) },
onErrorDismiss = { state.eventSink(EditRoomAddressEvents.DismissError) },
onRetry = { state.eventSink(EditRoomAddressEvent.Save) },
onErrorDismiss = { state.eventSink(EditRoomAddressEvent.DismissError) },
)
}
}
@@ -97,7 +97,7 @@ class EditRoomAddressPresenterTest {
val presenter = createEditRoomAddressPresenter(roomAliasHelper = roomAliasHelper)
presenter.test {
with(awaitItem()) {
eventSink(EditRoomAddressEvents.RoomAddressChanged("invalid"))
eventSink(EditRoomAddressEvent.RoomAddressChanged("invalid"))
}
with(awaitItem()) {
assertThat(roomAddress).isEqualTo("invalid")
@@ -115,7 +115,7 @@ class EditRoomAddressPresenterTest {
val presenter = createEditRoomAddressPresenter()
presenter.test {
with(awaitItem()) {
eventSink(EditRoomAddressEvents.RoomAddressChanged("valid"))
eventSink(EditRoomAddressEvent.RoomAddressChanged("valid"))
}
with(awaitItem()) {
assertThat(roomAddress).isEqualTo("valid")
@@ -134,7 +134,7 @@ class EditRoomAddressPresenterTest {
val presenter = createEditRoomAddressPresenter(client = client)
presenter.test {
with(awaitItem()) {
eventSink(EditRoomAddressEvents.RoomAddressChanged("valid"))
eventSink(EditRoomAddressEvent.RoomAddressChanged("valid"))
}
with(awaitItem()) {
assertThat(roomAddress).isEqualTo("valid")
@@ -163,13 +163,13 @@ class EditRoomAddressPresenterTest {
val presenter = createEditRoomAddressPresenter(room = room, navigator = navigator)
presenter.test {
with(awaitItem()) {
eventSink(EditRoomAddressEvents.RoomAddressChanged("valid"))
eventSink(EditRoomAddressEvent.RoomAddressChanged("valid"))
}
skipItems(1)
with(awaitItem()) {
assertThat(roomAddressValidity).isEqualTo(RoomAddressValidity.Valid)
assertThat(canBeSaved).isTrue()
eventSink(EditRoomAddressEvents.Save)
eventSink(EditRoomAddressEvent.Save)
}
with(awaitItem()) {
assertThat(saveAction).isEqualTo(AsyncAction.Loading)
@@ -212,13 +212,13 @@ class EditRoomAddressPresenterTest {
val presenter = createEditRoomAddressPresenter(room = room, navigator = navigator)
presenter.test {
with(awaitItem()) {
eventSink(EditRoomAddressEvents.RoomAddressChanged("valid"))
eventSink(EditRoomAddressEvent.RoomAddressChanged("valid"))
}
skipItems(1)
with(awaitItem()) {
assertThat(roomAddressValidity).isEqualTo(RoomAddressValidity.Valid)
assertThat(canBeSaved).isTrue()
eventSink(EditRoomAddressEvents.Save)
eventSink(EditRoomAddressEvent.Save)
}
with(awaitItem()) {
assertThat(saveAction).isEqualTo(AsyncAction.Loading)
@@ -263,13 +263,13 @@ class EditRoomAddressPresenterTest {
val presenter = createEditRoomAddressPresenter(room = room, navigator = navigator)
presenter.test {
with(awaitItem()) {
eventSink(EditRoomAddressEvents.RoomAddressChanged("valid"))
eventSink(EditRoomAddressEvent.RoomAddressChanged("valid"))
}
skipItems(1)
with(awaitItem()) {
assertThat(roomAddressValidity).isEqualTo(RoomAddressValidity.Valid)
assertThat(canBeSaved).isTrue()
eventSink(EditRoomAddressEvents.Save)
eventSink(EditRoomAddressEvent.Save)
}
with(awaitItem()) {
assertThat(saveAction).isEqualTo(AsyncAction.Loading)
@@ -309,13 +309,13 @@ class EditRoomAddressPresenterTest {
)
presenter.test {
with(awaitItem()) {
eventSink(EditRoomAddressEvents.RoomAddressChanged("valid"))
eventSink(EditRoomAddressEvent.RoomAddressChanged("valid"))
}
skipItems(1)
with(awaitItem()) {
assertThat(roomAddressValidity).isEqualTo(RoomAddressValidity.Valid)
assertThat(canBeSaved).isTrue()
eventSink(EditRoomAddressEvents.Save)
eventSink(EditRoomAddressEvent.Save)
}
with(awaitItem()) {
assertThat(saveAction).isEqualTo(AsyncAction.Loading)
@@ -339,12 +339,12 @@ class EditRoomAddressPresenterTest {
)
presenter.test {
with(awaitItem()) {
eventSink(EditRoomAddressEvents.Save)
eventSink(EditRoomAddressEvent.Save)
}
assertThat(awaitItem().saveAction).isInstanceOf(AsyncAction.Loading::class.java)
with(awaitItem()) {
assertThat(saveAction).isInstanceOf(AsyncAction.Failure::class.java)
eventSink(EditRoomAddressEvents.DismissError)
eventSink(EditRoomAddressEvent.DismissError)
}
with(awaitItem()) {
assertThat(saveAction).isEqualTo(AsyncAction.Uninitialized)
@@ -39,7 +39,7 @@ class EditRoomAddressViewTest : RobolectricTest() {
@Test
fun `click on disabled save doesn't emit event`() = runAndroidComposeUiTest {
val recorder = EventsRecorder<EditRoomAddressEvents>(expectEvents = false)
val recorder = EventsRecorder<EditRoomAddressEvent>(expectEvents = false)
val state = anEditRoomAddressState(eventSink = recorder)
setEditRoomAddressView(state)
clickOn(CommonStrings.action_save)
@@ -48,7 +48,7 @@ class EditRoomAddressViewTest : RobolectricTest() {
@Test
fun `click on enabled save emits the expected event`() = runAndroidComposeUiTest {
val recorder = EventsRecorder<EditRoomAddressEvents>()
val recorder = EventsRecorder<EditRoomAddressEvent>()
val state = anEditRoomAddressState(
roomAddress = "room",
roomAddressValidity = RoomAddressValidity.Valid,
@@ -56,12 +56,12 @@ class EditRoomAddressViewTest : RobolectricTest() {
)
setEditRoomAddressView(state)
clickOn(CommonStrings.action_save)
recorder.assertSingle(EditRoomAddressEvents.Save)
recorder.assertSingle(EditRoomAddressEvent.Save)
}
@Test
fun `text changes on text field emits the expected event`() = runAndroidComposeUiTest {
val recorder = EventsRecorder<EditRoomAddressEvents>()
val recorder = EventsRecorder<EditRoomAddressEvent>()
val state = anEditRoomAddressState(
roomAddress = "",
eventSink = recorder
@@ -69,12 +69,12 @@ class EditRoomAddressViewTest : RobolectricTest() {
setEditRoomAddressView(state)
onNodeWithTag(TestTags.roomAddressField.value).performTextInput("alias")
recorder.assertSingle(EditRoomAddressEvents.RoomAddressChanged("alias"))
recorder.assertSingle(EditRoomAddressEvent.RoomAddressChanged("alias"))
}
@Test
fun `click on dismiss error emits the expected event`() = runAndroidComposeUiTest {
val recorder = EventsRecorder<EditRoomAddressEvents>()
val recorder = EventsRecorder<EditRoomAddressEvent>()
val state = anEditRoomAddressState(
roomAddress = "",
saveAction = AsyncAction.Failure(IllegalStateException()),
@@ -82,12 +82,12 @@ class EditRoomAddressViewTest : RobolectricTest() {
)
setEditRoomAddressView(state)
clickOn(CommonStrings.action_cancel)
recorder.assertSingle(EditRoomAddressEvents.DismissError)
recorder.assertSingle(EditRoomAddressEvent.DismissError)
}
@Test
fun `click on retry error emits the expected event`() = runAndroidComposeUiTest {
val recorder = EventsRecorder<EditRoomAddressEvents>()
val recorder = EventsRecorder<EditRoomAddressEvent>()
val state = anEditRoomAddressState(
roomAddress = "",
saveAction = AsyncAction.Failure(IllegalStateException()),
@@ -95,7 +95,7 @@ class EditRoomAddressViewTest : RobolectricTest() {
)
setEditRoomAddressView(state)
clickOn(CommonStrings.action_retry)
recorder.assertSingle(EditRoomAddressEvents.Save)
recorder.assertSingle(EditRoomAddressEvent.Save)
}
}