Browse Source

Fix tests

test/jme/compound-poc
Florian Renaud 1 year ago
parent
commit
cc13629f96
  1. 21
      features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/configureroom/ConfigureRoomPresenter.kt
  2. 3
      features/createroom/impl/src/test/kotlin/io/element/android/features/createroom/impl/addpeople/AddPeoplePresenterTests.kt
  3. 23
      features/createroom/impl/src/test/kotlin/io/element/android/features/createroom/impl/configureroom/ConfigureRoomPresenterTests.kt

21
features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/configureroom/ConfigureRoomPresenter.kt

@ -41,16 +41,17 @@ class ConfigureRoomPresenter @Inject constructor(
fun handleEvents(event: ConfigureRoomEvents) { fun handleEvents(event: ConfigureRoomEvents) {
when (event) { when (event) {
is ConfigureRoomEvents.AvatarUriChanged -> dataStore.setCreateRoomConfig(createRoomConfig.value.copy(avatarUrl = event.uri?.toString())) is ConfigureRoomEvents.AvatarUriChanged ->
is ConfigureRoomEvents.RoomNameChanged -> dataStore.setCreateRoomConfig(createRoomConfig.value.copy(roomName = event.name)) dataStore.setCreateRoomConfig(createRoomConfig.value.copy(avatarUrl = event.uri?.toString()))
is ConfigureRoomEvents.TopicChanged -> dataStore.setCreateRoomConfig(createRoomConfig.value.copy(topic = event.topic.takeUnless { it.isEmpty() })) is ConfigureRoomEvents.RoomNameChanged ->
is ConfigureRoomEvents.RoomPrivacyChanged -> dataStore.setCreateRoomConfig(createRoomConfig.value.copy(privacy = event.privacy)) dataStore.setCreateRoomConfig(createRoomConfig.value.copy(roomName = event.name.takeUnless { it.isEmpty() }))
is ConfigureRoomEvents.RemoveFromSelection -> dataStore.setCreateRoomConfig( is ConfigureRoomEvents.TopicChanged ->
createRoomConfig.value.copy( dataStore.setCreateRoomConfig(createRoomConfig.value.copy(topic = event.topic.takeUnless { it.isEmpty() }))
invites = createRoomConfig.value.invites.minus( is ConfigureRoomEvents.RoomPrivacyChanged ->
event.matrixUser dataStore.setCreateRoomConfig(createRoomConfig.value.copy(privacy = event.privacy))
).toImmutableList() is ConfigureRoomEvents.RemoveFromSelection ->
) dataStore.setCreateRoomConfig(
createRoomConfig.value.copy(invites = createRoomConfig.value.invites.minus(event.matrixUser).toImmutableList())
) )
ConfigureRoomEvents.CreateRoom -> Unit ConfigureRoomEvents.CreateRoom -> Unit
} }

3
features/createroom/impl/src/test/kotlin/io/element/android/features/createroom/impl/addpeople/AddPeoplePresenterTests.kt

@ -22,6 +22,7 @@ import app.cash.molecule.RecompositionClock
import app.cash.molecule.moleculeFlow import app.cash.molecule.moleculeFlow
import app.cash.turbine.test import app.cash.turbine.test
import com.google.common.truth.Truth.assertThat import com.google.common.truth.Truth.assertThat
import io.element.android.features.createroom.impl.CreateRoomDataStore
import io.element.android.features.userlist.test.FakeUserListDataSource import io.element.android.features.userlist.test.FakeUserListDataSource
import io.element.android.features.userlist.test.FakeUserListPresenterFactory import io.element.android.features.userlist.test.FakeUserListPresenterFactory
import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.ExperimentalCoroutinesApi
@ -35,7 +36,7 @@ class AddPeoplePresenterTests {
@Before @Before
fun setup() { fun setup() {
presenter = AddPeoplePresenter(FakeUserListPresenterFactory(), FakeUserListDataSource()) presenter = AddPeoplePresenter(FakeUserListPresenterFactory(), FakeUserListDataSource(), CreateRoomDataStore())
} }
@Test @Test

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

@ -23,6 +23,7 @@ import app.cash.molecule.RecompositionClock
import app.cash.molecule.moleculeFlow import app.cash.molecule.moleculeFlow
import app.cash.turbine.test import app.cash.turbine.test
import com.google.common.truth.Truth.assertThat import com.google.common.truth.Truth.assertThat
import io.element.android.features.createroom.impl.CreateRoomDataStore
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
@ -40,7 +41,7 @@ class ConfigureRoomPresenterTests {
@Before @Before
fun setup() { fun setup() {
presenter = ConfigureRoomPresenter(ConfigureRoomPresenterArgs(emptyList())) presenter = ConfigureRoomPresenter(CreateRoomDataStore())
} }
@Test @Test
@ -49,9 +50,9 @@ class ConfigureRoomPresenterTests {
presenter.present() presenter.present()
}.test { }.test {
val initialState = awaitItem() val initialState = awaitItem()
assertThat(initialState.roomName).isEmpty() assertThat(initialState.config.roomName).isNull()
assertThat(initialState.topic).isEmpty() assertThat(initialState.config.topic).isNull()
assertThat(initialState.privacy).isNull() assertThat(initialState.config.privacy).isNull()
} }
} }
@ -66,19 +67,19 @@ class ConfigureRoomPresenterTests {
// Room name not empty // Room name not empty
initialState.eventSink(ConfigureRoomEvents.RoomNameChanged(A_ROOM_NAME)) initialState.eventSink(ConfigureRoomEvents.RoomNameChanged(A_ROOM_NAME))
var newState: ConfigureRoomState = awaitItem() var newState: ConfigureRoomState = awaitItem()
assertThat(newState.roomName).isEqualTo(A_ROOM_NAME) assertThat(newState.config.roomName).isEqualTo(A_ROOM_NAME)
assertThat(newState.isCreateButtonEnabled).isFalse() assertThat(newState.isCreateButtonEnabled).isFalse()
// Select privacy // Select privacy
initialState.eventSink(ConfigureRoomEvents.RoomPrivacyChanged(RoomPrivacy.Private)) initialState.eventSink(ConfigureRoomEvents.RoomPrivacyChanged(RoomPrivacy.Private))
newState = awaitItem() newState = awaitItem()
assertThat(newState.privacy).isEqualTo(RoomPrivacy.Private) assertThat(newState.config.privacy).isEqualTo(RoomPrivacy.Private)
assertThat(newState.isCreateButtonEnabled).isTrue() assertThat(newState.isCreateButtonEnabled).isTrue()
// Clear room name // Clear room name
initialState.eventSink(ConfigureRoomEvents.RoomNameChanged("")) initialState.eventSink(ConfigureRoomEvents.RoomNameChanged(""))
newState = awaitItem() newState = awaitItem()
assertThat(newState.roomName).isEqualTo("") assertThat(newState.config.roomName).isNull()
assertThat(newState.isCreateButtonEnabled).isFalse() assertThat(newState.isCreateButtonEnabled).isFalse()
} }
} }
@ -92,23 +93,23 @@ class ConfigureRoomPresenterTests {
// Room name // Room name
initialState.eventSink(ConfigureRoomEvents.RoomNameChanged(A_ROOM_NAME)) initialState.eventSink(ConfigureRoomEvents.RoomNameChanged(A_ROOM_NAME))
val stateAfterRoomNameChanged = awaitItem() val stateAfterRoomNameChanged = awaitItem()
assertThat(stateAfterRoomNameChanged.roomName).isEqualTo(A_ROOM_NAME) assertThat(stateAfterRoomNameChanged.config.roomName).isEqualTo(A_ROOM_NAME)
// Room topic // Room topic
stateAfterRoomNameChanged.eventSink(ConfigureRoomEvents.TopicChanged(A_MESSAGE)) stateAfterRoomNameChanged.eventSink(ConfigureRoomEvents.TopicChanged(A_MESSAGE))
val stateAfterTopicChanged = awaitItem() val stateAfterTopicChanged = awaitItem()
assertThat(stateAfterTopicChanged.topic).isEqualTo(A_MESSAGE) assertThat(stateAfterTopicChanged.config.topic).isEqualTo(A_MESSAGE)
// Room avatar // Room avatar
val anUri = Uri.parse(AN_AVATAR_URL) val anUri = Uri.parse(AN_AVATAR_URL)
stateAfterTopicChanged.eventSink(ConfigureRoomEvents.AvatarUriChanged(anUri)) stateAfterTopicChanged.eventSink(ConfigureRoomEvents.AvatarUriChanged(anUri))
val stateAfterAvatarUriChanged = awaitItem() val stateAfterAvatarUriChanged = awaitItem()
assertThat(stateAfterAvatarUriChanged.avatarUri).isEqualTo(anUri) assertThat(stateAfterAvatarUriChanged.config.avatarUrl).isEqualTo(anUri.toString())
// Room privacy // Room privacy
stateAfterAvatarUriChanged.eventSink(ConfigureRoomEvents.RoomPrivacyChanged(RoomPrivacy.Public)) stateAfterAvatarUriChanged.eventSink(ConfigureRoomEvents.RoomPrivacyChanged(RoomPrivacy.Public))
val stateAfterPrivacyChanged = awaitItem() val stateAfterPrivacyChanged = awaitItem()
assertThat(stateAfterPrivacyChanged.privacy).isEqualTo(RoomPrivacy.Public) assertThat(stateAfterPrivacyChanged.config.privacy).isEqualTo(RoomPrivacy.Public)
} }
} }
} }

Loading…
Cancel
Save