用途:为 udecode/plate 仓库提供测试编写与维护规范,把测试套件收敛为三层——确定性逻辑的纯单元测试、真实 Plate/Slate 接线的薄契约测试、序列化器与解析器的金样输入输出测试。
主要能力与约束:Bun 优先、速度优先,bun run test 是默认迭代命令,pnpm test:all 用于任务收尾与 CI,不作为内层循环;默认迭代套件须保持快速;不包含浏览器或 e2e 覆盖;覆盖率只作热点遥测,不盲目追求仓库整体数字,每阶段后用覆盖率选择下一个热点;不做每包一个冒烟测试的扫荡。
使用方式:按文件排序分批而非按包扫荡,分三轮推进——先做评分≥6 的高价值契约文件,重跑覆盖率后做值得的≥5 文件,最后转向架构安全目标(插件解析与组合、规范化契约、解析与序列化行为、结构变换与合并辅助、历史/差异/变更追踪、公开编辑器不变量)。用 createEditor 测纯 Slate 查询与变换,createSlateEditor 测非 React 插件接线,createPlateEditor 仅在契约确属 Plate 特有或 React/provider 接线时使用。快速通道用 *.spec.ts[x],慢速通道用 *.slow.ts[x];用 bun run test:profile 检查快速套件,bun run test:slowest 作为硬门槛。
限制:Bun 全局来自 tooling/config/global.d.ts,不从 bun:test 导入 describe、it、expect 等;辅助函数保持包内局部,禁止 spec 互相导入;编译期类型契约放 type-tests/;默认用显式断言而非快照;删除跳过、注释掉的测试与死占位;包测试不得引入应用注册表或应用别名,跨包集成放 apps/www/src/tests/package-integration;不新增包 devDependencies 以支持跨包测试;第三方资源日志与序列化回退警告在 tooling/config/bunTestSetup.ts 中窄化抑制。资料未提供具体版本、收费或平台信息。