# retoor from devplacepy.routers.tools.isslop import _signal_groups def _signal(code, severity="weak", line=1, title="t"): return {"code": code, "title": title, "severity": severity, "axis": "quality", "weight": 1.0, "line": line, "evidence": ""} def test_signal_groups_deduplicates_with_counts(): groups = _signal_groups( [ _signal("INJECTION_RISK", "strong", 10), _signal("INJECTION_RISK", "strong", 22), _signal("INJECTION_RISK", "strong", 31), _signal("TEXTBOOK_NAMING", "medium", 5), ] ) assert [group["code"] for group in groups] == ["INJECTION_RISK", "TEXTBOOK_NAMING"] assert groups[0]["count"] == 3 assert groups[0]["lines"] == [10, 22, 31] assert groups[1]["count"] == 1 def test_signal_groups_orders_by_severity_then_count(): groups = _signal_groups( [_signal("WEAK_A", "weak")] * 5 + [_signal("MEDIUM_A", "medium")] + [_signal("STRONG_A", "strong")] + [_signal("WEAK_B", "weak")] * 2 ) assert [group["code"] for group in groups] == ["STRONG_A", "MEDIUM_A", "WEAK_A", "WEAK_B"] def test_signal_groups_tolerates_malformed_entries(): groups = _signal_groups(["not-a-dict", {"code": "X", "severity": "strong", "line": "n/a"}]) assert len(groups) == 1 assert groups[0]["lines"] == [] def test_linkify_sources_rewrites_every_reference_form(): from devplacepy.routers.tools.isslop import _linkify_sources markdown = ( "The `src/libs/Env.ts:12` line in `src/libs/Env.ts` and bare src/libs/Env.ts plus " "src/libs/Env.ts:30 with signal AI_SIGNATURE and `unknown.ts`." ) result = _linkify_sources(markdown, "uid1", {"src/libs/Env.ts"}, {"AI_SIGNATURE"}) assert "[`src/libs/Env.ts:12`](/tools/isslop/uid1/source?path=src%2Flibs%2FEnv.ts&line=12#L12)" in result assert "[`src/libs/Env.ts`](/tools/isslop/uid1/source?path=src%2Flibs%2FEnv.ts)" in result assert "[src/libs/Env.ts:30](/tools/isslop/uid1/source?path=src%2Flibs%2FEnv.ts&line=30#L30)" in result assert "[AI_SIGNATURE](/docs/isslop-checks.html)" in result assert "`unknown.ts`" in result def test_linkify_sources_never_rewrites_inside_generated_links(): from devplacepy.routers.tools.isslop import _linkify_sources markdown = "`a/b.ts` then `a/b.ts` again" result = _linkify_sources(markdown, "uid1", {"a/b.ts"}, set()) assert result.count("](/tools/isslop/uid1/source?path=a%2Fb.ts)") == 2 assert "[[" not in result and "]](" not in result def test_source_url_encodes_path_and_line(): from devplacepy.routers.tools.isslop import _source_url assert _source_url("u1", "a b/c.ts") == "/tools/isslop/u1/source?path=a%20b%2Fc.ts" assert _source_url("u1", "x.ts", 12).endswith("&line=12#L12")