fix: better meta validation errors (#57180)

This commit is contained in:
Oliver Eyton-Williams
2024-11-16 11:14:35 +01:00
committed by GitHub
parent 63db50abba
commit 653629f8db

View File

@@ -1,5 +1,7 @@
const Joi = require('joi');
const { SuperBlocks } = require('../../shared/config/curriculum');
const slugRE = new RegExp('^[a-z0-9-]+$');
const slugWithSlashRE = new RegExp('^[a-z0-9-/]+$');
@@ -25,7 +27,10 @@ const schema = Joi.object()
),
isUpcomingChange: Joi.boolean().required(),
dashedName: Joi.string().regex(slugRE).required(),
superBlock: Joi.string().regex(slugWithSlashRE).required(),
superBlock: Joi.string()
.regex(slugWithSlashRE)
.valid(...Object.values(SuperBlocks))
.required(),
order: Joi.number().when('superBlock', {
is: 'full-stack-developer',
then: Joi.forbidden(),
@@ -73,5 +78,5 @@ const schema = Joi.object()
.unknown(false);
exports.metaSchemaValidator = meta => {
return schema.validate(meta);
return schema.validate(meta, { abortEarly: false });
};