mirror of
https://github.com/directus/directus.git
synced 2026-02-11 19:15:16 -05:00
* added default values when validating items * abstracted default value parsing to its own util * Added a basic test * updated tests * fixed import * implementing the same fix for conditions on the drawer-item
141 lines
3.1 KiB
TypeScript
141 lines
3.1 KiB
TypeScript
import { test, expect } from 'vitest';
|
|
import { getDefaultValuesFromFields } from './get-default-values-from-fields';
|
|
|
|
test('Ignores PK default value', () => {
|
|
const values = getDefaultValuesFromFields([
|
|
{
|
|
collection: 'test_collection',
|
|
field: 'id',
|
|
type: 'integer',
|
|
schema: {
|
|
name: 'id',
|
|
table: 'test_collection',
|
|
schema: 'public',
|
|
data_type: 'integer',
|
|
is_nullable: false,
|
|
generation_expression: null,
|
|
default_value: "nextval('test_collection_id_seq'::regclass)",
|
|
is_generated: false,
|
|
max_length: null,
|
|
comment: null,
|
|
numeric_precision: 32,
|
|
numeric_scale: 0,
|
|
is_unique: true,
|
|
is_primary_key: true,
|
|
has_auto_increment: true,
|
|
foreign_key_schema: null,
|
|
foreign_key_table: null,
|
|
foreign_key_column: null,
|
|
},
|
|
meta: null,
|
|
name: 'ID',
|
|
},
|
|
]);
|
|
expect(values.value).toStrictEqual({});
|
|
});
|
|
|
|
test('Ignores schemaless fields', () => {
|
|
const values = getDefaultValuesFromFields([
|
|
{
|
|
collection: 'test_collection',
|
|
field: 'test',
|
|
type: 'integer',
|
|
schema: null,
|
|
meta: null,
|
|
name: 'Test',
|
|
},
|
|
]);
|
|
expect(values.value).toStrictEqual({});
|
|
});
|
|
|
|
test('Parses default values', () => {
|
|
const values = getDefaultValuesFromFields([
|
|
{
|
|
collection: 'test_collection',
|
|
field: 'condition',
|
|
type: 'string',
|
|
schema: {
|
|
name: 'condition',
|
|
table: 'test_collection',
|
|
schema: 'public',
|
|
data_type: 'character varying',
|
|
is_nullable: true,
|
|
generation_expression: null,
|
|
default_value: 'test1',
|
|
is_generated: false,
|
|
max_length: 255,
|
|
comment: null,
|
|
numeric_precision: null,
|
|
numeric_scale: null,
|
|
is_unique: false,
|
|
is_primary_key: false,
|
|
has_auto_increment: false,
|
|
foreign_key_schema: null,
|
|
foreign_key_table: null,
|
|
foreign_key_column: null,
|
|
},
|
|
meta: null,
|
|
name: 'Condition',
|
|
},
|
|
{
|
|
collection: 'test_collection',
|
|
field: 'test1',
|
|
type: 'string',
|
|
schema: {
|
|
name: 'test1',
|
|
table: 'test_collection',
|
|
schema: 'public',
|
|
data_type: 'character varying',
|
|
is_nullable: true,
|
|
generation_expression: null,
|
|
default_value: '---',
|
|
is_generated: false,
|
|
max_length: 255,
|
|
comment: null,
|
|
numeric_precision: null,
|
|
numeric_scale: null,
|
|
is_unique: false,
|
|
is_primary_key: false,
|
|
has_auto_increment: false,
|
|
foreign_key_schema: null,
|
|
foreign_key_table: null,
|
|
foreign_key_column: null,
|
|
},
|
|
meta: null,
|
|
name: 'Test 1',
|
|
},
|
|
{
|
|
collection: 'test_collection',
|
|
field: 'test2',
|
|
type: 'string',
|
|
schema: {
|
|
name: 'test2',
|
|
table: 'test_collection',
|
|
schema: 'public',
|
|
data_type: 'character varying',
|
|
is_nullable: true,
|
|
generation_expression: null,
|
|
default_value: null,
|
|
is_generated: false,
|
|
max_length: 255,
|
|
comment: null,
|
|
numeric_precision: null,
|
|
numeric_scale: null,
|
|
is_unique: false,
|
|
is_primary_key: false,
|
|
has_auto_increment: false,
|
|
foreign_key_schema: null,
|
|
foreign_key_table: null,
|
|
foreign_key_column: null,
|
|
},
|
|
meta: null,
|
|
name: 'Test2',
|
|
},
|
|
]);
|
|
expect(values.value).toStrictEqual({
|
|
condition: 'test1',
|
|
test1: '---',
|
|
test2: null,
|
|
});
|
|
});
|