use archlens_ascii::AsciiRenderer; use archlens_domain::{ CodeElement, CodeElementKind, CodeGraph, FilePath, Relationship, RelationshipKind, ports::DiagramRenderer, }; #[test] fn renders_elements_and_relationships_as_text() { let mut graph = CodeGraph::new(); graph.add_element( CodeElement::new( "OrderService", CodeElementKind::Class, FilePath::new("src/service.rs").unwrap(), 1, ) .unwrap(), ); graph.add_element( CodeElement::new( "Order", CodeElementKind::Struct, FilePath::new("src/order.rs").unwrap(), 1, ) .unwrap(), ); graph.add_relationship( Relationship::new("OrderService", "Order", RelationshipKind::Composition).unwrap(), ); let renderer = AsciiRenderer::new(); let output = renderer.render(&graph).unwrap(); let content = output.files()[0].content(); assert!(content.contains("OrderService")); assert!(content.contains("Order")); assert!(content.contains("has")); } #[test] fn empty_graph_produces_header_only() { let renderer = AsciiRenderer::new(); let output = renderer.render(&CodeGraph::new()).unwrap(); let content = output.files()[0].content(); assert!(content.contains("Architecture")); }