Fix and refactor relation field name collision validation (#15920)
# Introduction Fixes https://github.com/twentyhq/private-issues/issues/371 We weren't strictly validating relation field collision on join column name availability of the target field object ## Refactor Extracted morph or relation specific condition out of the common flat field metadata name validate availability to be located in the dedicated morph or relation flat field validator ## Tests Added two tests, ONE_TO_MANY and MANY_TO_ONE in order to cover the use case
This commit is contained in:
+3
-3
@@ -131,7 +131,7 @@ export class FlatFieldMetadataValidatorService {
|
||||
validationResult.errors.push(
|
||||
...validateFlatFieldMetadataName(flatFieldMetadataToValidate.name),
|
||||
...validateFlatFieldMetadataNameAvailability({
|
||||
flatFieldMetadata: flatFieldMetadataToValidate,
|
||||
name: flatFieldMetadataToValidate.name,
|
||||
flatFieldMetadataMaps: optimisticFlatFieldMetadataMaps,
|
||||
flatObjectMetadata,
|
||||
}),
|
||||
@@ -152,6 +152,7 @@ export class FlatFieldMetadataValidatorService {
|
||||
const fieldMetadataTypeValidationErrors =
|
||||
await this.flatFieldMetadataTypeValidatorService.validateFlatFieldMetadataTypeSpecificities(
|
||||
{
|
||||
updates,
|
||||
optimisticFlatEntityMapsAndRelatedFlatEntityMaps: {
|
||||
flatFieldMetadataMaps: optimisticFlatFieldMetadataMaps,
|
||||
flatObjectMetadataMaps,
|
||||
@@ -313,9 +314,8 @@ export class FlatFieldMetadataValidatorService {
|
||||
|
||||
validationResult.errors.push(
|
||||
...validateFlatFieldMetadataNameAvailability({
|
||||
flatFieldMetadata: flatFieldMetadataToValidate,
|
||||
name: flatFieldMetadataToValidate.name,
|
||||
flatFieldMetadataMaps: optimisticFlatFieldMetadataMaps,
|
||||
remainingFlatEntityMapsToValidate,
|
||||
flatObjectMetadata: parentFlatObjectMetadata,
|
||||
}),
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user