init: archlens — architecture diagram generator
Some checks failed
CI / Check / Test (push) Failing after 1m24s
Some checks failed
CI / Check / Test (push) Failing after 1m24s
Hex arch + DDD, tree-sitter parsing, Mermaid/ASCII output. Supports Rust + Python. 92 tests. CI, diff, --check for staleness detection.
This commit is contained in:
48
crates/adapters/ascii/tests/ascii_renderer_tests.rs
Normal file
48
crates/adapters/ascii/tests/ascii_renderer_tests.rs
Normal file
@@ -0,0 +1,48 @@
|
||||
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"));
|
||||
}
|
||||
Reference in New Issue
Block a user