diff --git a/features/createroom/impl/src/test/kotlin/io/element/android/features/createroom/impl/root/CreateRoomRootPresenterTests.kt b/features/createroom/impl/src/test/kotlin/io/element/android/features/createroom/impl/root/CreateRoomRootPresenterTests.kt index e6c9155d88..f31cd3efd2 100644 --- a/features/createroom/impl/src/test/kotlin/io/element/android/features/createroom/impl/root/CreateRoomRootPresenterTests.kt +++ b/features/createroom/impl/src/test/kotlin/io/element/android/features/createroom/impl/root/CreateRoomRootPresenterTests.kt @@ -22,8 +22,8 @@ import app.cash.molecule.RecompositionClock import app.cash.molecule.moleculeFlow import app.cash.turbine.test import com.google.common.truth.Truth.assertThat -import io.element.android.features.createroom.impl.root.CreateRoomRootEvents -import io.element.android.features.createroom.impl.root.CreateRoomRootPresenter +import io.element.android.libraries.matrix.api.core.UserId +import io.element.android.libraries.matrix.ui.model.MatrixUser import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.test.runTest import org.junit.Test @@ -42,7 +42,7 @@ class CreateRoomRootPresenterTests { } @Test - fun `present - send event`() = runTest { + fun `present - trigger action buttons`() = runTest { val presenter = CreateRoomRootPresenter() moleculeFlow(RecompositionClock.Immediate) { presenter.present() @@ -52,4 +52,35 @@ class CreateRoomRootPresenterTests { initialState.eventSink(CreateRoomRootEvents.InvitePeople) // Not implemented yet } } + + @Test + fun `present - update search query`() = runTest { + val presenter = CreateRoomRootPresenter() + moleculeFlow(RecompositionClock.Immediate) { + presenter.present() + }.test { + val initialState = awaitItem() + val matrixIdQuery = "@name:matrix.org" + initialState.eventSink(CreateRoomRootEvents.UpdateSearchQuery(matrixIdQuery)) + assertThat(awaitItem().searchQuery).isEqualTo(matrixIdQuery) + assertThat(awaitItem().searchResults).containsExactly(MatrixUser(UserId(matrixIdQuery))) + + val notMatrixIdQuery = "name" + initialState.eventSink(CreateRoomRootEvents.UpdateSearchQuery(notMatrixIdQuery)) + assertThat(awaitItem().searchQuery).isEqualTo(notMatrixIdQuery) + assertThat(awaitItem().searchResults).isEmpty() + } + } + + @Test + fun `present - trigger start DM action`() = runTest { + val presenter = CreateRoomRootPresenter() + moleculeFlow(RecompositionClock.Immediate) { + presenter.present() + }.test { + val initialState = awaitItem() + val matrixUser = MatrixUser(UserId("@name:matrix.org")) + initialState.eventSink(CreateRoomRootEvents.StartDM(matrixUser)) + } + } }