Skip to content

FNOS-032 测试用例 ​

测试范围与需求分析 ​

被测对象是 @tnnevol/dsh-opencode 插件新增的会话头兜底:src/host/provider.ts 的 ensureOpenCodeSessionHeader 与 withOpenCodeSessionFallback,以及四个协议族的接线。执行任务见 PLAN-FNOS-032,覆盖需求功能:

覆盖功能关键风险点
FNOS-032-01 辅助调用不再因缺会话头中断兜底值是否稳定;是否真的进入 HTTP 请求头;自动审查路径是否仍带不上头
FNOS-032-02 主对话会话头语义不变是否会覆盖真实会话 id;是否会覆盖调用方已显式设置的头;是否只影响 OpenCode 路由

❓ 资料缺口:Auto 权限预设下的审查调用依赖真实 DSH 运行时与真实 OpenCode 账号,包级只能覆盖到「header 进入请求」;「审查请求成功返回」需真实会话验证。

测试环境 ​

功能目标环境说明
FNOS-032-01包级测试 + DSH Web(Auto 权限预设)头注入可包级断言;审查成功需真实会话
FNOS-032-02包级测试会话优先、显式头保留、两条 stream 路径

包级测试环境:插件工作区,pnpm --filter @tnnevol/dsh-opencode run check。

测试用例 ​

FNOS-032-01 辅助调用不再因缺会话头中断 ​

ID覆盖验收步骤预期执行环境
TC-001FNOS-032-01-AC-01对没有 sessionId 的选项调用 ensureOpenCodeSessionHeader返回的 headers 含 x-opencode-session,值为 OPENCODE_FALLBACK_SESSION_ID包级
TC-002FNOS-032-01-AC-01;FNOS-032-02-AC-01通过 provider 的 stream 发一次真实请求(假 fetch 捕获头),第一次不带 sessionId,第二次带 sessionId: 'session-z'第一次头值等于兜底常量;第二次头值等于 session-z包级
TC-006FNOS-032-01-AC-02DSH Web 切到 Auto 权限预设,会话模型选 dsh-opencode 的任一模型,触发一次工具调用不再出现 MissingSessionID,工具调用继续执行DSH Web(待执行)

FNOS-032-02 主对话会话头语义不变 ​

ID覆盖验收步骤预期执行环境
TC-003FNOS-032-02-AC-01对带 sessionId: 'session-a' 的选项调用补齐头值为 session-a,不被兜底值替换包级
TC-004FNOS-032-02-AC-02对已含 X-OPEncode-Session: given 的选项调用补齐原头保留;不新增小写同名头包级
TC-005FNOS-032-02-AC-03、AC-04空串 sessionId 走兜底;stream 与 streamSimple 两条路径分别验证;原 options 对象不被修改空串用兜底;两条路径都补齐;原对象无 headers 新增包级

测试执行结果 ​

ID结果执行日期证据/备注
TC-001通过2026-10-26provider.spec.ts「无会话身份时补稳定兜底值」
TC-002通过2026-10-26provider.spec.ts「真实请求路径:无会话身份时请求头包含兜底值」:假 fetch 捕获到兜底值与 session-z
TC-003通过2026-10-26「有会话 id 时优先使用会话 id」
TC-004通过2026-10-26「调用方已有的头(大小写不敏感)不被覆盖」
TC-005通过2026-10-26「空会话 id 视为缺失」「stream 与 streamSimple 两条路径都会补齐」「不改写原 options 对象」
TC-006未执行—需 DSH Web 切 Auto 权限预设并真实触发工具调用;建议在插件更新后由提出人验证

包级汇总:插件 check 通过;tests/host/provider.spec.ts 19 条通过,插件全量 16 个文件 / 207 条用例 通过。

Bug 记录 ​

本需求包级验证未发现缺陷。

测试结论 ​

包级验证完成:兜底值、会话优先、显式头保留与真实请求路径均通过。真实会话(Auto 权限预设)验证待执行,因此结论记为「执行中」,不以包级通过替代运行时验收。

变更记录 ​

日期变更说明
2026-10-26建立测试用例文档6 条用例:5 条包级(已执行并通过)、1 条真实会话(待执行)

基于 VitePress 构建