Remove runCancellableScopeTest and runCancellableScopeTestWithTestScope, we can use TestScope.backgroundScope instead.

This commit is contained in:
Benoit Marty
2024-09-27 18:37:16 +02:00
parent 0a133d71ae
commit 015d59af13
7 changed files with 68 additions and 101 deletions

View File

@@ -24,7 +24,6 @@ import io.element.android.services.analyticsproviders.api.AnalyticsProvider
import io.element.android.services.analyticsproviders.test.FakeAnalyticsProvider
import io.element.android.tests.testutils.lambda.lambdaRecorder
import io.element.android.tests.testutils.lambda.value
import io.element.android.tests.testutils.runCancellableScopeTest
import kotlinx.coroutines.CompletableDeferred
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.ExperimentalCoroutinesApi
@@ -37,13 +36,13 @@ import org.junit.Test
class DefaultAnalyticsServiceTest {
@Test
fun `getAvailableAnalyticsProviders return the set of provider`() = runCancellableScopeTest {
fun `getAvailableAnalyticsProviders return the set of provider`() = runTest {
val providers = setOf(
FakeAnalyticsProvider(name = "provider1", stopLambda = { }),
FakeAnalyticsProvider(name = "provider2", stopLambda = { }),
)
val sut = createDefaultAnalyticsService(
coroutineScope = it,
coroutineScope = backgroundScope,
analyticsProviders = providers
)
val result = sut.getAvailableAnalyticsProviders()
@@ -51,17 +50,17 @@ class DefaultAnalyticsServiceTest {
}
@Test
fun `when consent is not provided, capture is no op`() = runCancellableScopeTest {
val sut = createDefaultAnalyticsService(it)
fun `when consent is not provided, capture is no op`() = runTest {
val sut = createDefaultAnalyticsService(backgroundScope)
sut.capture(anEvent)
}
@Test
fun `when consent is provided, capture is sent to the AnalyticsProvider`() = runCancellableScopeTest {
fun `when consent is provided, capture is sent to the AnalyticsProvider`() = runTest {
val initLambda = lambdaRecorder<Unit> { }
val captureLambda = lambdaRecorder<VectorAnalyticsEvent, Unit> { _ -> }
val sut = createDefaultAnalyticsService(
coroutineScope = it,
coroutineScope = backgroundScope,
analyticsStore = FakeAnalyticsStore(defaultUserConsent = true),
analyticsProviders = setOf(
FakeAnalyticsProvider(
@@ -76,17 +75,17 @@ class DefaultAnalyticsServiceTest {
}
@Test
fun `when consent is not provided, screen is no op`() = runCancellableScopeTest {
val sut = createDefaultAnalyticsService(it)
fun `when consent is not provided, screen is no op`() = runTest {
val sut = createDefaultAnalyticsService(backgroundScope)
sut.screen(aScreen)
}
@Test
fun `when consent is provided, screen is sent to the AnalyticsProvider`() = runCancellableScopeTest {
fun `when consent is provided, screen is sent to the AnalyticsProvider`() = runTest {
val initLambda = lambdaRecorder<Unit> { }
val screenLambda = lambdaRecorder<VectorAnalyticsScreen, Unit> { _ -> }
val sut = createDefaultAnalyticsService(
coroutineScope = it,
coroutineScope = backgroundScope,
analyticsStore = FakeAnalyticsStore(defaultUserConsent = true),
analyticsProviders = setOf(
FakeAnalyticsProvider(
@@ -101,17 +100,17 @@ class DefaultAnalyticsServiceTest {
}
@Test
fun `when consent is not provided, trackError is no op`() = runCancellableScopeTest {
val sut = createDefaultAnalyticsService(it)
fun `when consent is not provided, trackError is no op`() = runTest {
val sut = createDefaultAnalyticsService(backgroundScope)
sut.trackError(anError)
}
@Test
fun `when consent is provided, trackError is sent to the AnalyticsProvider`() = runCancellableScopeTest {
fun `when consent is provided, trackError is sent to the AnalyticsProvider`() = runTest {
val initLambda = lambdaRecorder<Unit> { }
val trackErrorLambda = lambdaRecorder<Throwable, Unit> { _ -> }
val sut = createDefaultAnalyticsService(
coroutineScope = it,
coroutineScope = backgroundScope,
analyticsStore = FakeAnalyticsStore(defaultUserConsent = true),
analyticsProviders = setOf(
FakeAnalyticsProvider(
@@ -126,10 +125,10 @@ class DefaultAnalyticsServiceTest {
}
@Test
fun `setUserConsent is sent to the store`() = runCancellableScopeTest {
fun `setUserConsent is sent to the store`() = runTest {
val store = FakeAnalyticsStore()
val sut = createDefaultAnalyticsService(
coroutineScope = it,
coroutineScope = backgroundScope,
analyticsStore = store,
)
assertThat(store.userConsentFlow.first()).isFalse()
@@ -140,10 +139,10 @@ class DefaultAnalyticsServiceTest {
}
@Test
fun `setAnalyticsId is sent to the store`() = runCancellableScopeTest {
fun `setAnalyticsId is sent to the store`() = runTest {
val store = FakeAnalyticsStore()
val sut = createDefaultAnalyticsService(
coroutineScope = it,
coroutineScope = backgroundScope,
analyticsStore = store,
)
assertThat(store.analyticsIdFlow.first()).isEqualTo("")
@@ -154,10 +153,10 @@ class DefaultAnalyticsServiceTest {
}
@Test
fun `setDidAskUserConsent is sent to the store`() = runCancellableScopeTest {
fun `setDidAskUserConsent is sent to the store`() = runTest {
val store = FakeAnalyticsStore()
val sut = createDefaultAnalyticsService(
coroutineScope = it,
coroutineScope = backgroundScope,
analyticsStore = store,
)
assertThat(store.didAskUserConsentFlow.first()).isFalse()
@@ -168,13 +167,13 @@ class DefaultAnalyticsServiceTest {
}
@Test
fun `when a session is deleted, the store is reset`() = runCancellableScopeTest {
fun `when a session is deleted, the store is reset`() = runTest {
val resetLambda = lambdaRecorder<Unit> { }
val store = FakeAnalyticsStore(
resetLambda = resetLambda,
)
val sut = createDefaultAnalyticsService(
coroutineScope = it,
coroutineScope = backgroundScope,
analyticsStore = store,
)
sut.onSessionDeleted("userId")
@@ -182,12 +181,12 @@ class DefaultAnalyticsServiceTest {
}
@Test
fun `when reset is invoked, the user consent is reset`() = runCancellableScopeTest {
fun `when reset is invoked, the user consent is reset`() = runTest {
val store = FakeAnalyticsStore(
defaultDidAskUserConsent = true,
)
val sut = createDefaultAnalyticsService(
coroutineScope = it,
coroutineScope = backgroundScope,
analyticsStore = store,
)
assertThat(store.didAskUserConsentFlow.first()).isTrue()
@@ -196,9 +195,9 @@ class DefaultAnalyticsServiceTest {
}
@Test
fun `when a session is added, nothing happen`() = runCancellableScopeTest {
fun `when a session is added, nothing happen`() = runTest {
val sut = createDefaultAnalyticsService(
coroutineScope = it,
coroutineScope = backgroundScope,
)
sut.onSessionCreated("userId")
}
@@ -231,10 +230,10 @@ class DefaultAnalyticsServiceTest {
}
@Test
fun `when consent is provided, updateUserProperties is sent to the provider`() = runCancellableScopeTest {
fun `when consent is provided, updateUserProperties is sent to the provider`() = runTest {
val updateUserPropertiesLambda = lambdaRecorder<UserProperties, Unit> { _ -> }
val sut = createDefaultAnalyticsService(
coroutineScope = it,
coroutineScope = backgroundScope,
analyticsProviders = setOf(
FakeAnalyticsProvider(
initLambda = { },
@@ -248,10 +247,10 @@ class DefaultAnalyticsServiceTest {
}
@Test
fun `when super properties are updated, updateSuperProperties is sent to the provider`() = runCancellableScopeTest {
fun `when super properties are updated, updateSuperProperties is sent to the provider`() = runTest {
val updateSuperPropertiesLambda = lambdaRecorder<SuperProperties, Unit> { _ -> }
val sut = createDefaultAnalyticsService(
coroutineScope = it,
coroutineScope = backgroundScope,
analyticsProviders = setOf(
FakeAnalyticsProvider(
initLambda = { },

View File

@@ -23,9 +23,9 @@ import io.element.android.services.appnavstate.test.A_SESSION_OWNER
import io.element.android.services.appnavstate.test.A_SPACE_OWNER
import io.element.android.services.appnavstate.test.A_THREAD_OWNER
import io.element.android.services.appnavstate.test.FakeAppForegroundStateService
import io.element.android.tests.testutils.runCancellableScopeTest
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.flow.first
import kotlinx.coroutines.test.runTest
import org.junit.Test
class DefaultNavigationStateServiceTest {
@@ -51,8 +51,8 @@ class DefaultNavigationStateServiceTest {
)
@Test
fun testNavigation() = runCancellableScopeTest { scope ->
val service = createStateService(scope)
fun testNavigation() = runTest {
val service = createStateService(backgroundScope)
assertThat(service.appNavigationState.first().navigationState).isEqualTo(navigationStateRoot)
service.onNavigateToSession(A_SESSION_OWNER, A_SESSION_ID)
assertThat(service.appNavigationState.first().navigationState).isEqualTo(navigationStateSession)
@@ -74,15 +74,15 @@ class DefaultNavigationStateServiceTest {
}
@Test
fun testFailure() = runCancellableScopeTest { scope ->
val service = createStateService(scope)
fun testFailure() = runTest {
val service = createStateService(backgroundScope)
service.onNavigateToSpace(A_SPACE_OWNER, A_SPACE_ID)
assertThat(service.appNavigationState.value.navigationState).isEqualTo(NavigationState.Root)
}
@Test
fun testOnNavigateToThread() = runCancellableScopeTest { scope ->
val service = createStateService(scope)
fun testOnNavigateToThread() = runTest {
val service = createStateService(backgroundScope)
// From root (no effect)
service.onNavigateToThread(A_THREAD_OWNER, A_THREAD_ID)
assertThat(service.appNavigationState.first().navigationState).isEqualTo(navigationStateRoot)
@@ -110,8 +110,8 @@ class DefaultNavigationStateServiceTest {
}
@Test
fun testOnNavigateToRoom() = runCancellableScopeTest { scope ->
val service = createStateService(scope)
fun testOnNavigateToRoom() = runTest {
val service = createStateService(backgroundScope)
// From root (no effect)
service.onNavigateToRoom(A_ROOM_OWNER, A_ROOM_ID)
assertThat(service.appNavigationState.first().navigationState).isEqualTo(navigationStateRoot)
@@ -139,8 +139,8 @@ class DefaultNavigationStateServiceTest {
}
@Test
fun testOnNavigateToSpace() = runCancellableScopeTest { scope ->
val service = createStateService(scope)
fun testOnNavigateToSpace() = runTest {
val service = createStateService(backgroundScope)
// From root (no effect)
service.onNavigateToSpace(A_SPACE_OWNER, A_SPACE_ID)
assertThat(service.appNavigationState.first().navigationState).isEqualTo(navigationStateRoot)
@@ -168,8 +168,8 @@ class DefaultNavigationStateServiceTest {
}
@Test
fun testOnNavigateToSession() = runCancellableScopeTest { scope ->
val service = createStateService(scope)
fun testOnNavigateToSession() = runTest {
val service = createStateService(backgroundScope)
// From root
service.onNavigateToSession(A_SESSION_OWNER, A_SESSION_ID)
assertThat(service.appNavigationState.first().navigationState).isEqualTo(navigationStateSession)
@@ -197,8 +197,8 @@ class DefaultNavigationStateServiceTest {
}
@Test
fun testOnLeavingThread() = runCancellableScopeTest { scope ->
val service = createStateService(scope)
fun testOnLeavingThread() = runTest {
val service = createStateService(backgroundScope)
// From root (no effect)
service.onLeavingThread(A_THREAD_OWNER)
assertThat(service.appNavigationState.first().navigationState).isEqualTo(navigationStateRoot)
@@ -225,8 +225,8 @@ class DefaultNavigationStateServiceTest {
}
@Test
fun testOnLeavingRoom() = runCancellableScopeTest { scope ->
val service = createStateService(scope)
fun testOnLeavingRoom() = runTest {
val service = createStateService(backgroundScope)
// From root (no effect)
service.onLeavingRoom(A_ROOM_OWNER)
assertThat(service.appNavigationState.first().navigationState).isEqualTo(navigationStateRoot)
@@ -253,8 +253,8 @@ class DefaultNavigationStateServiceTest {
}
@Test
fun testOnLeavingSpace() = runCancellableScopeTest { scope ->
val service = createStateService(scope)
fun testOnLeavingSpace() = runTest {
val service = createStateService(backgroundScope)
// From root (no effect)
service.onLeavingSpace(A_SPACE_OWNER)
assertThat(service.appNavigationState.first().navigationState).isEqualTo(navigationStateRoot)
@@ -281,8 +281,8 @@ class DefaultNavigationStateServiceTest {
}
@Test
fun testOnLeavingSession() = runCancellableScopeTest { scope ->
val service = createStateService(scope)
fun testOnLeavingSession() = runTest {
val service = createStateService(backgroundScope)
// From root
service.onLeavingSession(A_SESSION_OWNER)
assertThat(service.appNavigationState.first().navigationState).isEqualTo(navigationStateRoot)