# 时记 TaskChron - 端到端手动测试清单

本清单用于在版本发布前进行核心流程手动验证。所有测试均在 Windows 桌面端环境下执行。

---

## 1. 任务核心流程

| 序号 | 步骤 | 预期结果 | 状态 |
| --- | --- | --- | --- |
| 1.1 | 点击「快速新建」或按 `Ctrl+Shift+T` | 打开快速录入浮层 | ⬜ |
| 1.2 | 输入任务标题、选择优先级、保存 | 任务出现在今日视图列表 | ⬜ |
| 1.3 | 点击任务卡片进入编辑 | 能修改标题、对接人、项目、节点 | ⬜ |
| 1.4 | 在任务卡片行内编辑标题/备注并保存 | 内容更新，保存成功出现对勾反馈，失败出现红框提示 | ⬜ |
| 1.5 | 行内编辑保存后 5 秒内按 `Ctrl+Z` | 字段恢复为编辑前的内容 | ⬜ |
| 1.6 | 标记任务为完成 | 任务状态变为已完成，视觉反馈正确 | ⬜ |
| 1.7 | 在 dock-panel 中点击任务完成复选框 | 主窗口同步更新，任务状态切换 | ⬜ |
| 1.8 | 进入回收站恢复已删除任务 | 任务重新出现在原视图中 | ⬜ |
| 1.9 | 使用批量操作栏批量完成/删除 | 选中任务按操作生效 | ⬜ |
| 1.10 | 等待回收站保留天数过期后重启应用 | 过期任务被自动清理，回收站不再显示 | ⬜ |

---

## 2. 报告生成与导出

| 序号 | 步骤 | 预期结果 | 状态 |
| --- | --- | --- | --- |
| 2.1 | 在今日视图点击「生成日报」 | 弹出日报预览窗口 | ⬜ |
| 2.2 | 预览窗口内容包含已完成任务、时间节点统计 | 内容完整、格式正确 | ⬜ |
| 2.3 | 点击「导出 Markdown」 | 成功下载 `.md` 文件 | ⬜ |
| 2.4 | 点击「导出 Word」 | 成功下载 `.docx` 文件 | ⬜ |
| 2.5 | 切换到周/月/年视图生成对应报告 | 报告范围与当前周期一致 | ⬜ |
| 2.6 | 配置企业微信 Webhook 后点击推送 | 收到推送消息或显示成功提示 | ⬜ |

---

## 3. 设置界面

| 序号 | 步骤 | 预期结果 | 状态 |
| --- | --- | --- | --- |
| 3.1 | 打开设置，切换「通用/外观/通知/快捷键/AI/导出/推送/数据/语音历史/关于」各 Tab | 各 Tab 内容正常显示，无报错 | ⬜ |
| 3.2 | 在外观 Tab 切换浅色/深色/跟随系统 | 主题即时生效 | ⬜ |
| 3.3 | 在快捷键 Tab 点击输入框并按下组合键（如 `Ctrl+Shift+A`） | 按键被录制为快捷键，保存后注册生效，旧快捷键失效 | ⬜ |
| 3.4 | 在快捷键 Tab 清空某个快捷键并保存 | 对应全局快捷键不再触发 | ⬜ |
| 3.5 | 修改提醒提前时间并保存 | 设置写入数据库，提醒服务读取新值 | ⬜ |
| 3.6 | 配置 AI 模型地址和 API Key | 保存成功，调用 AI 整理时生效 | ⬜ |
| 3.7 | 在数据 Tab 设置回收站保留天数并保存 | 设置写入数据库，重启后过期任务自动清理 | ⬜ |
| 3.8 | 在语音历史 Tab 查看、删除、重新解析语音记录 | 列表展示正确，删除/重新解析操作生效 | ⬜ |

---

## 4. 悬浮窗与窗口交互

