Browse Source

Add missing test

test/jme/compound-poc
Florian Renaud 1 year ago
parent
commit
c9edd8c6cd
  1. 44
      features/createroom/impl/src/test/kotlin/io/element/android/features/createroom/impl/configureroom/ConfigureRoomPresenterTests.kt

44
features/createroom/impl/src/test/kotlin/io/element/android/features/createroom/impl/configureroom/ConfigureRoomPresenterTests.kt

@ -29,6 +29,9 @@ import io.element.android.features.userlist.api.UserListDataStore @@ -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.A_MESSAGE
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.test.runTest
import org.junit.Before
@ -40,10 +43,12 @@ import org.robolectric.RobolectricTestRunner @@ -40,10 +43,12 @@ import org.robolectric.RobolectricTestRunner
class ConfigureRoomPresenterTests {
private lateinit var presenter: ConfigureRoomPresenter
private lateinit var userListDataStore: UserListDataStore
@Before
fun setup() {
presenter = ConfigureRoomPresenter(CreateRoomDataStore(UserListDataStore()))
userListDataStore = UserListDataStore()
presenter = ConfigureRoomPresenter(CreateRoomDataStore(userListDataStore))
}
@Test
@ -99,32 +104,49 @@ class ConfigureRoomPresenterTests { @@ -99,32 +104,49 @@ class ConfigureRoomPresenterTests {
presenter.present()
}.test {
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
initialState.eventSink(ConfigureRoomEvents.RoomNameChanged(A_ROOM_NAME))
var newState = awaitItem()
config = config.copy(roomName = A_ROOM_NAME)
assertThat(newState.config).isEqualTo(config)
newState = awaitItem()
expectedConfig = expectedConfig.copy(roomName = A_ROOM_NAME)
assertThat(newState.config).isEqualTo(expectedConfig)
// Room topic
newState.eventSink(ConfigureRoomEvents.TopicChanged(A_MESSAGE))
newState = awaitItem()
config = config.copy(topic = A_MESSAGE)
assertThat(newState.config).isEqualTo(config)
expectedConfig = expectedConfig.copy(topic = A_MESSAGE)
assertThat(newState.config).isEqualTo(expectedConfig)
// Room avatar
val anUri = Uri.parse(AN_AVATAR_URL)
newState.eventSink(ConfigureRoomEvents.AvatarUriChanged(anUri))
newState = awaitItem()
config = config.copy(avatarUrl = anUri.toString())
assertThat(newState.config).isEqualTo(config)
expectedConfig = expectedConfig.copy(avatarUrl = anUri.toString())
assertThat(newState.config).isEqualTo(expectedConfig)
// Room privacy
newState.eventSink(ConfigureRoomEvents.RoomPrivacyChanged(RoomPrivacy.Public))
newState = awaitItem()
config = config.copy(privacy = RoomPrivacy.Public)
assertThat(newState.config).isEqualTo(config)
expectedConfig = expectedConfig.copy(privacy = RoomPrivacy.Public)
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…
Cancel
Save