mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-10-31 16:22:49 +00:00
EditRoomAddressEvents -> EditRoomAddressEvent
This commit is contained in:
+4
-4
@@ -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
|
||||
}
|
||||
+4
-4
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -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
|
||||
}
|
||||
|
||||
+1
-1
@@ -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,
|
||||
|
||||
+4
-4
@@ -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) },
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
+13
-13
@@ -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)
|
||||
|
||||
+9
-9
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user