Fix v2 self relation field creation (#15382)

# Introduction
Fixing self relation field creation in v2
- When computing related flat field to delete on object metadata
deletion that has self relation fields
- On self relation creation validation name availability not searching
for the relation target field of the current object field if it's the
field being validated

## Coverage
- added CUD integration testing on self relation fields

close https://github.com/twentyhq/twenty/issues/15153
This commit is contained in:
Paul Rastoin
2025-10-27 16:07:58 +01:00
committed by GitHub
parent c61da3b14a
commit 1bf40d9dca
7 changed files with 1040 additions and 598 deletions
@@ -79,13 +79,17 @@ export const validateFlatFieldMetadataNameAvailability = ({
}
const targetFlatFieldMetadata =
remainingFlatEntityMapsToValidate?.byId[
existingFlatFieldMetadata.relationTargetFieldMetadataId
] ??
findFlatEntityByIdInFlatEntityMapsOrThrow({
flatEntityId: existingFlatFieldMetadata.relationTargetFieldMetadataId,
flatEntityMaps: flatFieldMetadataMaps,
});
flatFieldMetadata.id ===
existingFlatFieldMetadata.relationTargetFieldMetadataId
? flatFieldMetadata
: (remainingFlatEntityMapsToValidate?.byId[
existingFlatFieldMetadata.relationTargetFieldMetadataId
] ??
findFlatEntityByIdInFlatEntityMapsOrThrow({
flatEntityId:
existingFlatFieldMetadata.relationTargetFieldMetadataId,
flatEntityMaps: flatFieldMetadataMaps,
}));
if (!isMorphOrRelationFlatFieldMetadata(targetFlatFieldMetadata)) {
return false;