2.8 KiB
2.8 KiB
测试补充执行文档(2026-03-03)
目标
- 为近期重构与修复引入的关键路径补齐高价值测试。
- 降低“请求契约回退”“状态错乱”“错误处理分散”三类回归风险。
- 每完成一个测试包:更新本文件状态并创建独立 git commit。
执行清单
T1 requestJson 统一请求层单测(src/lib/fetcher.ts)【待完成】
- 新增测试文件:
src/lib/fetcher.test.ts - 用例清单:
- 200 JSON 响应:返回解析后的对象。
- 带 body 请求:自动注入
Content-Type: application/json且正确序列化。 - 调用方自定义
Content-Type时不被覆盖。 - 204 响应:返回
undefined。 - 非 2xx 且 payload 含
{ error }:抛出ApiRequestError,message/status/payload 正确。 - 非 2xx 且纯文本响应:错误消息回退为文本内容。
- 响应对象无
text()仅有json()时仍可解析(兼容测试 mock)。
- 通过标准:
npx vitest run src/lib/fetcher.test.ts通过。npx tsc --noEmit通过。
T2 useBlindboxDraw 状态机补测(src/hooks/useBlindboxDraw.ts)【待完成】
- 新增测试文件:
src/hooks/useBlindboxDraw.test.ts - 用例清单:
poolCount=0:直接报错,不触发请求。- 抽取成功:调用
requestJson(仅提交roomId),并正确更新phase/poolCount/drawnHistory/revealedIdea。 - 抽取失败:回退到
pool,写入错误信息。
- 通过标准:
npx vitest run src/hooks/useBlindboxDraw.test.ts通过。npx tsc --noEmit通过。
T3 useBlindboxRoom 关键交互补测(src/hooks/useBlindboxRoom.ts)【待完成】
- 新增测试文件:
src/hooks/useBlindboxRoom.test.ts - 用例清单:
- 初始化拉取房间成功后,成员判断正确(
isMember=true)。 handleJoinRoom仅提交code参数,成功后刷新成员状态。handleLeaveOrDelete二次确认流程正确,删除请求不再携带冗余 body。
- 通过标准:
npx vitest run src/hooks/useBlindboxRoom.test.ts通过。npx tsc --noEmit通过。
T4 useBlindboxPlan 核心分支补测(src/hooks/useBlindboxPlan.ts)【待完成】
- 新增测试文件:
src/hooks/useBlindboxPlan.test.ts - 用例清单:
fetchAcceptedPlan正常读取已接受计划并写入activeContract。handleGeneratePlan在流式失败时走 fallback API,成功进入plan_reveal。handleAcceptPlan成功:设置planAccepted、更新activeContract、触发提示。handleAcceptPlan失败:不应误标记已接受,返回错误提示。
- 通过标准:
npx vitest run src/hooks/useBlindboxPlan.test.ts通过。npx tsc --noEmit通过。
状态追踪
- T1:未开始
- T2:未开始
- T3:未开始
- T4:未开始