Fix fields widget new field visibility (#21111)

Fixes https://github.com/twentyhq/twenty/issues/21043

## Context
Newly created fields were never added to FIELDS widgets, regardless of
the "Set fields created in the future as visible" toggle. The widget's
newFieldDefaultVisibility was null on widgets that never explicitly set
it (it was never populated at creation), so the backend skipped them and
no view field was created.

## Implementation
Keep newFieldDefaultVisibility nullable with false (not visible) as the
behavior when not provided.
The FE now reflects that properly and shows "un-toggled" when it's null
(iso with BE behavior).

The fix also ensures the value is explicitly set to true wherever it
should be:
- Set newFieldDefaultVisibility: true at every FIELDS widget creation
path (backend default record-page layout, frontend
createDefaultFieldsWidget + useTemporaryFieldsConfiguration);
- Added a 2-9 workspace upgrade command that backfills true onto
existing standard FIELDS widgets where the value is null.
This commit is contained in:
Weiko
2026-06-03 17:29:57 +02:00
committed by GitHub
parent e64e5662e5
commit cc76b7bc50
13 changed files with 2666 additions and 325 deletions

View File

@@ -8,5 +8,6 @@ export const useTemporaryFieldsConfiguration = (): FieldsConfiguration => {
__typename: 'FieldsConfiguration',
configurationType: WidgetConfigurationType.FIELDS,
viewId: null,
newFieldDefaultVisibility: true,
};
};

View File

