OSMOKE1 修复 OA-only smoke 账号治理

这个提交包含在:
2026-05-23 14:46:14 +08:00
父节点 88b06346da
当前提交 5a64809004
共修改 15 个文件,包含 1209 行新增和 13 行删除
@@ -27,6 +27,7 @@ function auditReport(overrides = {}) {
{ employeeNo: "HRWDTEST-20260517214548", status: "archived", archived: true, roles: ["employee"] },
],
matchedActive: [],
oaOnlySmokeExempted: [],
wecomActiveMissingInOa: [],
oaActiveMissingBinding: [],
statusMismatch: [],
@@ -103,6 +104,27 @@ describe("resolve-wecom-oa-user-consistency", () => {
expect(plan.excludedByAllowlist.map((item) => item.employeeNo)).toEqual(["TEST001"]);
});
it("exempts source-classified OA-only smoke accounts from archive plans", () => {
const plan = buildFixPlan(auditReport({
findings: {
...auditReport().findings,
oaOnlySmokeExempted: [
{ employeeNo: "TEST001", status: "active", roles: ["admin", "employee"] },
],
},
}));
expect(plan.archiveOaTestEmployees.map((item) => item.employeeNo)).toEqual(["TEST002"]);
expect(plan.oaOnlySmokeExempted.map((item) => item.employeeNo)).toEqual(["TEST001"]);
});
it("supports explicit OA-only smoke employee-no exemption for legacy reports", () => {
const plan = buildFixPlan(auditReport(), { oaOnlySmokeEmployeeNos: ["TEST002"] });
expect(plan.archiveOaTestEmployees.map((item) => item.employeeNo)).toEqual(["TEST001"]);
expect(plan.oaOnlySmokeExempted.map((item) => item.employeeNo)).toEqual(["TEST002"]);
});
it("requires explicit environment approval for apply mode", () => {
expect(() => assertApplyAllowed({ mode: "apply" })).toThrow(/WOUA_FIX_APPLY=1/);
process.env.WOUA_FIX_APPLY = "1";
@@ -116,6 +138,7 @@ describe("resolve-wecom-oa-user-consistency", () => {
"--allow-employee-no=TEST001,TEST002",
"--allow-employee-no",
"TEST001",
"--oa-only-smoke-employee-no=TEST003",
"--repair-manager-effects",
"--manager-fallback-employee-no=HYD000007",
"--format=json",
@@ -125,6 +148,7 @@ describe("resolve-wecom-oa-user-consistency", () => {
expect(options.reportPath).toBe("summary.json");
expect(options.format).toBe("json");
expect(options.allowEmployeeNos).toEqual(["TEST001", "TEST002"]);
expect(options.oaOnlySmokeEmployeeNos).toEqual(["TEST003"]);
expect(options.repairManagerEffects).toBe(true);
expect(options.managerFallbackEmployeeNo).toBe("HYD000007");
});