Files
no-whatever/TEST_SUPPLEMENT_PLAN_2026-03-03.md
T

4.3 KiB
Raw Blame History

测试补充执行文档(2026-03-03)

目标

  • 为近期重构与修复引入的关键路径补齐高价值测试。
  • 降低“请求契约回退”“状态错乱”“错误处理分散”三类回归风险。
  • 每完成一个测试包:更新本文件状态并创建独立 git commit。

执行清单

T1 requestJson 统一请求层单测(src/lib/fetcher.ts)【已完成】

  • 新增测试文件:src/lib/fetcher.test.ts
  • 用例清单:
  1. 200 JSON 响应:返回解析后的对象。
  2. 带 body 请求:自动注入 Content-Type: application/json 且正确序列化。
  3. 调用方自定义 Content-Type 时不被覆盖。
  4. 204 响应:返回 undefined
  5. 非 2xx 且 payload 含 { error }:抛出 ApiRequestErrormessage/status/payload 正确。
  6. 非 2xx 且纯文本响应:错误消息回退为文本内容。
  7. 响应对象无 text() 仅有 json() 时仍可解析(兼容测试 mock)。
  • 通过标准:
  1. npx vitest run src/lib/fetcher.test.ts 通过。
  2. npx tsc --noEmit 通过。
  • 完成记录:
  1. 已新增 src/lib/fetcher.test.ts,覆盖 7 个用例,执行通过(2026-03-03)。

T2 useBlindboxDraw 状态机补测(src/hooks/useBlindboxDraw.ts)【已完成】

  • 新增测试文件:src/hooks/useBlindboxDraw.test.ts
  • 用例清单:
  1. poolCount=0:直接报错,不触发请求。
  2. 抽取成功:调用 requestJson(仅提交 roomId),并正确更新 phase/poolCount/drawnHistory/revealedIdea
  3. 抽取失败:回退到 pool,写入错误信息。
  • 通过标准:
  1. npx vitest run src/hooks/useBlindboxDraw.test.ts 通过。
  2. npx tsc --noEmit 通过。
  • 完成记录:
  1. 已新增 src/hooks/useBlindboxDraw.test.ts,覆盖空池/成功/失败 3 条关键分支(2026-03-03)。

T3 useBlindboxRoom 关键交互补测(src/hooks/useBlindboxRoom.ts)【已完成】

  • 新增测试文件:src/hooks/useBlindboxRoom.test.ts
  • 用例清单:
  1. 初始化拉取房间成功后,成员判断正确(isMember=true)。
  2. handleJoinRoom 仅提交 code 参数,成功后刷新成员状态。
  3. handleLeaveOrDelete 二次确认流程正确,删除请求不再携带冗余 body。
  • 通过标准:
  1. npx vitest run src/hooks/useBlindboxRoom.test.ts 通过。
  2. npx tsc --noEmit 通过。
  • 完成记录:
  1. 已新增 src/hooks/useBlindboxRoom.test.ts,覆盖初始化成员识别、仅 code 入参加入、二次确认删除(2026-03-03)。

T4 useBlindboxPlan 核心分支补测(src/hooks/useBlindboxPlan.ts)【已完成】

  • 新增测试文件:src/hooks/useBlindboxPlan.test.ts
  • 用例清单:
  1. fetchAcceptedPlan 正常读取已接受计划并写入 activeContract
  2. handleGeneratePlan 在流式失败时走 fallback API,成功进入 plan_reveal
  3. handleAcceptPlan 成功:设置 planAccepted、更新 activeContract、触发提示。
  4. handleAcceptPlan 失败:不应误标记已接受,返回错误提示。
  • 通过标准:
  1. npx vitest run src/hooks/useBlindboxPlan.test.ts 通过。
  2. npx tsc --noEmit 通过。
  • 完成记录:
  1. 已新增 src/hooks/useBlindboxPlan.test.ts,覆盖 latest、流式失败 fallback、accept 成功/失败四个关键分支(2026-03-03)。

T5 E2E 关键流程补测(Playwright)【已完成】

  • 新增配置与测试:
  1. playwright.config.ts
  2. e2e/home-navigation.spec.ts
  3. e2e/panic-join.spec.ts
  4. e2e/invite-join.spec.ts
  • 用例清单:
  1. 首页模式卡片导航:/ -> /panic -> 返回 -> /blindbox
  2. Panic 手动加入:房间号输入规范化(大写、过滤非法字符、截断 6 位)并成功跳转房间。
  3. 邀请页加入:展示房间人数,点击加入后成功跳转房间。
  • 通过标准:
  1. npm run test:e2e 通过。
  • 完成记录:
  1. 已补齐 Playwright 配置与 3 条 E2E 用例(2026-03-03)。
  2. Jenkins 已接入 E2E 门禁(test:e2e:install + test:e2e)(2026-03-03)。
  3. 已安装 @playwright/test 与 Chromium 浏览器,并实测 npm run test:e2e 通过(3/3)(2026-03-03)。

状态追踪

  • T1:已完成(2026-03-03
  • T2:已完成(2026-03-03
  • T3:已完成(2026-03-03
  • T4:已完成(2026-03-03
  • T5:已完成(代码已补齐,2026-03-03)