facc04aa65
本提交为 .git 对象库损坏后的重建提交,内容等价于原先三个本地提交 (5e2fd4c2 / 57a53c98 / 5d7e1873)的累积结果,未做任何额外改动。 一、docs 结构整改(整改 #14) 根因:重构时新结构为 untracked 文件,执行 git stash(未带 -u)未纳入, 随后 git reset 拉回 HEAD 旧 tracked 树,导致旧树复活、新旧两棵目录 树并存于 docs/,共 791 文件、双分类体系冲突。 修复动作: - b2 同名异主题文件改名迁移保全 9 个 - C 类 39 个孤立文件按主题正确归类 - A/B1 类 222 个重复文件删除(新结构已有内容副本) - 9 个旧独有空目录删除 - 270 处内部引用按 verified 映射改写 - 整改记录 #14 登记于 04-运维文档/部署运维 结果:docs 791 → 569 文件,顶层仅规范 8 类 + 治理文件,单树恢复。 残留:约 20 处指向从未存在文件的陈旧死链,归入独立文档卫生任务。 二、compose 双目录对齐(消除踩坑 A) - docker-compose.yml:nginx 前端挂载全部由根目录 frontend-*/dist 改为 src/frontend-*/dist(h5 / agent / admin / terminal) - docker-compose.dev.yml:dev 服务 build context 与卷同步改 src/ - 效果:本地 docker compose up 不再把根目录 stale dist 挂回, 与线上一致,分叉隐患消除(已 docker compose config 校验通过) 防复发铁律: - 重构须提交;仓库修复须 git stash -u 或先 commit - 新结构须 git add 并提交,避免再次 untracked 复活 - H5 改动只动 src/frontend-h5/,禁改根目录遗留 frontend-*/
5.8 KiB
5.8 KiB
测试用例 — 员工端结束会话固定按钮
关联需求编号: REQ-用户-005 关联PRD:
01-产品文档/05-用户端H5/PRD-REQ-用户-005-头像菜单退出-v1.1.md关联技术方案:02-技术文档/技术方案-REQ-用户-005-头像菜单退出-v1.1.md版本: v1.1 日期: 2026-07-26 作者: Simon 测试类型: 功能测试
一、功能验收(7 项)
TC-001 点击「结束会话」按钮弹出确认框
- Given 员工已登录,处于聊天页(
/h5/) - When 点击标题栏头像右侧的「结束会话」按钮
- Then
- 确认对话框(van-dialog)弹出
- 标题为"结束会话"
- 消息含"退出后会话记录会清空"
- 按钮:左侧"取消"(灰色),右侧"确定退出"(红色)
TC-002 点击「取消」关闭确认框
- Given 确认对话框已弹出
- When 点击「取消」按钮
- Then
- 对话框关闭
- 回到聊天页,会话状态不变
- 消息列表完整保留
- 不发起任何 API 请求
TC-003 确认退出 — 有活跃会话(完整流程)
- Given 员工有活跃会话(AI 对话中),处于聊天页
- When 点击确定退出
- Then
- Loading 状态显示(按钮 loading 或 toast)
- 后端
POST /h5/conversations/current/close被调用(检查 Network 面板) - 后端
POST /api/auth/logout被调用 - 前端 Token 被清除(localStorage 中无 token)
- 页面跳转到
/h5/login(或窗口关闭) - 总耗时 < 3 秒
TC-004 确认退出 — 无活跃会话
- Given 员工刚登录,尚未发起任何对话(无活跃会话)
- When 点击确定退出
- Then
- 不调用
closeAPI(跳过步骤1) - 直接调用
POST /api/auth/logout - 流程正常完成,跳转
/h5/login - 无控制台报错
- 不调用
TC-005 「结束会话」按钮 hover 态视觉反馈(桌面端)
- Given 桌面浏览器访问 H5 员工端
- When 鼠标悬停在「结束会话」按钮上
- Then
- 光标变为手型(
cursor: pointer) - 按钮背景填充红色(
#ee0a24)、文字变白色 - 无布局抖动
- 光标变为手型(
TC-006 退出后 Token 失效
- Given 已完成退出流程,跳转到
/h5/login - When 手动在地址栏输入
/h5/并回车 - Then
- 路由守卫拦截,重定向到
/h5/login - 不闪现聊天页内容
- 路由守卫拦截,重定向到
TC-007 企微 WebView 真实环境退出
- Given 企微 APP 内打开 H5 员工端
- When 执行完整退出流程
- Then
- 窗口成功关闭(或跳转登录页作为降级)
- 不出现白屏或错误页
- 无 JS 报错
二、边界验收(5 项)
TC-008 close API 失败不阻塞退出
- Given 员工有活跃会话
- When 模拟网络故障(DevTools 阻断
/h5/conversations/current/close),然后点击确定退出 - Then
- Toast 提示"会话关闭失败,继续退出…"
- 流程继续执行(仍然调用 logout API)
- 最终正常跳转
/h5/login
TC-009 logout API 失败留在当前页
- Given 员工处于聊天页
- When 模拟网络故障(DevTools 阻断
/api/auth/logout),然后点击确定退出 - Then
- Toast 提示"退出失败,请稍后重试"
- 页面不跳转,停留在聊天页
- 用户可重新尝试退出
- Token 和会话状态未被清除
TC-010 防重复点击
- Given 确认对话框已弹出
- When 快速连续点击「确定退出」按钮 2 次以上
- Then
- 只发起一次 API 调用流程
- 不出现重复的 close/logout 请求
- 不会同时跳转两次
TC-011 退出后 WebSocket 断开
- Given 退出前 WebSocket 连接正常
- When 完成退出流程
- Then
- WebSocket 连接断开(DevTools Network WS 标签确认)
- 无 WebSocket 重连尝试
- 无心跳包继续发送
TC-012 InputBar「结束咨询」按钮不受影响
- Given 人工服务态,InputBar 显示「结束咨询」按钮
- When 点击 InputBar 的「结束咨询」按钮
- Then
- 流程与改造前完全一致(弹出评价 → 提交 → 会话关闭)
- 头像菜单功能不影响此流程
- 两个出口独立运作,互不干扰
三、暗黑模式(1 项)
TC-013 暗黑模式下按钮和对话框样式正确
- Given 切换到深色主题
- When 查看「结束会话」按钮,然后点击触发确认对话框
- Then
- 「结束会话」按钮颜色适配暗色(CSS 变量自动处理)
- 按钮文字可读(对比度足够)
- 确认对话框(van-dialog)适配暗色
测试环境要求
| 环境 | 要求 |
|---|---|
| 浏览器 | Chrome / Edge 最新版 |
| 移动端 | 企微 iOS/Android 最新版 |
| 后端 | 开发环境或 staging,/api/auth/logout + /h5/conversations/current/close 可用 |
| 网络 | 需能模拟断网/阻断特定请求(Chrome DevTools Network 面板) |
测试结果记录
| 用例编号 | 结果 | 测试人 | 日期 | 备注 |
|---|---|---|---|---|
| TC-001 | ⬜ 待测 | 点击按钮弹出确认框 | ||
| TC-002 | ⬜ 待测 | 取消返回 | ||
| TC-003 | ⬜ 待测 | 有活跃会话完整退出 | ||
| TC-004 | ⬜ 待测 | 无活跃会话退出 | ||
| TC-005 | ⬜ 待测 | 按钮 hover 态 | ||
| TC-006 | ⬜ 待测 | Token 失效验证 | ||
| TC-007 | ⬜ 待测 | 企微真实环境 | ||
| TC-008 | ⬜ 待测 | close API 失败 | ||
| TC-009 | ⬜ 待测 | logout API 失败 | ||
| TC-010 | ⬜ 待测 | 防重复点击 | ||
| TC-011 | ⬜ 待测 | WS 断开 | ||
| TC-012 | ⬜ 待测 | InputBar 互不干扰 | ||
| TC-013 | ⬜ 待测 | 暗黑模式 |
文档结束