from pathlib import Path import scripts.build_decisions_catalog as bc import scripts.decisions_lib as dl def test_catalog_lists_only_active_sorted_by_key(): recs = [ dl.Record( heading="H2", source=Path("x"), lineno=1, key="z.a", status="active", rule="Zeta rule", ), dl.Record( heading="H1", source=Path("x"), lineno=1, key="a.b", status="active", rule="Alpha rule", ), dl.Record( heading="Old", source=Path("x"), lineno=1, key="a.b", status="superseded", rule="old", ), ] out = bc.render_catalog(recs) assert "a.b" in out and "z.a" in out assert out.index("a.b") < out.index("z.a") # sorted assert "Alpha rule" in out and "Zeta rule" in out assert "old" not in out # superseded excluded assert "GENERATED" in out # do-not-edit banner def test_anchor_matches_gitea_double_hyphen_slug(): # Ground truth: Gitea does NOT collapse hyphen runs. " — " (space, em dash, space) becomes # "--" in the anchor (one hyphen per space/dash char), never collapsed to a single "-". a = bc._anchor( "2026-07-19 — CI `test` job reports a sampled true peak-anon, not cache-inflated `memory.peak` (#412)" ) assert a == ("2026-07-19--ci-test-job-reports-a-sampled-true-peak-anon-not-cache-inflated-memorypeak-412") b = bc._anchor("2026-07-16 — Optional advertised IPTV base URL (`iptv.base_url`)…") assert "iptvbase_url" in b