2026-05-08-REQ-USR-002.md 1.33 KB

req_id: REQ-USR-002 date: 2026-05-08 round: 2

reviewer: superpower-code-reviewer

Review: REQ-USR-002 — round 2

结论

approve

Must-fix

(无)

Round 1 全部 must-fix 已正确修复:

  • M1 ✓ updateUser_selfAdminKeepType_doesNotThrow 测试已添加(含 userMapper.update stub)
  • M2 ✓ UserUpdateReqDTO 已添加 @NotBlank/@Pattern/@NotNull 校验注解
  • M3 ✓ UserFormDrawer.InitialData 已添加 permGroupIds 字段,useEffect 用 ?? [] 初始化
  • M4 ✓ UserListItemVO 已添加 bCanEditDoc,mapper SELECT 已加列,UserListPage 传真实值

Nice-to-have

  • backend/.../vo/UserUpdateRespVO.java — updatedAt 建议添加 @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss") 符合 docs/04 § 3.3 规范
  • frontend/src/test/UserListPage.test.tsx:106 — editMode_submit_callsUpdateUser 可补 toHaveBeenCalledWith('u1', ...) 断言 userId 参数正确
  • frontend/src/pages/usr/UserListPage.tsx:121-128 — initialData 未传 permGroupIds(因列表 API 无此字段),与规格 line 103 说明一致,属有意为之,建议加注释说明

反例 / 测试覆盖缺口

  • controller 层 BizException 40300/40400/40301 → 错误码 JSON 映射缺测试(低风险,handler 已在 createUser 路径覆盖)
  • happy-path 未用 ArgumentCaptor 断言 bCanEditDoc/bIsDisabled 映射为正确 int 值(低风险)