Files
mnote/.codex/reasonix-tasks/2026-05-21-browser-test-filetree-editor-context-menu.md
T
lix-2026 1956a8a21a chore: align mvp design governance
- 统一 local-first MVP 后阶段架构口径,补充 process 执行总序和 Reasonix 协作记录

- 归档已完成的 design checklist,标注参考型 process,更新 AGENTS/REASONIX/架构文档

- 补充文件树/主编辑器下载与上下文菜单相关实现、bug 记录和 smoke 脚本

验证:git diff --check;codegraph sync .;cargo test -p mnote-web;node --check scripts/task476-filetree-editor-context-menu-download-smoke.js
2026-05-21 09:04:13 +08:00

3.3 KiB

你是浏览器测试员,不是代码修改员。

项目根目录:/mnt/Data1T/mnote 被测入口:http://127.0.0.1:3000 输出目录:/mnt/Data1T/mnote/tmp/reasonix-filetree-editor-context-menu-2026-05-21

硬性约束

  • 禁止修改源码、禁止 git commit、禁止回滚文件。
  • 使用真实浏览器或 Playwright 验证。
  • 使用全新的 isolated browser context / userDataDir;测试开始前清空 cookies、localStorage、sessionStorage、IndexedDB 和 Cache Storage。
  • 所有截图和 result.json 写入输出目录。
  • 失败时保留 console/network 摘要。
  • 最终只汇报测试证据,不提出未经验证的代码结论。

登录

  • 打开 /auth
  • 优先点击“测试账号快速登录”。
  • 默认测试账号:mnote.e2e@example.com / MnoteE2E123!

测试目标

验证当前 MNote 的:

  1. 文件树右键菜单实际显示哪些动作,尤其是文件/asset 行是否有“下载”。
  2. 文件树右键菜单点击后是否有可观测状态变化:
    • data-mnote-filetree-last-action
    • data-mnote-filetree-last-action-status
    • data-mnote-filetree-readonly-blocked
    • 是否发生新 tab / 下载 / network 请求。
  3. 主编辑器附件 hover 菜单与更多菜单:
    • hover 附件后是否出现 [data-testid="mnote-attachment-actions"]
    • 点击更多菜单后是否出现 [data-testid="mnote-tree-context-menu"][data-kind="attachment"]
    • attachment 菜单是否有“下载 / 弹窗预览 / 弹窗编辑 / 新窗口编辑”等动作。

推荐操作步骤

  1. 打开主页面或任意 /documents/... 页面,确保侧边栏和文件树可见。
  2. 如果当前没有明显文件/asset 行,可上传或使用页面内已有附件;也可以创建一个临时 .txt / .md / .docx 资源,但必须记录文件名。
  3. 右键文件树中的 page/document 行,截图菜单并记录所有 menu item 文案与 data-action
  4. 右键文件树中的 asset/resource 文件行,截图菜单并记录所有 menu item 文案与 data-action;重点确认是否有 download
  5. 如菜单里有“下载”,点击并记录 download 事件或 network;如没有,标记为 FAIL:filetree_asset_download_action_missing
  6. 在主编辑器找到附件块或上传一个小附件,hover 后截图附件 hover actions。
  7. 点击附件 hover actions 的更多按钮,截图 attachment context menu 并记录 actions。

result.json 格式

{
  "ok": false,
  "url": "",
  "assertions": [
    {"name": "filetree_doc_context_menu_visible", "status": "pass|fail|blocked", "details": ""},
    {"name": "filetree_asset_context_menu_visible", "status": "pass|fail|blocked", "details": ""},
    {"name": "filetree_asset_download_action", "status": "pass|fail|blocked", "details": ""},
    {"name": "editor_attachment_hover_actions", "status": "pass|fail|blocked", "details": ""},
    {"name": "editor_attachment_context_menu", "status": "pass|fail|blocked", "details": ""}
  ],
  "menus": {
    "filetreeDocument": [],
    "filetreeAsset": [],
    "editorAttachment": []
  },
  "screenshots": [],
  "consoleErrors": [],
  "networkFailures": [],
  "downloads": []
}

最终回复

请只汇报:

  • result.json 路径
  • 截图路径
  • 每个断言的 pass/fail/blocked
  • 关键失败证据