| 序号 | 步骤 | 预期结果 | 状态 |
| --- | --- | --- | --- |
| 4.1 | 点击收起按钮 | 主窗口隐藏，显示 180×120px 迷你悬浮窗或贴边面板 | ⬜ |
| 4.2 | 拖动悬浮窗到屏幕边缘 | 进入贴边模式，显示为细长 dock 条 | ⬜ |
| 4.3 | 鼠标悬停 dock 条 | 展开 dock-panel，显示最近任务 | ⬜ |
| 4.4 | 在 dock-panel 中点击任务标题 | 唤起主窗口并打开对应任务详情 | ⬜ |
| 4.5 | 点击悬浮窗 / dock 条 | 展开为主窗口 | ⬜ |
| 4.6 | 按 `Ctrl+Shift+S` | 主窗口显示/隐藏切换 | ⬜ |
| 4.7 | 主窗口支持调整大小 | 最小尺寸限制生效，内容自适应 | ⬜ |

---

## 5. 快捷键浮层

| 序号 | 步骤 | 预期结果 | 状态 |
| --- | --- | --- | --- |
| 5.1 | 按全局快捷键 `Ctrl+Shift+T` | 无论是否最小化均唤起快速新建浮层 | ⬜ |
| 5.2 | 按全局快捷键 `Ctrl+Shift+R` | 唤起语音输入浮层 | ⬜ |
| 5.3 | 按自定义后的全局快捷键 | 对应功能正常唤起 | ⬜ |
| 5.4 | 在设置中清空某个快捷键 | 对应全局快捷键不再触发 | ⬜ |

---

## 6. 托盘图标状态

| 序号 | 步骤 | 预期结果 | 状态 |
| --- | --- | --- | --- |
| 6.1 | 应用启动后查看系统托盘 | 时记图标出现，tooltip 为「时记 TaskChron」 | ⬜ |
| 6.2 | 右键托盘图标 | 弹出菜单：打开主窗口、快速新建、打开日志文件夹、立即生成日报/周报/月报/年报、退出 | ⬜ |
| 6.3 | 点击「打开主窗口」 | 主窗口显示并聚焦 | ⬜ |
| 6.4 | 点击「立即生成日报」 | 弹出日报预览 | ⬜ |
| 6.5 | 点击「退出时记」 | 应用完全退出，托盘图标消失 | ⬜ |

---

## 7. 数据备份与恢复

| 序号 | 步骤 | 预期结果 | 状态 |
| --- | --- | --- | --- |
| 7.1 | 在设置 → 数据中点击「备份数据」 | 弹出保存对话框，生成数据库副本 | ⬜ |
| 7.2 | 备份文件大小合理，能被 SQLite 工具打开 | 文件有效 | ⬜ |
| 7.3 | 删除部分任务后点击「恢复数据」，选择之前的备份 | 数据恢复为备份时的状态 | ⬜ |
| 7.4 | 恢复后刷新各视图 | 任务、设置等数据与备份一致 | ⬜ |

---

## 8. 错误处理与崩溃恢复

| 序号 | 步骤 | 预期结果 | 状态 |
| --- | --- | --- | --- |
| 8.1 | 前端发生渲染错误（如手动注入异常） | 显示「应用出错了」错误边界 UI | ⬜ |
| 8.2 | 点击错误边界「刷新应用」 | 页面重新加载 | ⬜ |
| 8.3 | 点击错误边界「打开日志文件夹」 | 打开日志目录 | ⬜ |
| 8.4 | 触发 Rust panic（仅限测试构建） | `panic.log` 写入日志目录 | ⬜ |

---

## 9. 构建产物与性能

| 序号 | 步骤 | 预期结果 | 状态 |
| --- | --- | --- | --- |
| 9.1 | 执行 `npm run build` | 构建成功，无类型错误 | ⬜ |
| 9.2 | 检查 `dist/assets/` | 产物包含 `vendor*.js`、`ui*.js`、`tauri*.js`、`editor-export*.js` 等分块 | ⬜ |
| 9.3 | 执行 `npm run tauri build` | 成功生成 `.msi` 安装包 | ⬜ |
| 9.4 | 安装后首次启动 | 主界面渲染正常，无白屏/透明窗口 | ⬜ |

---

## 10. 安全与权限

