# 测试方案 — 2026-04-17-13-32-07 ## 测试目标 验证 `TemplateManage.tsx` 中以下两项修复是否生效且无副作用: 1. `Ctrl+Z` / `Ctrl+Y` / `Ctrl+Shift+Z` 快捷键正确调用自定义 Undo/Redo。 2. 在段落末尾(含 `
`)插入 `smart-field-wrapper` 不再换行错位。 --- ## 测试步骤 ### 1. 编译检查 ```bash npm run lint ``` - **预期结果**:`tsc --noEmit` 通过,0 errors。 --- ### 2. 快捷键 Undo/Redo 测试 **前置条件**:登录后进入 `/template-manage`,选中任意模板。 #### 2.1 删除字段后撤销 1. 在编辑器中点击一个已有的 `smart-field-wrapper` 的 × 按钮(或通过 Backspace/Delete 删除字段)。 2. **立刻按下 `Ctrl+Z`**。 - **预期结果**:被删除的字段完整恢复,内容与样式均正常。 #### 2.2 撤销后再重做 1. 完成步骤 2.1 后,**按下 `Ctrl+Y`**(或 `Ctrl+Shift+Z`)。 - **预期结果**:刚刚恢复的字段再次被删除。 #### 2.3 插入字段后撤销 1. 从右侧字段库点击任意字段插入到编辑器。 2. **按下 `Ctrl+Z`**。 - **预期结果**:刚插入的字段消失,编辑器恢复到插入前的状态。 #### 2.4 多次撤销 1. 连续进行多次编辑操作(插入字段、删除字段、输入文字)。 2. 连续多次按 `Ctrl+Z`。 - **预期结果**:每次按 `Ctrl+Z` 都按自定义历史栈顺序回退一步;不会触发浏览器原生 undo 造成状态混乱。 --- ### 3. 插入字段排版测试 **前置条件**:编辑器中存在一个以 `
` 结尾的 `

` 标签,例如: ```html

手术日期:

``` #### 3.1 在 `
` 后插入字段 1. 将光标放到 `手术日期:` 后面的空白处(即 `
` 附近)。 2. 从右侧字段库点击 `手术日期` 字段插入。 - **预期结果**:`smart-field-wrapper` 出现在 `

` 标签内部,与 `手术日期:` 保持在同一行,**不会**跑到 `

` 外面形成新段落。 #### 3.2 段中插入字段 1. 在正常段落(如 `姓名:xxx`)中间插入字段。 - **预期结果**:字段与前后文字保持在同一行,排版正常。 #### 3.3 已有字段附近插入 1. 在已有的 `smart-field-wrapper` 前后插入新字段(只要字段 key 不同,允许插入)。 - **预期结果**:新字段正确插入,不会与已有字段重叠或被挤到下一行。 --- ### 4. 回归测试 1. **保存模板**:进行任意编辑后点击「保存模板」,刷新页面,确认内容已持久化。 2. **打印预览**:点击打印预览按钮,确认字段显示正常。 3. **工具栏撤销/重做按钮**:确认点击工具栏的撤销/重做按钮依然工作正常。 4. **Backspace/Delete 边界拦截**:确认光标紧邻字段时按 Backspace/Delete 仍然只删除字段本身,不会误删整段。 --- ## 判定标准 - 所有编译检查和手工测试均通过,方可认为任务完成。 - 若任一测试失败,回滚修改并重新分析根因。