mod fakes; use archlens_domain::{CodeGraph, NormalizedGraph, ports::DiagramRenderer}; use archlens_application::use_cases::diff_diagram::DiffDiagram; use fakes::FakeDiagramRenderer; fn empty_graph() -> NormalizedGraph { NormalizedGraph::from_project(CodeGraph::new()) } #[test] fn no_diff_when_content_matches() { let graph = empty_graph(); let renderer = FakeDiagramRenderer::new(); let rendered = renderer.render(graph.as_graph()).unwrap(); let existing = rendered.files().first().unwrap().content().to_string(); let result = DiffDiagram { graph: &graph, renderer: &renderer, existing_content: &existing, } .execute() .unwrap(); assert!(result.is_empty()); } #[test] fn detects_added_lines() { let graph = empty_graph(); let renderer = FakeDiagramRenderer::new(); let result = DiffDiagram { graph: &graph, renderer: &renderer, existing_content: "old line that will be removed", } .execute() .unwrap(); assert!(!result.added.is_empty()); assert!(!result.removed.is_empty()); }