feat(WP7-06): 增加最终AC预冻结门禁
Dada P0-A isolated Windows CI / validate-and-package (push) Canceled after 0s
Dada P0-A isolated Windows CI / validate-and-package (push) Canceled after 0s
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
import assert from "node:assert/strict";
|
||||
import test from "node:test";
|
||||
|
||||
import { buildWp706PrefreezeReport } from "../../scripts/lib/wp7-06-prefreeze.mjs";
|
||||
|
||||
const expectedTrace = {
|
||||
errors: [],
|
||||
status: "passed",
|
||||
summary: {
|
||||
acceptanceCriteria: 52,
|
||||
errorCategories: 9,
|
||||
featureModules: 13,
|
||||
parentFamilies: 89,
|
||||
penProductFrames: 18,
|
||||
productContracts: 19,
|
||||
requirements: 109,
|
||||
tasks: 52,
|
||||
testCases: 117,
|
||||
uiPages: 22,
|
||||
},
|
||||
};
|
||||
|
||||
const upstream = {
|
||||
"TASK-WP7-01": { branch: "codex/wp7-01", head: "1".repeat(40), merged: true, status: "passed" },
|
||||
"TASK-WP7-02": { branch: "codex/wp7-02", head: "2".repeat(40), merged: true, status: "passed" },
|
||||
"TASK-WP7-03": { branch: "codex/wp7-03", head: "3".repeat(40), merged: true, status: "deferred_nonblocking_first_version" },
|
||||
"TASK-WP7-04": { branch: "codex/wp7-04", head: "4".repeat(40), merged: true, status: "deferred_nonblocking_first_version" },
|
||||
"TASK-WP7-05": { branch: "codex/wp7-05", head: "5".repeat(40), merged: true, status: "passed" },
|
||||
};
|
||||
|
||||
test("builds the exact WP7-06 pre-freeze closure without pretending deferred suppliers passed", () => {
|
||||
const report = buildWp706PrefreezeReport({
|
||||
currentCommit: "a".repeat(40),
|
||||
releaseExists: false,
|
||||
trace: expectedTrace,
|
||||
upstream,
|
||||
});
|
||||
|
||||
assert.equal(report.status, "passed");
|
||||
assert.equal(report.release_json_written, false);
|
||||
assert.deepEqual(report.trace_summary, expectedTrace.summary);
|
||||
assert.deepEqual(report.deferred_external_tasks, ["TASK-WP7-03", "TASK-WP7-04"]);
|
||||
});
|
||||
|
||||
test("rejects missing lineage and premature RELEASE.json", () => {
|
||||
assert.throws(() => buildWp706PrefreezeReport({
|
||||
currentCommit: "a".repeat(40),
|
||||
releaseExists: false,
|
||||
trace: expectedTrace,
|
||||
upstream: { ...upstream, "TASK-WP7-05": { ...upstream["TASK-WP7-05"], merged: false } },
|
||||
}), /WP7_06_UPSTREAM_NOT_MERGED:TASK-WP7-05/);
|
||||
|
||||
assert.throws(() => buildWp706PrefreezeReport({
|
||||
currentCommit: "a".repeat(40),
|
||||
releaseExists: true,
|
||||
trace: expectedTrace,
|
||||
upstream,
|
||||
}), /WP7_06_RELEASE_WRITTEN_PREMATURELY/);
|
||||
});
|
||||
|
||||
test("rejects trace drift and unsupported upstream statuses", () => {
|
||||
assert.throws(() => buildWp706PrefreezeReport({
|
||||
currentCommit: "a".repeat(40),
|
||||
releaseExists: false,
|
||||
trace: { ...expectedTrace, summary: { ...expectedTrace.summary, testCases: 116 } },
|
||||
upstream,
|
||||
}), /WP7_06_TRACE_COUNT_MISMATCH:testCases/);
|
||||
|
||||
assert.throws(() => buildWp706PrefreezeReport({
|
||||
currentCommit: "a".repeat(40),
|
||||
releaseExists: false,
|
||||
trace: expectedTrace,
|
||||
upstream: { ...upstream, "TASK-WP7-03": { ...upstream["TASK-WP7-03"], status: "passed" } },
|
||||
}), /WP7_06_UNSUPPORTED_STATUS:TASK-WP7-03/);
|
||||
});
|
||||
Reference in New Issue
Block a user