docs/test(P18A-5,P18A-6): 收口资产矩阵文档与回归

这个提交包含在:
2026-03-07 22:33:17 +08:00
父节点 447ffa66d2
当前提交 865acb63aa
共修改 7 个文件,包含 348 行新增和 21 行删除
@@ -44,6 +44,17 @@ describe("Permission Constants", () => {
expect(hasPermission(resolvePermissionsForRoles(["administration"]), "procurement.manage")).toBe(true);
});
it("grants asset permissions to configured roles", () => {
expect(hasPermission(resolvePermissionsForRoles(["employee"]), "asset.view_own")).toBe(true);
expect(hasPermission(resolvePermissionsForRoles(["manager"]), "asset.view_all")).toBe(true);
expect(hasPermission(resolvePermissionsForRoles(["finance"]), "asset.view_all")).toBe(true);
expect(hasPermission(resolvePermissionsForRoles(["administration"]), "asset.manage")).toBe(true);
expect(hasPermission(resolvePermissionsForRoles(["administration"]), "asset.transfer")).toBe(true);
expect(hasPermission(resolvePermissionsForRoles(["finance_mgr"]), "asset.inventory")).toBe(true);
expect(hasPermission(resolvePermissionsForRoles(["employee"]), "asset.manage")).toBe(false);
});
it("maps workflow entities to correct permission codes", () => {
expect(resolveEntityPermission("reimbursement", "approve")).toBe("expense.approve");
expect(resolveEntityPermission("reimbursement", "transfer")).toBe("expense.transfer");
@@ -130,4 +130,27 @@ describe("documentSequence service", () => {
expect(issued.config.source).toBe("document_category");
expect(issued.documentNumber).toMatch(/^CG-\d{8}-0001$/);
});
it("falls back to default asset category code for asset cards", async () => {
const prisma = buildPrisma({
categoryMap: {
ASSET_CARD_DEFAULT: {
code: "ASSET_CARD_DEFAULT",
entity_type: "asset_card",
sequence_prefix: "ZC",
number_length: 4,
reset_period: "yearly",
enabled: true,
archived_at: null,
},
},
});
const config = await resolveDocumentSequenceConfig(prisma, { documentType: "asset_card" });
expect(config.source).toBe("document_category");
expect(config.documentCategoryCode).toBe("ASSET_CARD_DEFAULT");
expect(config.prefix).toBe("ZC");
});
});