4.2 KiB
4.2 KiB
管理台重置密码入口恢复 测试报告
一、 测试背景 (Background)
管理员在「用户与准入治理」找不到重置密码。F4-B 端点已在 dev(39f8c1d1),F4-A(d653e32e)误删了按钮。本轮只恢复 UI 接线。
二、 测试目标 (Test Objectives)
- 用户列表重新出现「重置密码」,并调用已有
POST /api/v1/admin/users/{id}/reset-password - 临时口令为服务端随机值(长度 16),不落报告正文
- 已完成过首次改密的账号,被重置后的下一次登录必须改密;再下一次登录不再弹出
- 重置前的口令失效
- 前端
tsc --noEmit与npm test通过
三、 测试方案与环境 (Test Plan & Environment)
- OS: Linux;Node v26.10.0;worktree
feature/restore-admin-password-reset-2026-09-28@f0ecc4c9(UI 提交;文档提交在其后) - 前端单测在 worktree
web/(node_modules链接主目录,未入库) - 真实 UI:worktree Vite
127.0.0.1:3110代理本机 dev API127.0.0.1:8080(/health200)。未替换用户正在使用的:3100进程 - NOT REQUIRED:产品 PI 全链路。依据:IAM/管理台工程变更,不改工作流模板或提示词;见 PROJECT.md「验证入口」与测试报告规范的工程例外。同 2026-09-24 报告
- NOT REQUIRED:
go test。本任务无 Go 差异
证据:assets/2026-09-28-admin-password-reset-restore/
四、 预期结果 (Expected Results)
| 用例 | 预期 |
|---|---|
| 探针账号开通后首次登录 | must_change_password=true |
| 自行改密后再次登录 | must_change_password=false |
| 管理台重置 | 确认框 + 临时口令长度 16 + 「密码已重置」 |
| 用临时口令登录 | 出现「首次登录安全改密」 |
| 改密后再次登录 | 进入工作台,强制改密弹窗数量为 0 |
| 重置前口令 | HTTP 401 |
五、 实际测试结果与判定 (Actual Results & Evaluation)
探针账号 pwreset_probe_mukj4wsy(user id 77)。测完已停用。临时口令与管理员口令不写入本报告。
用例 1:前端类型检查与单测
- 输入:
npx tsc --noEmit;npm test - 实际输出:
TSC_EXIT=0。node:testpass 525/fail 0(1487ms);vitest3 files / 34 passed(327ms) - 判定:PASS
用例 2:重置前账号处于「已改密、不再强制」
- 输入:管理员 API 开通探针 → 初始口令登录 →
change-password→ 再登录 - 实际输出:见
result.json:probe_initial_login_must_change200/true;probe_settled_login_no_force200/false - 判定:PASS
- 耗时:含在整段探针内(成功那次进程约 3.2s;前一次因管理台内找不到工作台退出按钮失败,已改为先「返回工作台」)
用例 3:管理台重置并强制改密仅一次
- 输入:
http://127.0.0.1:3110管理员进入「用户与准入治理」,搜索探针账号,点击「重置密码」;用临时口令登录并改密;退出后再登录 - 实际输出:
- 按钮可见:
01-reset-button.png - 确认文案含「一次性临时口令」「下次登录将被强制改密」;
ui_prompt_temp_password.length=16;toast「密码已重置」 - 临时口令登录出现「首次登录安全改密」:
02-force-change-modal.png - 改密后进入工作台;再次登录
modal_count=0:03-second-login-workbench.png - 重置前口令登录
status=401
- 按钮可见:
- 判定:PASS
六、 自动化测试套件汇总 (Test Suite Execution)
npx tsc --noEmit # exit 0
npm test # 525 + 34 PASS,fail 0
go test # 未运行(无 Go 差异)
产品 PI nightly # NOT REQUIRED(见第三节)
七、 测试结论与后续优化建议 (Conclusion & Next Steps)
- UI 恢复达到合入 local dev 的验收。运行中的
:3100在本提交进入主目录dev后由既有 Vite 热更新;本报告的浏览器证据来自:3110。 - 强制改密复用既有
FirstLoginPasswordModal,文案仍写「账号由管理员开通」。行为满足「重置后第一次登录必须改密」。 - 探针账号 76(失败重试)与 77 均已置为 disabled。