mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-03 06:55:41 +00:00
Use presenter test extension.
This commit is contained in:
+4
-15
@@ -8,9 +8,6 @@
|
|||||||
|
|
||||||
package io.element.android.features.roomdetails.impl.members.details
|
package io.element.android.features.roomdetails.impl.members.details
|
||||||
|
|
||||||
import app.cash.molecule.RecompositionMode
|
|
||||||
import app.cash.molecule.moleculeFlow
|
|
||||||
import app.cash.turbine.test
|
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.features.roomdetails.impl.aJoinedRoom
|
import io.element.android.features.roomdetails.impl.aJoinedRoom
|
||||||
import io.element.android.features.roomdetails.impl.members.aRoomMember
|
import io.element.android.features.roomdetails.impl.members.aRoomMember
|
||||||
@@ -89,9 +86,7 @@ class RoomMemberDetailsPresenterTest {
|
|||||||
val presenter = createRoomMemberDetailsPresenter(
|
val presenter = createRoomMemberDetailsPresenter(
|
||||||
room = room,
|
room = room,
|
||||||
)
|
)
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
presenter.test {
|
||||||
presenter.present()
|
|
||||||
}.test {
|
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
assertThat(initialState.userName).isEqualTo("Alice")
|
assertThat(initialState.userName).isEqualTo("Alice")
|
||||||
assertThat(initialState.avatarUrl).isEqualTo("Alice Avatar url")
|
assertThat(initialState.avatarUrl).isEqualTo("Alice Avatar url")
|
||||||
@@ -111,9 +106,7 @@ class RoomMemberDetailsPresenterTest {
|
|||||||
val presenter = createRoomMemberDetailsPresenter(
|
val presenter = createRoomMemberDetailsPresenter(
|
||||||
room = room,
|
room = room,
|
||||||
)
|
)
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
presenter.test {
|
||||||
presenter.present()
|
|
||||||
}.test {
|
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
assertThat(initialState.userName).isEqualTo("Alice")
|
assertThat(initialState.userName).isEqualTo("Alice")
|
||||||
assertThat(initialState.avatarUrl).isEqualTo("Profile avatar url")
|
assertThat(initialState.avatarUrl).isEqualTo("Profile avatar url")
|
||||||
@@ -130,9 +123,7 @@ class RoomMemberDetailsPresenterTest {
|
|||||||
val presenter = createRoomMemberDetailsPresenter(
|
val presenter = createRoomMemberDetailsPresenter(
|
||||||
room = room,
|
room = room,
|
||||||
)
|
)
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
presenter.test {
|
||||||
presenter.present()
|
|
||||||
}.test {
|
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
assertThat(initialState.userName).isEqualTo("Profile user name")
|
assertThat(initialState.userName).isEqualTo("Profile user name")
|
||||||
assertThat(initialState.avatarUrl).isEqualTo("Profile avatar url")
|
assertThat(initialState.avatarUrl).isEqualTo("Profile avatar url")
|
||||||
@@ -161,9 +152,7 @@ class RoomMemberDetailsPresenterTest {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
presenter.test {
|
||||||
presenter.present()
|
|
||||||
}.test {
|
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
assertThat(initialState.userName).isNull()
|
assertThat(initialState.userName).isNull()
|
||||||
assertThat(initialState.avatarUrl).isNull()
|
assertThat(initialState.avatarUrl).isNull()
|
||||||
|
|||||||
+10
-30
@@ -8,9 +8,6 @@
|
|||||||
|
|
||||||
package io.element.android.features.roomdetails.impl.notificationsettings
|
package io.element.android.features.roomdetails.impl.notificationsettings
|
||||||
|
|
||||||
import app.cash.molecule.RecompositionMode
|
|
||||||
import app.cash.molecule.moleculeFlow
|
|
||||||
import app.cash.turbine.test
|
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.features.roomdetails.impl.aJoinedRoom
|
import io.element.android.features.roomdetails.impl.aJoinedRoom
|
||||||
import io.element.android.libraries.matrix.api.room.RoomNotificationMode
|
import io.element.android.libraries.matrix.api.room.RoomNotificationMode
|
||||||
@@ -20,6 +17,7 @@ import io.element.android.libraries.matrix.test.notificationsettings.FakeNotific
|
|||||||
import io.element.android.libraries.matrix.test.room.FakeJoinedRoom
|
import io.element.android.libraries.matrix.test.room.FakeJoinedRoom
|
||||||
import io.element.android.tests.testutils.awaitLastSequentialItem
|
import io.element.android.tests.testutils.awaitLastSequentialItem
|
||||||
import io.element.android.tests.testutils.consumeItemsUntilPredicate
|
import io.element.android.tests.testutils.consumeItemsUntilPredicate
|
||||||
|
import io.element.android.tests.testutils.test
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
|
|
||||||
@@ -27,9 +25,7 @@ class RoomNotificationSettingsPresenterTest {
|
|||||||
@Test
|
@Test
|
||||||
fun `present - initial state is created from room info`() = runTest {
|
fun `present - initial state is created from room info`() = runTest {
|
||||||
val presenter = createRoomNotificationSettingsPresenter()
|
val presenter = createRoomNotificationSettingsPresenter()
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
presenter.test {
|
||||||
presenter.present()
|
|
||||||
}.test {
|
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
assertThat(initialState.roomNotificationSettings.dataOrNull()).isNull()
|
assertThat(initialState.roomNotificationSettings.dataOrNull()).isNull()
|
||||||
assertThat(initialState.defaultRoomNotificationMode).isNull()
|
assertThat(initialState.defaultRoomNotificationMode).isNull()
|
||||||
@@ -42,9 +38,7 @@ class RoomNotificationSettingsPresenterTest {
|
|||||||
@Test
|
@Test
|
||||||
fun `present - notification mode changed`() = runTest {
|
fun `present - notification mode changed`() = runTest {
|
||||||
val presenter = createRoomNotificationSettingsPresenter()
|
val presenter = createRoomNotificationSettingsPresenter()
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
presenter.test {
|
||||||
presenter.present()
|
|
||||||
}.test {
|
|
||||||
awaitItem().eventSink(RoomNotificationSettingsEvent.ChangeRoomNotificationMode(RoomNotificationMode.MENTIONS_AND_KEYWORDS_ONLY))
|
awaitItem().eventSink(RoomNotificationSettingsEvent.ChangeRoomNotificationMode(RoomNotificationMode.MENTIONS_AND_KEYWORDS_ONLY))
|
||||||
val updatedState = consumeItemsUntilPredicate {
|
val updatedState = consumeItemsUntilPredicate {
|
||||||
it.roomNotificationSettings.dataOrNull()?.mode == RoomNotificationMode.MENTIONS_AND_KEYWORDS_ONLY
|
it.roomNotificationSettings.dataOrNull()?.mode == RoomNotificationMode.MENTIONS_AND_KEYWORDS_ONLY
|
||||||
@@ -58,9 +52,7 @@ class RoomNotificationSettingsPresenterTest {
|
|||||||
fun `present - observe notification mode changed`() = runTest {
|
fun `present - observe notification mode changed`() = runTest {
|
||||||
val notificationSettingsService = FakeNotificationSettingsService()
|
val notificationSettingsService = FakeNotificationSettingsService()
|
||||||
val presenter = createRoomNotificationSettingsPresenter(notificationSettingsService)
|
val presenter = createRoomNotificationSettingsPresenter(notificationSettingsService)
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
presenter.test {
|
||||||
presenter.present()
|
|
||||||
}.test {
|
|
||||||
notificationSettingsService.setRoomNotificationMode(A_ROOM_ID, RoomNotificationMode.MENTIONS_AND_KEYWORDS_ONLY)
|
notificationSettingsService.setRoomNotificationMode(A_ROOM_ID, RoomNotificationMode.MENTIONS_AND_KEYWORDS_ONLY)
|
||||||
val updatedState = consumeItemsUntilPredicate {
|
val updatedState = consumeItemsUntilPredicate {
|
||||||
it.roomNotificationSettings.dataOrNull()?.mode == RoomNotificationMode.MENTIONS_AND_KEYWORDS_ONLY
|
it.roomNotificationSettings.dataOrNull()?.mode == RoomNotificationMode.MENTIONS_AND_KEYWORDS_ONLY
|
||||||
@@ -74,9 +66,7 @@ class RoomNotificationSettingsPresenterTest {
|
|||||||
val notificationSettingsService = FakeNotificationSettingsService()
|
val notificationSettingsService = FakeNotificationSettingsService()
|
||||||
notificationSettingsService.givenSetNotificationModeError(AN_EXCEPTION)
|
notificationSettingsService.givenSetNotificationModeError(AN_EXCEPTION)
|
||||||
val presenter = createRoomNotificationSettingsPresenter(notificationSettingsService)
|
val presenter = createRoomNotificationSettingsPresenter(notificationSettingsService)
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
presenter.test {
|
||||||
presenter.present()
|
|
||||||
}.test {
|
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
initialState.eventSink(RoomNotificationSettingsEvent.SetNotificationMode(false))
|
initialState.eventSink(RoomNotificationSettingsEvent.SetNotificationMode(false))
|
||||||
val failedState = consumeItemsUntilPredicate {
|
val failedState = consumeItemsUntilPredicate {
|
||||||
@@ -100,9 +90,7 @@ class RoomNotificationSettingsPresenterTest {
|
|||||||
fun `present - notification settings set custom`() = runTest {
|
fun `present - notification settings set custom`() = runTest {
|
||||||
val notificationSettingsService = FakeNotificationSettingsService()
|
val notificationSettingsService = FakeNotificationSettingsService()
|
||||||
val presenter = createRoomNotificationSettingsPresenter(notificationSettingsService)
|
val presenter = createRoomNotificationSettingsPresenter(notificationSettingsService)
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
presenter.test {
|
||||||
presenter.present()
|
|
||||||
}.test {
|
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
initialState.eventSink(RoomNotificationSettingsEvent.SetNotificationMode(false))
|
initialState.eventSink(RoomNotificationSettingsEvent.SetNotificationMode(false))
|
||||||
skipItems(3)
|
skipItems(3)
|
||||||
@@ -115,9 +103,7 @@ class RoomNotificationSettingsPresenterTest {
|
|||||||
@Test
|
@Test
|
||||||
fun `present - notification settings restore default`() = runTest {
|
fun `present - notification settings restore default`() = runTest {
|
||||||
val presenter = createRoomNotificationSettingsPresenter()
|
val presenter = createRoomNotificationSettingsPresenter()
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
presenter.test {
|
||||||
presenter.present()
|
|
||||||
}.test {
|
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
initialState.eventSink(RoomNotificationSettingsEvent.ChangeRoomNotificationMode(RoomNotificationMode.MENTIONS_AND_KEYWORDS_ONLY))
|
initialState.eventSink(RoomNotificationSettingsEvent.ChangeRoomNotificationMode(RoomNotificationMode.MENTIONS_AND_KEYWORDS_ONLY))
|
||||||
initialState.eventSink(RoomNotificationSettingsEvent.SetNotificationMode(true))
|
initialState.eventSink(RoomNotificationSettingsEvent.SetNotificationMode(true))
|
||||||
@@ -134,9 +120,7 @@ class RoomNotificationSettingsPresenterTest {
|
|||||||
val notificationSettingsService = FakeNotificationSettingsService()
|
val notificationSettingsService = FakeNotificationSettingsService()
|
||||||
notificationSettingsService.givenRestoreDefaultNotificationModeError(AN_EXCEPTION)
|
notificationSettingsService.givenRestoreDefaultNotificationModeError(AN_EXCEPTION)
|
||||||
val presenter = createRoomNotificationSettingsPresenter(notificationSettingsService)
|
val presenter = createRoomNotificationSettingsPresenter(notificationSettingsService)
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
presenter.test {
|
||||||
presenter.present()
|
|
||||||
}.test {
|
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
initialState.eventSink(RoomNotificationSettingsEvent.ChangeRoomNotificationMode(RoomNotificationMode.MENTIONS_AND_KEYWORDS_ONLY))
|
initialState.eventSink(RoomNotificationSettingsEvent.ChangeRoomNotificationMode(RoomNotificationMode.MENTIONS_AND_KEYWORDS_ONLY))
|
||||||
initialState.eventSink(RoomNotificationSettingsEvent.SetNotificationMode(true))
|
initialState.eventSink(RoomNotificationSettingsEvent.SetNotificationMode(true))
|
||||||
@@ -161,9 +145,7 @@ class RoomNotificationSettingsPresenterTest {
|
|||||||
}
|
}
|
||||||
val room = aJoinedRoom(notificationSettingsService = notificationService, isEncrypted = true)
|
val room = aJoinedRoom(notificationSettingsService = notificationService, isEncrypted = true)
|
||||||
val presenter = createRoomNotificationSettingsPresenter(notificationService, room)
|
val presenter = createRoomNotificationSettingsPresenter(notificationService, room)
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
presenter.test {
|
||||||
presenter.present()
|
|
||||||
}.test {
|
|
||||||
assertThat(awaitLastSequentialItem().displayMentionsOnlyDisclaimer).isTrue()
|
assertThat(awaitLastSequentialItem().displayMentionsOnlyDisclaimer).isTrue()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -175,9 +157,7 @@ class RoomNotificationSettingsPresenterTest {
|
|||||||
}
|
}
|
||||||
val room = aJoinedRoom(notificationSettingsService = notificationService, isEncrypted = false)
|
val room = aJoinedRoom(notificationSettingsService = notificationService, isEncrypted = false)
|
||||||
val presenter = createRoomNotificationSettingsPresenter(notificationService, room)
|
val presenter = createRoomNotificationSettingsPresenter(notificationService, room)
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
presenter.test {
|
||||||
presenter.present()
|
|
||||||
}.test {
|
|
||||||
assertThat(awaitLastSequentialItem().displayMentionsOnlyDisclaimer).isFalse()
|
assertThat(awaitLastSequentialItem().displayMentionsOnlyDisclaimer).isFalse()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user