fix: Judge-Urteil auch mit Markdown erkennen („## Urteil: **PASS**“)

parseVerdict und das SHIP-Urteil erwarteten „Urteil: PASS“ ohne Markup.
Der Judge schrieb „## Urteil: **PASS WITH CONCERNS**“; jede Runde galt als
unklar, --approve-concerns griff nie. Neu: parseShipVerdict, Tests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Dieter Schlüter 2026-10-15 03:16:30 +02:00
commit 65555b25f1

View file

@ -10,6 +10,7 @@ const parseBlockers = extractFn("parseBlockers");
const normalizeForComparison = extractFn("normalizeForComparison");
const licenceMd = extractFn("licenceMd");
const loopKey = extractFn("loopKey");
const parseShipVerdict = extractFn("parseShipVerdict");
test("parseVerdict: klares PASS", () => {
assert.equal(parseVerdict("Review fertig.\nUrteil: PASS\nKeine Blocker."), "PASS");
@ -102,3 +103,17 @@ test("loopKey: weder Blocker noch Major → ganzer Text", () => {
assert.equal(loopKey("Urteil: FAIL\nirgendwas"), "Urteil: FAIL\nirgendwas");
assert.equal(loopKey("## Blocker\nNone\n## Major\n-"), "## Blocker\nNone\n## Major\n-");
});
test("parseVerdict: Urteil in Markdown-Fett (Strata-Judge 15.10.)", () => {
assert.equal(parseVerdict("## Urteil: **PASS WITH CONCERNS**\n### Blocker"), "PASS WITH CONCERNS");
assert.equal(parseVerdict("**Urteil:** FAIL"), "FAIL");
assert.equal(parseVerdict("## Urteil: **PASS**"), "PASS");
assert.equal(parseVerdict("Urteil: `PASS`"), "PASS");
});
test("parseShipVerdict: SHIP, NO-SHIP, Markdown, unklar", () => {
assert.equal(parseShipVerdict("Urteil: SHIP"), "SHIP");
assert.equal(parseShipVerdict("## Urteil: **NO-SHIP**"), "NO-SHIP");
assert.equal(parseShipVerdict("**Urteil:** ship"), "SHIP");
assert.equal(parseShipVerdict("kein Urteil"), "");
});