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

37 lines
1.3 KiB
TypeScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* 能力注册快照(任务 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)}`);
});
});