test(stammbaum): integration tests for relationship constraints
@DataJpaTest + Postgres Testcontainer; 7 cases per Sara blocker 1: - addRelationship_stores_and_is_readable - addRelationship_throws_409_when_duplicate (unique_rel) - addRelationship_throws_409_when_circular_parent - deleteRelationship_throws_403_when_rel_belongs_to_different_person - deleteRelationship_succeeds_for_symmetric_type_from_either_side - setFamilyMember_true_makes_person_appear_in_network - delete_person_cascades_to_relationships Service now uses saveAndFlush so the unique_rel violation surfaces synchronously inside the @Transactional method (otherwise the DataIntegrityViolation fires at commit time, outside the try-catch). Unit-test mocks updated accordingly. Backend suite: 1406/1406 green. Refs #358. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -107,7 +107,9 @@ public class RelationshipService {
|
||||
.build();
|
||||
|
||||
try {
|
||||
return toDTO(relationshipRepository.save(rel));
|
||||
// saveAndFlush so the unique_rel constraint violates synchronously and is
|
||||
// caught here, not at commit time outside the @Transactional boundary.
|
||||
return toDTO(relationshipRepository.saveAndFlush(rel));
|
||||
} catch (DataIntegrityViolationException e) {
|
||||
throw DomainException.conflict(
|
||||
ErrorCode.DUPLICATE_RELATIONSHIP,
|
||||
|
||||
Reference in New Issue
Block a user