|
|
|
@ -20,12 +20,12 @@ import app.cash.molecule.RecompositionClock
@@ -20,12 +20,12 @@ import app.cash.molecule.RecompositionClock
|
|
|
|
|
import app.cash.molecule.moleculeFlow |
|
|
|
|
import app.cash.turbine.test |
|
|
|
|
import com.google.common.truth.Truth |
|
|
|
|
import io.element.android.features.roomdetails.aMatrixClient |
|
|
|
|
import io.element.android.features.roomdetails.aMatrixRoom |
|
|
|
|
import io.element.android.features.roomdetails.aRoomMember |
|
|
|
|
import io.element.android.features.roomdetails.impl.members.details.RoomMemberDetailsEvents |
|
|
|
|
import io.element.android.features.roomdetails.impl.members.details.RoomMemberDetailsPresenter |
|
|
|
|
import io.element.android.features.roomdetails.impl.members.details.RoomMemberDetailsState |
|
|
|
|
import io.element.android.libraries.matrix.test.A_SESSION_ID |
|
|
|
|
import kotlinx.coroutines.ExperimentalCoroutinesApi |
|
|
|
|
import kotlinx.coroutines.test.runTest |
|
|
|
|
import org.junit.Test |
|
|
|
@ -33,6 +33,8 @@ import org.junit.Test
@@ -33,6 +33,8 @@ import org.junit.Test
|
|
|
|
|
@ExperimentalCoroutinesApi |
|
|
|
|
class RoomMemberDetailsPresenterTests { |
|
|
|
|
|
|
|
|
|
private val matrixClient = aMatrixClient() |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
fun `present - returns the room member's data, then updates it if needed`() = runTest { |
|
|
|
|
val room = aMatrixRoom().apply { |
|
|
|
@ -40,7 +42,7 @@ class RoomMemberDetailsPresenterTests {
@@ -40,7 +42,7 @@ class RoomMemberDetailsPresenterTests {
|
|
|
|
|
givenUserAvatarUrlResult(Result.success("A custom avatar")) |
|
|
|
|
} |
|
|
|
|
val roomMember = aRoomMember(displayName = "Alice") |
|
|
|
|
val presenter = RoomMemberDetailsPresenter(A_SESSION_ID, room, roomMember) |
|
|
|
|
val presenter = RoomMemberDetailsPresenter(matrixClient, room, roomMember) |
|
|
|
|
moleculeFlow(RecompositionClock.Immediate) { |
|
|
|
|
presenter.present() |
|
|
|
|
}.test { |
|
|
|
@ -63,7 +65,7 @@ class RoomMemberDetailsPresenterTests {
@@ -63,7 +65,7 @@ class RoomMemberDetailsPresenterTests {
|
|
|
|
|
givenUserAvatarUrlResult(Result.failure(Throwable())) |
|
|
|
|
} |
|
|
|
|
val roomMember = aRoomMember(displayName = "Alice") |
|
|
|
|
val presenter = RoomMemberDetailsPresenter(A_SESSION_ID, room, roomMember) |
|
|
|
|
val presenter = RoomMemberDetailsPresenter(matrixClient, room, roomMember) |
|
|
|
|
moleculeFlow(RecompositionClock.Immediate) { |
|
|
|
|
presenter.present() |
|
|
|
|
}.test { |
|
|
|
@ -82,7 +84,7 @@ class RoomMemberDetailsPresenterTests {
@@ -82,7 +84,7 @@ class RoomMemberDetailsPresenterTests {
|
|
|
|
|
givenUserAvatarUrlResult(Result.success(null)) |
|
|
|
|
} |
|
|
|
|
val roomMember = aRoomMember(displayName = "Alice") |
|
|
|
|
val presenter = RoomMemberDetailsPresenter(A_SESSION_ID, room, roomMember) |
|
|
|
|
val presenter = RoomMemberDetailsPresenter(matrixClient, room, roomMember) |
|
|
|
|
moleculeFlow(RecompositionClock.Immediate) { |
|
|
|
|
presenter.present() |
|
|
|
|
}.test { |
|
|
|
@ -98,7 +100,7 @@ class RoomMemberDetailsPresenterTests {
@@ -98,7 +100,7 @@ class RoomMemberDetailsPresenterTests {
|
|
|
|
|
fun `present - BlockUser needing confirmation displays confirmation dialog`() = runTest { |
|
|
|
|
val room = aMatrixRoom() |
|
|
|
|
val roomMember = aRoomMember() |
|
|
|
|
val presenter = RoomMemberDetailsPresenter(A_SESSION_ID, room, roomMember) |
|
|
|
|
val presenter = RoomMemberDetailsPresenter(matrixClient, room, roomMember) |
|
|
|
|
moleculeFlow(RecompositionClock.Immediate) { |
|
|
|
|
presenter.present() |
|
|
|
|
}.test { |
|
|
|
@ -119,7 +121,7 @@ class RoomMemberDetailsPresenterTests {
@@ -119,7 +121,7 @@ class RoomMemberDetailsPresenterTests {
|
|
|
|
|
fun `present - BlockUser and UnblockUser without confirmation change the 'blocked' state`() = runTest { |
|
|
|
|
val room = aMatrixRoom() |
|
|
|
|
val roomMember = aRoomMember() |
|
|
|
|
val presenter = RoomMemberDetailsPresenter(A_SESSION_ID, room, roomMember) |
|
|
|
|
val presenter = RoomMemberDetailsPresenter(matrixClient, room, roomMember) |
|
|
|
|
moleculeFlow(RecompositionClock.Immediate) { |
|
|
|
|
presenter.present() |
|
|
|
|
}.test { |
|
|
|
@ -136,7 +138,7 @@ class RoomMemberDetailsPresenterTests {
@@ -136,7 +138,7 @@ class RoomMemberDetailsPresenterTests {
|
|
|
|
|
fun `present - UnblockUser needing confirmation displays confirmation dialog`() = runTest { |
|
|
|
|
val room = aMatrixRoom() |
|
|
|
|
val roomMember = aRoomMember() |
|
|
|
|
val presenter = RoomMemberDetailsPresenter(A_SESSION_ID, room, roomMember) |
|
|
|
|
val presenter = RoomMemberDetailsPresenter(matrixClient, room, roomMember) |
|
|
|
|
moleculeFlow(RecompositionClock.Immediate) { |
|
|
|
|
presenter.present() |
|
|
|
|
}.test { |
|
|
|
|