()
| 762 | |
| 763 | #[tokio::test] |
| 764 | async fn test_mark_failed() { |
| 765 | let ctx = AppContext::builder().build(); |
| 766 | let tsk_env = ctx.tsk_env(); |
| 767 | let db_path = tsk_env.data_dir().join("test_mark_failed.db"); |
| 768 | let storage = TaskStorage::new(db_path).unwrap(); |
| 769 | |
| 770 | let task = Task { |
| 771 | id: "fail1234".to_string(), |
| 772 | repo_root: tsk_env.data_dir().to_path_buf(), |
| 773 | branch_name: "tsk/fix/fail-task/fail1234".to_string(), |
| 774 | copied_repo_path: Some(tsk_env.data_dir().to_path_buf()), |
| 775 | ..Task::test_default() |
| 776 | }; |
| 777 | storage.add_task(task).await.unwrap(); |
| 778 | |
| 779 | storage.mark_running("fail1234").await.unwrap(); |
| 780 | let updated = storage |
| 781 | .mark_failed("fail1234", "agent crashed") |
| 782 | .await |
| 783 | .unwrap(); |
| 784 | assert_eq!(updated.status, TaskStatus::Failed); |
| 785 | assert!(updated.completed_at.is_some()); |
| 786 | assert_eq!(updated.error_message, Some("agent crashed".to_string())); |
| 787 | // started_at should be preserved from mark_running |
| 788 | assert!(updated.started_at.is_some()); |
| 789 | } |
| 790 | |
| 791 | #[tokio::test] |
| 792 | async fn test_reset_to_queued() { |
nothing calls this directly
no test coverage detected