Add missing test
This commit is contained in:
parent
16aefb2039
commit
d10e8b8f52
1 changed files with 33 additions and 11 deletions
|
|
@ -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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue