mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-03 06:55:41 +00:00
Add missing test
This commit is contained in:
+33
-11
@@ -29,6 +29,9 @@ import io.element.android.features.userlist.api.UserListDataStore
|
|||||||
import io.element.android.libraries.matrix.test.AN_AVATAR_URL
|
import io.element.android.libraries.matrix.test.AN_AVATAR_URL
|
||||||
import io.element.android.libraries.matrix.test.A_MESSAGE
|
import io.element.android.libraries.matrix.test.A_MESSAGE
|
||||||
import io.element.android.libraries.matrix.test.A_ROOM_NAME
|
import io.element.android.libraries.matrix.test.A_ROOM_NAME
|
||||||
|
import io.element.android.libraries.matrix.ui.components.aMatrixUser
|
||||||
|
import kotlinx.collections.immutable.persistentListOf
|
||||||
|
import kotlinx.collections.immutable.toImmutableList
|
||||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
import org.junit.Before
|
import org.junit.Before
|
||||||
@@ -40,10 +43,12 @@ import org.robolectric.RobolectricTestRunner
|
|||||||
class ConfigureRoomPresenterTests {
|
class ConfigureRoomPresenterTests {
|
||||||
|
|
||||||
private lateinit var presenter: ConfigureRoomPresenter
|
private lateinit var presenter: ConfigureRoomPresenter
|
||||||
|
private lateinit var userListDataStore: UserListDataStore
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setup() {
|
fun setup() {
|
||||||
presenter = ConfigureRoomPresenter(CreateRoomDataStore(UserListDataStore()))
|
userListDataStore = UserListDataStore()
|
||||||
|
presenter = ConfigureRoomPresenter(CreateRoomDataStore(userListDataStore))
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -99,32 +104,49 @@ class ConfigureRoomPresenterTests {
|
|||||||
presenter.present()
|
presenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
var config = initialState.config
|
var expectedConfig = CreateRoomConfig()
|
||||||
|
assertThat(initialState.config).isEqualTo(expectedConfig)
|
||||||
|
|
||||||
|
// Select User
|
||||||
|
val selectedUser1 = aMatrixUser()
|
||||||
|
val selectedUser2 = aMatrixUser("@id_of_bob:server.org", "Bob")
|
||||||
|
userListDataStore.selectUser(selectedUser1)
|
||||||
|
skipItems(1)
|
||||||
|
userListDataStore.selectUser(selectedUser2)
|
||||||
|
var newState = awaitItem()
|
||||||
|
expectedConfig = expectedConfig.copy(invites = persistentListOf(selectedUser1, selectedUser2))
|
||||||
|
assertThat(newState.config).isEqualTo(expectedConfig)
|
||||||
|
|
||||||
// Room name
|
// Room name
|
||||||
initialState.eventSink(ConfigureRoomEvents.RoomNameChanged(A_ROOM_NAME))
|
initialState.eventSink(ConfigureRoomEvents.RoomNameChanged(A_ROOM_NAME))
|
||||||
var newState = awaitItem()
|
newState = awaitItem()
|
||||||
config = config.copy(roomName = A_ROOM_NAME)
|
expectedConfig = expectedConfig.copy(roomName = A_ROOM_NAME)
|
||||||
assertThat(newState.config).isEqualTo(config)
|
assertThat(newState.config).isEqualTo(expectedConfig)
|
||||||
|
|
||||||
// Room topic
|
// Room topic
|
||||||
newState.eventSink(ConfigureRoomEvents.TopicChanged(A_MESSAGE))
|
newState.eventSink(ConfigureRoomEvents.TopicChanged(A_MESSAGE))
|
||||||
newState = awaitItem()
|
newState = awaitItem()
|
||||||
config = config.copy(topic = A_MESSAGE)
|
expectedConfig = expectedConfig.copy(topic = A_MESSAGE)
|
||||||
assertThat(newState.config).isEqualTo(config)
|
assertThat(newState.config).isEqualTo(expectedConfig)
|
||||||
|
|
||||||
// Room avatar
|
// Room avatar
|
||||||
val anUri = Uri.parse(AN_AVATAR_URL)
|
val anUri = Uri.parse(AN_AVATAR_URL)
|
||||||
newState.eventSink(ConfigureRoomEvents.AvatarUriChanged(anUri))
|
newState.eventSink(ConfigureRoomEvents.AvatarUriChanged(anUri))
|
||||||
newState = awaitItem()
|
newState = awaitItem()
|
||||||
config = config.copy(avatarUrl = anUri.toString())
|
expectedConfig = expectedConfig.copy(avatarUrl = anUri.toString())
|
||||||
assertThat(newState.config).isEqualTo(config)
|
assertThat(newState.config).isEqualTo(expectedConfig)
|
||||||
|
|
||||||
// Room privacy
|
// Room privacy
|
||||||
newState.eventSink(ConfigureRoomEvents.RoomPrivacyChanged(RoomPrivacy.Public))
|
newState.eventSink(ConfigureRoomEvents.RoomPrivacyChanged(RoomPrivacy.Public))
|
||||||
newState = awaitItem()
|
newState = awaitItem()
|
||||||
config = config.copy(privacy = RoomPrivacy.Public)
|
expectedConfig = expectedConfig.copy(privacy = RoomPrivacy.Public)
|
||||||
assertThat(newState.config).isEqualTo(config)
|
assertThat(newState.config).isEqualTo(expectedConfig)
|
||||||
|
|
||||||
|
// Remove user
|
||||||
|
newState.eventSink(ConfigureRoomEvents.RemoveFromSelection(selectedUser1))
|
||||||
|
newState = awaitItem()
|
||||||
|
expectedConfig = expectedConfig.copy(invites = expectedConfig.invites.minus(selectedUser1).toImmutableList())
|
||||||
|
assertThat(newState.config).isEqualTo(expectedConfig)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user