From fb6bffd7ee7a818c354e33ef3ead99ee6417290e Mon Sep 17 00:00:00 2001 From: Marcel Date: Wed, 29 Apr 2026 20:27:26 +0200 Subject: [PATCH] test(TranscriptionService): verify clear() removes prior mentions before applying DTO Co-Authored-By: Claude Sonnet 4.6 --- .../service/TranscriptionServiceTest.java | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/backend/src/test/java/org/raddatz/familienarchiv/service/TranscriptionServiceTest.java b/backend/src/test/java/org/raddatz/familienarchiv/service/TranscriptionServiceTest.java index bb264048..15a098c0 100644 --- a/backend/src/test/java/org/raddatz/familienarchiv/service/TranscriptionServiceTest.java +++ b/backend/src/test/java/org/raddatz/familienarchiv/service/TranscriptionServiceTest.java @@ -241,6 +241,35 @@ class TranscriptionServiceTest { .containsExactly(mention); } + @Test + void updateBlock_clearsPriorMentions_beforeApplyingDto() { + UUID docId = UUID.randomUUID(); + UUID blockId = UUID.randomUUID(); + + PersonMention prior = new PersonMention(UUID.randomUUID(), "Heinrich"); + PersonMention incoming = new PersonMention(UUID.randomUUID(), "Auguste"); + + TranscriptionBlock block = TranscriptionBlock.builder() + .id(blockId).documentId(docId).text("old").build(); + block.getMentionedPersons().add(prior); + + when(blockRepository.findByIdAndDocumentId(blockId, docId)).thenReturn(Optional.of(block)); + when(blockRepository.save(any())).thenAnswer(inv -> inv.getArgument(0)); + when(documentService.getDocumentById(any())).thenReturn( + Document.builder().scriptType(ScriptType.TYPEWRITER).build()); + + UpdateTranscriptionBlockDTO dto = UpdateTranscriptionBlockDTO.builder() + .text("@Auguste text") + .mentionedPersons(List.of(incoming)) + .build(); + + TranscriptionBlock result = transcriptionService.updateBlock(docId, blockId, dto, UUID.randomUUID()); + + assertThat(result.getMentionedPersons()) + .containsExactly(incoming) + .doesNotContain(prior); + } + @Test void updateBlock_triggersTraining_whenKurrentSenderPresent() { UUID docId = UUID.randomUUID();