fix: 修复右键菜单架构审核问题

- handlePostpone 增加 next_reminder_date 同步逻辑
- 使用 selector 优化 Zustand 订阅性能
- 添加点击外部关闭菜单机制
- ReminderCard 添加 data-reminder-card 属性

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
ddshi 2026-02-04 17:03:17 +08:00
parent 3aefd1e707
commit 704c6f300b
7 changed files with 798 additions and 2 deletions

View File

@ -2,7 +2,9 @@
"permissions": {
"allow": [
"mcp__playwright__browser_navigate",
"mcp__playwright__browser_install"
"mcp__playwright__browser_install",
"Bash(cmd //c:*)",
"Bash(ls:*)"
]
}
}

View File

@ -83,7 +83,14 @@
"Bash(npm i:*)",
"Bash(tasklist:*)",
"Bash(wmic:*)",
"mcp__playwright__browser_network_requests"
"mcp__playwright__browser_network_requests",
"Bash(cd:*)",
"Bash(cmd:*)",
"mcp__playwright__browser_tabs",
"mcp__chrome-devtools__take_snapshot",
"mcp__chrome-devtools__navigate_page",
"mcp__chrome-devtools__click",
"mcp__playwright__browser_hover"
]
}
}

BIN
after-date-change.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

BIN
context-menu-test.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

View File

