Favourite : add ui test on click
This commit is contained in:
parent
35e4550244
commit
cad2dc16fc
3 changed files with 29 additions and 7 deletions
|
|
@ -43,7 +43,7 @@ import io.element.android.libraries.ui.strings.CommonStrings
|
||||||
@Composable
|
@Composable
|
||||||
fun RoomListContextMenu(
|
fun RoomListContextMenu(
|
||||||
contextMenu: RoomListState.ContextMenu.Shown,
|
contextMenu: RoomListState.ContextMenu.Shown,
|
||||||
eventSink: (RoomListEvents.RoomListBottomSheetEvents) -> Unit,
|
eventSink: (RoomListEvents.ContextMenuEvents) -> Unit,
|
||||||
onRoomSettingsClicked: (roomId: RoomId) -> Unit,
|
onRoomSettingsClicked: (roomId: RoomId) -> Unit,
|
||||||
) {
|
) {
|
||||||
ModalBottomSheet(
|
ModalBottomSheet(
|
||||||
|
|
|
||||||
|
|
@ -27,10 +27,10 @@ sealed interface RoomListEvents {
|
||||||
data object ToggleSearchResults : RoomListEvents
|
data object ToggleSearchResults : RoomListEvents
|
||||||
data class ShowContextMenu(val roomListRoomSummary: RoomListRoomSummary) : RoomListEvents
|
data class ShowContextMenu(val roomListRoomSummary: RoomListRoomSummary) : RoomListEvents
|
||||||
|
|
||||||
sealed interface RoomListBottomSheetEvents : RoomListEvents
|
sealed interface ContextMenuEvents : RoomListEvents
|
||||||
data object HideContextMenu : RoomListBottomSheetEvents
|
data object HideContextMenu : ContextMenuEvents
|
||||||
data class LeaveRoom(val roomId: RoomId) : RoomListBottomSheetEvents
|
data class LeaveRoom(val roomId: RoomId) : ContextMenuEvents
|
||||||
data class MarkAsRead(val roomId: RoomId) : RoomListBottomSheetEvents
|
data class MarkAsRead(val roomId: RoomId) : ContextMenuEvents
|
||||||
data class MarkAsUnread(val roomId: RoomId) : RoomListBottomSheetEvents
|
data class MarkAsUnread(val roomId: RoomId) : ContextMenuEvents
|
||||||
data class SetRoomIsFavorite(val roomId: RoomId, val isFavorite: Boolean) : RoomListBottomSheetEvents
|
data class SetRoomIsFavorite(val roomId: RoomId, val isFavorite: Boolean) : ContextMenuEvents
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,8 @@ package io.element.android.features.roomlist.impl
|
||||||
import androidx.activity.ComponentActivity
|
import androidx.activity.ComponentActivity
|
||||||
import androidx.compose.ui.test.junit4.createAndroidComposeRule
|
import androidx.compose.ui.test.junit4.createAndroidComposeRule
|
||||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||||
|
import io.element.android.libraries.architecture.AsyncData
|
||||||
|
import io.element.android.libraries.matrix.api.core.RoomId
|
||||||
import io.element.android.libraries.ui.strings.CommonStrings
|
import io.element.android.libraries.ui.strings.CommonStrings
|
||||||
import io.element.android.tests.testutils.EnsureCalledOnceWithParam
|
import io.element.android.tests.testutils.EnsureCalledOnceWithParam
|
||||||
import io.element.android.tests.testutils.EnsureNeverCalledWithParam
|
import io.element.android.tests.testutils.EnsureNeverCalledWithParam
|
||||||
|
|
@ -128,4 +130,24 @@ class RoomListContextMenuTest {
|
||||||
eventsRecorder.assertSingle(RoomListEvents.HideContextMenu)
|
eventsRecorder.assertSingle(RoomListEvents.HideContextMenu)
|
||||||
callback.assertSuccess()
|
callback.assertSuccess()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `clicking on Favourites generates expected Event`() {
|
||||||
|
val eventsRecorder = EventsRecorder<RoomListEvents>()
|
||||||
|
val contextMenu = aContextMenuShown(isDm = false, isFavorite = AsyncData.Success(false))
|
||||||
|
val callback = EnsureNeverCalledWithParam<RoomId>()
|
||||||
|
rule.setContent {
|
||||||
|
RoomListContextMenu(
|
||||||
|
contextMenu = contextMenu,
|
||||||
|
eventSink = eventsRecorder,
|
||||||
|
onRoomSettingsClicked = callback,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
rule.clickOn(CommonStrings.common_favourite)
|
||||||
|
eventsRecorder.assertList(
|
||||||
|
listOf(
|
||||||
|
RoomListEvents.SetRoomIsFavorite(contextMenu.roomId, true),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue