feat(08-05-contract-detail-workspace): 完成合同详情与终止状态治理

这个提交包含在:
2026-08-08 02:02:52 +08:00
父节点 7546d372d6
当前提交 21851774dd
共修改 25 个文件,包含 2516 行新增和 1021 行删除
@@ -0,0 +1,26 @@
const { validateContractImportStatus } = require("../../../src/scripts/import-project-ledgers");
describe("contract ledger import status guard", () => {
it("allows only non-terminal persisted statuses", () => {
expect(validateContractImportStatus("draft")).toBeNull();
expect(validateContractImportStatus("active")).toBeNull();
expect(validateContractImportStatus("archived")).toBeNull();
expect(validateContractImportStatus("expired")).toBe("status_not_importable:expired");
expect(validateContractImportStatus("terminated")).toBe("status_not_importable:terminated");
});
it("does not overwrite an already terminated contract", () => {
expect(validateContractImportStatus("active", "terminated")).toBe("terminated_contract_is_final");
expect(validateContractImportStatus("archived", "terminated")).toBe("terminated_contract_is_final");
});
it("does not perform an unaudited status transition for an existing row", () => {
expect(validateContractImportStatus("archived", "active")).toBe("status_change_requires_contract_api");
expect(validateContractImportStatus("active", "active")).toBeNull();
});
it("does not overwrite ordinary fields on an archived row", () => {
expect(validateContractImportStatus("archived", "archived")).toBe("archived_contract_requires_correction_api");
expect(validateContractImportStatus("active", "archived")).toBe("archived_contract_requires_correction_api");
});
});