@ -0,0 +1,787 @@
# 提醒卡片右键菜单测试用例
## 用例统计
| 分类 | 用例数 | P0 | P1 | P2 |
|------|--------|----|----|----|
| 右键菜单基础功能 | 8 | 4 | 3 | 1 |
| 日期调整功能 | 10 | 5 | 4 | 1 |
| 优先级功能 | 13 | 5 | 5 | 3 |
| 操作功能 | 6 | 3 | 2 | 1 |
| UI样式验证 | 5 | 1 | 2 | 2 |
| **合计** | **42** | **18** | **16** | **8** |
---
## 一、右键菜单基础功能
### TC-RM-001 右键点击显示菜单
| 项目 | 内容 |
|------|------|
| **用例标题** | 右键点击提醒卡片显示右键菜单 |
| **测试场景** | 用户在提醒卡片上点击鼠标右键,验证菜单正常显示 |
| **前置条件** | 1. 用户已登录<br>2. 提醒列表中存在至少一条提醒 |
| **测试步骤** | 1. 进入提醒列表页面<br>2. 将鼠标悬停在任意提醒卡片上<br>3. 点击鼠标右键 |
| **预期结果** | 1. 右键菜单在鼠标点击位置显示<br>2. 菜单包含三个功能区域:日期调整、优先级、操作<br>3. 菜单样式正常,无遮挡或截断 |
| **优先级** | P0 |
| **状态** | 待测试 |
---
### TC-RM-002 左键点击其他区域关闭菜单
| 项目 | 内容 |
|------|------|
| **用例标题** | 左键点击菜单外部区域关闭菜单 |
| **测试场景** | 右键菜单打开后,点击其他区域验证菜单关闭 |
| **前置条件** | 1. 用户已登录<br>2. 提醒列表中存在至少一条提醒<br>3. 右键菜单已打开 |
| **测试步骤** | 1. 右键点击卡片打开菜单<br>2. 在菜单外的任意位置点击鼠标左键 |
| **预期结果** | 右键菜单立即关闭,界面恢复正常状态 |
| **优先级** | P0 |
| **状态** | 待测试 |
---
### TC-RM-003 点击菜单项后关闭菜单
| 项目 | 内容 |
|------|------|
| **用例标题** | 点击任意菜单项后菜单自动关闭 |
| **测试场景** | 点击菜单中的任意选项后验证菜单是否正确关闭 |
| **前置条件** | 1. 用户已登录<br>2. 提醒列表中存在至少一条提醒<br>3. 右键菜单已打开 |
| **测试步骤** | 1. 右键点击卡片打开菜单<br>2. 点击任意菜单项(如"今日" |
| **预期结果** | 1. 菜单项点击事件触发<br>2. 右键菜单自动关闭 |
| **优先级** | P0 |
| **状态** | 待测试 |
---
### TC-RM-004 ESC键关闭菜单
| 项目 | 内容 |
|------|------|
| **用例标题** | 按ESC键关闭右键菜单 |
| **测试场景** | 右键菜单打开后按键盘ESC键验证菜单关闭 |
| **前置条件** | 1. 用户已登录<br>2. 提醒列表中存在至少一条提醒<br>3. 右键菜单已打开 |
| **测试步骤** | 1. 右键点击卡片打开菜单<br>2. 按下键盘ESC键 |
| **预期结果** | 右键菜单立即关闭 |
| **优先级** | P1 |
| **状态** | 待测试 |
---
### TC-RM-005 菜单位置计算正确
| 项目 | 内容 |
|------|------|
| **用例标题** | 右键菜单在点击位置正确显示 |
| **测试场景** | 在不同位置点击右键,验证菜单位置计算 |
| **前置条件** | 1. 用户已登录<br>2. 提醒列表中存在至少一条提醒 |
| **测试步骤** | 1. 在页面不同位置右键点击多个卡片<br>2. 记录每次菜单显示位置 |
| **预期结果** | 1. 菜单左上角与鼠标点击位置重合<br>2. 菜单不超出浏览器可视区域 |
| **优先级** | P1 |
| **状态** | 待测试 |
---
### TC-RM-006 连续右键点击不同卡片
| 项目 | 内容 |
|------|------|
| **用例标题** | 连续右键点击不同卡片时菜单切换 |
| **测试场景** | 快速连续右键点击多个卡片 |
| **前置条件** | 1. 用户已登录<br>2. 提醒列表中存在至少三条提醒 |
| **测试步骤** | 1. 右键点击第一张卡片打开菜单<br>2. 不关闭菜单,右键点击第二张卡片<br>3. 不关闭菜单,右键点击第三张卡片 |
| **预期结果** | 1. 菜单始终显示在最新点击的卡片位置<br>2. 不会出现多个菜单同时显示 |
| **优先级** | P2 |
| **状态** | 待测试 |
---
## 二、日期调整功能
### TC-RM-007 调整到今日
| 项目 | 内容 |
|------|------|
| **用例标题** | 日期调整-今日功能验证 |
| **测试场景** | 使用右键菜单将提醒日期调整到今天 |
| **前置条件** | 1. 用户已登录<br>2. 存在一条非今日的提醒(如明天或更久之后的提醒) |
| **测试步骤** | 1. 右键点击一条非今日的提醒卡片<br>2. 点击"日期调整"区域的"今日"选项 |
| **预期结果** | 1. 菜单关闭<br>2. 提醒移动到"今天"分组<br>3. 卡片上显示的日期更新为今天的日期<br>4. 数据持久化到后端 |
| **优先级** | P0 |
| **状态** | 待测试 |
---
### TC-RM-008 调整到明日
| 项目 | 内容 |
|------|------|
| **用例标题** | 日期调整-明天功能验证 |
| **测试场景** | 使用右键菜单将提醒日期调整到明天 |
| **前置条件** | 1. 用户已登录<br>2. 存在一条今天或更久的提醒 |
| **测试步骤** | 1. 右键点击一条非明日的提醒卡片<br>2. 点击"日期调整"区域的"明天"选项 |
| **预期结果** | 1. 菜单关闭<br>2. 提醒移动到"明天"分组<br>3. 卡片上显示的日期更新为明天的日期<br>4. 数据持久化到后端 |
| **优先级** | P0 |
| **状态** | 待测试 |
---
### TC-RM-009 调整到一周后
| 项目 | 内容 |
|------|------|
| **用例标题** | 日期调整-一周后功能验证 |
| **测试场景** | 使用右键菜单将提醒日期调整到7天后 |
| **前置条件** | 1. 用户已登录<br>2. 存在一条今天或明天的提醒 |
| **测试步骤** | 1. 右键点击一条提醒卡片<br>2. 点击"日期调整"区域的"一周后"选项 |
| **预期结果** | 1. 菜单关闭<br>2. 提醒移动到"更久之后"分组<br>3. 卡片上显示的日期更新为7天后的日期<br>4. 数据持久化到后端 |
| **优先级** | P0 |
| **状态** | 待测试 |
---
### TC-RM-010 跨分组移动验证
| 项目 | 内容 |
|------|------|
| **用例标题** | 日期调整后卡片正确移动到目标分组 |
| **测试场景** | 验证日期调整后卡片在分组间的移动逻辑 |
| **前置条件** | 1. 用户已登录<br>2. 存在一条明天分组的提醒 |
| **测试步骤** | 1. 确认提醒在"明天"分组<br>2. 右键点击该提醒<br>3. 选择"今日" |
| **预期结果** | 1. 提醒从"明天"分组消失<br>2. 提醒出现在"今天"分组<br>3. 分组计数正确更新 |
| **优先级** | P0 |
| **状态** | 待测试 |
---
### TC-RM-011 日期时间保留验证
| 项目 | 内容 |
|------|------|
| **用例标题** | 日期调整时保留原有时间 |
| **测试场景** | 调整日期时验证时间分量是否保留 |
| **前置条件** | 1. 用户已登录<br>2. 存在一条带具体时间如14:30的提醒 |
| **测试步骤** | 1. 记录提醒的原始时间如2月5日 14:30<br>2. 右键点击该提醒<br>3. 选择"明日" |
| **预期结果** | 1. 提醒日期更新到明天<br>2. 时间保留为14:30显示为2月6日 14:30 |
| **优先级** | P1 |
| **状态** | 待测试 |
---
### TC-RM-012 逾期提醒日期调整
| 项目 | 内容 |
|------|------|
| **用例标题** | 逾期提醒日期调整功能验证 |
| **测试场景** | 对已过期的提醒进行日期调整 |
| **前置条件** | 1. 用户已登录<br>2. 存在一条已过期的提醒(在"已错过"分组中) |
| **测试步骤** | 1. 进入"已错过"分组<br>2. 右键点击一条逾期提醒<br>3. 选择"今日" |
| **预期结果** | 1. 菜单关闭<br>2. 提醒从"已错过"分组移除<br>3. 提醒出现在"今天"分组<br>4. 卡片样式恢复正常(非红色高亮) |
| **优先级** | P1 |
| **状态** | 待测试 |
---
### TC-RM-013 重复提醒日期调整
| 项目 | 内容 |
|------|------|
| **用例标题** | 重复提醒日期调整功能验证 |
| **测试场景** | 对带重复属性的提醒进行日期调整 |
| **前置条件** | 1. 用户已登录<br>2. 存在一条重复提醒(如每天重复) |
| **测试步骤** | 1. 确认卡片上显示循环图标<br>2. 右键点击该提醒<br>3. 选择"明日" |
| **预期结果** | 1. 菜单关闭<br>2. 提醒移动到明天分组<br>3. 循环图标保留<br>4. 重复属性不受影响 |
| **优先级** | P1 |
| **状态** | 待测试 |
---
### TC-RM-014 边界情况-月末日期调整
| 项目 | 内容 |
|------|------|
| **用例标题** | 月末日期调整边界测试 |
| **测试场景** | 在月末附近进行日期调整,验证跨月计算 |
| **前置条件** | 1. 用户已登录<br>2. 当前日期在月末如1月30日、1月31日<br>3. 存在一条提醒 |
| **测试步骤** | 1. 右键点击任意提醒<br>2. 选择"一周后" |
| **预期结果** | 1. 正确计算7天后的日期<br>2. 跨月时月份正确递增<br>3. 日期显示正确如1月31日+7天=2月7日 |
| **优先级** | P2 |
| **状态** | 待测试 |
---
## 三、优先级功能
### TC-RM-015 设置默认优先级
| 项目 | 内容 |
|------|------|
| **用例标题** | 优先级设置-默认 |
| **测试场景** | 将提醒优先级设置为默认状态 |
| **前置条件** | 1. 用户已登录<br>2. 存在一条提醒 |
| **测试步骤** | 1. 右键点击提醒卡片<br>2. 点击"优先级"区域的"默认"选项 |
| **预期结果** | 1. 菜单关闭<br>2. 优先级更新为 none<br>3. checkbox边框恢复默认样式rgba(0,0,0,0.15)1px<br>4. 优先级名称显示为"默认"<br>5. 数据持久化 |
| **优先级** | P0 |
| **状态** | 待测试 |
---
### TC-RM-016 设置红色优先级
| 项目 | 内容 |
|------|------|
| **用例标题** | 优先级设置-红色 |
| **测试场景** | 将提醒优先级设置为红色 |
| **前置条件** | 1. 用户已登录<br>2. 存在一条提醒 |
| **测试步骤** | 1. 右键点击提醒卡片<br>2. 点击"优先级"区域的"红色"选项 |
| **预期结果** | 1. 菜单关闭<br>2. 优先级更新为 red<br>3. checkbox边框变为红色2px<br>4. 数据持久化 |
| **优先级** | P0 |
| **状态** | 待测试 |
---
### TC-RM-017 设置绿色优先级
| 项目 | 内容 |
|------|------|
| **用例标题** | 优先级设置-绿色 |
| **测试场景** | 将提醒优先级设置为绿色 |
| **前置条件** | 1. 用户已登录<br>2. 存在一条提醒 |
| **测试步骤** | 1. 右键点击提醒卡片<br>2. 点击"优先级"区域的"绿色"选项 |
| **预期结果** | 1. 菜单关闭<br>2. 优先级更新为 green<br>3. checkbox边框变为绿色2px<br>4. 数据持久化 |
| **优先级** | P0 |
| **状态** | 待测试 |
---
### TC-RM-018 设置黄色优先级
| 项目 | 内容 |
|------|------|
| **用例标题** | 优先级设置-黄色 |
| **测试场景** | 将提醒优先级设置为黄色 |
| **前置条件** | 1. 用户已登录<br>2. 存在一条提醒 |
| **测试步骤** | 1. 右键点击提醒卡片<br>2. 点击"优先级"区域的"黄色"选项 |
| **预期结果** | 1. 菜单关闭<br>2. 优先级更新为 yellow<br>3. checkbox边框变为黄色2px<br>4. 数据持久化 |
| **优先级** | P0 |
| **状态** | 待测试 |
---
### TC-RM-019 优先级切换验证
| 项目 | 内容 |
|------|------|
| **用例标题** | 优先级状态切换功能验证 |
| **测试场景** | 连续切换不同优先级等级 |
| **前置条件** | 1. 用户已登录<br>2. 存在一条提醒 |
| **测试步骤** | 1. 设置为红色<br>2. 再次打开菜单<br>3. 设置为绿色<br>4. 再次打开菜单<br>5. 设置为无色 |
| **预期结果** | 1. 每次切换checkbox边框颜色正确变化<br>2. 无色时边框恢复默认样式 |
| **优先级** | P1 |
| **状态** | 待测试 |
---
### TC-RM-20 checkbox边框样式变化
| 项目 | 内容 |
|------|------|
| **用例标题** | 不同优先级下checkbox边框样式验证 |
| **测试场景** | 验证不同优先级状态下checkbox边框的视觉差异 |
| **前置条件** | 1. 用户已登录<br>2. 创建4条提醒分别设置不同优先级 |
| **测试步骤** | 1. 设置提醒A为红色<br>2. 设置提醒B为绿色<br>3. 设置提醒C为黄色<br>4. 设置提醒D为无色 |
| **预期结果** | 1. 红色优先级:边框 #dc26262px<br>2. 绿色优先级:边框 #16a34a2px<br>3. 黄色优先级:边框 #ca8a042px<br>4. 无色优先级:边框 rgba(0,0,0,0.15)1px |
| **优先级** | P1 |
| **状态** | 待测试 |
---
### TC-RM-21 优先级在编辑弹窗显示
| 项目 | 内容 |
|------|------|
| **用例标题** | 优先级在编辑弹窗中正确显示 |
| **测试场景** | 点击编辑打开弹窗,验证优先级显示 |
| **前置条件** | 1. 用户已登录<br>2. 存在一条已设置优先级的提醒 |
| **测试步骤** | 1. 右键点击提醒卡片<br>2. 点击"编辑"选项<br>3. 观察编辑弹窗 |
| **预期结果** | 编辑弹窗中显示当前设置的优先级 |
| **优先级** | P1 |
| **状态** | 待测试 |
---
### TC-RM-22 逾期提醒优先级设置
| 项目 | 内容 |
|------|------|
| **用例标题** | 逾期提醒优先级设置功能 |
| **测试场景** | 对已过期的提醒设置优先级 |
| **前置条件** | 1. 用户已登录<br>2. 存在一条已过期的提醒 |
| **测试步骤** | 1. 进入"已错过"分组<br>2. 右键点击逾期提醒<br>3. 设置为红色 |
| **预期结果** | 1. 菜单关闭<br>2. 优先级更新成功<br>3. checkbox边框变为红色 |
| **优先级** | P1 |
| **状态** | 待测试 |
---
### TC-RM-23 已完成提醒优先级设置
| 项目 | 内容 |
|------|------|
| **用例标题** | 已完成提醒优先级设置功能 |
| **测试场景** | 对已完成的提醒设置优先级 |
| **前置条件** | 1. 用户已登录<br>2. 存在一条已完成的提醒 |
| **测试步骤** | 1. 找到已完成的提醒<br>2. 右键点击<br>3. 设置为红色 |
| **预期结果** | 1. 菜单关闭<br>2. 优先级更新成功(即使卡片呈灰色半透明状态) |
| **优先级** | P2 |
| **状态** | 待测试 |
---
### TC-RM-24 优先级数据持久化
| 项目 | 内容 |
|------|------|
| **用例标题** | 优先级设置数据持久化验证 |
| **测试场景** | 验证设置优先级后刷新页面数据是否保留 |
| **前置条件** | 1. 用户已登录<br>2. 存在一条提醒 |
| **测试步骤** | 1. 设置提醒为红色优先级<br>2. 刷新浏览器页面<br>3. 查看该提醒 |
| **预期结果** | 1. 页面刷新后<br>2. 提醒仍显示红色优先级边框<br>3. 数据从后端正确加载 |
| **优先级** | P0 |
| **状态** | 待测试 |
---
## 四、操作功能
### TC-RM-25 点击编辑打开编辑弹窗
| 项目 | 内容 |
|------|------|
| **用例标题** | 右键菜单编辑功能验证 |
| **测试场景** | 通过右键菜单打开编辑弹窗 |
| **前置条件** | 1. 用户已登录<br>2. 存在一条提醒 |
| **测试步骤** | 1. 右键点击提醒卡片<br>2. 点击"操作"区域的"编辑"选项 |
| **预期结果** | 1. 菜单关闭<br>2. 打开编辑弹窗<br>3. 弹窗显示该提醒的完整信息 |
| **优先级** | P0 |
| **状态** | 待测试 |
---
### TC-RM-26 编辑弹窗内容正确
| 项目 | 内容 |
|------|------|
| **用例标题** | 编辑弹窗内容验证 |
| **测试场景** | 验证编辑弹窗显示的信息完整性 |
| **前置条件** | 1. 用户已登录<br>2. 存在一条带内容和时间的提醒 |
| **测试步骤** | 1. 右键点击提醒卡片<br>2. 点击"编辑"<br>3. 检查弹窗内容 |
| **预期结果** | 弹窗包含:<br>1. 标题字段(预填充)<br>2. 内容字段(预填充)<br>3. 日期时间选择器(预填充)<br>4. 优先级显示/选择<br>5. 保存、删除、取消按钮 |
| **优先级** | P0 |
| **状态** | 待测试 |
---
### TC-RM-27 点击删除删除提醒
| 项目 | 内容 |
|------|------|
| **用例标题** | 右键菜单删除功能验证 |
| **测试场景** | 通过右键菜单删除提醒 |
| **前置条件** | 1. 用户已登录<br>2. 存在一条提醒 |
| **测试步骤** | 1. 右键点击提醒卡片<br>2. 点击"操作"区域的"删除"选项 |
| **预期结果** | 1. 菜单关闭<br>2. 弹出确认删除对话框<br>3. 确认后提醒从列表移除 |
| **优先级** | P0 |
| **状态** | 待测试 |
---
### TC-RM-28 删除确认对话框
| 项目 | 内容 |
|------|------|
| **用例标题** | 删除确认对话框验证 |
| **测试场景** | 验证删除时的确认提示 |
| **前置条件** | 1. 用户已登录<br>2. 存在一条提醒 |
| **测试步骤** | 1. 右键点击提醒卡片<br>2. 点击"删除"<br>3. 观察确认对话框 |
| **预期结果** | 显示确认对话框,包含:<br>1. 提示文字"确定要删除这个提醒吗?"<br>2. "确认"和"取消"按钮 |
| **优先级** | P1 |
| **状态** | 待测试 |
---
### TC-RM-29 删除取消操作
| 项目 | 内容 |
|------|------|
| **用例标题** | 删除取消操作验证 |
| **测试场景** | 在删除确认对话框中点击取消 |
| **前置条件** | 1. 用户已登录<br>2. 存在一条提醒 |
| **测试步骤** | 1. 右键点击提醒卡片<br>2. 点击"删除"<br>3. 在确认对话框中点击"取消" |
| **预期结果** | 1. 确认对话框关闭<br>2. 提醒保留在列表中 |
| **优先级** | P1 |
| **状态** | 待测试 |
---
### TC-RM-30 删除后数据移除
| 项目 | 内容 |
|------|------|
| **用例标题** | 删除后数据从列表移除验证 |
| **测试场景** | 删除提醒后验证数据状态 |
| **前置条件** | 1. 用户已登录<br>2. 存在一条提醒<br>3. 记录提醒ID |
| **测试步骤** | 1. 删除该提醒<br>2. 刷新页面 |
| **预期结果** | 1. 提醒从列表中移除<br>2. 刷新后不再出现<br>3. 后端数据已删除 |
| **优先级** | P0 |
| **状态** | 待测试 |
---
## 五、UI样式验证
### TC-RM-31 重复图标颜色
| 项目 | 内容 |
|------|------|
| **用例标题** | 重复图标统一为灰色 |
| **测试场景** | 验证带重复属性的提醒卡片上循环图标颜色 |
| **前置条件** | 1. 用户已登录<br>2. 存在一条重复提醒(每天/每周/每年重复) |
| **测试步骤** | 1. 找到带循环图标的提醒卡片<br>2. 查看图标颜色 |
| **预期结果** | 循环图标颜色统一为灰色(#999 |
| **优先级** | P0 |
| **状态** | 待测试 |
---
### TC-RM-32 菜单区域划分
| 项目 | 内容 |
|------|------|
| **用例标题** | 右键菜单三个功能区域划分验证 |
| **测试场景** | 验证右键菜单的视觉区域划分 |
| **前置条件** | 1. 用户已登录<br>2. 存在一条提醒 |
| **测试步骤** | 1. 右键点击提醒卡片<br>2. 观察菜单结构 |
| **预期结果** | 菜单分为三个区域:<br>1. 顶部:日期调整(今日、明天、一周后)<br>2. 中部:优先级(无色、红色、绿色、黄色)<br>3. 底部:操作(编辑、删除)<br>各区域用分割线分隔 |
| **优先级** | P1 |
| **状态** | 待测试 |
---
### TC-RM-33 优先级颜色指示
| 项目 | 内容 |
|------|------|
| **用例标题** | 优先级选项颜色指示验证 |
| **测试场景** | 验证菜单中优先级选项的颜色标识 |
| **前置条件** | 1. 用户已登录<br>2. 存在一条提醒 |
| **测试步骤** | 1. 右键点击提醒卡片<br>2. 点击"优先级"展开选项<br>3. 观察颜色指示 |
| **预期结果** | 1. 无色:灰色圆点<br>2. 红色:红色圆点<br>3. 绿色:绿色圆点<br>4. 黄色:黄色圆点 |
| **优先级** | P1 |
| **状态** | 待测试 |
---
### TC-RM-34 菜单项图标
| 项目 | 内容 |
|------|------|
| **用例标题** | 菜单项图标显示验证 |
| **测试场景** | 验证各菜单项左侧图标是否正确显示 |
| **前置条件** | 1. 用户已登录<br>2. 存在一条提醒 |
| **测试步骤** | 1. 右键点击提醒卡片<br>2. 查看各菜单项图标 |
| **预期结果** | 1. 日期调整选项:日历图标<br>2. 优先级选项:圆形颜色图标<br>3. 编辑选项:编辑图标<br>4. 删除选项:垃圾桶图标 |
| **优先级** | P2 |
| **状态** | 待测试 |
---
### TC-RM-35 菜单阴影和边框
| 项目 | 内容 |
|------|------|
| **用例标题** | 右键菜单样式验证 |
| **测试场景** | 验证菜单的整体视觉样式 |
| **前置条件** | 1. 用户已登录<br>2. 存在一条提醒 |
| **测试步骤** | 1. 右键点击提醒卡片<br>2. 观察菜单样式 |
| **预期结果** | 1. 白色背景<br>2. 轻微阴影效果<br>3. 圆角样式<br>4. 无多余边框 |
| **优先级** | P2 |
| **状态** | 待测试 |
---
## 六、异常场景测试
### TC-RM-36 网络异常时日期调整
| 项目 | 内容 |
|------|------|
| **用例标题** | 网络异常时日期调整失败处理 |
| **测试场景** | 模拟网络异常,验证日期调整的错误处理 |
| **前置条件** | 1. 用户已登录<br>2. 存在一条提醒<br>3. 模拟网络断开 |
| **测试步骤** | 1. 断开网络连接<br>2. 右键点击提醒<br>3. 选择"今日"<br>4. 观察处理方式 |
| **预期结果** | 显示网络错误提示,数据不更新或显示离线状态 |
| **优先级** | P1 |
| **状态** | 待测试 |
---
### TC-RM-37 网络异常时优先级设置
| 项目 | 内容 |
|------|------|
| **用例标题** | 网络异常时优先级设置失败处理 |
| **测试场景** | 模拟网络异常,验证优先级设置的错误处理 |
| **前置条件** | 1. 用户已登录<br>2. 存在一条提醒<br>3. 模拟网络断开 |
| **测试步骤** | 1. 断开网络连接<br>2. 右键点击提醒<br>3. 设置优先级为红色<br>4. 观察处理方式 |
| **预期结果** | 显示网络错误提示UI状态不更新 |
| **优先级** | P1 |
| **状态** | 待测试 |
---
### TC-RM-38 网络异常时删除操作
| 项目 | 内容 |
|------|------|
| **用例标题** | 网络异常时删除操作处理 |
| **测试场景** | 模拟网络异常,验证删除操作的错误处理 |
| **前置条件** | 1. 用户已登录<br>2. 存在一条提醒<br>3. 模拟网络断开 |
| **测试步骤** | 1. 断开网络连接<br>2. 右键点击提醒<br>3. 选择删除<br>4. 确认删除 |
| **预期结果** | 显示网络错误提示,提醒仍保留在列表中 |
| **优先级** | P0 |
| **状态** | 待测试 |
---
## 测试环境
| 项目 | 配置 |
|------|------|
| **测试账号** | ddshi0413@gmail.com / aA21135687 |
| **测试环境** | 开发环境 / staging环境 |
| **浏览器** | Chrome最新版、Firefox、Safari、Edge |
| **操作系统** | Windows 11、macOS、ChromeOS |
| **响应式测试** | 桌面端1920px、1366px、平板端768px |
---
## 测试账号信息
| 字段 | 值 |
|------|------|
| **邮箱** | ddshi0413@gmail.com |
| **密码** | aA21135687 |
---
## 附录:优先级颜色常量
```typescript
const colors: Record<PriorityType, string> = {
none: 'rgba(0, 0, 0, 0.15)',
red: '#dc2626',
green: '#16a34a',
yellow: '#ca8a04',
};
```
重复图标颜色:`#999`
---
## 七、2026-02-04 版本更新测试用例
本次更新修复了以下内容:
1. handlePostpone 增加了 next_reminder_date 同步逻辑(重复提醒顺延时)
2. 使用 selector 优化 Zustand 订阅性能
3. 添加点击外部关闭菜单机制
4. 优先级显示"默认"而非"无色"
5. 优先级勾选标记正确显示
6. Checkbox 边框颜色根据优先级变化
---
### TC-RM-39 重复提醒顺延时 next_reminder_date 同步更新
| 项目 | 内容 |
|------|------|
| **用例标题** | 重复提醒顺延时 next_reminder_date 同步更新 |
| **测试场景** | 对重复提醒进行日期顺延,验证 next_reminder_date 同步更新 |
| **前置条件** | 1. 用户已登录<br>2. 存在一条重复提醒(如每天重复) |
| **测试步骤** | 1. 创建一条每天重复的提醒初始日期为2月1日<br>2. 查看记录确认 next_reminder_date = 2月2日<br>3. 右键点击该提醒<br>4. 选择"今日"假设当前日期为2月5日 |
| **预期结果** | 1. 菜单关闭<br>2. 提醒日期更新为2月5日<br>3. next_reminder_date 同步更新为2月6日<br>4. 重复属性保持不变 |
| **优先级** | P0 |
| **状态** | 待测试 |
---
### TC-RM-40 重复提醒逾期后顺延不破坏周期
| 项目 | 内容 |
|------|------|
| **用例标题** | 重复提醒逾期后顺延不破坏原始周期 |
| **测试场景** | 验证重复提醒逾期后顺延next_reminder_date 保持不变 |
| **前置条件** | 1. 用户已登录<br>2. 存在一条已过期的重复提醒 |
| **测试步骤** | 1. 创建一条每天重复的提醒初始日期为2月1日<br>2. 假设当前日期为2月5日<br>3. 右键点击该逾期提醒<br>4. 选择"今日" |
| **预期结果** | 1. 菜单关闭<br>2. 提醒日期更新为2月5日<br>3. next_reminder_date 保持为2月2日原始计算值<br>4. 下次完成时从2月2日开始计算新周期 |
| **优先级** | P0 |
| **状态** | 待测试 |
---
### TC-RM-41 Zustand selector 性能优化验证
| 项目 | 内容 |
|------|------|
| **用例标题** | 右键菜单状态使用 selector 订阅验证 |
| **测试场景** | 验证使用 selector 订阅 Zustand 状态,不影响功能 |
| **前置条件** | 1. 用户已登录<br>2. 存在至少两条提醒 |
| **测试步骤** | 1. 右键点击第一条提醒打开菜单<br>2. 快速右键点击第二条提醒<br>3. 观察菜单切换 |
| **预期结果** | 1. 菜单正确显示在当前点击的卡片位置<br>2. 不会出现多个菜单同时显示<br>3. 菜单切换流畅无卡顿 |
| **优先级** | P1 |
| **状态** | 待测试 |
---
### TC-RM-42 点击菜单外部区域关闭菜单
| 项目 | 内容 |
|------|------|
| **用例标题** | 点击菜单外部区域正确关闭菜单 |
| **测试场景** | 右键菜单打开后,点击其他区域验证菜单关闭 |
| **前置条件** | 1. 用户已登录<br>2. 提醒列表中存在至少一条提醒<br>3. 右键菜单已打开 |
| **测试步骤** | 1. 右键点击卡片打开菜单<br>2. 点击页面其他空白区域(非卡片区域)<br>3. 再次右键打开菜单<br>4. 点击另一张卡片(不打开菜单) |
| **预期结果** | 1. 点击空白区域后,菜单立即关闭<br>2. 点击另一张卡片时,菜单关闭并切换到新卡片 |
| **优先级** | P0 |
| **状态** | 待测试 |
---
### TC-RM-43 优先级选项显示为"默认"而非"无色"
| 项目 | 内容 |
|------|------|
| **用例标题** | 优先级选项文字显示验证 |
| **测试场景** | 验证优先级下拉菜单中"none"显示为"默认" |
| **前置条件** | 1. 用户已登录<br>2. 存在一条提醒 |
| **测试步骤** | 1. 右键点击提醒卡片<br>2. 点击"优先级"区域展开选项<br>3. 观察各选项显示文字 |
| **预期结果** | 1. 优先级选项显示为:默认、红色、绿色、黄色<br>2. 不显示"无色" |
| **优先级** | P0 |
| **状态** | 待测试 |
---
### TC-RM-44 当前优先级勾选标记正确显示
| 项目 | 内容 |
|------|------|
| **用例标题** | 当前优先级勾选标记显示验证 |
| **测试场景** | 验证选中优先级后,菜单中正确显示勾选标记 |
| **前置条件** | 1. 用户已登录<br>2. 存在一条提醒 |
| **测试步骤** | 1. 设置提醒优先级为红色<br>2. 再次右键点击该提醒<br>3. 点击"优先级"展开选项 |
| **预期结果** | 1. 当前优先级选项(红色)右侧显示勾选标记<br>2. 其他优先级选项不显示勾选标记<br>3. 切换优先级后,勾选标记正确移动 |
| **优先级** | P1 |
| **状态** | 待测试 |
---
### TC-RM-45 Checkbox 边框颜色根据优先级变化
| 项目 | 内容 |
|------|------|
| **用例标题** | 不同优先级下 checkbox 边框样式验证 |
| **测试场景** | 验证 checkbox 边框颜色随优先级变化 |
| **前置条件** | 1. 用户已登录<br>2. 创建4条提醒分别设置不同优先级 |
| **测试步骤** | 1. 设置提醒A优先级为 none<br>2. 设置提醒B优先级为 red<br>3. 设置提醒C优先级为 green<br>4. 设置提醒D优先级为 yellow |
| **预期结果** | 1. 提醒A默认checkbox边框 rgba(0,0,0,0.15)1px<br>2. 提醒B红色checkbox边框 #dc26262px<br>3. 提醒C绿色checkbox边框 #16a34a2px<br>4. 提醒D黄色checkbox边框 #ca8a042px |
| **优先级** | P1 |
| **状态** | 待测试 |
---
### TC-RM-46 优先级按钮边框颜色同步
| 项目 | 内容 |
|------|------|
| **用例标题** | 优先级按钮边框颜色同步更新 |
| **测试场景** | 验证右键菜单中优先级按钮边框颜色与当前优先级同步 |
| **前置条件** | 1. 用户已登录<br>2. 存在一条提醒 |
| **测试步骤** | 1. 右键点击提醒<br>2. 观察优先级按钮边框颜色<br>3. 切换优先级后再次打开菜单<br>4. 观察按钮边框颜色变化 |
| **预期结果** | 1. 按钮边框颜色与当前优先级颜色一致<br>2. 优先级图标颜色与边框颜色一致<br>3. 切换优先级后,按钮样式实时更新 |
| **优先级** | P1 |
| **状态** | 待测试 |
---
### TC-RM-47 优先级数据持久化与刷新
| 项目 | 内容 |
|------|------|
| **用例标题** | 优先级设置后刷新页面验证 |
| **测试场景** | 设置优先级后刷新页面,验证 checkbox 边框样式保留 |
| **前置条件** | 1. 用户已登录<br>2. 存在一条提醒 |
| **测试步骤** | 1. 设置提醒为红色优先级<br>2. 刷新浏览器页面<br>3. 查看该提醒 |
| **预期结果** | 1. 页面刷新后<br>2. 提醒仍显示红色优先级边框<br>3. 数据从后端正确加载 |
| **优先级** | P0 |
| **状态** | 待测试 |
---
### TC-RM-48 优先级切换动画效果
| 项目 | 内容 |
|------|------|
| **用例标题** | 优先级切换时菜单项动画效果 |
| **测试场景** | 验证切换优先级时勾选标记的切换动画 |
| **前置条件** | 1. 用户已登录<br>2. 存在一条提醒 |
| **测试步骤** | 1. 右键点击提醒打开菜单<br>2. 点击"优先级"展开选项<br>3. 依次点击不同的优先级 |
| **预期结果** | 1. 勾选标记在选项间平滑切换<br>2. 无闪烁或跳跃现象<br>3. 切换后菜单保持打开状态 |
| **优先级** | P2 |
| **状态** | 待测试 |
---
## 测试环境
| 项目 | 配置 |
|------|------|
| **测试账号** | ddshi0413@gmail.com / aA21135687 |
| **测试环境** | 开发环境 / staging环境 |
| **浏览器** | Chrome最新版、Firefox、Safari、Edge |
| **操作系统** | Windows 11、macOS、ChromeOS |
| **响应式测试** | 桌面端1920px、1366px、平板端768px |
---
## 测试账号信息
| 字段 | 值 |
|------|------|
| **邮箱** | ddshi0413@gmail.com |
| **密码** | aA21135687 |
---
## 附录:优先级颜色常量
```typescript
const PRIORITY_COLORS: Record<PriorityType, string> = {
none: 'rgba(0, 0, 0, 0.15)',
red: '#dc2626',
green: '#16a34a',
yellow: '#ca8a04',
};
const PRIORITY_NAMES: Record<PriorityType, string> = {
none: '默认',
red: '红色',
green: '绿色',
yellow: '黄色',
};
```
重复图标颜色:`#999`

BIN
page-screenshot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

BIN
priority-red-test.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB