2.6 KiB
FAIL
crates/ely-ui/examples/shell/main.rs:316 — 删除对话框把任意未修饰的 Enter 松键都送到 delete_confirmed,忽略当前焦点。复现:打开 Page One 的删除确认,按 Tab 让 Cancel 显示焦点环,再按 Enter;实际删除 Page One,只剩 Page Two,违反 UX-03、UX-07。隔离探针与截图均确认此路径。修复方向:让 Cancel 和 Delete Page 各自响应键盘激活,通过组件的确认及关闭流程执行操作并归还焦点;补 Cancel 上 Enter/Space 保留对象的测试。
crates/ely-ui/src/tasks.rs:65 — tick(done) 在前台实体更新闭包内同步执行,长任务会阻塞窗口和取消操作,违反 UX-05。复现:以 600 毫秒的同步工作模拟一次导出步骤;探针确认回调与 UI 位于同一线程,原定 50 毫秒执行的 UI 定时器延迟至约 628 毫秒。现有任务测试的回调立即返回,覆盖不到此路径。修复方向:将实际工作放入后台执行器或工作进程,向 UI 传回进度和结果,并使工作接受取消信号;测试耗时工作期间的窗口响应及取消。
crates/ely-ui/examples/shell/main.rs:171 — 删除最后一页后仍索引 self.pages[0],并把选择设为已失效的 [0]。复现:沿现有探针先删除 Page Two,再确认删除剩余 Page One;进程因 index out of bounds: the len is 0 but the index is 0 中止。修复方向:为删除后的空页面集合清空当前页与选择,渲染空状态,让属性计算及重命名、删除入口处理空选择;补连续删除到零页的测试。
crates/ely-ui/examples/shell/main.rs:258 — 任务状态的唯一操作始终调用 cancel_task;Failed 状态下该调用直接结束,界面缺少 UX-06 要求的重试或另存路径。复现:运行已有磁盘满失败任务,界面停在 Failed(The disk is full);调用状态项绑定的操作后仍保持同一失败状态。修复方向:保留失败任务的输入,在错误状态提供可执行的重试或另存入口,并验证恢复后使用原输入重新执行成功。
tests/scripts/shell.sh:57 — 混合态与长任务断言仅检查探针从模型生成的日志,无法验证 UX-04、UX-05 对应界面。实测两次独立变异:移除 PropertyGrid 的 .group(group) 后,脚本仍通过;移除任务状态栏的整个 .when_some(task_label, ...),连同取消入口一起删除后,脚本仍以 0 退出并报告任务通过。修复方向:断言实际渲染的混合属性、任务范围、状态和错误,通过界面操作触发取消与恢复;让上述两种变异分别触发失败。