3.0 KiB
3.0 KiB
测试用例 · 保存与回显
覆盖:保存聊天记录(新建/更新)、历史列表、加载已存任务并回显、taskId 自动加载、跨刷新持久化。
PA-SAVE-01 · 首次保存(新建)(P0)
前置条件:已跑完一轮、会话区有结果。任务名「竞品调研」。
操作步骤
- 点击「保存」。
预期结果
- 按钮短暂显示「保存中…」,成功后变为「更新保存」(说明已绑定 taskId)。
- 触发
@saved事件,回传SavedTask(含 id、title、agents、messages)。 - 「历史」下拉里出现这条记录(标题 + 更新时间)。
- 后端
parallel_agent_tasks表新增一行(owner = 当前登录用户)。
PA-SAVE-02 · 再次保存(更新覆盖)(P0)
前置条件:PA-SAVE-01 已保存、当前仍是同一任务。
操作步骤
- 修改任务名 / 简介,或重新分析得到新结果。
- 点击「更新保存」。
预期结果
- 不新增记录,而是更新原 taskId 那条(title / brief / agents / messages 被覆盖为最新)。
- 历史列表里该条的更新时间刷新、排到最前。
PA-SAVE-03 · 历史加载并回显(P0)
前置条件:历史里至少有 1 条已保存任务。
操作步骤
- 点击「历史 ▾」展开列表。
- 选择一条历史任务。
预期结果
- 任务名、简介回填为该任务保存时的值。
- 会话区完整回显保存时的消息列表(各智能体气泡、正文、步骤条),且均为非流式终态(无光标、无 loading)。
- 席位状态条据消息重建:正常席位显示 done(绿勾),出错的显示 error(红叉)。
- 当前 taskId 切换为该任务(再点「保存」是「更新保存」该条)。
PA-SAVE-04 · taskId 进入即自动回显(P1)
操作步骤
- 以
:task-id="<已存在任务id>"方式挂载面板(嵌入场景)。
预期结果
- 面板挂载后自动加载该任务并回显(等同于 PA-SAVE-03 的结果),无需手动点历史。
@update:taskId随之触发。
PA-SAVE-05 · 跨刷新持久化(P1)
操作步骤
- 保存一条任务后,刷新浏览器(或重开宿主页面)。
- 用相同用户名进入,打开历史。
预期结果
- 历史里仍能看到之前保存的任务(数据存在后端、按用户隔离,非浏览器 localStorage)。
- 加载后能正常回显。
PA-SAVE-06 · 无结果时禁止保存(P2)
操作步骤
- 新开面板、尚未运行任何分析。
预期结果
- 「保存」按钮禁用(无可保存内容)。
- 运行中也不应因保存导致状态错乱(保存按钮在有结果后才可用)。
PA-SAVE-07 · 用户隔离(P1)
操作步骤
- 用户名 A 保存一条任务。
- 切换用户名为 B(重新进入面板),打开历史。
预期结果
- B 的历史里看不到 A 的任务。
- B 直接用 A 的 taskId 加载应失败(404 / 无内容),不报错崩溃。