()
| 378 | |
| 379 | #[tokio::test] |
| 380 | async fn test_clean_tasks() { |
| 381 | // Set up test environment |
| 382 | let (config, test_repo, ctx) = setup_test_environment().await.unwrap(); |
| 383 | let repo_root = test_repo.path().to_path_buf(); |
| 384 | |
| 385 | // Create tasks with different statuses |
| 386 | let queued_task_id = "queued-task-123".to_string(); |
| 387 | let completed_task_id = "completed-task-456".to_string(); |
| 388 | |
| 389 | // Create task directories and files |
| 390 | let queued_dir_path = |
| 391 | setup_task_directory(&config, &queued_task_id, "Queued task instructions") |
| 392 | .await |
| 393 | .unwrap(); |
| 394 | let completed_dir_path = |
| 395 | setup_task_directory(&config, &completed_task_id, "Completed task instructions") |
| 396 | .await |
| 397 | .unwrap(); |
| 398 | |
| 399 | let queued_task = Task { |
| 400 | id: queued_task_id.clone(), |
| 401 | repo_root: repo_root.clone(), |
| 402 | name: "queued-task".to_string(), |
| 403 | branch_name: format!("tsk/{queued_task_id}"), |
| 404 | copied_repo_path: Some(queued_dir_path.join("repo")), |
| 405 | ..Task::test_default() |
| 406 | }; |
| 407 | |
| 408 | let completed_task = Task { |
| 409 | id: completed_task_id.clone(), |
| 410 | repo_root: repo_root.clone(), |
| 411 | name: "completed-task".to_string(), |
| 412 | task_type: "fix".to_string(), |
| 413 | branch_name: format!("tsk/{completed_task_id}"), |
| 414 | status: TaskStatus::Complete, |
| 415 | copied_repo_path: Some(completed_dir_path.join("repo")), |
| 416 | ..Task::test_default() |
| 417 | }; |
| 418 | |
| 419 | // Add tasks via storage API |
| 420 | let storage = ctx.task_storage(); |
| 421 | storage.add_task(queued_task).await.unwrap(); |
| 422 | storage.add_task(completed_task).await.unwrap(); |
| 423 | |
| 424 | // Create TaskManager and clean tasks |
| 425 | let task_manager = TaskManager::new(&ctx).unwrap(); |
| 426 | |
| 427 | let result = task_manager.clean_tasks(false, None).await; |
| 428 | assert!(result.is_ok(), "Failed to clean tasks: {result:?}"); |
| 429 | let result = result.unwrap(); |
| 430 | assert_eq!(result.deleted, 1); |
| 431 | assert_eq!(result.skipped, 0); |
| 432 | |
| 433 | // Verify directories are cleaned up |
| 434 | assert!( |
| 435 | queued_dir_path.exists(), |
| 436 | "Queued task directory should still exist" |
| 437 | ); |
nothing calls this directly
no test coverage detected