Browse Source

Enforce usage of `TestScope.testScheduler`

feature/fga/small_timeline_improvements
Benoit Marty 1 year ago
parent
commit
9e73e70a22
  1. 2
      features/leaveroom/impl/src/test/kotlin/io/element/android/features/leaveroom/impl/LeaveRoomPresenterImplTest.kt
  2. 8
      features/login/impl/src/test/kotlin/io/element/android/features/login/impl/screens/searchaccountprovider/SearchAccountProviderPresenterTest.kt
  3. 3
      features/messages/impl/src/test/kotlin/io/element/android/features/messages/fixtures/timelineItemsFactory.kt
  4. 3
      features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/invite/RoomInviteMembersPresenterTest.kt
  5. 5
      features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/members/RoomMemberListPresenterTests.kt
  6. 7
      tests/testutils/src/main/kotlin/io/element/android/tests/testutils/TestCoroutineDispatchers.kt

2
features/leaveroom/impl/src/test/kotlin/io/element/android/features/leaveroom/impl/LeaveRoomPresenterImplTest.kt

@ -213,5 +213,5 @@ private fun TestScope.createPresenter( @@ -213,5 +213,5 @@ private fun TestScope.createPresenter(
): LeaveRoomPresenter = LeaveRoomPresenterImpl(
client = client,
roomMembershipObserver = roomMembershipObserver,
dispatchers = testCoroutineDispatchers(testScheduler, false),
dispatchers = testCoroutineDispatchers(false),
)

8
features/login/impl/src/test/kotlin/io/element/android/features/login/impl/screens/searchaccountprovider/SearchAccountProviderPresenterTest.kt

@ -63,7 +63,7 @@ class SearchAccountProviderPresenterTest { @@ -63,7 +63,7 @@ class SearchAccountProviderPresenterTest {
AccountProviderDataSource()
)
val presenter = SearchAccountProviderPresenter(
HomeserverResolver(testCoroutineDispatchers(testScheduler), fakeWellknownRequest),
HomeserverResolver(testCoroutineDispatchers(), fakeWellknownRequest),
changeServerPresenter
)
moleculeFlow(RecompositionClock.Immediate) {
@ -87,7 +87,7 @@ class SearchAccountProviderPresenterTest { @@ -87,7 +87,7 @@ class SearchAccountProviderPresenterTest {
AccountProviderDataSource()
)
val presenter = SearchAccountProviderPresenter(
HomeserverResolver(testCoroutineDispatchers(testScheduler), fakeWellknownRequest),
HomeserverResolver(testCoroutineDispatchers(), fakeWellknownRequest),
changeServerPresenter
)
moleculeFlow(RecompositionClock.Immediate) {
@ -122,7 +122,7 @@ class SearchAccountProviderPresenterTest { @@ -122,7 +122,7 @@ class SearchAccountProviderPresenterTest {
AccountProviderDataSource()
)
val presenter = SearchAccountProviderPresenter(
HomeserverResolver(testCoroutineDispatchers(testScheduler), fakeWellknownRequest),
HomeserverResolver(testCoroutineDispatchers(), fakeWellknownRequest),
changeServerPresenter
)
moleculeFlow(RecompositionClock.Immediate) {
@ -157,7 +157,7 @@ class SearchAccountProviderPresenterTest { @@ -157,7 +157,7 @@ class SearchAccountProviderPresenterTest {
AccountProviderDataSource()
)
val presenter = SearchAccountProviderPresenter(
HomeserverResolver(testCoroutineDispatchers(testScheduler), fakeWellknownRequest),
HomeserverResolver(testCoroutineDispatchers(), fakeWellknownRequest),
changeServerPresenter
)
moleculeFlow(RecompositionClock.Immediate) {

3
features/messages/impl/src/test/kotlin/io/element/android/features/messages/fixtures/timelineItemsFactory.kt

@ -36,8 +36,9 @@ import io.element.android.libraries.dateformatter.test.FakeDaySeparatorFormatter @@ -36,8 +36,9 @@ import io.element.android.libraries.dateformatter.test.FakeDaySeparatorFormatter
import io.element.android.libraries.eventformatter.api.TimelineEventFormatter
import io.element.android.libraries.matrix.api.timeline.item.event.EventTimelineItem
import io.element.android.tests.testutils.testCoroutineDispatchers
import kotlinx.coroutines.test.TestScope
internal fun aTimelineItemsFactory(): TimelineItemsFactory {
internal fun TestScope.aTimelineItemsFactory(): TimelineItemsFactory {
val timelineEventFormatter = aTimelineEventFormatter()
return TimelineItemsFactory(
dispatchers = testCoroutineDispatchers(),

3
features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/invite/RoomInviteMembersPresenterTest.kt

@ -38,6 +38,7 @@ import io.element.android.libraries.usersearch.api.UserSearchResult @@ -38,6 +38,7 @@ import io.element.android.libraries.usersearch.api.UserSearchResult
import io.element.android.libraries.usersearch.test.FakeUserRepository
import io.element.android.tests.testutils.testCoroutineDispatchers
import kotlinx.collections.immutable.ImmutableList
import kotlinx.coroutines.test.TestScope
import kotlinx.coroutines.test.runTest
import org.junit.Test
@ -368,7 +369,7 @@ internal class RoomInviteMembersPresenterTest { @@ -368,7 +369,7 @@ internal class RoomInviteMembersPresenterTest {
}
}
private fun createDataSource(
private fun TestScope.createDataSource(
matrixRoom: MatrixRoom = aMatrixRoom().apply {
givenRoomMembersState(MatrixRoomMembersState.Ready(aRoomMemberList()))
},

5
features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/members/RoomMemberListPresenterTests.kt

@ -35,6 +35,7 @@ import io.element.android.libraries.matrix.api.room.MatrixRoomMembersState @@ -35,6 +35,7 @@ import io.element.android.libraries.matrix.api.room.MatrixRoomMembersState
import io.element.android.libraries.matrix.test.room.FakeMatrixRoom
import io.element.android.tests.testutils.testCoroutineDispatchers
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.test.TestScope
import kotlinx.coroutines.test.runTest
import org.junit.Test
@ -165,7 +166,7 @@ class RoomMemberListPresenterTests { @@ -165,7 +166,7 @@ class RoomMemberListPresenterTests {
}
@ExperimentalCoroutinesApi
private fun createDataSource(
private fun TestScope.createDataSource(
matrixRoom: MatrixRoom = aMatrixRoom().apply {
givenRoomMembersState(MatrixRoomMembersState.Ready(aRoomMemberList()))
},
@ -173,7 +174,7 @@ private fun createDataSource( @@ -173,7 +174,7 @@ private fun createDataSource(
) = RoomMemberListDataSource(matrixRoom, coroutineDispatchers)
@ExperimentalCoroutinesApi
private fun createPresenter(
private fun TestScope.createPresenter(
matrixRoom: MatrixRoom = FakeMatrixRoom(),
roomMemberListDataSource: RoomMemberListDataSource = createDataSource(),
coroutineDispatchers: CoroutineDispatchers = testCoroutineDispatchers()

7
tests/testutils/src/main/kotlin/io/element/android/tests/testutils/TestCoroutineDispatchers.kt

@ -21,19 +21,16 @@ package io.element.android.tests.testutils @@ -21,19 +21,16 @@ package io.element.android.tests.testutils
import io.element.android.libraries.core.coroutine.CoroutineDispatchers
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.test.StandardTestDispatcher
import kotlinx.coroutines.test.TestCoroutineScheduler
import kotlinx.coroutines.test.TestScope
import kotlinx.coroutines.test.UnconfinedTestDispatcher
/**
* Create a [CoroutineDispatchers] instance for testing.
*
* @param testScheduler The [TestCoroutineScheduler] to use. If using [runTest] use the one provided by its [TestScope].
* If null the [TestDispatcher] logic will select one or create a new one.
* @param useUnconfinedTestDispatcher If true, use [UnconfinedTestDispatcher] for all dispatchers.
* If false, use [StandardTestDispatcher] for all dispatchers.
*/
fun testCoroutineDispatchers(
testScheduler: TestCoroutineScheduler? = null,
fun TestScope.testCoroutineDispatchers(
useUnconfinedTestDispatcher: Boolean = true,
): CoroutineDispatchers = when (useUnconfinedTestDispatcher) {
false -> CoroutineDispatchers(

Loading…
Cancel
Save