diff --git a/backend/src/test/java/org/raddatz/familienarchiv/controller/PersonControllerTest.java b/backend/src/test/java/org/raddatz/familienarchiv/controller/PersonControllerTest.java index 9de8a3a1..41a4a0ac 100644 --- a/backend/src/test/java/org/raddatz/familienarchiv/controller/PersonControllerTest.java +++ b/backend/src/test/java/org/raddatz/familienarchiv/controller/PersonControllerTest.java @@ -333,6 +333,21 @@ class PersonControllerTest { .andExpect(jsonPath("$.lastName").value("Müller")); } + @Test + @WithMockUser(authorities = "WRITE_ALL") + void updatePerson_returns409_whenRenameConflict() throws Exception { + UUID id = UUID.randomUUID(); + when(personService.updatePerson(eq(id), any())) + .thenThrow(DomainException.conflict(ErrorCode.PERSON_RENAME_CONFLICT, + "Concurrent block edit during rename")); + + mockMvc.perform(put("/api/persons/{id}", id) + .contentType(MediaType.APPLICATION_JSON) + .content("{\"firstName\":\"Augusta\",\"lastName\":\"Raddatz\",\"personType\":\"PERSON\"}")) + .andExpect(status().isConflict()) + .andExpect(jsonPath("$.code").value("PERSON_RENAME_CONFLICT")); + } + // ─── POST /api/persons/{id}/merge ───────────────────────────────────────── @Test