test(TranscriptionService): verify clear() removes prior mentions before applying DTO

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Marcel
2026-04-29 20:27:26 +02:00
parent b087de84c4
commit fb6bffd7ee

View File

@@ -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();