from pathlib import Path from scripts.adapters.osv_scanner import parse_osv_scanner_output _FIXTURES = Path(__file__).parent / "fixtures" def test_emits_finding_per_vuln(): payload = (_FIXTURES / "osv_scanner_sample.json").read_text() findings = parse_osv_scanner_output(payload) assert len(findings) == 1 f = findings[0] assert f.rule_id == "GHSA-cph5-m8f7-6c5x" assert f.tool == "osv-scanner" assert f.severity == "high" assert "axios" in f.message assert f.file == "package-lock.json" def test_handles_empty(): assert parse_osv_scanner_output('{"results": []}') == [] def test_handles_invalid(): assert parse_osv_scanner_output("nope") == []