| 序号 | 步骤 | 预期结果 | 状态 |
| --- | --- | --- | --- |
| 10.1 | 检查 `src-tauri/capabilities/default.json` | 仅声明应用运行所需的最小权限 | ⬜ |
| 10.2 | 检查 `src-tauri/capabilities/dock.json` | dock 窗口不包含 `fs`、`http`、`sql:allow-execute` 等敏感权限 | ⬜ |
| 10.3 | 查看 `tauri.conf.json` 中的 `security.csp` | 已启用 CSP，不包含 `unsafe-eval` | ⬜ |
| 10.4 | 在报告预览中查看包含 HTML 的任务内容 | 通过 DOMPurify 净化，不执行脚本 | ⬜ |

---

## 11. v0.5.0 重设计专项测试

| 序号 | 步骤 | 预期结果 | 状态 |
| --- | --- | --- | --- |
| 11.1 | 在四栏布局中拖动第二栏与第三栏之间的分隔条 | 面板宽度实时变化，释放后保持稳定 | ⬜ |
| 11.2 | 点击第四栏右上角的折叠按钮 | 详情栏收起，任务列表区自动占满剩余空间 | ⬜ |
| 11.3 | 再次点击展开按钮或选中任务 | 详情栏恢复显示 | ⬜ |
| 11.4 | 在任务 Tab 中依次点击「所有 / 今天 / 最近7天 / 收集箱 / 已完成 / 垃圾桶」 | 任务列表按时间/状态过滤，标题同步更新 | ⬜ |
| 11.5 | 在任务 Tab 中点击不同「清单 / 标签 / 对接人」 | 任务列表按所选维度过滤，计数显示正确 | ⬜ |
| 11.6 | 在任务列表顶部 QuickAddBar 输入标题并按 Enter | 仅文字即可创建任务，默认无日期、正常优先级 | ⬜ |
| 11.7 | 在 QuickAddBar 中点击日期、优先级、标签、对接人图标设置参数后点击「添加」 | 任务按参数创建，图标高亮状态正确 | ⬜ |
| 11.8 | 点击日期图标，在日期/时间段两 Tab 间切换并选择起止时间 | 浮层关闭后任务节点正确反映所选日期或时间段 | ⬜ |
| 11.9 | 点击任务卡片进入第四栏详情 | 顶部显示时间与优先级棋子，标题可编辑 | ⬜ |
| 11.10 | 在详情描述区域按 Enter 新建清单项并勾选 | 清单项状态切换并保存 | ⬜ |
| 11.11 | 在详情标签行点击「+」选择/新建多个标签 | 标签 chips 正确显示，多标签保存生效 | ⬜ |
| 11.12 | 在详情子任务区域添加、折叠、勾选子任务 | 子任务列表联动更新 | ⬜ |
| 11.13 | 在详情底部点击清单 / 对接人切换所属项目或对接人 | 任务关联更新，列表同步 | ⬜ |
| 11.14 | 点击头像菜单中的「设置」与「用户管理」 | 分别弹出 SettingsWindow 与 UsersWindow，关闭后回到主界面 | ⬜ |
| 11.15 | 在视图 Tab 中切换日程 / 日 / 周 / 月 / 年视图 | 五种视图正确渲染，日期导航生效 | ⬜ |
| 11.16 | 在移动端点击底部「任务 / 视图 / 日志 / 我的」Tab | 内容区切换至对应页面 | ⬜ |
| 11.17 | 在移动端任务 Tab 点击左上角菜单 | 左侧抽屉滑出，结构与桌面端第二栏一致 | ⬜ |
| 11.18 | 在移动端视图 Tab 点击顶部工具栏的布局切换、视图模式切换、更多按钮 | 对应功能正常响应 | ⬜ |
| 11.19 | 在移动端点击右下角「+」按钮 | 底部滑出 QuickAddBar Sheet | ⬜ |
| 11.20 | 在移动端点击任务卡片 | 从底部滑出任务详情 Sheet，内容顺序为标题 → 描述清单 → 标签 → 对接人 → 附件 | ⬜ |

## 测试结论

- **测试日期**：__________
- **测试版本**：__________
- **测试环境**：__________
- **通过项数**：__________ / 总项数
- **遗留问题**：
  1. _______________________________
  2. _______________________________
