Favourite : add ui test on click

This commit is contained in:
ganfra 2024-02-12 17:46:25 +01:00
parent 5ad08c3279
commit 949ffc6f8a
3 changed files with 29 additions and 7 deletions

View file

@ -43,7 +43,7 @@ import io.element.android.libraries.ui.strings.CommonStrings
@Composable
fun RoomListContextMenu(
contextMenu: RoomListState.ContextMenu.Shown,
eventSink: (RoomListEvents.RoomListBottomSheetEvents) -> Unit,
eventSink: (RoomListEvents.ContextMenuEvents) -> Unit,
onRoomSettingsClicked: (roomId: RoomId) -> Unit,
) {
ModalBottomSheet(

View file

@ -27,10 +27,10 @@ sealed interface RoomListEvents {
data object ToggleSearchResults : RoomListEvents
data class ShowContextMenu(val roomListRoomSummary: RoomListRoomSummary) : RoomListEvents
sealed interface RoomListBottomSheetEvents : RoomListEvents
data object HideContextMenu : RoomListBottomSheetEvents
data class LeaveRoom(val roomId: RoomId) : RoomListBottomSheetEvents
data class MarkAsRead(val roomId: RoomId) : RoomListBottomSheetEvents
data class MarkAsUnread(val roomId: RoomId) : RoomListBottomSheetEvents
data class SetRoomIsFavorite(val roomId: RoomId, val isFavorite: Boolean) : RoomListBottomSheetEvents
sealed interface ContextMenuEvents : RoomListEvents
data object HideContextMenu : ContextMenuEvents
data class LeaveRoom(val roomId: RoomId) : ContextMenuEvents
data class MarkAsRead(val roomId: RoomId) : ContextMenuEvents
data class MarkAsUnread(val roomId: RoomId) : ContextMenuEvents
data class SetRoomIsFavorite(val roomId: RoomId, val isFavorite: Boolean) : ContextMenuEvents
}

View file

@ -19,6 +19,8 @@ package io.element.android.features.roomlist.impl
import androidx.activity.ComponentActivity
import androidx.compose.ui.test.junit4.createAndroidComposeRule
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.tests.testutils.EnsureCalledOnceWithParam
import io.element.android.tests.testutils.EnsureNeverCalledWithParam
@ -128,4 +130,24 @@ class RoomListContextMenuTest {
eventsRecorder.assertSingle(RoomListEvents.HideContextMenu)
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),
)
)
}
}