fix(#918): fix profile clone endpoint and prune dead MCP restart & session prompt REST calls (#926)

Co-authored-by: M57 <hy4ri@users.noreply.github.com>
This commit is contained in:
M57andM57 authored and GitHub committed 2026-08-17 22:51:29 +03:00
1 parent bd75a6d8ea
commit d6892cde7f
7 files changed
+42 -65

No files matched your search

@@ -2,6 +2,7 @@ package com.m57.hermescontrol.ui.profiles
import com.m57.hermescontrol.data.local.AuthManager
import com.m57.hermescontrol.data.model.ActiveProfileResponse
import com.m57.hermescontrol.data.model.CreateProfileRequest
import com.m57.hermescontrol.data.model.ModelOptionsResponse
import com.m57.hermescontrol.data.model.ModelProvider
import com.m57.hermescontrol.data.model.PinnedModel
@@ -311,4 +312,37 @@ class ProfilesViewModelTest {
assertNull(vm.uiState.value.activeProfileName)
assertTrue(vm.uiState.value.toastMessage!!.contains("Failed to switch profile"))
}
@Test
fun `cloneProfile success calls createProfile with clone_from and reloads`() {
coEvery { mockApi.createProfile(any()) } returns Response.success(Unit)
val vm = createViewModel()
vm.cloneProfile("default", "dev-copy")
testDispatcher.scheduler.advanceUntilIdle()
coVerify {
mockApi.createProfile(
CreateProfileRequest(
name = "dev-copy",
clone_from = "default",
),
)
}
assertTrue(vm.uiState.value.toastMessage!!.contains("cloned successfully"))
assertFalse(vm.uiState.value.isLoading)
coVerify { mockApi.getProfiles() }
}
@Test
fun `cloneProfile failure surfaces toast and stops loading`() {
coEvery { mockApi.createProfile(any()) } returns errorResponse(400)
val vm = createViewModel()
vm.cloneProfile("default", "dev-copy")
testDispatcher.scheduler.advanceUntilIdle()
assertTrue(vm.uiState.value.toastMessage!!.contains("Failed to clone profile"))
assertFalse(vm.uiState.value.isLoading)
}
}