Files
twenty/packages/twenty-server/src/utils/__test__/get-field-metadata-entity.mock.ts
T
Paul Rastoin c1bf0a1fbf Object metadata API create one using workspace migration v2 (#13420)
# Introduction
In this PR we create basic transpilation methods and utils to handle
input to flat, entity to flat, object maps to flat. In order to
transpile everything into a common validation that will be implemented
in another PR

## FieldMetadataEntity typing
Added `never | null` to fields that should never be in order to ease
general abstracted method to pass null, as anw it's what is in the
database

## Todo
- ~~Create a feature flag~~
- Integration test for object creation through metadata api + pg col
introspection and snapshoting
2025-07-29 17:47:28 +02:00

50 lines
1.7 KiB
TypeScript

import { faker } from '@faker-js/faker';
import { FieldMetadataType } from 'twenty-shared/types';
import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import { IndexFieldMetadataEntity } from 'src/engine/metadata-modules/index-metadata/index-field-metadata.entity';
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
type GetMockFieldMetadataEntityOverride<
T extends FieldMetadataType = FieldMetadataType,
> = Partial<FieldMetadataEntity<T>> &
Required<
Pick<FieldMetadataEntity<T>, 'workspaceId' | 'objectMetadataId' | 'type'>
>;
// Should be renamed to abstract
export const getMockFieldMetadataEntity = <
T extends FieldMetadataType = FieldMetadataType.TEXT,
>(
overrides: GetMockFieldMetadataEntityOverride<T>,
): FieldMetadataEntity => {
return {
fieldPermissions: [],
icon: null,
indexFieldMetadatas: {} as IndexFieldMetadataEntity,
isCustom: true,
isLabelSyncedWithName: false,
isNullable: null,
isSystem: false,
isUnique: null,
object: {} as ObjectMetadataEntity,
relationTargetFieldMetadata: null,
relationTargetFieldMetadataId: null,
relationTargetObjectMetadata: null,
relationTargetObjectMetadataId: null,
standardId: null,
standardOverrides: null,
id: faker.string.uuid(),
name: 'defaultFieldMetadataName',
label: 'Default field metadata entity label',
description: 'Default field metadata entity description',
defaultValue: null,
options: null,
settings: null,
createdAt: new Date(),
updatedAt: new Date(),
isActive: true,
...overrides,
};
};