Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
package com.ayagmar.pimobile.chat

import androidx.lifecycle.viewModelScope
import com.ayagmar.pimobile.corerpc.ExtensionUiRequestEvent
import com.ayagmar.pimobile.sessions.SlashCommandInfo
import com.ayagmar.pimobile.testutil.FakeSessionController
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.cancel
import kotlinx.coroutines.test.StandardTestDispatcher
import kotlinx.coroutines.test.resetMain
import kotlinx.coroutines.test.runTest
Expand All @@ -20,17 +22,25 @@ import org.junit.Test
@OptIn(ExperimentalCoroutinesApi::class)
class ChatViewModelWorkflowCommandTest {
private val dispatcher = StandardTestDispatcher()
private val viewModels = mutableListOf<ChatViewModel>()

@Before
fun setUp() {
Dispatchers.setMain(dispatcher)
viewModels.clear()
}

@After
fun tearDown() {
viewModels.forEach { it.viewModelScope.cancel() }
viewModels.clear()
Dispatchers.resetMain()
}

private fun createViewModel(controller: FakeSessionController): ChatViewModel {
return ChatViewModel(sessionController = controller).also { viewModels.add(it) }
}

@Test
fun loadingCommandsHidesInternalBridgeWorkflowCommands() =
runTest(dispatcher) {
Expand Down Expand Up @@ -60,7 +70,7 @@ class ChatViewModelWorkflowCommandTest {
),
)

val viewModel = ChatViewModel(sessionController = controller)
val viewModel = createViewModel(controller)
dispatcher.scheduler.advanceUntilIdle()
awaitInitialLoad(viewModel)

Expand Down Expand Up @@ -88,7 +98,7 @@ class ChatViewModelWorkflowCommandTest {
),
)

val viewModel = ChatViewModel(sessionController = controller)
val viewModel = createViewModel(controller)
dispatcher.scheduler.advanceUntilIdle()
awaitInitialLoad(viewModel)

Expand All @@ -113,7 +123,7 @@ class ChatViewModelWorkflowCommandTest {
fun selectingBridgeBackedBuiltinStatsFallsBackWhenInternalCommandUnavailable() =
runTest(dispatcher) {
val controller = FakeSessionController()
val viewModel = ChatViewModel(sessionController = controller)
val viewModel = createViewModel(controller)
dispatcher.scheduler.advanceUntilIdle()
awaitInitialLoad(viewModel)

Expand All @@ -137,7 +147,7 @@ class ChatViewModelWorkflowCommandTest {
fun internalWorkflowStatusActionCanOpenStatsSheet() =
runTest(dispatcher) {
val controller = FakeSessionController()
val viewModel = ChatViewModel(sessionController = controller)
val viewModel = createViewModel(controller)
dispatcher.scheduler.advanceUntilIdle()
awaitInitialLoad(viewModel)

Expand All @@ -160,7 +170,7 @@ class ChatViewModelWorkflowCommandTest {
fun nonWorkflowStatusIsStoredUpdatedAndCleared() =
runTest(dispatcher) {
val controller = FakeSessionController()
val viewModel = ChatViewModel(sessionController = controller)
val viewModel = createViewModel(controller)
dispatcher.scheduler.advanceUntilIdle()
awaitInitialLoad(viewModel)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,13 @@
package com.ayagmar.pimobile.ui.settings

import android.content.SharedPreferences
import androidx.lifecycle.viewModelScope
import com.ayagmar.pimobile.sessions.TransportPreference
import com.ayagmar.pimobile.testutil.FakeSessionController
import com.ayagmar.pimobile.ui.theme.ThemePreference
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.cancel
import kotlinx.coroutines.launch
import kotlinx.coroutines.test.StandardTestDispatcher
import kotlinx.coroutines.test.resetMain
Expand All @@ -23,14 +25,18 @@ import org.junit.Test
@OptIn(ExperimentalCoroutinesApi::class)
class SettingsViewModelTest {
private val dispatcher = StandardTestDispatcher()
private val viewModels = mutableListOf<SettingsViewModel>()

@Before
fun setUp() {
Dispatchers.setMain(dispatcher)
viewModels.clear()
}

@After
fun tearDown() {
viewModels.forEach { it.viewModelScope.cancel() }
viewModels.clear()
Dispatchers.resetMain()
}

Expand Down Expand Up @@ -133,7 +139,7 @@ class SettingsViewModelTest {
sessionController = controller,
sharedPreferences = InMemorySharedPreferences(),
appVersionOverride = "test",
)
).also { viewModels.add(it) }
}
}

Expand Down
72 changes: 0 additions & 72 deletions docs/ai/pi-mobile-ux-resume-fix-plan.md

This file was deleted.