Skip to content

Issue 36 Validation

clean edited this page Sep 16, 2026 · 1 revision

Issue #36 验收记录

自动测试与构建

命令 / 场景 结果
npm run test -w @remote-git/ssh-client 61 项:59 通过,2 个 Windows 专属测试跳过
npm run test -w web 55 项通过
npm run test -w server -- --runInBand repository git.service new-file-deletion 4 个套件、13 项通过
npm run desktop:build 5 个构建任务成功,含图标检查、类型检查、前端、后端及 Electron 暂存
npm run desktop:test 的 test:unit 阶段 41 项通过
构建产物在普通临时目录运行 desktop/scripts/smoke.mjs write / restore 两阶段通过;新增历史测试和已有工作区、设置、Diff、更新、数据恢复回归通过
git diff --check 通过
npm run test -w server -- --runInBand 9 个套件通过,4 个套件失败;62 项通过、4 项失败,详见基线问题

Git 测试使用临时真实仓库,包含本地独有分支、upstream 远程跟踪分支、分叉、合并、三父提交、普通及嵌套附注标签、标签独有提交。覆盖超过 150 条历史、49 / 50 / 51 条边界、空仓库、游离 HEAD、浅克隆加深、读取期间引用变化、查询参数与真实 SSH 传输。提交哈希及父哈希逐条与 Git 原始拓扑输出比对。

前端测试检查分页去重、服务端偏移量、重复请求、追加失败重试、刷新覆盖旧请求、跨仓库迟到响应、引用变化阻止追加,以及分叉/多父合并/孤立历史的轨道与跨页一致性。

Electron 新增 155 条历史的集成场景,检查文件 Diff、末尾按钮消失、虚拟渲染、追加后滚动与选择保留、刷新保留/清除选中项、历史变化提示、键盘调整上下高度、窄窗口返回列表。

浏览器验收

使用 apps/web/tests/history-fixture.cjs 提供隔离 Git 仓库,经生产 GitCommands 查询;地址、账号和仓库均为测试数据,未连接用户配置的服务器。

场景 结果
1440 × 1000 提交图与详情 本地、远程独有提交、标签、真实分叉合并可见;详情在下方
连续加载 50 → 100 → 150 → 160 到达历史末尾,已加载内容、选择及滚动位置保留
追加失败及重试 保留 50 条,重试后追加到 100 条
浏览期间新增提交 加载下一页显示历史变化提示,保留原记录,刷新后恢复
选择 merge 提交、graph.ts 文件 第一父提交比较正确;统一与分栏均显示新增行
600 × 760 详情与返回 显示详情,返回恢复 180px 滚动位置
320 × 720 表格内部滚动;body 宽度与视口均为 320px,无页面级横向溢出
切换至空仓库 显示“暂无提交”,无上个仓库的历史或详情残留

前后截图

改造前,历史位于窄栏,单列装饰线无法表达分叉:

改造前

改造后,多列拓扑与完整宽度:

提交图

选中合并提交后,下方查看文件和 Diff:

提交详情

600px 下的文件详情与分栏 Diff:

窄窗口详情

320px 下保留可横向浏览的提交表:

320px 提交图

浏览期间历史变化时保留现有列表:

历史变化提示

基线问题与未验证项

服务端全量测试的 4 个失败来自 ConnectionController、FileController、GitController、FileService 的既有测试未注册所需 provider。已在未修改的 development / 3312132 基线副本执行同一组测试复现,未在本 PR 扩大范围修复。

在隐藏的 .cindy-worktrees 目录直接运行 npm run desktop:test 时,既有静态文件服务对绝对路径中的隐藏目录返回 404。保持构建产物不变,复制到普通临时目录后,通过原 smoke.mjs 完成 write / restore 两阶段。重现方式:

mkdir -p /tmp/remote-git-36-run/dist
cp -R apps/desktop/dist/app /tmp/remote-git-36-run/dist/
# 在 /tmp/remote-git-36-run 中运行本仓库 apps/desktop/scripts/smoke.mjs 的绝对路径
node <checkout>/apps/desktop/scripts/smoke.mjs

前端构建仍有既有大 chunk 提示。Windows / Linux 原生环境及真实远程 Windows SSH 主机本次未验证;不得将 macOS 上的测试结果视为这些平台已完成验收。

Clone this wiki locally