45 lines
1.1 KiB
Rust
45 lines
1.1 KiB
Rust
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());
|
|
}
|