Files
prop-ai-hr/docs/M0自动化验收说明.md

2.8 KiB

银城大喇叭 M0 自动化验收

目的

这是一条受控的本机写入验收链,用来证明 M0 的核心闭环,而不是替代正式试点或生产验收:

管理员发布 → 员工未读可见 → 查看并已读 → 围绕消息追问 → 管理员撤回 → 员工不可见且不可追问

运行方式

先按 DEV_SETUP.md 启动本机依赖和后端,并由安全的测试密钥注入方式提供一对短期令牌,再执行:

AIHR_M0_ADMIN_TOKEN='<管理员短期令牌>' \
AIHR_M0_EMPLOYEE_TOKEN='<在职员工短期令牌>' \
node scripts/verify-broadcast-m0-local.mjs \
  --prepare-local-query-fixture \
  --report=/tmp/broadcast-m0-acceptance.json

脚本默认访问本机 https://wygj-api.localhost,也接受 localhost、127.0.0.1 和 ::1 回环地址。它只使用调用方显式注入的短期令牌,不读取服务端图形验证码、密码、Redis 会话或浏览器存储。管理员令牌须具备大喇叭发布权限;员工令牌须对应已匹配组织快照的在职员工。令牌不得写入源码、报告或提交到仓库。

--prepare-local-query-fixture 只在本机生效:当本机库尚未配置移动端知识应用、空间绑定或员工阅读授权时,它会临时补齐最小授权并在测试结束后恢复。省略该开关可直接检查现有环境配置;若消息追问因没有共同知识空间失败,应将其视为部署/配置缺口。

可用覆盖项:

AIHR_BASE_URL=http://127.0.0.1:8080 \
AIHR_M0_ADMIN_CLIENT_ID='<管理端 client id>' \
AIHR_M0_EMPLOYEE_CLIENT_ID='<员工端 client id>' \
node scripts/verify-broadcast-m0-local.mjs

受控写入与清理

脚本只默认允许写入回环地址(localhost、127.0.0.1、::1 或 *.localhost)。每次运行发布一条带唯一标识的临时消息;无论任一步失败,都会尝试撤回该消息。撤回不会删除发布、版本和已读审计记录。

非本机环境默认拒绝执行。只有同时提供 --allow-remote-write、AIHR_M0_ALLOW_REMOTE_WRITE=true、明确的专用测试租户,以及两个短期令牌时才会放行;标准发布预检不调用本脚本。

通过条件

脚本逐项输出 PASS,并最终输出 M0_BROADCAST_ACCEPTANCE PASS。它覆盖:

  • 管理员当前租户范围与员工无发布权限;
  • 发布、相同 requestId 的幂等重放;
  • 员工列表、详情、未读和重复已读幂等;
  • 消息追问的 BCAST 引用、可信上下文以及正文不出现在查询响应中;
  • 撤回审计、员工列表和详情不可见、撤回后不能再追问。

这条脚本是接口状态验收。管理端和员工端的真实页面操作、截图和移动端布局仍需作为单独的浏览器验收证据保存,不能仅以脚本通过替代视觉验收。