后端缓存管理
ci-userbase-service / build-and-push (push) Successful in 2m20s

This commit is contained in:
chenxing
2026-09-07 09:33:10 +08:00
parent 79b1d99db9
commit 1047d2387f
56 changed files with 3786 additions and 331 deletions
@@ -10,6 +10,7 @@ import com.yunhai.userbase.entity.SysUser;
import com.yunhai.userbase.entity.SysUserGroupRel;
import com.yunhai.userbase.enums.GroupTypeEnum;
import com.yunhai.userbase.enums.UserTypeEnum;
import com.yunhai.userbase.model.GroupSnapshot;
import com.yunhai.userbase.model.groupauthz.UserPermissionCategoryVo;
import com.yunhai.userbase.model.groupauthz.UserPermissionModuleVo;
import com.yunhai.userbase.repository.AppCategoryRepository;
@@ -47,13 +48,16 @@ import static org.mockito.Mockito.when;
* GroupAuthzService 权限计算单元测试。
* 重点验证「就近原则 + 子组继承闸门」:沿组的祖先链向上,取<b>最近</b>的有显式模块配置的组作为该应用唯一权限来源,
* 只返回该来源组的模块集合(不向上合并更远的祖先);且<b>来源组若为祖先,必须勾选子组继承(inheritFlag=true)才下放</b>
* (修复「子组只勾1个却继承学校全部」「返回3个而非最近祖先的2个」「父级未勾子组继承仍被继承」三类 bug)。
* (修复「子组只勾1个却继承学校全部」「返回3个而非最近祖先的2个」「父级未勾子组继承仍被继承」三类 bug)。<br>
* 组全量数据现经 groupSnapshot 快照提供(buildAllGroupMap 改造),故统一 stub snapshot 而非 repository.findAll。
*/
class GroupAuthzServiceTest {
@InjectMocks
private GroupAuthzService groupAuthzService;
@Mock
private GroupSnapshotService groupSnapshotService;
@Mock
private SysGroupAppRelRepository sysGroupAppRelRepository;
@Mock
@@ -93,7 +97,7 @@ class GroupAuthzServiceTest {
* └─ 30 学生组
*/
private void initGroups() {
when(sysGroupRepository.findAll()).thenReturn(Arrays.asList(
List<SysGroup> groups = Arrays.asList(
group(5, "教育云中心", 0, GroupTypeEnum.NORMAL_GROUP),
group(27, "信阳教育局", 5, GroupTypeEnum.AREA_GROUP),
group(16, "云海中学", 27, GroupTypeEnum.SCHOOL_GROUP),
@@ -101,7 +105,8 @@ class GroupAuthzServiceTest {
group(29, "教师组", 16, GroupTypeEnum.TEACHER_GROUP),
group(30, "学生组", 16, GroupTypeEnum.STUDENT_GROUP),
group(31, "英语组", 29, GroupTypeEnum.NORMAL_GROUP)
));
);
when(groupSnapshotService.snapshot()).thenReturn(new GroupSnapshot(groups));
}
@Test