diff --git a/backend/src/test/java/org/raddatz/familienarchiv/document/DocumentControllerTest.java b/backend/src/test/java/org/raddatz/familienarchiv/document/DocumentControllerTest.java index 60a141b7..f1e34554 100644 --- a/backend/src/test/java/org/raddatz/familienarchiv/document/DocumentControllerTest.java +++ b/backend/src/test/java/org/raddatz/familienarchiv/document/DocumentControllerTest.java @@ -1233,6 +1233,24 @@ class DocumentControllerTest { assertThat(filtersCaptor.getValue().sender()).isEqualTo(senderId); } + @Test + @WithMockUser(authorities = "WRITE_ALL") + void getDocumentIds_withoutUndatedParam_coercesNullToFalse() throws Exception { + // The controller coerces a null boxed Boolean to primitive false + // (Boolean.TRUE.equals(undated)) so the absent param never NPEs and the + // record always holds a concrete boolean. + when(userService.findByEmail(any())).thenReturn(AppUser.builder().id(UUID.randomUUID()).build()); + ArgumentCaptor filtersCaptor = ArgumentCaptor.forClass(SearchFilters.class); + when(documentService.findIdsForFilter(any())) + .thenReturn(List.of()); + + mockMvc.perform(get("/api/documents/ids")) + .andExpect(status().isOk()); + + verify(documentService).findIdsForFilter(filtersCaptor.capture()); + assertThat(filtersCaptor.getValue().undated()).isFalse(); + } + @Test @WithMockUser(authorities = "WRITE_ALL") void getDocumentIds_returns400_whenResultExceedsFilterCap() throws Exception {