diff --git a/src/arcade_agent/exporters/html.py b/src/arcade_agent/exporters/html.py index dc6ef2d..24dcd00 100644 --- a/src/arcade_agent/exporters/html.py +++ b/src/arcade_agent/exporters/html.py @@ -617,12 +617,13 @@ def node_id(name: str) -> str: dependencies = snapshot.get("component_dependencies", []) for component in components: + comparison_name = component.get("comparison_name", component["name"]) label = ( - f"{component['name']}\\n" + f"{comparison_name}\\n" f"{component.get('num_entities', len(component.get('entities', [])))} entities\\n" f"{component.get('class_count', 0)} classes / {component.get('method_count', 0)} methods" ) - lines.append(f" {node_id(component['name'])}[\"{label}\"]") + lines.append(f" {node_id(comparison_name)}[\"{label}\"]") for dep in dependencies: lines.append( diff --git a/tests/test_tools/test_compare_baseline.py b/tests/test_tools/test_compare_baseline.py index cb05a4c..fad3634 100644 --- a/tests/test_tools/test_compare_baseline.py +++ b/tests/test_tools/test_compare_baseline.py @@ -3,7 +3,11 @@ import importlib.util from pathlib import Path -from arcade_agent.exporters.html import export_evolution_html, export_html +from arcade_agent.exporters.html import ( + build_snapshot_mermaid, + export_evolution_html, + export_html, +) from arcade_agent.models.architecture import Architecture, Component from arcade_agent.models.graph import DependencyGraph, Entity from arcade_agent.models.metrics import MetricResult @@ -137,6 +141,27 @@ def test_build_report_payload_derives_names_for_generic_components(): assert report["dependency_rows"][0]["status"] == "matched" +def test_snapshot_mermaid_uses_comparison_names_for_nodes_and_dependencies(): + baseline = _snapshot("abc1234", "Repository3", 1, 1) + baseline["components"][0]["entities"] = [ + "sample_repo.algorithms.coupling.compute_rci", + "sample_repo.algorithms.coupling.compute_turbo_mq", + ] + baseline["component_dependencies"] = [ + {"source": "Repository3", "target": "Repository3"} + ] + current = _snapshot("def5678", "Repository3", 1, 1) + current["components"][0]["entities"] = list(baseline["components"][0]["entities"]) + current["component_dependencies"] = list(baseline["component_dependencies"]) + + report = build_report_payload(current, baseline) + mermaid = build_snapshot_mermaid(report["current"]) + + assert 'AlgorithmsCoupling["AlgorithmsCoupling\\n' in mermaid + assert "AlgorithmsCoupling --> AlgorithmsCoupling" in mermaid + assert 'Repository3["' not in mermaid + + def test_build_report_payload_uses_repo_name_from_snapshot(): baseline = _snapshot("abc1234", "Core", 1, 1) current = _snapshot("def5678", "Core", 1, 1)