codelore-lib 0.27.3

CodeLore — Behavioral Code Analyzer library
Documentation
use codelore_lib::analyses::hotspots::HotspotRow;
use codelore_lib::output::markdown;
use std::io::Cursor;

#[test]
fn markdown_hotspots_table() {
    let rows = vec![HotspotRow {
        path: "src/main.rs".into(),
        revisions: 4,
        cognitive: 7.0,
        cognitive_health: 75.5,
        hotspot_score: 0.42,
        mi: Some(72.0),
        mi_rank: None,
        ai_pct: None,
        hotspot_score_anchored: None,
    }];
    let mut buf = Vec::new();
    markdown::write_hotspots_markdown(&rows, &mut Cursor::new(&mut buf)).expect("write");
    let s = String::from_utf8(buf).expect("utf8");
    assert!(s.contains("# CodeLore hotspots"));
    assert!(s.contains("| Entity"));
    assert!(s.contains("| `src/main.rs`"));
}

#[test]
fn markdown_summary_compact() {
    use codelore_lib::analyses::summary::SummaryRow;
    let rows = vec![
        SummaryRow {
            metric: "commits".into(),
            value: 5,
        },
        SummaryRow {
            metric: "changes".into(),
            value: 7,
        },
    ];
    let mut buf = Vec::new();
    markdown::write_summary_markdown(&rows, &mut Cursor::new(&mut buf)).expect("write");
    let s = String::from_utf8(buf).expect("utf8");
    assert!(s.contains("# CodeLore summary"));
    assert!(s.contains("| commits | 5 |"));
}