@@ -30,6 +30,7 @@ export const createDefaultFieldsWidget = ({
__typename: 'FieldsConfiguration',
configurationType: WidgetConfigurationType.FIELDS,
viewId,
newFieldDefaultVisibility: true,
},
gridPosition: {
__typename: 'GridPosition',

View File

@@ -31,7 +31,7 @@ export const useGetNewFieldDefaultVisibility = ({
: null;
const newFieldDefaultVisibility =
fieldsConfiguration?.newFieldDefaultVisibility ?? true;
fieldsConfiguration?.newFieldDefaultVisibility ?? false;
return { newFieldDefaultVisibility, fieldsConfiguration };
};

View File

@@ -2,14 +2,22 @@ import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { WorkspaceIteratorModule } from 'src/database/commands/command-runners/workspace-iterator.module';
import { BackfillFieldsWidgetNewFieldDefaultVisibilityCommand } from 'src/database/commands/upgrade-version-command/2-9/2-9-workspace-command-1799000030000-backfill-fields-widget-new-field-default-visibility.command';
import { MigrateAiModelPreferencesCommand } from 'src/database/commands/upgrade-version-command/2-9/2-9-workspace-command-1799000000000-migrate-ai-model-preferences.command';
import { KeyValuePairEntity } from 'src/engine/core-modules/key-value-pair/key-value-pair.entity';
import { WorkspaceCacheModule } from 'src/engine/workspace-cache/workspace-cache.module';
import { WorkspaceMigrationModule } from 'src/engine/workspace-manager/workspace-migration/workspace-migration.module';
@Module({
imports: [
TypeOrmModule.forFeature([KeyValuePairEntity]),
WorkspaceCacheModule,
WorkspaceIteratorModule,
WorkspaceMigrationModule,
],
providers: [
MigrateAiModelPreferencesCommand,
BackfillFieldsWidgetNewFieldDefaultVisibilityCommand,
],
providers: [MigrateAiModelPreferencesCommand],
})
export class V2_9_UpgradeVersionCommandModule {}

View File

@@ -0,0 +1,134 @@
import { Command } from 'nest-commander';
import { isDefined } from 'twenty-shared/utils';
import { ActiveOrSuspendedWorkspaceCommandRunner } from 'src/database/commands/command-runners/active-or-suspended-workspace.command-runner';
import { WorkspaceIteratorService } from 'src/database/commands/command-runners/workspace-iterator.service';
import { type RunOnWorkspaceArgs } from 'src/database/commands/command-runners/workspace.command-runner';
import { RegisteredWorkspaceCommand } from 'src/engine/core-modules/upgrade/decorators/registered-workspace-command.decorator';
import { type FlatPageLayoutWidget } from 'src/engine/metadata-modules/flat-page-layout-widget/types/flat-page-layout-widget.type';
import { isFlatPageLayoutWidgetConfigurationOfType } from 'src/engine/metadata-modules/flat-page-layout-widget/utils/is-flat-page-layout-widget-configuration-of-type.util';
import { WidgetConfigurationType } from 'src/engine/metadata-modules/page-layout-widget/enums/widget-configuration-type.type';
import { WorkspaceCacheService } from 'src/engine/workspace-cache/services/workspace-cache.service';
import { WorkspaceMigrationValidateBuildAndRunService } from 'src/engine/workspace-manager/workspace-migration/services/workspace-migration-validate-build-and-run-service';
@RegisteredWorkspaceCommand('2.9.0', 1799000030000)
@Command({
name: 'upgrade:2-9:backfill-fields-widget-new-field-default-visibility',
description:
'Backfill newFieldDefaultVisibility to true on FIELDS page layout widgets where it is null',
})
export class BackfillFieldsWidgetNewFieldDefaultVisibilityCommand extends ActiveOrSuspendedWorkspaceCommandRunner {
constructor(
protected readonly workspaceIteratorService: WorkspaceIteratorService,
private readonly workspaceCacheService: WorkspaceCacheService,
private readonly workspaceMigrationValidateBuildAndRunService: WorkspaceMigrationValidateBuildAndRunService,
) {
super(workspaceIteratorService);
}
override async runOnWorkspace({
workspaceId,
options,
}: RunOnWorkspaceArgs): Promise<void> {
const isDryRun = options.dryRun ?? false;
const { flatPageLayoutWidgetMaps } =
await this.workspaceCacheService.getOrRecompute(workspaceId, [
'flatPageLayoutWidgetMaps',
]);
const widgetsToBackfill = Object.values(
flatPageLayoutWidgetMaps.byUniversalIdentifier,
)
.filter(isDefined)
.filter(
(
widget,
): widget is FlatPageLayoutWidget<WidgetConfigurationType.FIELDS> =>
isFlatPageLayoutWidgetConfigurationOfType(
widget,
WidgetConfigurationType.FIELDS,
) && !isDefined(widget.configuration.newFieldDefaultVisibility),
);
if (widgetsToBackfill.length === 0) {
this.logger.log(
`No FIELDS widgets to backfill in workspace ${workspaceId}`,
);
return;
}
if (isDryRun) {
this.logger.log(
`[DRY RUN] Would backfill ${widgetsToBackfill.length} FIELDS widget(s) in workspace ${workspaceId}`,
);
return;
}
const widgetsToBackfillByApplicationUniversalIdentifier = new Map<
string,
FlatPageLayoutWidget[]
>();
for (const widget of widgetsToBackfill) {
const updatedWidget: FlatPageLayoutWidget = {
...widget,
configuration: {
...widget.configuration,
newFieldDefaultVisibility: true,
},
universalConfiguration: isDefined(widget.universalConfiguration)
? {
...widget.universalConfiguration,
newFieldDefaultVisibility: true,
}
: widget.universalConfiguration,
};
const existingWidgets =
widgetsToBackfillByApplicationUniversalIdentifier.get(
widget.applicationUniversalIdentifier,
) ?? [];
widgetsToBackfillByApplicationUniversalIdentifier.set(
widget.applicationUniversalIdentifier,
[...existingWidgets, updatedWidget],
);
}
for (const [
applicationUniversalIdentifier,
updatedWidgets,
] of widgetsToBackfillByApplicationUniversalIdentifier) {
const result =
await this.workspaceMigrationValidateBuildAndRunService.validateBuildAndRunWorkspaceMigration(
{
allFlatEntityOperationByMetadataName: {
pageLayoutWidget: {
flatEntityToCreate: [],
flatEntityToDelete: [],
flatEntityToUpdate: updatedWidgets,
},
},
workspaceId,
applicationUniversalIdentifier,
},
);
if (result.status === 'fail') {
this.logger.error(
`Failed to backfill FIELDS widgets for application ${applicationUniversalIdentifier} in workspace ${workspaceId}:\n${JSON.stringify(result, null, 2)}`,
);
throw new Error(
`Failed to backfill FIELDS widgets for workspace ${workspaceId}`,
);
}
this.logger.log(
`Backfilled ${updatedWidgets.length} FIELDS widget(s) for application ${applicationUniversalIdentifier} in workspace ${workspaceId}`,
);
}
}
}

View File

@@ -40,6 +40,25 @@ export const validateFieldsFlatPageLayoutWidgetForCreation = (
return errors;
}
const newFieldDefaultVisibility = (
universalConfiguration as {
configurationType: string;
newFieldDefaultVisibility?: unknown;
}
).newFieldDefaultVisibility;
if (
isDefined(newFieldDefaultVisibility) &&
typeof newFieldDefaultVisibility !== 'boolean'
) {
errors.push({
code: PageLayoutWidgetExceptionCode.INVALID_PAGE_LAYOUT_WIDGET_DATA,
message: t`Invalid newFieldDefaultVisibility for fields widget "${widgetTitle}". Expected a boolean`,
userFriendlyMessage: msg`Invalid newFieldDefaultVisibility for fields widget`,
value: newFieldDefaultVisibility,
});
}
const viewUniversalIdentifier = (
universalConfiguration as {
configurationType: string;

View File

@@ -78,6 +78,7 @@ export const computeFlatDefaultRecordPageLayoutToCreate = ({
? {
configurationType: WidgetConfigurationType.FIELDS,
viewId: recordPageFieldsView.id,
newFieldDefaultVisibility: true,
}
: {
configurationType:
@@ -90,6 +91,7 @@ export const computeFlatDefaultRecordPageLayoutToCreate = ({
? {
configurationType: WidgetConfigurationType.FIELDS,
viewUniversalIdentifier: recordPageFieldsView.universalIdentifier,
newFieldDefaultVisibility: true,
}
: {
configurationType:

View File

@@ -1,4 +1,4 @@
// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`createOne FieldMetadataService name/label sync should return an error when name and label are not synced but isLabelSyncedWithName is true 1`] = `
{
@@ -25,13 +25,33 @@ exports[`createOne FieldMetadataService name/label sync should return an error w
"type": "create",
},
],
"viewField": [
{
"errors": [
{
"code": "INVALID_VIEW_DATA",
"message": "Field metadata not found",
"userFriendlyMessage": "Field metadata not found",
},
],
"flatEntityMinimalInformation": {
"fieldMetadataUniversalIdentifier": Any<String>,
"universalIdentifier": Any<String>,
"viewUniversalIdentifier": Any<String>,
},
"metadataName": "viewField",
"status": "fail",
"type": "create",
},
],
},
"message": "Validation failed for 1 fieldMetadata",
"message": "Validation failed for 1 fieldMetadata, 1 viewField",
"summary": {
"fieldMetadata": 1,
"totalErrors": 1,
"totalErrors": 2,
"viewField": 1,
},
"userFriendlyMessage": "Field name is not synced with field label",
"userFriendlyMessage": "Many validation errors",
},
"message": "Multiple validation errors occurred while creating fields",
"name": "GraphQLError",

View File

@@ -1,4 +1,4 @@
// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`Failing create field metadata tests suite should fail to create NUMERIC field type via API 1`] = `
[
@@ -26,13 +26,33 @@ exports[`Failing create field metadata tests suite should fail to create NUMERIC
"type": "create",
},
],
"viewField": [
{
"errors": [
{
"code": "INVALID_VIEW_DATA",
"message": "Field metadata not found",
"userFriendlyMessage": "Field metadata not found",
},
],
"flatEntityMinimalInformation": {
"fieldMetadataUniversalIdentifier": Any<String>,
"universalIdentifier": Any<String>,
"viewUniversalIdentifier": Any<String>,
},
"metadataName": "viewField",
"status": "fail",
"type": "create",
},
],
},
"message": "Validation failed for 1 fieldMetadata",
"message": "Validation failed for 1 fieldMetadata, 1 viewField",
"summary": {
"fieldMetadata": 1,
"totalErrors": 1,
"totalErrors": 2,
"viewField": 1,
},
"userFriendlyMessage": "Field type NUMERIC is not supported. Use Number instead.",
"userFriendlyMessage": "Many validation errors",
},
"message": "Multiple validation errors occurred while creating fields",
"name": "GraphQLError",
@@ -72,13 +92,33 @@ exports[`Failing create field metadata tests suite should fail to create POSITIO
"type": "create",
},
],
"viewField": [
{
"errors": [
{
"code": "INVALID_VIEW_DATA",
"message": "Field metadata not found",
"userFriendlyMessage": "Field metadata not found",
},
],
"flatEntityMinimalInformation": {
"fieldMetadataUniversalIdentifier": Any<String>,
"universalIdentifier": Any<String>,
"viewUniversalIdentifier": Any<String>,
},
"metadataName": "viewField",
"status": "fail",
"type": "create",
},
],
},
"message": "Validation failed for 1 fieldMetadata",
"message": "Validation failed for 1 fieldMetadata, 1 viewField",
"summary": {
"fieldMetadata": 1,
"totalErrors": 1,
"totalErrors": 2,
"viewField": 1,
},
"userFriendlyMessage": "Field type POSITION must be named "position"",
"userFriendlyMessage": "Many validation errors",
},
"message": "Multiple validation errors occurred while creating fields",
"name": "GraphQLError",

View File

@@ -1,4 +1,4 @@
// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`createOne FILES field metadata - failing should fail to create files field with isUnique = true 1`] = `
{
@@ -42,12 +42,32 @@ exports[`createOne FILES field metadata - failing should fail to create files fi
"type": "create",
},
],
"viewField": [
{
"errors": [
{
"code": "INVALID_VIEW_DATA",
"message": "Field metadata not found",
"userFriendlyMessage": "Field metadata not found",
},
],
"flatEntityMinimalInformation": {
"fieldMetadataUniversalIdentifier": Any<String>,
"universalIdentifier": Any<String>,
"viewUniversalIdentifier": Any<String>,
},
"metadataName": "viewField",
"status": "fail",
"type": "create",
},
],
},
"message": "Validation failed for 1 fieldMetadata, 1 index",
"message": "Validation failed for 1 fieldMetadata, 1 viewField, 1 index",
"summary": {
"fieldMetadata": 1,
"index": 1,
"totalErrors": 2,
"totalErrors": 3,
"viewField": 1,
},
"userFriendlyMessage": "Many validation errors",
},
@@ -80,13 +100,33 @@ exports[`createOne FILES field metadata - failing should fail to create files fi
"type": "create",
},
],
"viewField": [
{
"errors": [
{
"code": "INVALID_VIEW_DATA",
"message": "Field metadata not found",
"userFriendlyMessage": "Field metadata not found",
},
],
"flatEntityMinimalInformation": {
"fieldMetadataUniversalIdentifier": Any<String>,
"universalIdentifier": Any<String>,
"viewUniversalIdentifier": Any<String>,
},
"metadataName": "viewField",
"status": "fail",
"type": "create",
},
],
},
"message": "Validation failed for 1 fieldMetadata",
"message": "Validation failed for 1 fieldMetadata, 1 viewField",
"summary": {
"fieldMetadata": 1,
"totalErrors": 1,
"totalErrors": 2,
"viewField": 1,
},
"userFriendlyMessage": "maxNumberOfValues must be defined in settings and be a number greater than 0 and less than or equal to 60",
"userFriendlyMessage": "Many validation errors",
},
"message": "Multiple validation errors occurred while creating fields",
"name": "GraphQLError",
@@ -117,13 +157,33 @@ exports[`createOne FILES field metadata - failing should fail to create files fi
"type": "create",
},
],
"viewField": [
{
"errors": [
{
"code": "INVALID_VIEW_DATA",
"message": "Field metadata not found",
"userFriendlyMessage": "Field metadata not found",
},
],
"flatEntityMinimalInformation": {
"fieldMetadataUniversalIdentifier": Any<String>,
"universalIdentifier": Any<String>,
"viewUniversalIdentifier": Any<String>,
},
"metadataName": "viewField",
"status": "fail",
"type": "create",
},
],
},
"message": "Validation failed for 1 fieldMetadata",
"message": "Validation failed for 1 fieldMetadata, 1 viewField",
"summary": {
"fieldMetadata": 1,
"totalErrors": 1,
"totalErrors": 2,
"viewField": 1,
},
"userFriendlyMessage": "maxNumberOfValues must be defined in settings and be a number greater than 0 and less than or equal to 60",
"userFriendlyMessage": "Many validation errors",
},
"message": "Multiple validation errors occurred while creating fields",
"name": "GraphQLError",
@@ -154,13 +214,33 @@ exports[`createOne FILES field metadata - failing should fail to create files fi
"type": "create",
},
],
"viewField": [
{
"errors": [
{
"code": "INVALID_VIEW_DATA",
"message": "Field metadata not found",
"userFriendlyMessage": "Field metadata not found",
},
],
"flatEntityMinimalInformation": {
"fieldMetadataUniversalIdentifier": Any<String>,
"universalIdentifier": Any<String>,
"viewUniversalIdentifier": Any<String>,
},
"metadataName": "viewField",
"status": "fail",
"type": "create",
},
],
},
"message": "Validation failed for 1 fieldMetadata",
"message": "Validation failed for 1 fieldMetadata, 1 viewField",
"summary": {
"fieldMetadata": 1,
"totalErrors": 1,
"totalErrors": 2,
"viewField": 1,
},
"userFriendlyMessage": "maxNumberOfValues must be defined in settings and be a number greater than 0 and less than or equal to 60",
"userFriendlyMessage": "Many validation errors",
},
"message": "Multiple validation errors occurred while creating fields",
"name": "GraphQLError",

View File

@@ -1,4 +1,4 @@
// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`failing createOne FieldMetadataService morph relation fields v2 Morph relation collision tests suite it should fail to create a already existing morph relation with same field 1`] = `
{
@@ -77,12 +77,49 @@ exports[`failing createOne FieldMetadataService morph relation fields v2 Morph r
"type": "create",
},
],
"viewField": [
{
"errors": [
{
"code": "INVALID_VIEW_DATA",
"message": "Field metadata not found",
"userFriendlyMessage": "Field metadata not found",
},
],
"flatEntityMinimalInformation": {
"fieldMetadataUniversalIdentifier": Any<String>,
"universalIdentifier": Any<String>,
"viewUniversalIdentifier": Any<String>,
},
"metadataName": "viewField",
"status": "fail",
"type": "create",
},
{
"errors": [
{
"code": "INVALID_VIEW_DATA",
"message": "Field metadata not found",
"userFriendlyMessage": "Field metadata not found",
},
],
"flatEntityMinimalInformation": {
"fieldMetadataUniversalIdentifier": Any<String>,
"universalIdentifier": Any<String>,
"viewUniversalIdentifier": Any<String>,
},
"metadataName": "viewField",
"status": "fail",
"type": "create",
},
],
},
"message": "Validation failed for 2 fieldMetadata, 2 indices",
"message": "Validation failed for 2 fieldMetadata, 2 viewFields, 2 indices",
"summary": {
"fieldMetadata": 2,
"index": 2,
"totalErrors": 4,
"totalErrors": 6,
"viewField": 2,
},
"userFriendlyMessage": "Many validation errors",
},
@@ -116,13 +153,33 @@ exports[`failing createOne FieldMetadataService morph relation fields v2 Morph r
"type": "create",
},
],
"viewField": [
{
"errors": [
{
"code": "INVALID_VIEW_DATA",
"message": "Field metadata not found",
"userFriendlyMessage": "Field metadata not found",
},
],
"flatEntityMinimalInformation": {
"fieldMetadataUniversalIdentifier": Any<String>,
"universalIdentifier": Any<String>,
"viewUniversalIdentifier": Any<String>,
},
"metadataName": "viewField",
"status": "fail",
"type": "create",
},
],
},
"message": "Validation failed for 1 fieldMetadata",
"message": "Validation failed for 1 fieldMetadata, 1 viewField",
"summary": {
"fieldMetadata": 1,
"totalErrors": 1,
"totalErrors": 2,
"viewField": 1,
},
"userFriendlyMessage": "Name "fieldNamePersonForMorphRelationSecondId" is not available as it is already used by join column name",
"userFriendlyMessage": "Many validation errors",
},
"message": "Multiple validation errors occurred while creating fields",
"name": "GraphQLError",
@@ -188,12 +245,49 @@ exports[`failing createOne FieldMetadataService morph relation fields v2 it shou
"type": "create",
},
],
"viewField": [
{
"errors": [
{
"code": "INVALID_VIEW_DATA",
"message": "Field metadata not found",
"userFriendlyMessage": "Field metadata not found",
},
],
"flatEntityMinimalInformation": {
"fieldMetadataUniversalIdentifier": Any<String>,
"universalIdentifier": Any<String>,
"viewUniversalIdentifier": Any<String>,
},
"metadataName": "viewField",
"status": "fail",
"type": "create",
},
{
"errors": [
{
"code": "INVALID_VIEW_DATA",
"message": "Field metadata not found",
"userFriendlyMessage": "Field metadata not found",
},
],
"flatEntityMinimalInformation": {
"fieldMetadataUniversalIdentifier": Any<String>,
"universalIdentifier": Any<String>,
"viewUniversalIdentifier": Any<String>,
},
"metadataName": "viewField",
"status": "fail",
"type": "create",
},
],
},
"message": "Validation failed for 2 fieldMetadata, 1 index",
"message": "Validation failed for 2 fieldMetadata, 2 viewFields, 1 index",
"summary": {
"fieldMetadata": 2,
"index": 1,
"totalErrors": 3,
"totalErrors": 5,
"viewField": 2,
},
"userFriendlyMessage": "Many validation errors",
},
@@ -285,12 +379,32 @@ exports[`failing createOne FieldMetadataService morph relation fields v2 it shou
"type": "create",
},
],
"viewField": [
{
"errors": [
{
"code": "INVALID_VIEW_DATA",
"message": "Field metadata not found",
"userFriendlyMessage": "Field metadata not found",
},
],
"flatEntityMinimalInformation": {
"fieldMetadataUniversalIdentifier": Any<String>,
"universalIdentifier": Any<String>,
"viewUniversalIdentifier": Any<String>,
},
"metadataName": "viewField",
"status": "fail",
"type": "create",
},
],
},
"message": "Validation failed for 1 fieldMetadata, 1 index",
"message": "Validation failed for 1 fieldMetadata, 1 viewField, 1 index",
"summary": {
"fieldMetadata": 1,
"index": 1,
"totalErrors": 2,
"totalErrors": 3,
"viewField": 1,
},
"userFriendlyMessage": "Many validation errors",
},
@@ -342,12 +456,32 @@ exports[`failing createOne FieldMetadataService morph relation fields v2 it shou
"type": "create",
},
],
"viewField": [
{
"errors": [
{
"code": "INVALID_VIEW_DATA",
"message": "Field metadata not found",
"userFriendlyMessage": "Field metadata not found",
},
],
"flatEntityMinimalInformation": {
"fieldMetadataUniversalIdentifier": Any<String>,
"universalIdentifier": Any<String>,
"viewUniversalIdentifier": Any<String>,
},
"metadataName": "viewField",
"status": "fail",
"type": "create",
},
],
},
"message": "Validation failed for 1 fieldMetadata, 1 index",
"message": "Validation failed for 1 fieldMetadata, 1 viewField, 1 index",
"summary": {
"fieldMetadata": 1,
"index": 1,
"totalErrors": 2,
"totalErrors": 3,
"viewField": 1,
},
"userFriendlyMessage": "Many validation errors",
},
@@ -399,12 +533,32 @@ exports[`failing createOne FieldMetadataService morph relation fields v2 it shou
"type": "create",
},
],
"viewField": [
{
"errors": [
{
"code": "INVALID_VIEW_DATA",
"message": "Field metadata not found",
"userFriendlyMessage": "Field metadata not found",
},
],
"flatEntityMinimalInformation": {
"fieldMetadataUniversalIdentifier": Any<String>,
"universalIdentifier": Any<String>,
"viewUniversalIdentifier": Any<String>,
},
"metadataName": "viewField",
"status": "fail",
"type": "create",
},
],
},
"message": "Validation failed for 1 fieldMetadata, 1 index",
"message": "Validation failed for 1 fieldMetadata, 1 viewField, 1 index",
"summary": {
"fieldMetadata": 1,
"index": 1,
"totalErrors": 2,
"totalErrors": 3,
"viewField": 1,
},
"userFriendlyMessage": "Many validation errors",
},
@@ -462,12 +616,32 @@ exports[`failing createOne FieldMetadataService morph relation fields v2 it shou
"type": "create",
},
],
"viewField": [
{
"errors": [
{
"code": "INVALID_VIEW_DATA",
"message": "Field metadata not found",
"userFriendlyMessage": "Field metadata not found",
},
],
"flatEntityMinimalInformation": {
"fieldMetadataUniversalIdentifier": Any<String>,
"universalIdentifier": Any<String>,
"viewUniversalIdentifier": Any<String>,
},
"metadataName": "viewField",
"status": "fail",
"type": "create",
},
],
},
"message": "Validation failed for 1 fieldMetadata, 1 index",
"message": "Validation failed for 1 fieldMetadata, 1 viewField, 1 index",
"summary": {
"fieldMetadata": 1,
"index": 1,
"totalErrors": 2,
"totalErrors": 3,
"viewField": 1,
},
"userFriendlyMessage": "Many validation errors",
},

View File

@@ -1,4 +1,4 @@
// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`Field metadata relation creation should fail relation MANY_TO_ONE (relationCreationPayload) when targetFieldLabel conflicts with an existing {name}Id on target object metadata id 1`] = `
{
@@ -25,13 +25,33 @@ exports[`Field metadata relation creation should fail relation MANY_TO_ONE (rela
"type": "create",
},
],
"viewField": [
{
"errors": [
{
"code": "INVALID_VIEW_DATA",
"message": "Field metadata not found",
"userFriendlyMessage": "Field metadata not found",
},
],
"flatEntityMinimalInformation": {
"fieldMetadataUniversalIdentifier": Any<String>,
"universalIdentifier": Any<String>,
"viewUniversalIdentifier": Any<String>,
},
"metadataName": "viewField",
"status": "fail",
"type": "create",
},
],
},
"message": "Validation failed for 1 fieldMetadata",
"message": "Validation failed for 1 fieldMetadata, 1 viewField",
"summary": {
"fieldMetadata": 1,
"totalErrors": 1,
"totalErrors": 2,
"viewField": 1,
},
"userFriendlyMessage": "Name "fieldNameBisId" is not available as it is already used by another field",
"userFriendlyMessage": "Many validation errors",
},
"message": "Multiple validation errors occurred while creating fields",
"name": "GraphQLError",
@@ -63,13 +83,33 @@ exports[`Field metadata relation creation should fail relation MANY_TO_ONE (rela
"type": "create",
},
],
"viewField": [
{
"errors": [
{
"code": "INVALID_VIEW_DATA",
"message": "Field metadata not found",
"userFriendlyMessage": "Field metadata not found",
},
],
"flatEntityMinimalInformation": {
"fieldMetadataUniversalIdentifier": Any<String>,
"universalIdentifier": Any<String>,
"viewUniversalIdentifier": Any<String>,
},
"metadataName": "viewField",
"status": "fail",
"type": "create",
},
],
},
"message": "Validation failed for 1 fieldMetadata",
"message": "Validation failed for 1 fieldMetadata, 1 viewField",
"summary": {
"fieldMetadata": 1,
"totalErrors": 1,
"totalErrors": 2,
"viewField": 1,
},
"userFriendlyMessage": "Name "fieldName" is not available as it is already used by another field",
"userFriendlyMessage": "Many validation errors",
},
"message": "Multiple validation errors occurred while creating fields",
"name": "GraphQLError",
@@ -107,13 +147,33 @@ exports[`Field metadata relation creation should fail relation MANY_TO_ONE (rela
"type": "create",
},
],
"viewField": [
{
"errors": [
{
"code": "INVALID_VIEW_DATA",
"message": "Field metadata not found",
"userFriendlyMessage": "Field metadata not found",
},
],
"flatEntityMinimalInformation": {
"fieldMetadataUniversalIdentifier": Any<String>,
"universalIdentifier": Any<String>,
"viewUniversalIdentifier": Any<String>,
},
"metadataName": "viewField",
"status": "fail",
"type": "create",
},
],
},
"message": "Validation failed for 1 fieldMetadata",
"message": "Validation failed for 1 fieldMetadata, 1 viewField",
"summary": {
"fieldMetadata": 1,
"totalErrors": 1,
"totalErrors": 2,
"viewField": 1,
},
"userFriendlyMessage": "Name is too short",
"userFriendlyMessage": "Many validation errors",
},
"message": "Multiple validation errors occurred while creating fields",
"name": "GraphQLError",
@@ -145,13 +205,33 @@ exports[`Field metadata relation creation should fail relation MANY_TO_ONE (rela
"type": "create",
},
],
"viewField": [
{
"errors": [
{
"code": "INVALID_VIEW_DATA",
"message": "Field metadata not found",
"userFriendlyMessage": "Field metadata not found",
},
],
"flatEntityMinimalInformation": {
"fieldMetadataUniversalIdentifier": Any<String>,
"universalIdentifier": Any<String>,
"viewUniversalIdentifier": Any<String>,
},
"metadataName": "viewField",
"status": "fail",
"type": "create",
},
],
},
"message": "Validation failed for 1 fieldMetadata",
"message": "Validation failed for 1 fieldMetadata, 1 viewField",
"summary": {
"fieldMetadata": 1,
"totalErrors": 1,
"totalErrors": 2,
"viewField": 1,
},
"userFriendlyMessage": "Name is too long",
"userFriendlyMessage": "Many validation errors",
},
"message": "Multiple validation errors occurred while creating fields",
"name": "GraphQLError",
@@ -189,13 +269,33 @@ exports[`Field metadata relation creation should fail relation MANY_TO_ONE (rela
"type": "create",
},
],
"viewField": [
{
"errors": [
{
"code": "INVALID_VIEW_DATA",
"message": "Field metadata not found",
"userFriendlyMessage": "Field metadata not found",
},
],
"flatEntityMinimalInformation": {
"fieldMetadataUniversalIdentifier": Any<String>,
"universalIdentifier": Any<String>,
"viewUniversalIdentifier": Any<String>,
},
"metadataName": "viewField",
"status": "fail",
"type": "create",
},
],
},
"message": "Validation failed for 1 fieldMetadata",
"message": "Validation failed for 1 fieldMetadata, 1 viewField",
"summary": {
"fieldMetadata": 1,
"totalErrors": 1,
"totalErrors": 2,
"viewField": 1,
},
"userFriendlyMessage": "Name is too short",
"userFriendlyMessage": "Many validation errors",
},
"message": "Multiple validation errors occurred while creating fields",
"name": "GraphQLError",
@@ -421,12 +521,49 @@ exports[`Field metadata relation creation should fail relation MANY_TO_ONE when
"type": "create",
},
],
"viewField": [
{
"errors": [
{
"code": "INVALID_VIEW_DATA",
"message": "Field metadata not found",
"userFriendlyMessage": "Field metadata not found",
},
],
"flatEntityMinimalInformation": {
"fieldMetadataUniversalIdentifier": Any<String>,
"universalIdentifier": Any<String>,
"viewUniversalIdentifier": Any<String>,
},
"metadataName": "viewField",
"status": "fail",
"type": "create",
},
{
"errors": [
{
"code": "INVALID_VIEW_DATA",
"message": "Field metadata not found",
"userFriendlyMessage": "Field metadata not found",
},
],
"flatEntityMinimalInformation": {
"fieldMetadataUniversalIdentifier": Any<String>,
"universalIdentifier": Any<String>,
"viewUniversalIdentifier": Any<String>,
},
"metadataName": "viewField",
"status": "fail",
"type": "create",
},
],
},
"message": "Validation failed for 2 fieldMetadata, 1 index",
"message": "Validation failed for 2 fieldMetadata, 2 viewFields, 1 index",
"summary": {
"fieldMetadata": 2,
"index": 1,
"totalErrors": 3,
"totalErrors": 5,
"viewField": 2,
},
"userFriendlyMessage": "Many validation errors",
},
@@ -575,12 +712,49 @@ exports[`Field metadata relation creation should fail relation MANY_TO_ONE when
"type": "create",
},
],
"viewField": [
{
"errors": [
{
"code": "INVALID_VIEW_DATA",
"message": "Field metadata not found",
"userFriendlyMessage": "Field metadata not found",
},
],
"flatEntityMinimalInformation": {
"fieldMetadataUniversalIdentifier": Any<String>,
"universalIdentifier": Any<String>,
"viewUniversalIdentifier": Any<String>,
},
"metadataName": "viewField",
"status": "fail",
"type": "create",
},
{
"errors": [
{
"code": "INVALID_VIEW_DATA",
"message": "Field metadata not found",
"userFriendlyMessage": "Field metadata not found",
},
],
"flatEntityMinimalInformation": {
"fieldMetadataUniversalIdentifier": Any<String>,
"universalIdentifier": Any<String>,
"viewUniversalIdentifier": Any<String>,
},
"metadataName": "viewField",
"status": "fail",
"type": "create",
},
],
},
"message": "Validation failed for 2 fieldMetadata, 1 index",
"message": "Validation failed for 2 fieldMetadata, 2 viewFields, 1 index",
"summary": {
"fieldMetadata": 2,
"index": 1,
"totalErrors": 3,
"totalErrors": 5,
"viewField": 2,
},
"userFriendlyMessage": "Many validation errors",
},
@@ -673,12 +847,32 @@ exports[`Field metadata relation creation should fail relation ONE_TO_MANY (rela
"type": "create",
},
],
"viewField": [
{
"errors": [
{
"code": "INVALID_VIEW_DATA",
"message": "Field metadata not found",
"userFriendlyMessage": "Field metadata not found",
},
],
"flatEntityMinimalInformation": {
"fieldMetadataUniversalIdentifier": Any<String>,
"universalIdentifier": Any<String>,
"viewUniversalIdentifier": Any<String>,
},
"metadataName": "viewField",
"status": "fail",
"type": "create",
},
],
},
"message": "Validation failed for 1 fieldMetadata, 1 index",
"message": "Validation failed for 1 fieldMetadata, 1 viewField, 1 index",
"summary": {
"fieldMetadata": 1,
"index": 1,
"totalErrors": 2,
"totalErrors": 3,
"viewField": 1,
},
"userFriendlyMessage": "Many validation errors",
},
@@ -732,12 +926,32 @@ exports[`Field metadata relation creation should fail relation ONE_TO_MANY (rela
"type": "create",
},
],
"viewField": [
{
"errors": [
{
"code": "INVALID_VIEW_DATA",
"message": "Field metadata not found",
"userFriendlyMessage": "Field metadata not found",
},
],
"flatEntityMinimalInformation": {
"fieldMetadataUniversalIdentifier": Any<String>,
"universalIdentifier": Any<String>,
"viewUniversalIdentifier": Any<String>,
},
"metadataName": "viewField",
"status": "fail",
"type": "create",
},
],
},
"message": "Validation failed for 1 fieldMetadata, 1 index",
"message": "Validation failed for 1 fieldMetadata, 1 viewField, 1 index",
"summary": {
"fieldMetadata": 1,
"index": 1,
"totalErrors": 2,
"totalErrors": 3,
"viewField": 1,
},
"userFriendlyMessage": "Many validation errors",
},
@@ -797,12 +1011,32 @@ exports[`Field metadata relation creation should fail relation ONE_TO_MANY (rela
"type": "create",
},
],
"viewField": [
{
"errors": [
{
"code": "INVALID_VIEW_DATA",
"message": "Field metadata not found",
"userFriendlyMessage": "Field metadata not found",
},
],
"flatEntityMinimalInformation": {
"fieldMetadataUniversalIdentifier": Any<String>,
"universalIdentifier": Any<String>,
"viewUniversalIdentifier": Any<String>,
},
"metadataName": "viewField",
"status": "fail",
"type": "create",
},
],
},
"message": "Validation failed for 1 fieldMetadata, 1 index",
"message": "Validation failed for 1 fieldMetadata, 1 viewField, 1 index",
"summary": {
"fieldMetadata": 1,
"index": 1,
"totalErrors": 2,
"totalErrors": 3,
"viewField": 1,
},
"userFriendlyMessage": "Many validation errors",
},
@@ -856,12 +1090,32 @@ exports[`Field metadata relation creation should fail relation ONE_TO_MANY (rela
"type": "create",
},
],
"viewField": [
{
"errors": [
{
"code": "INVALID_VIEW_DATA",
"message": "Field metadata not found",
"userFriendlyMessage": "Field metadata not found",
},
],
"flatEntityMinimalInformation": {
"fieldMetadataUniversalIdentifier": Any<String>,
"universalIdentifier": Any<String>,
"viewUniversalIdentifier": Any<String>,
},
"metadataName": "viewField",
"status": "fail",
"type": "create",
},
],
},
"message": "Validation failed for 1 fieldMetadata, 1 index",
"message": "Validation failed for 1 fieldMetadata, 1 viewField, 1 index",
"summary": {
"fieldMetadata": 1,
"index": 1,
"totalErrors": 2,
"totalErrors": 3,
"viewField": 1,
},
"userFriendlyMessage": "Many validation errors",
},
@@ -921,12 +1175,32 @@ exports[`Field metadata relation creation should fail relation ONE_TO_MANY (rela
"type": "create",
},
],
"viewField": [
{
"errors": [
{
"code": "INVALID_VIEW_DATA",
"message": "Field metadata not found",
"userFriendlyMessage": "Field metadata not found",
},
],
"flatEntityMinimalInformation": {
"fieldMetadataUniversalIdentifier": Any<String>,
"universalIdentifier": Any<String>,
"viewUniversalIdentifier": Any<String>,
},
"metadataName": "viewField",
"status": "fail",
"type": "create",
},
],
},
"message": "Validation failed for 1 fieldMetadata, 1 index",
"message": "Validation failed for 1 fieldMetadata, 1 viewField, 1 index",
"summary": {
"fieldMetadata": 1,
"index": 1,
"totalErrors": 2,
"totalErrors": 3,
"viewField": 1,
},
"userFriendlyMessage": "Many validation errors",
},
@@ -1164,12 +1438,49 @@ exports[`Field metadata relation creation should fail relation ONE_TO_MANY when
"type": "create",
},
],
"viewField": [
{
"errors": [
{
"code": "INVALID_VIEW_DATA",
"message": "Field metadata not found",
"userFriendlyMessage": "Field metadata not found",
},
],
"flatEntityMinimalInformation": {
"fieldMetadataUniversalIdentifier": Any<String>,
"universalIdentifier": Any<String>,
"viewUniversalIdentifier": Any<String>,
},
"metadataName": "viewField",
"status": "fail",
"type": "create",
},
{
"errors": [
{
"code": "INVALID_VIEW_DATA",
"message": "Field metadata not found",
"userFriendlyMessage": "Field metadata not found",
},
],
"flatEntityMinimalInformation": {
"fieldMetadataUniversalIdentifier": Any<String>,
"universalIdentifier": Any<String>,
"viewUniversalIdentifier": Any<String>,
},
"metadataName": "viewField",
"status": "fail",
"type": "create",
},
],
},
"message": "Validation failed for 2 fieldMetadata, 1 index",
"message": "Validation failed for 2 fieldMetadata, 2 viewFields, 1 index",
"summary": {
"fieldMetadata": 2,
"index": 1,
"totalErrors": 3,
"totalErrors": 5,
"viewField": 2,
},
"userFriendlyMessage": "Many validation errors",
},
@@ -1324,12 +1635,49 @@ exports[`Field metadata relation creation should fail relation ONE_TO_MANY when
"type": "create",
},
],
"viewField": [
{
"errors": [
{
"code": "INVALID_VIEW_DATA",
"message": "Field metadata not found",
"userFriendlyMessage": "Field metadata not found",
},
],
"flatEntityMinimalInformation": {
"fieldMetadataUniversalIdentifier": Any<String>,
"universalIdentifier": Any<String>,
"viewUniversalIdentifier": Any<String>,
},
"metadataName": "viewField",
"status": "fail",
"type": "create",
},
{
"errors": [
{
"code": "INVALID_VIEW_DATA",
"message": "Field metadata not found",
"userFriendlyMessage": "Field metadata not found",
},
],
"flatEntityMinimalInformation": {
"fieldMetadataUniversalIdentifier": Any<String>,
"universalIdentifier": Any<String>,
"viewUniversalIdentifier": Any<String>,
},
"metadataName": "viewField",
"status": "fail",
"type": "create",
},
],
},
"message": "Validation failed for 2 fieldMetadata, 1 index",
"message": "Validation failed for 2 fieldMetadata, 2 viewFields, 1 index",
"summary": {
"fieldMetadata": 2,
"index": 1,
"totalErrors": 3,
"totalErrors": 5,
"viewField": 2,
},
"userFriendlyMessage": "Many validation errors",
},
@@ -1406,13 +1754,33 @@ exports[`Field metadata relation creation should fail should fail when creating
"type": "create",
},
],
"viewField": [
{
"errors": [
{
"code": "INVALID_VIEW_DATA",
"message": "Field metadata not found",
"userFriendlyMessage": "Field metadata not found",
},
],
"flatEntityMinimalInformation": {
"fieldMetadataUniversalIdentifier": Any<String>,
"universalIdentifier": Any<String>,
"viewUniversalIdentifier": Any<String>,
},
"metadataName": "viewField",
"status": "fail",
"type": "create",
},
],
},
"message": "Validation failed for 1 fieldMetadata",
"message": "Validation failed for 1 fieldMetadata, 1 viewField",
"summary": {
"fieldMetadata": 1,
"totalErrors": 1,
"totalErrors": 2,
"viewField": 1,
},
"userFriendlyMessage": "Name "manager" is not available as it is already used by another field",
"userFriendlyMessage": "Many validation errors",
},
"message": "Multiple validation errors occurred while creating fields",
"name": "GraphQLError",
@@ -1462,12 +1830,32 @@ exports[`Field metadata relation creation should fail should fail when creating
"type": "create",
},
],
"viewField": [
{
"errors": [
{
"code": "INVALID_VIEW_DATA",
"message": "Field metadata not found",
"userFriendlyMessage": "Field metadata not found",
},
],
"flatEntityMinimalInformation": {
"fieldMetadataUniversalIdentifier": Any<String>,
"universalIdentifier": Any<String>,
"viewUniversalIdentifier": Any<String>,
},
"metadataName": "viewField",
"status": "fail",
"type": "create",
},
],
},
"message": "Validation failed for 1 fieldMetadata, 1 index",
"message": "Validation failed for 1 fieldMetadata, 1 viewField, 1 index",
"summary": {
"fieldMetadata": 1,
"index": 1,
"totalErrors": 2,
"totalErrors": 3,
"viewField": 1,
},
"userFriendlyMessage": "Many validation errors",
},
@@ -1536,12 +1924,49 @@ exports[`Field metadata relation creation should fail should fail when creating
"type": "create",
},
],
"viewField": [
{
"errors": [
{
"code": "INVALID_VIEW_DATA",
"message": "Field metadata not found",
"userFriendlyMessage": "Field metadata not found",
},
],
"flatEntityMinimalInformation": {
"fieldMetadataUniversalIdentifier": Any<String>,
"universalIdentifier": Any<String>,
"viewUniversalIdentifier": Any<String>,
},
"metadataName": "viewField",
"status": "fail",
"type": "create",
},
{
"errors": [
{
"code": "INVALID_VIEW_DATA",
"message": "Field metadata not found",
"userFriendlyMessage": "Field metadata not found",
},
],
"flatEntityMinimalInformation": {
"fieldMetadataUniversalIdentifier": Any<String>,
"universalIdentifier": Any<String>,
"viewUniversalIdentifier": Any<String>,
},
"metadataName": "viewField",
"status": "fail",
"type": "create",
},
],
},
"message": "Validation failed for 2 fieldMetadata, 1 index",
"message": "Validation failed for 2 fieldMetadata, 2 viewFields, 1 index",
"summary": {
"fieldMetadata": 2,
"index": 1,
"totalErrors": 3,
"totalErrors": 5,
"viewField": 2,
},
"userFriendlyMessage": "Many validation errors",
},
@@ -1610,12 +2035,49 @@ exports[`Field metadata relation creation should fail should fail when creating
"type": "create",
},
],
"viewField": [
{
"errors": [
{
"code": "INVALID_VIEW_DATA",
"message": "Field metadata not found",
"userFriendlyMessage": "Field metadata not found",
},
],
"flatEntityMinimalInformation": {
"fieldMetadataUniversalIdentifier": Any<String>,
"universalIdentifier": Any<String>,
"viewUniversalIdentifier": Any<String>,
},
"metadataName": "viewField",
"status": "fail",
"type": "create",
},
{
"errors": [
{
"code": "INVALID_VIEW_DATA",
"message": "Field metadata not found",
"userFriendlyMessage": "Field metadata not found",
},
],
"flatEntityMinimalInformation": {
"fieldMetadataUniversalIdentifier": Any<String>,
"universalIdentifier": Any<String>,
"viewUniversalIdentifier": Any<String>,
},
"metadataName": "viewField",
"status": "fail",
"type": "create",
},
],
},
"message": "Validation failed for 2 fieldMetadata, 1 index",
"message": "Validation failed for 2 fieldMetadata, 2 viewFields, 1 index",
"summary": {
"fieldMetadata": 2,
"index": 1,
"totalErrors": 3,
"totalErrors": 5,
"viewField": 2,
},
"userFriendlyMessage": "Many validation errors",
},