test(游戏共创): 新增创作族谱/衍生列表端到端验收脚本(含 Fork 取件通道)
- 新增 scripts/check-game-distribution-lineage-e2e.mjs:真实 HTTP + 浏览器验收 M3 与 M2a
· 404 规则:未公开草稿锚点与不存在的 gameId,/lineage 与 /derived 都断言 404 且不是成功信封空树,并断言 no-store
· 真实树:完整发布链路(建版本→传包→送审→管理员通过)把母版与带改编声明的子作品推公开,
断言 rootGameId/root/节点集合/generation/parentGameId/status/作者名读取自账号展示名/代际升序/
节点键集合恰好 7 个/响应不含对象键与素材键
· 衍生列表:锚点=母版时恰好含直接子作品且未截断
· 软删除降级:作者软删除母版后 nodes 不再含母版、root=null 但 rootGameId 仍回传、
子节点保留 generation/parentGameId、响应文本不含母版标题与作者名、已删锚点两个接口都 404
· Fork 取件通道(M2a):未公开作品 409、公开但授权 forbidden 403、元数据 sha256/bytes/versionId
与公开版本行一致、downloadPath 为同源相对路径、按该路径下载后校验 content-type/长度/sha256/ZIP 头、
未带 Bearer 401、另一名已登录作者可取件 200
· 浏览器:详情页「查看创作族谱」入口 → /games/lineage 树渲染(母版/当前作品/作者名)→
页面内触发父作品软删除 → 降级为「原作品已不可用」且父标题不再出现,删除前后各留截图
· 节点上限 200 未用真实 201 节点验证:改为源码常量钉住并在脚本里 NOTE 说明降级理由
- package.json:新增 npm script check:game-distribution-lineage-e2e,命名与既有 check:game-distribution-*-e2e 一致
- 实测(本地 dev 栈 + Chrome + 临时 playwright):本脚本 90 项 90 PASS / 0 FAIL;
同时复跑 check:game-distribution-fork-authorization-e2e 48/48 未回归
This commit is contained in: