1
0

feat: 增强桌面启动失败提示与测试覆盖

This commit is contained in:
2026-05-08 23:42:48 +08:00
parent c524e8f928
commit 2dec9e5c54
21 changed files with 1857 additions and 297 deletions

View File

@@ -351,3 +351,34 @@
- **WHEN** 测试配置加载时指定不存在的配置文件路径
- **THEN** SHALL 返回默认配置值,不自动创建配置文件
- **THEN** 测试 SHALL 验证配置文件未被创建
### Requirement: Desktop 启动失败提示测试边界
系统 SHALL 为 desktop 启动失败报告建立 UI 无关测试覆盖,验证启动错误分类、提示通道选择和 fallback 行为,但 SHALL NOT 要求测试真实系统通知、模态弹窗或托盘 UI 可见性。
#### Scenario: 启动错误分类测试
- **WHEN** 运行 desktop 专属测试
- **THEN** 测试 SHALL 覆盖配置、单实例、端口、日志、数据库、迁移、静态资源、HTTP server 和托盘初始化失败的错误分类
- **THEN** 测试 SHALL 验证每类错误包含正确 phase 和用户可读消息
- **THEN** 测试 SHALL 验证敏感信息不会出现在用户提示文本中
#### Scenario: 提示通道选择测试
- **WHEN** 运行跨平台提示逻辑测试
- **THEN** 测试 SHALL 使用 fake runner 或 fake notifier 验证通知、模态弹窗和 stderr/log fallback 的调用顺序
- **THEN** 测试 SHALL 验证命令参数构造、AppleScript 转义、Windows MessageBox flags 和 Linux 工具优先级
- **THEN** 测试 SHALL NOT 调用真实 `osascript``notify-send``zenity``kdialog``xmessage` 或显示真实 `MessageBoxW`
#### Scenario: 托盘 ready/timeout 测试
- **WHEN** 运行托盘启动封装测试
- **THEN** 测试 SHALL 使用 fake systray runner 验证 ready 成功路径
- **THEN** 测试 SHALL 使用 fake systray runner 验证 ready timeout 会返回 `tray` 阶段 fatal 启动错误
- **THEN** 测试 SHALL NOT 要求真实桌面托盘图标出现
#### Scenario: 浏览器打开失败测试
- **WHEN** 测试浏览器自动打开失败
- **THEN** 测试 SHALL 验证该错误被记录为非 fatal warning
- **THEN** 测试 SHALL 验证应用启动流程不会因浏览器打开失败退出