Skip to content

Commit 8106851

Browse files
Copilotjamesadevine
andcommitted
test(execute): add missing unit tests for Stage 2 execution logic
Co-authored-by: jamesadevine <4742697+jamesadevine@users.noreply.github.com>
1 parent 5d69d7c commit 8106851

1 file changed

Lines changed: 43 additions & 0 deletions

File tree

agentic-pipelines/src/execute.rs

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -328,4 +328,47 @@ mod tests {
328328
assert!(results[0].success);
329329
assert!(results[1].success);
330330
}
331+
332+
#[tokio::test]
333+
async fn test_execute_safe_outputs_empty_file_returns_empty() {
334+
let temp_dir = tempfile::tempdir().unwrap();
335+
let safe_output_path = temp_dir.path().join(SAFE_OUTPUT_FILENAME);
336+
tokio::fs::write(&safe_output_path, "").await.unwrap();
337+
338+
let ctx = ExecutionContext::default();
339+
let results = execute_safe_outputs(temp_dir.path(), &ctx).await.unwrap();
340+
assert!(results.is_empty());
341+
}
342+
343+
#[tokio::test]
344+
async fn test_execute_missing_data_succeeds() {
345+
let entry = serde_json::json!({"name": "missing-data", "data_type": "schema", "reason": "not available"});
346+
let ctx = ExecutionContext::default();
347+
348+
let result = execute_safe_output(&entry, &ctx).await;
349+
assert!(result.is_ok());
350+
let (tool_name, result) = result.unwrap();
351+
assert_eq!(tool_name, "missing-data");
352+
assert!(result.success);
353+
}
354+
355+
#[tokio::test]
356+
async fn test_execute_safe_output_malformed_work_item_returns_err() {
357+
// Missing required fields (title and description)
358+
let entry = serde_json::json!({"name": "create-work-item"});
359+
let ctx = ExecutionContext::default();
360+
361+
let result = execute_safe_output(&entry, &ctx).await;
362+
assert!(result.is_err());
363+
}
364+
365+
#[tokio::test]
366+
async fn test_execute_unknown_tool_error_contains_tool_name() {
367+
let entry = serde_json::json!({"name": "evil-backdoor"});
368+
let ctx = ExecutionContext::default();
369+
370+
let result = execute_safe_output(&entry, &ctx).await;
371+
assert!(result.is_err());
372+
assert!(result.unwrap_err().to_string().contains("evil-backdoor"));
373+
}
331374
}

0 commit comments

Comments
 (0)