fix #494: add delete impact confirmations
This commit is contained in:
@@ -173,6 +173,24 @@ class PermissionServiceTest {
|
||||
assertThat(disabled[0]).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
void rejectsPermissionDeleteWithoutImpactConfirmation() {
|
||||
assertThatThrownBy(() -> permissionService.deletePermission(1000L, false))
|
||||
.isInstanceOf(AppException.class)
|
||||
.hasMessageContaining("영향 확인");
|
||||
}
|
||||
|
||||
@Test
|
||||
void blocksRoleDeleteWhenDependenciesRemain() {
|
||||
var mapper = new FakePermissionMapper();
|
||||
mapper.userRoleCount = 1;
|
||||
PermissionService service = new PermissionService(mapper, protectedObjectService, new AuditService(new NoopAuditMapper()));
|
||||
|
||||
assertThatThrownBy(() -> service.deleteRole(10L, true))
|
||||
.isInstanceOf(AppException.class)
|
||||
.hasMessageContaining("먼저 해제");
|
||||
}
|
||||
|
||||
private static class NoopAuditMapper implements AuditMapper {
|
||||
@Override
|
||||
public void insert(AuditEvent event) {
|
||||
@@ -211,6 +229,25 @@ class PermissionServiceTest {
|
||||
return 1;
|
||||
}
|
||||
|
||||
private int userRoleCount;
|
||||
private int groupRoleCount;
|
||||
private int permissionCountByRole;
|
||||
|
||||
@Override
|
||||
public int countUserRolesByRoleId(long roleId) {
|
||||
return userRoleCount;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int countGroupRolesByRoleId(long roleId) {
|
||||
return groupRoleCount;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int countPermissionsByRoleId(long roleId) {
|
||||
return permissionCountByRole;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<PermissionView> findPermissionViews() {
|
||||
return List.of();
|
||||
|
||||
Reference in New Issue
Block a user