Test custom field exists

This commit is contained in:
Mark Kaylor 2022-07-18 10:55:16 +02:00 committed by Rémi de Juvigny
parent 05c8b0f66e
commit 6456a33bf1
3 changed files with 117 additions and 92 deletions

View File

@ -70,10 +70,6 @@ const formatAttribute = (key, attribute) => {
if (attribute.type === 'customField') {
const customField = strapi.container.get('custom-fields').get(attribute.customField);
if (!customField) {
throw new Error(`Could not find Custom Field: ${attribute.customField}`);
}
return {
...attribute,
type: customField.type,

View File

@ -8,6 +8,7 @@ const strapi = {
};
describe('Custom fields registry', () => {
describe('add', () => {
it('adds a custom field registered in a plugin', () => {
const mockCF = {
name: 'test',
@ -103,4 +104,27 @@ describe('Custom fields registry', () => {
`Custom field: 'plugin::plugintest.test' has already been registered`
);
});
});
describe('get', () => {
it('gets a registered custom field', () => {
const mockCF = {
name: 'test',
plugin: 'plugintest',
type: 'text',
};
const customFields = customFieldsRegistry(strapi);
customFields.add(mockCF);
expect(customFields.get('plugin::plugintest.test')).toEqual(mockCF);
});
it('throws when a custom field is not registered', () => {
const customFields = customFieldsRegistry(strapi);
expect(() => customFields.get('plugin::plugintest.test')).toThrowError(
`Could not find Custom Field: plugin::plugintest.test`
);
});
});
});

View File

@ -11,7 +11,12 @@ const customFieldsRegistry = strapi => {
return customFields;
},
get(customField) {
return customFields[customField];
const registeredCustomField = customFields[customField];
if (!registeredCustomField) {
throw new Error(`Could not find Custom Field: ${customField}`);
}
return registeredCustomField;
},
add(customField) {
const customFieldList = Array.isArray(customField) ? customField : [customField];