Some more
This commit is contained in:
parent
b6dba5fc88
commit
9fbcee0bea
2 changed files with 96 additions and 0 deletions
|
|
@ -188,4 +188,43 @@ mod tests {
|
|||
assert_eq!(task.status, TaskStatus::Pending);
|
||||
assert!(task.result.is_none());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_task_default_values() {
|
||||
let task = Task::default();
|
||||
assert_eq!(task.status, TaskStatus::Pending);
|
||||
assert!(task.result.is_none());
|
||||
assert!(task.logs.is_empty());
|
||||
assert!(task.started_at.is_none());
|
||||
assert!(task.completed_at.is_none());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_task_serialization_roundtrip() {
|
||||
let original = Task::new(Uuid::new_v4(), "Test task".to_string());
|
||||
let serialized = serde_json::to_string(&original).unwrap();
|
||||
let deserialized: Task = serde_json::from_str(&serialized).unwrap();
|
||||
|
||||
assert_eq!(original.id, deserialized.id);
|
||||
assert_eq!(original.todo_id, deserialized.todo_id);
|
||||
assert_eq!(original.description, deserialized.description);
|
||||
assert_eq!(original.status, deserialized.status);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_task_fail() {
|
||||
let mut task = Task::default();
|
||||
task.status = TaskStatus::Running;
|
||||
assert!(task.fail("error message".to_string()).is_ok());
|
||||
assert_eq!(task.status, TaskStatus::Failed);
|
||||
assert!(task.result.is_some());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_task_invalid_transition() {
|
||||
let mut task = Task::default();
|
||||
// Cannot complete a pending task directly
|
||||
let result = TaskResult::Success("done".to_string());
|
||||
assert!(task.complete(result).is_err());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue