8c86b50d09
服务器页拆分未设路径列表、行内展开详情;API target_path_unset 可选过滤。 命令栏取消 Shell 语法彩色,ANSI 仅保留 xterm SSH 输出区。 Co-authored-by: Cursor <cursoragent@cursor.com>
40 lines
1.9 KiB
Markdown
40 lines
1.9 KiB
Markdown
# 验证 — 服务器未设路径区块 + 行内详情(2026-06-08)
|
||
|
||
## 自动化
|
||
|
||
| 检查 | 结果 |
|
||
|------|------|
|
||
| `pytest tests/test_server_target_path_filter.py -q` | 12 passed |
|
||
| `bash scripts/local_verify.sh` | 26/26 |
|
||
| `cd frontend && npm run build` | PASS(vue-tsc + vite) |
|
||
| `bash deploy/pre_deploy_check.sh` | 7/7 |
|
||
|
||
## 单测覆盖
|
||
|
||
- `is_unset_target_path` 真值表(空、`/www/wwwroot`、尾斜杠、子路径)
|
||
- `ServerRepositoryImpl.get_paginated` unset true/false + search 组合
|
||
- `GET /api/servers/?target_path_unset=` true / false / 默认三态
|
||
|
||
## 布局与交互(本地 build 代码审查)
|
||
|
||
| 场景 | 预期 | 结论 |
|
||
|------|------|------|
|
||
| 主表列表 | 不含 target_path 为空或 `/www/wwwroot` 的机器 | PASS(显式 `target_path_unset=false`) |
|
||
| 未设路径卡片 | 位于连接失败列表上方,独立分页 | PASS |
|
||
| 名称点击 | 主表 / 未设路径表各展开一行紧凑详情 | PASS |
|
||
| 底部详情卡 | 已删除 `detailServer` 大块 UI | PASS |
|
||
| 保存真实路径 | 从未设路径表消失 → 主表出现 | PASS(双表 refresh + `clearExpandedForPathMigration`) |
|
||
| 保存 `/www/wwwroot` | 从主表 → 未设路径表 | PASS |
|
||
| 分页/搜索/分类/排序 | 双表 reload + 展开态 reset | PASS |
|
||
| 30s 静默刷新 | `refreshServersSilent` 含 `loadUnsetPathServers` | PASS |
|
||
| API 未传参 | Dashboard / Terminal 仍返回全部 | PASS(默认 None 不过滤) |
|
||
|
||
## 手动终验(用户)
|
||
|
||
1. `#/servers` · 确认三区:主列表 → 未设置路径服务器 → 连接失败列表
|
||
2. 主表点击服务器名称 · 行内展开 CPU/内存/磁盘/Agent/路径/同步日志
|
||
3. 未设路径表点击名称 · 同样行内展开
|
||
4. 编辑目标路径为真实目录 · 机器从未设路径表移至主表
|
||
5. 编辑目标路径为 `/www/wwwroot` · 机器从主表移至未设路径表
|
||
6. `#/terminal` · 仍可连接未设路径机器(列表未过滤)
|