use batless::ast_summarizer::AstSummarizer;
use batless::summary::SummaryLevel;
#[test]
fn test_rust_ast_summary() {
let code = r#"
fn main() {
println!("Hello");
}
struct User {
name: String,
}
impl User {
fn new(name: String) -> Self {
Self { name }
}
}
"#;
let summary = AstSummarizer::extract_summary(code, Some("Rust"), SummaryLevel::Standard);
println!("Summary: {:?}", summary);
assert!(summary.iter().any(|l| l.line.contains("fn main")));
assert!(summary.iter().any(|l| l.line.contains("struct User")));
assert!(summary.iter().any(|l| l.line.contains("impl User")));
assert!(summary.iter().any(|l| l.line.contains("fn new")));
assert!(!summary.iter().any(|l| l.line.contains("println!")));
assert!(!summary.iter().any(|l| l.line.contains("Self { name }")));
}