From 43601a37707c66ceb02f93a3250a097b63ab8f6f Mon Sep 17 00:00:00 2001 From: Marcel Date: Sat, 6 Jun 2026 12:26:15 +0200 Subject: [PATCH] test(transcription): persist real persons for mention FK after V71 (#684) V71 gives transcription_block_mentioned_persons.person_id a real FK, so two TranscriptionBlockMentionsRepositoryTest cases that inserted mention rows with random (non-existent) person ids now violate fk_tbmp_person. Persist real Person rows and use their ids. Caught by CI's full suite. Co-Authored-By: Claude Opus 4.8 --- .../TranscriptionBlockMentionsRepositoryTest.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/backend/src/test/java/org/raddatz/familienarchiv/document/transcription/TranscriptionBlockMentionsRepositoryTest.java b/backend/src/test/java/org/raddatz/familienarchiv/document/transcription/TranscriptionBlockMentionsRepositoryTest.java index 5742d654..aca4d732 100644 --- a/backend/src/test/java/org/raddatz/familienarchiv/document/transcription/TranscriptionBlockMentionsRepositoryTest.java +++ b/backend/src/test/java/org/raddatz/familienarchiv/document/transcription/TranscriptionBlockMentionsRepositoryTest.java @@ -12,6 +12,8 @@ import org.raddatz.familienarchiv.document.annotation.DocumentAnnotation; import org.raddatz.familienarchiv.document.DocumentStatus; import org.raddatz.familienarchiv.document.transcription.PersonMention; import org.raddatz.familienarchiv.document.transcription.TranscriptionBlock; +import org.raddatz.familienarchiv.person.Person; +import org.raddatz.familienarchiv.person.PersonRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.jdbc.test.autoconfigure.AutoConfigureTestDatabase; import org.springframework.boot.data.jpa.test.autoconfigure.DataJpaTest; @@ -30,6 +32,7 @@ class TranscriptionBlockMentionsRepositoryTest { @Autowired TranscriptionBlockRepository blockRepository; @Autowired DocumentRepository documentRepository; @Autowired AnnotationRepository annotationRepository; + @Autowired PersonRepository personRepository; @Autowired EntityManager em; private UUID documentId; @@ -55,8 +58,9 @@ class TranscriptionBlockMentionsRepositoryTest { @Test void mentionedPersons_roundTripsTwoEntries() { - UUID auguste = UUID.randomUUID(); - UUID hermann = UUID.randomUUID(); + // person_id is a real FK since V71 — the mentioned persons must exist. + UUID auguste = personRepository.save(Person.builder().firstName("Auguste").lastName("Raddatz").build()).getId(); + UUID hermann = personRepository.save(Person.builder().firstName("Hermann").lastName("Müller").build()).getId(); TranscriptionBlock saved = blockRepository.saveAndFlush(TranscriptionBlock.builder() .annotationId(annotationId) @@ -97,8 +101,9 @@ class TranscriptionBlockMentionsRepositoryTest { @Test void findByPersonIdWithMentionsFetched_returnsOnlyBlocksReferencingPerson_withMentionsLoaded() { - UUID augusteId = UUID.randomUUID(); - UUID hermannId = UUID.randomUUID(); + // person_id is a real FK since V71 — the mentioned persons must exist. + UUID augusteId = personRepository.save(Person.builder().firstName("Auguste").lastName("Raddatz").build()).getId(); + UUID hermannId = personRepository.save(Person.builder().firstName("Hermann").lastName("Müller").build()).getId(); blockRepository.saveAndFlush(TranscriptionBlock.builder() .annotationId(annotationId).documentId(documentId)