Improve FakeAppNavigationStateService

This commit is contained in:
Benoit Marty
2026-02-12 10:53:51 +01:00
committed by Benoit Marty
parent 00fb4498f4
commit a651a1cd6f
4 changed files with 29 additions and 27 deletions

View File

@@ -63,9 +63,9 @@ class DefaultAnalyticsRoomListStateWatcherTest {
@Test
fun `Opening the app in a cold state does nothing`() = runTest {
val navigationStateService = FakeAppNavigationStateService().apply {
appNavigationState.emit(AppNavigationState(NavigationState.Root, false))
}
val navigationStateService = FakeAppNavigationStateService(
initialAppNavigationState = AppNavigationState(NavigationState.Root, false)
)
val roomListService = FakeRoomListService().apply {
postState(RoomListService.State.Idle)
}

View File

@@ -31,7 +31,6 @@ import io.sentry.Sentry
import io.sentry.SentryTracer
import io.sentry.protocol.SentryId
import io.sentry.protocol.SentryTransaction
import kotlinx.coroutines.flow.MutableStateFlow
import org.junit.Test
import org.junit.runner.RunWith
@@ -149,7 +148,7 @@ class SentryAnalyticsProviderTest {
)
},
appNavigationStateService = FakeAppNavigationStateService(
MutableStateFlow(AppNavigationState(navigationState = NavigationState.Session("owner", A_SESSION_ID), isInForeground = true))
initialAppNavigationState = AppNavigationState(navigationState = NavigationState.Session("owner", A_SESSION_ID), isInForeground = true)
)
).run {
init()
@@ -182,7 +181,7 @@ class SentryAnalyticsProviderTest {
)
},
appNavigationStateService = FakeAppNavigationStateService(
MutableStateFlow(AppNavigationState(navigationState = NavigationState.Root, isInForeground = true))
initialAppNavigationState = AppNavigationState(navigationState = NavigationState.Root, isInForeground = true)
)
).run {
init()
@@ -203,7 +202,7 @@ class SentryAnalyticsProviderTest {
)
},
appNavigationStateService = FakeAppNavigationStateService(
MutableStateFlow(AppNavigationState(navigationState = NavigationState.Session("owner", A_SESSION_ID), isInForeground = true))
initialAppNavigationState = AppNavigationState(navigationState = NavigationState.Session("owner", A_SESSION_ID), isInForeground = true)
)
).run {
init()
@@ -221,7 +220,7 @@ class SentryAnalyticsProviderTest {
buildMeta: BuildMeta = aBuildMeta(),
getDatabaseSizesUseCase: GetDatabaseSizesUseCase = GetDatabaseSizesUseCase { Result.success(SdkStoreSizes(null, null, null, null)) },
appNavigationStateService: FakeAppNavigationStateService = FakeAppNavigationStateService(
MutableStateFlow(AppNavigationState(navigationState = NavigationState.Session("owner", A_SESSION_ID), isInForeground = true))
initialAppNavigationState = AppNavigationState(NavigationState.Session("owner", A_SESSION_ID), isInForeground = true)
)
) = SentryAnalyticsProvider(
context = InstrumentationRegistry.getInstrumentation().targetContext,

View File

@@ -15,15 +15,21 @@ import io.element.android.services.appnavstate.api.AppNavigationState
import io.element.android.services.appnavstate.api.AppNavigationStateService
import io.element.android.services.appnavstate.api.NavigationState
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.asStateFlow
class FakeAppNavigationStateService(
override val appNavigationState: MutableStateFlow<AppNavigationState> = MutableStateFlow(
AppNavigationState(
navigationState = NavigationState.Root,
isInForeground = true,
)
initialAppNavigationState: AppNavigationState = AppNavigationState(
navigationState = NavigationState.Root,
isInForeground = true,
),
) : AppNavigationStateService {
private val _appNavigationState: MutableStateFlow<AppNavigationState> = MutableStateFlow(initialAppNavigationState)
override val appNavigationState = _appNavigationState.asStateFlow()
fun emitNavigationState(state: AppNavigationState) {
_appNavigationState.value = state
}
override fun onNavigateToSession(owner: String, sessionId: SessionId) = Unit
override fun onLeavingSession(owner: String) = Unit