Add test on TimelineEvents.ShowShieldDialog and TimelineEvents.HideShieldDialog

This commit is contained in:
Benoit Marty
2024-08-16 10:45:20 +02:00
parent 970d11ffd1
commit 750ecbee82
2 changed files with 22 additions and 1 deletions

View File

@@ -75,4 +75,4 @@ internal fun TimelineItemEventRowShieldPreview() = ElementPreview {
private fun aWarningShield() = MessageShield.AuthenticityNotGuaranteed(isCritical = false)
private fun aCriticalShield() = MessageShield.UnverifiedIdentity(isCritical = true)
internal fun aCriticalShield() = MessageShield.UnverifiedIdentity(isCritical = true)

View File

@@ -24,6 +24,7 @@ import com.google.common.truth.Truth.assertThat
import io.element.android.features.messages.impl.FakeMessagesNavigator
import io.element.android.features.messages.impl.fixtures.aMessageEvent
import io.element.android.features.messages.impl.fixtures.aTimelineItemsFactory
import io.element.android.features.messages.impl.timeline.components.aCriticalShield
import io.element.android.features.messages.impl.timeline.factories.TimelineItemsFactory
import io.element.android.features.messages.impl.timeline.model.NewEventState
import io.element.android.features.messages.impl.timeline.model.TimelineItem
@@ -591,6 +592,26 @@ private const val FAKE_UNIQUE_ID_2 = "FAKE_UNIQUE_ID_2"
}
}
@Test
fun `present - show shield hide shield`() = runTest {
val presenter = createTimelinePresenter()
val shield = aCriticalShield()
moleculeFlow(RecompositionMode.Immediate) {
presenter.present()
}.test {
val initialState = awaitFirstItem()
assertThat(initialState.messageShield).isNull()
initialState.eventSink(TimelineEvents.ShowShieldDialog(shield))
awaitItem().also { state ->
assertThat(state.messageShield).isEqualTo(shield)
state.eventSink(TimelineEvents.HideShieldDialog)
}
awaitItem().also { state ->
assertThat(state.messageShield).isNull()
}
}
}
@Test
fun `present - when room member info is loaded, read receipts info should be updated`() = runTest {
val timeline = FakeTimeline(