Favourite : add ui test on click

This commit is contained in:
ganfra 2024-02-12 17:46:25 +01:00
parent 35e4550244
commit cad2dc16fc
3 changed files with 29 additions and 7 deletions

View file

@ -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(

View file

@ -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
} }

View file

@ -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),
)
)
}
} }