test: validate WP5 task lineage for WP4-07 gate
Dada P0-A isolated Windows CI / validate-and-package (push) Failing after 3m23s
Dada P0-A isolated Windows CI / validate-and-package (push) Failing after 3m23s
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
import assert from "node:assert/strict";
|
||||
import test from "node:test";
|
||||
|
||||
import { inspectWp5TaskLineage } from "../../scripts/lib/wp4-07-gate.mjs";
|
||||
|
||||
const sha = (digit) => digit.repeat(40);
|
||||
const commit = (index) => ({ sha: sha(String(index)), subject: `feat: complete TASK-WP5-0${index}` });
|
||||
|
||||
test("WP5 lineage recognizes tasks already merged into later remote heads", () => {
|
||||
const gate = inspectWp5TaskLineage({
|
||||
"codex/wp5-03": sha("3"),
|
||||
"codex/wp5-04": sha("4"),
|
||||
}, [commit(4), commit(3), commit(2), commit(1)]);
|
||||
|
||||
assert.equal(gate.complete, false);
|
||||
assert.equal(gate.candidate_baseline_branch, "codex/wp5-04");
|
||||
assert.deepEqual(gate.missing_tasks, ["TASK-WP5-05", "TASK-WP5-06", "TASK-WP5-07"]);
|
||||
assert.equal(gate.task_shas["TASK-WP5-01"], sha("1"));
|
||||
assert.equal(gate.task_shas["TASK-WP5-02"], sha("2"));
|
||||
});
|
||||
|
||||
test("WP5 lineage becomes complete only at a wp5-07 head containing every task", () => {
|
||||
const heads = { "codex/wp5-07": sha("7") };
|
||||
const complete = inspectWp5TaskLineage(heads, Array.from({ length: 7 }, (_, index) => commit(7 - index)));
|
||||
const incomplete = inspectWp5TaskLineage(heads, [commit(7), commit(6), commit(5), commit(4), commit(3), commit(2)]);
|
||||
|
||||
assert.equal(complete.complete, true);
|
||||
assert.deepEqual(complete.missing_tasks, []);
|
||||
assert.equal(incomplete.complete, false);
|
||||
assert.deepEqual(incomplete.missing_tasks, ["TASK-WP5-01"]);
|
||||
});
|
||||
Reference in New Issue
Block a user