Files
ssh-manager/docs/moba-regression-checklist.md
2026-04-16 23:28:26 +08:00

157 lines
4.1 KiB
Markdown

# Moba Workspace 回归清单
适用范围:
- `frontend/src/layouts/MobaLayout.vue`
- `frontend/src/components/SessionTree.vue`
- `frontend/src/components/WorkspacePanel.vue`
- `frontend/src/components/SftpPanel.vue`
- `frontend/src/views/TransfersView.vue`
- 旧深链接兼容入口 `/terminal/:id``/sftp/:id`
## 基础验证
### 构建
```bash
cd frontend
npm run build
```
### 启动
```bash
cd backend
mvn spring-boot:run
cd frontend
npm run dev
```
访问:
- `http://localhost:5173/login`
- 登录后应进入 `/moba`
## 登录与入口
### 登录
- 使用有效账号登录
- 首次管理员登录时,若触发强制改密,应能弹出改密弹窗
- 登录后默认进入 `/moba`
### 兼容入口
- 访问 `/connections` 应进入 `/moba`
- 访问 `/terminal` 应进入 `/moba`
- 访问 `/transfers` 应进入 `/moba?tool=transfers`
- 访问 `/terminal/:id` 应打开对应连接的终端工作区后进入 `/moba`
- 访问 `/sftp/:id` 应打开对应连接的文件工作区后进入 `/moba`
## 工作区
### 多实例
- 在左侧连续点击同一连接两次,应创建两个独立工作区实例
- 两个实例的顶部标签应能区分序号
- 关闭其中一个实例,不应影响另一个实例
### 标签行为
- 点击标签可切换活动工作区
- 右键菜单中的“关闭当前 / 关闭其他 / 关闭右侧 / 关闭全部”行为正确
- 顶部“复制会话”可基于当前实例创建一个新实例
### 面板控制
- 顶部“终端”按钮可显隐终端面板
- 顶部“文件”按钮可显隐 SFTP 面板
- 两个面板都隐藏时,工作区应显示空态提示
- “重置分屏”应把终端/SFTP 比例恢复为默认值
## 会话树
### 基础操作
- 创建根文件夹
- 创建子文件夹
- 重命名文件夹
- 删除文件夹
- 删除连接节点
### 排序与拖拽
- 手动排序模式下,节点可拖拽排序
- 名称排序模式下,拖拽应禁用
- 切换为名称排序后,文件夹应排在连接前面
### 搜索
- 输入关键字后,应只显示匹配结果和必要层级
- 匹配节点应显示高亮标记
- 清空搜索后,应恢复完整树
### 同步
- 修改连接名称后,会话树中的连接节点名称应同步更新
- 删除连接后,会话树中的对应节点应被移除
## SFTP
### 基础功能
- 打开文件面板后应能列出目录
- 可进入子目录
- 可返回上级目录
- 可直接输入路径并跳转
- 可切换显示/隐藏隐藏文件
- 可搜索当前目录文件
### 文件操作
- 上传单个文件
- 上传多个文件
- 查看上传进度
- 下载文件
- 创建目录
- 删除文件
- 删除目录
### 远程传输
- 从当前连接选择文件并打开远程传输弹窗
- 选择目标连接和目标路径后可开始传输
- 传输过程中应显示进度
- 取消传输后应显示取消状态或取消提示
## Transfers
### Local -> Many
- 选择本机文件
- 选择目标目录
- 选择多个目标连接
- 调整并发
- 开始后应生成队列任务
### Remote -> Many
- 选择源连接
- 手输源文件路径并添加
- 使用远程文件浏览器选择源文件
- 选择目标目录或精确路径
- 选择多个目标连接
- 开始后应生成队列任务
### 队列
- 队列应显示运行状态、进度、明细项
- 运行中任务应可取消
- 已完成/失败任务应保留在最近任务列表
- 点击“清空队列”后,最近任务列表应被清空
## 响应式
### 窄屏
- 小屏下左侧会话树应通过顶部按钮展开/收起
- 打开工作区后,小屏侧栏应自动收起
- Transfers 区域在小屏下不应出现明显横向溢出
- 目标连接选择区、队列卡片和源文件按钮区应可正常折行
## 持久化
### 刷新恢复
- 刷新页面后,工作区标签顺序应保留
- 活动工作区应保留
- SFTP 当前路径应保留
- 分屏比例应保留
- 会话树排序模式应保留
## 风险关注点
- 同一连接多实例下,不应误复用旧工作区
- 会话树在大量节点下不应出现明显卡顿或错位渲染
- `/terminal/:id``/sftp/:id` 兼容入口不应丢失目标连接语义
- SFTP 远程传输与 Transfers 页面应避免状态来源不一致