feat(cron): confirm before deleting a cron job (#879)

Co-authored-by: M57 <hy4ri@users.noreply.github.com>
This commit is contained in:
M57andM57 authored and GitHub committed 2026-08-11 14:17:56 +03:00
1 parent 1e6e248891
commit d4008b7b31
5 files changed
+85 -1

No files matched your search

@@ -226,6 +226,51 @@ class CronJobsViewModelTest {
assertFalse(vm.uiState.value.editorState.isOpen)
}
@Test
fun `requestDeleteJob sets the delete target without deleting`() {
val vm = createViewModel()
val job = CronJob(id = "j-del", name = "Doomed")
vm.requestDeleteJob(job)
assertEquals(job, vm.uiState.value.deleteTarget)
coVerify(exactly = 0) { mockApi.deleteCronJob(any()) }
}
@Test
fun `dismissDeleteDialog clears the target without deleting`() {
val vm = createViewModel()
vm.requestDeleteJob(CronJob(id = "j-del", name = "Doomed"))
vm.dismissDeleteDialog()
assertNull(vm.uiState.value.deleteTarget)
coVerify(exactly = 0) { mockApi.deleteCronJob(any()) }
}
@Test
fun `confirmDeleteJob clears the target and deletes the job`() {
val vm = createViewModel()
vm.requestDeleteJob(CronJob(id = "j-del", name = "Doomed"))
vm.confirmDeleteJob()
settle()
assertNull(vm.uiState.value.deleteTarget)
coVerify { mockApi.deleteCronJob("j-del") }
}
@Test
fun `confirmDeleteJob without a target is a no-op`() {
val vm = createViewModel()
vm.confirmDeleteJob()
settle()
assertNull(vm.uiState.value.deleteTarget)
coVerify(exactly = 0) { mockApi.deleteCronJob(any()) }
}
@Test
fun `setMonitorMode switching source clears the other`() {
val vm = createViewModel()