()
| 210 | |
| 211 | #[test] |
| 212 | fn test_aggregate_tool_usage() { |
| 213 | let entries = vec![ |
| 214 | CondensedEntry::tool("Edit", Some("a.rs")), |
| 215 | CondensedEntry::tool("Edit", Some("b.rs")), |
| 216 | CondensedEntry::tool("Bash", Some("cargo test")), |
| 217 | CondensedEntry::tool("Read", Some("c.rs")), |
| 218 | ]; |
| 219 | let tools = aggregate_tool_usage(&entries); |
| 220 | assert_eq!(tools.len(), 3); |
| 221 | |
| 222 | let bash = tools.iter().find(|t| t.tool_name == "Bash").unwrap(); |
| 223 | assert_eq!(bash.invocation_count, 1); |
| 224 | assert!(bash.files_affected.is_empty()); // Bash doesn't modify files |
| 225 | |
| 226 | let edit = tools.iter().find(|t| t.tool_name == "Edit").unwrap(); |
| 227 | assert_eq!(edit.invocation_count, 2); |
| 228 | assert_eq!(edit.files_affected, vec!["a.rs", "b.rs"]); |
| 229 | } |
| 230 | |
| 231 | #[test] |
| 232 | fn test_aggregate_tool_usage_dedup_files() { |
nothing calls this directly
no test coverage detected