update ConfigureRoomPresenter unit tests
This commit is contained in:
parent
490ed7ef98
commit
b88c1f35a7
1 changed files with 30 additions and 16 deletions
|
|
@ -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.CreateRoomConfig
|
||||||
import io.element.android.features.createroom.impl.CreateRoomDataStore
|
import io.element.android.features.createroom.impl.CreateRoomDataStore
|
||||||
import io.element.android.features.userlist.api.UserListDataStore
|
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
|
||||||
|
|
@ -51,8 +52,11 @@ class ConfigureRoomPresenterTests {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
|
assertThat(initialState.config).isEqualTo(CreateRoomConfig())
|
||||||
assertThat(initialState.config.roomName).isNull()
|
assertThat(initialState.config.roomName).isNull()
|
||||||
assertThat(initialState.config.topic).isNull()
|
assertThat(initialState.config.topic).isNull()
|
||||||
|
assertThat(initialState.config.invites).isEmpty()
|
||||||
|
assertThat(initialState.config.avatarUrl).isNull()
|
||||||
assertThat(initialState.config.privacy).isNull()
|
assertThat(initialState.config.privacy).isNull()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -63,24 +67,28 @@ class ConfigureRoomPresenterTests {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
|
var config = initialState.config
|
||||||
assertThat(initialState.isCreateButtonEnabled).isFalse()
|
assertThat(initialState.isCreateButtonEnabled).isFalse()
|
||||||
|
|
||||||
// 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.config.roomName).isEqualTo(A_ROOM_NAME)
|
config = config.copy(roomName = A_ROOM_NAME)
|
||||||
|
assertThat(newState.config).isEqualTo(config)
|
||||||
assertThat(newState.isCreateButtonEnabled).isFalse()
|
assertThat(newState.isCreateButtonEnabled).isFalse()
|
||||||
|
|
||||||
// Select privacy
|
// Select privacy
|
||||||
initialState.eventSink(ConfigureRoomEvents.RoomPrivacyChanged(RoomPrivacy.Private))
|
newState.eventSink(ConfigureRoomEvents.RoomPrivacyChanged(RoomPrivacy.Private))
|
||||||
newState = awaitItem()
|
newState = awaitItem()
|
||||||
assertThat(newState.config.privacy).isEqualTo(RoomPrivacy.Private)
|
config = config.copy(privacy = RoomPrivacy.Private)
|
||||||
|
assertThat(newState.config).isEqualTo(config)
|
||||||
assertThat(newState.isCreateButtonEnabled).isTrue()
|
assertThat(newState.isCreateButtonEnabled).isTrue()
|
||||||
|
|
||||||
// Clear room name
|
// Clear room name
|
||||||
initialState.eventSink(ConfigureRoomEvents.RoomNameChanged(""))
|
newState.eventSink(ConfigureRoomEvents.RoomNameChanged(""))
|
||||||
newState = awaitItem()
|
newState = awaitItem()
|
||||||
assertThat(newState.config.roomName).isNull()
|
config = config.copy(roomName = null)
|
||||||
|
assertThat(newState.config).isEqualTo(config)
|
||||||
assertThat(newState.isCreateButtonEnabled).isFalse()
|
assertThat(newState.isCreateButtonEnabled).isFalse()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -91,26 +99,32 @@ class ConfigureRoomPresenterTests {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
|
var config = initialState.config
|
||||||
|
|
||||||
// Room name
|
// Room name
|
||||||
initialState.eventSink(ConfigureRoomEvents.RoomNameChanged(A_ROOM_NAME))
|
initialState.eventSink(ConfigureRoomEvents.RoomNameChanged(A_ROOM_NAME))
|
||||||
val stateAfterRoomNameChanged = awaitItem()
|
var newState = awaitItem()
|
||||||
assertThat(stateAfterRoomNameChanged.config.roomName).isEqualTo(A_ROOM_NAME)
|
config = config.copy(roomName = A_ROOM_NAME)
|
||||||
|
assertThat(newState.config).isEqualTo(config)
|
||||||
|
|
||||||
// Room topic
|
// Room topic
|
||||||
stateAfterRoomNameChanged.eventSink(ConfigureRoomEvents.TopicChanged(A_MESSAGE))
|
newState.eventSink(ConfigureRoomEvents.TopicChanged(A_MESSAGE))
|
||||||
val stateAfterTopicChanged = awaitItem()
|
newState = awaitItem()
|
||||||
assertThat(stateAfterTopicChanged.config.topic).isEqualTo(A_MESSAGE)
|
config = config.copy(topic = A_MESSAGE)
|
||||||
|
assertThat(newState.config).isEqualTo(config)
|
||||||
|
|
||||||
// Room avatar
|
// Room avatar
|
||||||
val anUri = Uri.parse(AN_AVATAR_URL)
|
val anUri = Uri.parse(AN_AVATAR_URL)
|
||||||
stateAfterTopicChanged.eventSink(ConfigureRoomEvents.AvatarUriChanged(anUri))
|
newState.eventSink(ConfigureRoomEvents.AvatarUriChanged(anUri))
|
||||||
val stateAfterAvatarUriChanged = awaitItem()
|
newState = awaitItem()
|
||||||
assertThat(stateAfterAvatarUriChanged.config.avatarUrl).isEqualTo(anUri.toString())
|
config = config.copy(avatarUrl = anUri.toString())
|
||||||
|
assertThat(newState.config).isEqualTo(config)
|
||||||
|
|
||||||
// Room privacy
|
// Room privacy
|
||||||
stateAfterAvatarUriChanged.eventSink(ConfigureRoomEvents.RoomPrivacyChanged(RoomPrivacy.Public))
|
newState.eventSink(ConfigureRoomEvents.RoomPrivacyChanged(RoomPrivacy.Public))
|
||||||
val stateAfterPrivacyChanged = awaitItem()
|
newState = awaitItem()
|
||||||
assertThat(stateAfterPrivacyChanged.config.privacy).isEqualTo(RoomPrivacy.Public)
|
config = config.copy(privacy = RoomPrivacy.Public)
|
||||||
|
assertThat(newState.config).isEqualTo(config)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue