fix(test): account for fractional DPI in DOCX scrollbar width

This commit is contained in:
Yoan Huang committed 2026-10-15 16:59:53 +08:00
1 parent daddd74e53
commit 3fde4ad113
2 files changed
+2 -1

No files matched your search

+1
View File
@@ -325,6 +325,7 @@ pnpm test:update:e2e
- 测试类型:`e2e / exclusive`(包含真实 AI 调用);suite `conversation`,group `composer`。
- What:真实 DOCX 任意连续文字选区、表格行列与合并占位、系统 toast、AI 引用入口与对勾确认输入条、可点击的紫色高亮、左侧连续编号、混合正文、双向同步、定位与草稿生命周期。
- Why:确保原文准确,引用与想法关联,两侧使用同一内容。
- 几何取证:共用轨道为 16px、滑块为 14px,固定 CSS 尺寸沿用最多 0.05px 的非整数 DPI 布局量化误差;滑块同步、原文定位和拖动行为断言独立保留。
- How:通过鼠标起点与 Shift 终点选择部分单词、跨段落、跨单元格、整表及正文/表格混选;复用 workspace DOCX,并用 `docx-selection-layout.docx` 覆盖单元格内换行、空单元格、横向/纵向合并、跨页、页眉页脚、图片混选及反向选择。只读 DOM 取证和引用原文核对;AI 引用入口出现后按 Ctrl/Cmd+C,读取系统剪贴板并核对当前所选原文;确认、高亮、点击重新编辑和定位均走真实 UI。纯图片选区检查系统 toast 合并与自动消失,文档内无提示条;重复/重叠选区保持静默。核对 AI 引用入口、“描述你想对引用内容做什么”placeholder、对勾提示、字号、高度、浮层翻转/缩放和未确认输入;发送后检查真实脑模型输入的引用分块及源文件未被提问修改;再用真实临时 DOCX 选择定位段,仅输入“精简下”,核对写回后所选段变短、未选中的同章场景段完全保留,普通 DOCX 预览自动出现切换并可进入审核;双向编辑、跳转和两侧删除,核对左侧编号、原文与想法关联及右侧高亮清理;切换伙伴和文件,实际发送后新增选区检查从 1 开始,再编辑历史消息并刷新 Renderer 检查持久化草稿。
- Oracle:覆盖 `WB-DOCUMENT-REFERENCE-001-AC1` 的跨段落/跨页/跨单元格/整表/正文混选、页眉页脚、反向选择、表格行列分隔与空/合并占位、单元格内换行、图片混选和无文字 toast,`WB-DOCUMENT-REFERENCE-001-AC2` 的两阶段入口、对勾及新增/编辑提示、小字号紧凑高度、输入后保留紫色高亮、浮层边界/翻转/滚动/缩放、空内容禁用、Enter 确认、Shift+Enter 换行和 Esc/外部点击关闭,`WB-DOCUMENT-REFERENCE-001-AC3` 的图标编号胶囊和两侧编辑同步,`WB-DOCUMENT-REFERENCE-001-AC4` 的右侧无编号、仅高亮文字可悬停和点击、定位、重复/重叠选择静默保留、删除后左侧连续编号与右侧高亮清理、删空及发送后从 1 开始和内容不串,`WB-DOCUMENT-REFERENCE-001-AC5` 的伙伴隔离及内存/持久化边界,`WB-DOCUMENT-REFERENCE-001-AC6` 的接受后清理、历史编号保留和历史编辑。刷新后选区消失,普通文字与 @ 引用保留;真实局部精简保留未选中正文,提问不写文件,引用按片段标题分块且选中内容与前后文清楚分隔,DOCX 改动收尾后普通预览自动提供审核切换。
- 待覆盖:文本框文字、IME、想法内 @ 混排、关闭资源 Tab、应用进程重启及附件恢复、外部原文变化后的定位 toast、提交期间锁定、提交失败保留、排队成功清理及历史复制。
+1 -1
View File
@@ -246,7 +246,7 @@ export async function assertDocxSharedScrollTrack(runtime: E2ETestRuntime): Prom
await runtime.assertThat(
initial.max > 50 &&
Math.abs(initial.rail.width - 16) <= 0.05 &&
initial.thumb.width === 14 &&
Math.abs(initial.thumb.width - 14) <= 0.05 &&
initial.nativeWidth === '0px' &&
clicked.scrollTop > 50 &&
wheeled.scrollTop < clicked.scrollTop &&