PRA-only-demo/scripts/capability-snapshot.test.ts

37 lines
1.3 KiB
TypeScript
Raw Normal View History

/**
* 能力注册快照(任务 0.3,见 docs/rpa-core-refactor-tasks.md)
*
* 以与生产完全相同的路径(import "../src/main/capabilities" 的副作用注册)
* 拉起全部能力模块,把运行时注册表的 id 清单写入
* resources/capability-snapshot.json。
*
* 用法:npm run snapshot
* 抽离改造各阶段完成后重跑并 git diff,快照变化必须为零(行为回归基准)。
*/
import { writeFileSync } from "node:fs";
import path from "node:path";
import { fileURLToPath } from "node:url";
import { describe, expect, it } from "vitest";
import { capabilityCount, capabilityIds } from "../src/main/capabilities";
const OUT_FILE = path.join(
path.dirname(fileURLToPath(import.meta.url)),
"..",
"resources",
"capability-snapshot.json"
);
describe("能力注册快照", () => {
it("全量注册后导出能力 id 清单", () => {
const ids = [...capabilityIds()].sort();
expect(ids.length).toBeGreaterThan(0);
const snapshot = {
generatedAt: new Date().toISOString(),
count: ids.length,
ids
};
writeFileSync(OUT_FILE, JSON.stringify(snapshot, null, 2) + "\n", "utf8");
console.log(`[能力快照] ${capabilityCount()} 个能力已写入 ${path.basename(OUT_FILE)}`);
});
});