Restore bounded trailer tasks after process death
This commit is contained in:
parent
b6665d016b
commit
1bdae30e11
32 changed files with 1082 additions and 247 deletions
|
|
@ -72,6 +72,7 @@ class TestMainActivityViewModel {
|
|||
backdropService,
|
||||
appUpgradeHandler,
|
||||
intentService,
|
||||
trailerReturn = mockk(relaxed = true),
|
||||
)
|
||||
|
||||
private val serverId = UUID.randomUUID()
|
||||
|
|
@ -88,6 +89,7 @@ class TestMainActivityViewModel {
|
|||
@Before
|
||||
fun setUp() {
|
||||
WholphinDispatchers.configure(testDispatcher)
|
||||
every { setupNavigationManager.backStack } returns mutableListOf(SetupDestination.Loading)
|
||||
every { appUpgradeHandler.needUpgrade() } returns false
|
||||
every { appUpgradeHandler.copySubfont(any()) } returns Unit
|
||||
mockkStatic(Toast::class)
|
||||
|
|
@ -167,14 +169,22 @@ class TestMainActivityViewModel {
|
|||
@Test
|
||||
fun savedColdLaunchNavigatesBeforeSessionRevalidationCompletes() = runTest(testDispatcher) {
|
||||
setupPreferences { signInAutomatically = true }
|
||||
every { serverRepository.current } returns MutableStateFlow<CurrentUser?>(null)
|
||||
coEvery { serverRepository.restoreSavedSession() } returns RestoredSession.Success(currentUser)
|
||||
val canonical = MutableStateFlow<CurrentUser?>(null)
|
||||
every { serverRepository.current } returns canonical
|
||||
coEvery { serverRepository.restoreSavedSession() } coAnswers {
|
||||
canonical.value = currentUser
|
||||
RestoredSession.Success(currentUser)
|
||||
}
|
||||
val release = CompletableDeferred<Unit>()
|
||||
coEvery { serverRepository.revalidateSession(currentUser) } coAnswers { release.await() }
|
||||
val validationStarted = CompletableDeferred<Unit>()
|
||||
coEvery { serverRepository.revalidateSession(currentUser) } coAnswers {
|
||||
validationStarted.complete(Unit)
|
||||
release.await()
|
||||
}
|
||||
viewModel.handleAppStart()
|
||||
runCurrent()
|
||||
verify { setupNavigationManager.navigateTo(SetupDestination.AppContent(currentUser)) }
|
||||
assertFalse(release.isCompleted)
|
||||
Assert.assertTrue(validationStarted.isCompleted)
|
||||
release.complete(Unit)
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue