|
@@ -6,15 +6,11 @@ import { coreEntitiesMap } from './entities';
|
|
|
import { validateCustomFieldsConfig } from './validate-custom-fields-config';
|
|
import { validateCustomFieldsConfig } from './validate-custom-fields-config';
|
|
|
|
|
|
|
|
describe('validateCustomFieldsConfig()', () => {
|
|
describe('validateCustomFieldsConfig()', () => {
|
|
|
-
|
|
|
|
|
const allEntities = Object.values(coreEntitiesMap) as Array<Type<any>>;
|
|
const allEntities = Object.values(coreEntitiesMap) as Array<Type<any>>;
|
|
|
|
|
|
|
|
it('valid config', () => {
|
|
it('valid config', () => {
|
|
|
const config: CustomFields = {
|
|
const config: CustomFields = {
|
|
|
- Product: [
|
|
|
|
|
- { name: 'foo', type: 'string' },
|
|
|
|
|
- { name: 'bar', type: 'localeString' },
|
|
|
|
|
- ],
|
|
|
|
|
|
|
+ Product: [{ name: 'foo', type: 'string' }, { name: 'bar', type: 'localeString' }],
|
|
|
};
|
|
};
|
|
|
const result = validateCustomFieldsConfig(config, allEntities);
|
|
const result = validateCustomFieldsConfig(config, allEntities);
|
|
|
|
|
|
|
@@ -24,17 +20,12 @@ describe('validateCustomFieldsConfig()', () => {
|
|
|
|
|
|
|
|
it('invalid localeString', () => {
|
|
it('invalid localeString', () => {
|
|
|
const config: CustomFields = {
|
|
const config: CustomFields = {
|
|
|
- User: [
|
|
|
|
|
- { name: 'foo', type: 'string' },
|
|
|
|
|
- { name: 'bar', type: 'localeString' },
|
|
|
|
|
- ],
|
|
|
|
|
|
|
+ User: [{ name: 'foo', type: 'string' }, { name: 'bar', type: 'localeString' }],
|
|
|
};
|
|
};
|
|
|
const result = validateCustomFieldsConfig(config, allEntities);
|
|
const result = validateCustomFieldsConfig(config, allEntities);
|
|
|
|
|
|
|
|
expect(result.valid).toBe(false);
|
|
expect(result.valid).toBe(false);
|
|
|
- expect(result.errors).toEqual([
|
|
|
|
|
- 'User entity does not support custom fields of type "localeString"',
|
|
|
|
|
- ]);
|
|
|
|
|
|
|
+ expect(result.errors).toEqual(['User entity does not support custom fields of type "localeString"']);
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
it('valid names', () => {
|
|
it('valid names', () => {
|
|
@@ -112,37 +103,27 @@ describe('validateCustomFieldsConfig()', () => {
|
|
|
|
|
|
|
|
it('name conflict with existing fields', () => {
|
|
it('name conflict with existing fields', () => {
|
|
|
const config: CustomFields = {
|
|
const config: CustomFields = {
|
|
|
- Product: [
|
|
|
|
|
- { name: 'id', type: 'string' },
|
|
|
|
|
- ],
|
|
|
|
|
|
|
+ Product: [{ name: 'createdAt', type: 'string' }],
|
|
|
};
|
|
};
|
|
|
const result = validateCustomFieldsConfig(config, allEntities);
|
|
const result = validateCustomFieldsConfig(config, allEntities);
|
|
|
|
|
|
|
|
expect(result.valid).toBe(false);
|
|
expect(result.valid).toBe(false);
|
|
|
- expect(result.errors).toEqual([
|
|
|
|
|
- 'Product entity already has a field named "id"',
|
|
|
|
|
- ]);
|
|
|
|
|
|
|
+ expect(result.errors).toEqual(['Product entity already has a field named "createdAt"']);
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
it('name conflict with existing fields in translation', () => {
|
|
it('name conflict with existing fields in translation', () => {
|
|
|
const config: CustomFields = {
|
|
const config: CustomFields = {
|
|
|
- Product: [
|
|
|
|
|
- { name: 'name', type: 'string' },
|
|
|
|
|
- ],
|
|
|
|
|
|
|
+ Product: [{ name: 'name', type: 'string' }],
|
|
|
};
|
|
};
|
|
|
const result = validateCustomFieldsConfig(config, allEntities);
|
|
const result = validateCustomFieldsConfig(config, allEntities);
|
|
|
|
|
|
|
|
expect(result.valid).toBe(false);
|
|
expect(result.valid).toBe(false);
|
|
|
- expect(result.errors).toEqual([
|
|
|
|
|
- 'Product entity already has a field named "name"',
|
|
|
|
|
- ]);
|
|
|
|
|
|
|
+ expect(result.errors).toEqual(['Product entity already has a field named "name"']);
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
it('non-nullable must have defaultValue', () => {
|
|
it('non-nullable must have defaultValue', () => {
|
|
|
const config: CustomFields = {
|
|
const config: CustomFields = {
|
|
|
- Product: [
|
|
|
|
|
- { name: 'foo', type: 'string', nullable: false },
|
|
|
|
|
- ],
|
|
|
|
|
|
|
+ Product: [{ name: 'foo', type: 'string', nullable: false }],
|
|
|
};
|
|
};
|
|
|
const result = validateCustomFieldsConfig(config, allEntities);
|
|
const result = validateCustomFieldsConfig(config, allEntities);
|
|
|
|
|
|
|
@@ -151,5 +132,4 @@ describe('validateCustomFieldsConfig()', () => {
|
|
|
'Product entity custom field "foo" is non-nullable and must have a defaultValue',
|
|
'Product entity custom field "foo" is non-nullable and must have a defaultValue',
|
|
|
]);
|
|
]);
|
|
|
});
|
|
});
|
|
|
-
|
|
|
|
|
});
|
|
});
|