feat(transcription): person @mention sidecar + rename propagation (PR-A backend, #362) #366

Merged
marcel merged 40 commits from feat/person-mentions-issue-362-backend into main 2026-04-28 23:54:40 +02:00
Showing only changes of commit bd17532118 - Show all commits

View File

@@ -143,6 +143,28 @@ class PersonMentionPropagationListenerTest {
.containsExactly("Augusta Raddatz");
}
@Test
void noOps_whenPersonIdNoLongerExists_orphanedSidecarGuard() {
UUID orphanId = UUID.randomUUID();
when(personService.existsById(orphanId)).thenReturn(false);
TranscriptionBlock saved = saveBlock(
"Stale reference to @Ghost Name should not be rewritten.",
List.of(new PersonMention(orphanId, "Ghost Name")));
em.clear();
listener.onPersonDisplayNameChanged(
new PersonDisplayNameChangedEvent(orphanId, "Ghost Name", "Resurrected Name"));
blockRepository.flush();
em.clear();
TranscriptionBlock reloaded = blockRepository.findById(saved.getId()).orElseThrow();
assertThat(reloaded.getText()).isEqualTo("Stale reference to @Ghost Name should not be rewritten.");
assertThat(reloaded.getMentionedPersons())
.extracting(PersonMention::getDisplayName)
.containsExactly("Ghost Name");
}
@Test
void leavesUnrelatedBlockUntouched_whenNoSidecarReferencesPerson() {
UUID personId = savedPersonId("Auguste", "Raddatz");