|
|
@@ -4,6 +4,25 @@
|
|
|
|
|
|
---
|
|
|
|
|
|
+## v1.0.1951 (2026-11-01)
|
|
|
+
|
|
|
+### 测试
|
|
|
+- 补齐 family.familyMembers.addMember 契约级单测
|
|
|
+
|
|
|
+### 其他
|
|
|
+- 原为未覆盖 handler,本提交补 7 条契约级单测(MockMvc + 直接调用级):
|
|
|
+- - 正常路径:Service 返回 VO → code 200 + 用户有家庭触发 refreshFamilyGates
|
|
|
+- - 用户查询为空/无家庭:code 200 但不触发 refreshFamilyGates
|
|
|
+- - IllegalArgumentException / RuntimeException → code 500 + 异常信息透传
|
|
|
+- - JSON→AddFamilyMemberDTO 反序列化字段映射经 ArgumentCaptor 验证
|
|
|
+- - userId 空守卫(直接调用,@RequestAttribute required=true 无法注入 null)
|
|
|
+- 角色/权限口径:本 handler 无 @RequestAttribute(role/roles),授权由 Service 层
|
|
|
+- (familyId=登录用户所属家庭)与 JwtInterceptor(匿名注入 userId=-1 被 401 拦截)承担。
|
|
|
+- 不改 src/main 实现;测试 mock FamilyMemberService/UserMapper/UnlockGateService。
|
|
|
+- 7 用例全部通过(mvn -DskipTests=false -Dtest=FamilyMembersControllerAddMemberTest test)。
|
|
|
+-
|
|
|
+
|
|
|
+
|
|
|
## v1.0.1950 (2026-11-01)
|
|
|
|
|
|
### 新功能
|