diff --git a/tools/scripts/build/build-external-curricula-data.test.ts b/tools/scripts/build/build-external-curricula-data.test.ts index eddda00e877..bb7caae2f53 100644 --- a/tools/scripts/build/build-external-curricula-data.test.ts +++ b/tools/scripts/build/build-external-curricula-data.test.ts @@ -81,13 +81,7 @@ ${result.error.message}`); ({ dashedName }) => dashedName ); - const isUpcoming = ['full-stack-developer']; - - // TODO: this is a hack, we should have a single source of truth for the - // list of superblocks that are available. - const publicSuperBlockNames = Object.values(SuperBlocks).filter( - x => !isUpcoming.includes(x) - ); + const publicSuperBlockNames = Object.values(SuperBlocks); expect(dashedNames).toEqual(expect.arrayContaining(publicSuperBlockNames)); expect(Object.keys(orderedSuperBlockInfo)).toHaveLength( diff --git a/tools/scripts/build/build-external-curricula-data.ts b/tools/scripts/build/build-external-curricula-data.ts index e63adbc8748..703890a0c36 100644 --- a/tools/scripts/build/build-external-curricula-data.ts +++ b/tools/scripts/build/build-external-curricula-data.ts @@ -43,6 +43,7 @@ export const orderedSuperBlockInfo = [ { dashedName: SuperBlocks.TheOdinProject, public: true }, { dashedName: SuperBlocks.RespWebDesign, public: true }, { dashedName: SuperBlocks.PythonForEverybody, public: true }, + { dashedName: SuperBlocks.FullStackDeveloper, public: false }, { dashedName: SuperBlocks.JsAlgoDataStructNew, public: false }, { dashedName: SuperBlocks.FrontEndDevLibs, public: false }, { dashedName: SuperBlocks.DataVis, public: false }, diff --git a/tools/scripts/build/external-data-schema.js b/tools/scripts/build/external-data-schema.js index 87cbede698b..ecf9b279bc7 100644 --- a/tools/scripts/build/external-data-schema.js +++ b/tools/scripts/build/external-data-schema.js @@ -25,6 +25,14 @@ const blockSchema = Joi.object({}).keys({ required: Joi.array(), superBlock: Joi.string(), blockLayout: Joi.string(), + blockType: Joi.valid( + 'lecture', + 'workshop', + 'lab', + 'review', + 'quiz', + 'exam' + ), challengeOrder: Joi.array().items( Joi.object({}).keys({ id: Joi.string(),