Skip to content

验收与 Dogfood

Verification

单元测试(Vitest)

bash
npm test                 # vitest run
npm run test:watch       # interactive

覆盖(tests/**/*.test.ts):

套件内容
config-data-binding.xbuj / manifest v2 data 绑定解析、路径 helpers
xbu-mergeLoad data merge 规则 + hasInstanceData
profile-archive.xbu v2 ZIP 往返(FORMAT / manifest.xbuj / data/*)、legacy 读
project-packageprepareOpenPath / 包内 config 解析
project-data-guardsloadProjectData 注入 pg.dump、绑定空包
xbu-load-ui / path helpers进度 UI store、链接路径解析

npm run acceptance 会先跑 npm test

.xbu 归档往返也在 acceptance:profile.archive_roundtripscripts/acceptance/profile-roundtrip.mjs)。

契约层:acceptance

bash
npm run acceptance

会先 typecheck单元测试、重新打包 server.cjs,再对 headless proxy 跑黄金脚本(LLM、Auth、S3、DB wire、Redis、Secrets、Queue、Search、MCP、Ship、PostgREST、GoTrue、Storage、Realtime、Edge …)。

期望:全部 PASS(当前 82 项)。细节见 Acceptance 参考

Agent 侧也可先调 runtime.selftest(更快的探针集合)。

场景层:Origin dogfood

不修改 Origin 仓库 的前提下,只读其 migrations/functions,验证「能否当本地 Supabase」:

bash
ORIGIN_ROOT=/path/to/origin npm run origin:dogfood

会:

  1. 起 proxy,并设置 XBUCKLE_FUNCTIONS_DIR 到 Origin 的 supabase/functions
  2. XBUCKLE_AGENT_MOCK=1(LLM 走本机,并把 AGENT_MODEL 一并钉成 gpt-mock
  3. 应用全部 SQL migrations
  4. signup / profile / project / RLS / access_token / publish_release / storage / agent-chat

期望:21 项全 PASS。需要本机装 deno 才能跑 edge 两项。

失败时不要改 Origin;在 XBuckle 或测试脚本侧修。这类失败最常见的形态是应用 functions/.env 给真实厂商钉了模型名或 base URL,而 XBuckle 只改写了其中一部分—— 覆盖要成套,否则应用会打到本机 mock 却带着云厂商的模型名。

Agent 验收清单(复制用)

text
[ ] GET :3100/health
[ ] runtime.selftest → 0 failures
[ ] 应用 env 仅为 127.0.0.1/localhost
[ ] 最小业务路径(登录或一条 REST/SQL)成功
[ ] traffic.recent 能看到对应请求
[ ] 若声称 Supabase 替换:migrations + RLS +(可选)agent-chat
[ ] 未对 *.supabase.co 发送写操作