KnockRequestsBannerEvents -> KnockRequestsBannerEvent

This commit is contained in:
Benoit Marty
2026-08-25 09:58:15 +02:00
parent 19221a8042
commit 7da820464f
7 changed files with 19 additions and 19 deletions
@@ -8,7 +8,7 @@
package io.element.android.features.knockrequests.impl.banner
sealed interface KnockRequestsBannerEvents {
data object AcceptSingleRequest : KnockRequestsBannerEvents
data object Dismiss : KnockRequestsBannerEvents
sealed interface KnockRequestsBannerEvent {
data object AcceptSingleRequest : KnockRequestsBannerEvent
data object Dismiss : KnockRequestsBannerEvent
}
@@ -53,15 +53,15 @@ class KnockRequestsBannerPresenter(
}
}
fun handleEvent(event: KnockRequestsBannerEvents) {
fun handleEvent(event: KnockRequestsBannerEvent) {
when (event) {
is KnockRequestsBannerEvents.AcceptSingleRequest -> {
is KnockRequestsBannerEvent.AcceptSingleRequest -> {
sessionCoroutineScope.acceptSingleKnockRequest(
knockRequests = knockRequests,
displayAcceptError = showAcceptError,
)
}
is KnockRequestsBannerEvents.Dismiss -> {
is KnockRequestsBannerEvent.Dismiss -> {
sessionCoroutineScope.launch {
knockRequestsService.markAllKnockRequestsAsSeen()
}
@@ -20,7 +20,7 @@ data class KnockRequestsBannerState(
val knockRequests: ImmutableList<KnockRequestPresentable>,
val displayAcceptError: Boolean,
val canAccept: Boolean,
val eventSink: (KnockRequestsBannerEvents) -> Unit,
val eventSink: (KnockRequestsBannerEvent) -> Unit,
) {
val subtitle = knockRequests.singleOrNull()?.userId?.value
val reason = knockRequests.singleOrNull()?.reason
@@ -64,7 +64,7 @@ fun aKnockRequestsBannerState(
displayAcceptError: Boolean = false,
canAccept: Boolean = true,
isVisible: Boolean = true,
eventSink: (KnockRequestsBannerEvents) -> Unit = {}
eventSink: (KnockRequestsBannerEvent) -> Unit = {}
) = KnockRequestsBannerState(
knockRequests = knockRequests.toImmutableList(),
displayAcceptError = displayAcceptError,
@@ -109,11 +109,11 @@ private fun KnockRequestsBannerContent(
modifier: Modifier = Modifier,
) {
fun onDismissClick() {
state.eventSink(KnockRequestsBannerEvents.Dismiss)
state.eventSink(KnockRequestsBannerEvent.Dismiss)
}
fun onAcceptClick() {
state.eventSink(KnockRequestsBannerEvents.AcceptSingleRequest)
state.eventSink(KnockRequestsBannerEvent.AcceptSingleRequest)
}
Column(
@@ -146,7 +146,7 @@ import org.junit.Test
presenter.test {
skipItems(2)
awaitItem().also { state ->
state.eventSink(KnockRequestsBannerEvents.AcceptSingleRequest)
state.eventSink(KnockRequestsBannerEvent.AcceptSingleRequest)
}
awaitItem().also { state ->
assertThat(state.isVisible).isFalse()
@@ -182,7 +182,7 @@ import org.junit.Test
skipItems(2)
awaitItem().also { state ->
assertThat(state.knockRequests).hasSize(1)
state.eventSink(KnockRequestsBannerEvents.AcceptSingleRequest)
state.eventSink(KnockRequestsBannerEvent.AcceptSingleRequest)
}
awaitItem().also { state ->
assertThat(state.isVisible).isFalse()
@@ -206,7 +206,7 @@ import org.junit.Test
presenter.test {
skipItems(2)
awaitItem().also { state ->
state.eventSink(KnockRequestsBannerEvents.Dismiss)
state.eventSink(KnockRequestsBannerEvent.Dismiss)
}
advanceUntilIdle()
assert(markAsSeenLambda).isCalledExactly(3)
@@ -29,7 +29,7 @@ import org.junit.Test
class KnockRequestsBannerViewTest : RobolectricTest() {
@Test
fun `clicking on view on single request invoke the expected callback`() = runAndroidComposeUiTest {
val eventsRecorder = EventsRecorder<KnockRequestsBannerEvents>(expectEvents = false)
val eventsRecorder = EventsRecorder<KnockRequestsBannerEvent>(expectEvents = false)
ensureCalledOnce {
setKnockRequestsBannerView(
state = aKnockRequestsBannerState(
@@ -43,7 +43,7 @@ class KnockRequestsBannerViewTest : RobolectricTest() {
@Test
fun `clicking on view all when multiple requests invoke the expected callback`() = runAndroidComposeUiTest {
val eventsRecorder = EventsRecorder<KnockRequestsBannerEvents>(expectEvents = false)
val eventsRecorder = EventsRecorder<KnockRequestsBannerEvent>(expectEvents = false)
ensureCalledOnce {
setKnockRequestsBannerView(
state = aKnockRequestsBannerState(
@@ -62,19 +62,19 @@ class KnockRequestsBannerViewTest : RobolectricTest() {
@Test
fun `clicking on accept on a single request emit the expected event`() = runAndroidComposeUiTest {
val eventsRecorder = EventsRecorder<KnockRequestsBannerEvents>()
val eventsRecorder = EventsRecorder<KnockRequestsBannerEvent>()
setKnockRequestsBannerView(
state = aKnockRequestsBannerState(
eventSink = eventsRecorder,
),
)
clickOn(CommonStrings.action_accept)
eventsRecorder.assertSingle(KnockRequestsBannerEvents.AcceptSingleRequest)
eventsRecorder.assertSingle(KnockRequestsBannerEvent.AcceptSingleRequest)
}
@Test
fun `clicking on dismiss emit the expected event`() = runAndroidComposeUiTest {
val eventsRecorder = EventsRecorder<KnockRequestsBannerEvents>()
val eventsRecorder = EventsRecorder<KnockRequestsBannerEvent>()
setKnockRequestsBannerView(
state = aKnockRequestsBannerState(
eventSink = eventsRecorder,
@@ -82,7 +82,7 @@ class KnockRequestsBannerViewTest : RobolectricTest() {
)
val close = activity!!.getString(CommonStrings.action_close)
onNodeWithContentDescription(close).performClick()
eventsRecorder.assertSingle(KnockRequestsBannerEvents.Dismiss)
eventsRecorder.assertSingle(KnockRequestsBannerEvent.Dismiss)
}
}