From 3783ef118e47929ee6d64a47d76ce08685052db3 Mon Sep 17 00:00:00 2001 From: Oliver Eyton-Williams Date: Tue, 9 Jun 2020 11:41:26 +0200 Subject: [PATCH] fix(multi): validate challenges correctly --- curriculum/schema/challengeSchema.js | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/curriculum/schema/challengeSchema.js b/curriculum/schema/challengeSchema.js index 3b19b97934..dcc4404289 100644 --- a/curriculum/schema/challengeSchema.js +++ b/curriculum/schema/challengeSchema.js @@ -7,10 +7,14 @@ const fileJoi = Joi.object().keys({ key: Joi.string(), ext: Joi.string(), name: Joi.string(), - head: [Joi.array().items(Joi.string().allow('')), Joi.string().allow('')], - tail: [Joi.array().items(Joi.string().allow('')), Joi.string().allow('')], - contents: [Joi.array().items(Joi.string().allow('')), Joi.string().allow('')], - editableRegionBoundaries: [Joi.array().items(Joi.number())] + editableRegionBoundaries: [Joi.array().items(Joi.number())], + path: Joi.string(), + error: Joi.empty(), + head: Joi.string().allow(''), + tail: Joi.string().allow(''), + seed: Joi.string().allow(''), + contents: Joi.string().allow(''), + history: [Joi.array().items(Joi.string().allow('')), Joi.string().allow('')] }); function getSchemaForLang(lang) { @@ -30,7 +34,12 @@ function getSchemaForLang(lang) { otherwise: Joi.string().required() }), fileName: Joi.string(), - files: Joi.array().items(fileJoi), + files: Joi.object().keys({ + indexcss: fileJoi, + indexhtml: fileJoi, + indexjs: fileJoi, + indexjsx: fileJoi + }), guideUrl: Joi.string().uri({ scheme: 'https' }), videoUrl: Joi.string().allow(''), forumTopicId: Joi.number(),