fix(user): use builder in createGroup and guard against null permissions
Some checks failed
CI / Unit & Component Tests (push) Has been cancelled
CI / OCR Service Tests (push) Has been cancelled
CI / Backend Unit Tests (push) Has been cancelled
CI / Unit & Component Tests (pull_request) Failing after 4m2s
CI / OCR Service Tests (pull_request) Successful in 37s
CI / Backend Unit Tests (pull_request) Failing after 3m18s
Some checks failed
CI / Unit & Component Tests (push) Has been cancelled
CI / OCR Service Tests (push) Has been cancelled
CI / Backend Unit Tests (push) Has been cancelled
CI / Unit & Component Tests (pull_request) Failing after 4m2s
CI / OCR Service Tests (pull_request) Successful in 37s
CI / Backend Unit Tests (pull_request) Failing after 3m18s
Null dto.permissions now produces an empty HashSet instead of propagating null into the @ElementCollection — prevents a silent NPE after V64 adds NOT NULL. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -271,9 +271,10 @@ public class UserService {
|
|||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public UserGroup createGroup(GroupDTO dto) {
|
public UserGroup createGroup(GroupDTO dto) {
|
||||||
UserGroup group = new UserGroup();
|
UserGroup group = UserGroup.builder()
|
||||||
group.setName(dto.getName());
|
.name(dto.getName())
|
||||||
group.setPermissions(dto.getPermissions());
|
.permissions(dto.getPermissions() != null ? dto.getPermissions() : new HashSet<>())
|
||||||
|
.build();
|
||||||
return groupRepository.save(group);
|
return groupRepository.save(group);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -902,4 +902,18 @@ class UserServiceTest {
|
|||||||
assertThat(result.getName()).isEqualTo("Familie");
|
assertThat(result.getName()).isEqualTo("Familie");
|
||||||
assertThat(result.getPermissions()).containsExactlyInAnyOrder("READ_ALL", "WRITE_ALL");
|
assertThat(result.getPermissions()).containsExactlyInAnyOrder("READ_ALL", "WRITE_ALL");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void createGroup_withNullPermissions_savesGroupWithEmptyPermissionSet() {
|
||||||
|
org.raddatz.familienarchiv.user.GroupDTO dto = new org.raddatz.familienarchiv.user.GroupDTO();
|
||||||
|
dto.setName("Leser");
|
||||||
|
dto.setPermissions(null);
|
||||||
|
|
||||||
|
UserGroup saved = UserGroup.builder().id(UUID.randomUUID()).name("Leser").build();
|
||||||
|
when(groupRepository.save(any())).thenReturn(saved);
|
||||||
|
|
||||||
|
userService.createGroup(dto);
|
||||||
|
|
||||||
|
verify(groupRepository).save(argThat(g -> g.getPermissions() != null && g.getPermissions().isEmpty()));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user