diff --git a/packages/strapi-plugin-content-type-builder/controllers/validation/common.js b/packages/strapi-plugin-content-type-builder/controllers/validation/common.js index abd5fe7c80..9cc82ffce4 100644 --- a/packages/strapi-plugin-content-type-builder/controllers/validation/common.js +++ b/packages/strapi-plugin-content-type-builder/controllers/validation/common.js @@ -35,6 +35,7 @@ const validators = { }; const NAME_REGEX = new RegExp('^[A-Za-z][_0-9A-Za-z]*$'); +const ENUM_REGEX = new RegExp('^[_A-Za-z][_0-9A-Za-z]*$'); const isValidName = { name: 'isValidName', @@ -48,11 +49,19 @@ const isValidKey = key => ({ test: () => NAME_REGEX.test(key), }); +const isValidEnum = { + name: 'isValidName', + message: + '${path} must match the following regex: /^[_A-Za-z][_0-9A-Za-z]*$/^', + test: val => val === '' || ENUM_REGEX.test(val), +}; + module.exports = { validators, isValidName, isValidKey, + isValidEnum, VALID_TYPES, }; diff --git a/packages/strapi-plugin-content-type-builder/controllers/validation/types.js b/packages/strapi-plugin-content-type-builder/controllers/validation/types.js index dafc32feb6..3d9e6c1248 100644 --- a/packages/strapi-plugin-content-type-builder/controllers/validation/types.js +++ b/packages/strapi-plugin-content-type-builder/controllers/validation/types.js @@ -1,7 +1,12 @@ 'use strict'; const yup = require('yup'); -const { validators, VALID_TYPES, isValidName } = require('./common'); +const { + validators, + VALID_TYPES, + isValidName, + isValidEnum, +} = require('./common'); module.exports = obj => { return { @@ -51,7 +56,7 @@ const getTypeShape = obj => { return { enum: yup .array() - .of(yup.string().test(isValidName)) + .of(yup.string().test(isValidEnum)) .min(1) .required(), default: yup