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 引用、可信上下文以及正文不出现在查询响应中;
- 撤回审计、员工列表和详情不可见、撤回后不能再追问。
这条脚本是接口状态验收。管理端和员工端的真实页面操作、截图和移动端布局仍需作为单独的浏览器验收证据保存,不能仅以脚本通过替代视觉验收。