diff --git a/client/utils/challenge-types.js b/client/utils/challenge-types.js index 586053194a6..5cbc1d59f66 100644 --- a/client/utils/challenge-types.js +++ b/client/utils/challenge-types.js @@ -66,7 +66,7 @@ exports.pathsMap = { [js]: 'js', [jsProject]: 'js' }; -// determine the component to view for each challenge +// determine the component view for each challenge exports.viewTypes = { [html]: 'classic', [js]: 'classic', diff --git a/tools/scripts/build/build-external-curricula-data.test.ts b/tools/scripts/build/build-external-curricula-data.test.ts index 04688b21cda..9ff08d2e8a7 100644 --- a/tools/scripts/build/build-external-curricula-data.test.ts +++ b/tools/scripts/build/build-external-curricula-data.test.ts @@ -29,6 +29,12 @@ if (envData.clientLocale == 'english' && !envData.showUpcomingChanges) { ).toBeGreaterThan(0); }); + test('there should be an endpoint to request submit types from', () => { + fs.existsSync( + `${clientStaticPath}/curriculum-data/${VERSION}/submit-types.json` + ); + }); + test('the available-superblocks file should have the correct structure', async () => { const validateAvailableSuperBlocks = availableSuperBlocksValidator(); const availableSuperblocks: unknown = JSON.parse( diff --git a/tools/scripts/build/build-external-curricula-data.ts b/tools/scripts/build/build-external-curricula-data.ts index 0e6f0963337..1def9f180e9 100644 --- a/tools/scripts/build/build-external-curricula-data.ts +++ b/tools/scripts/build/build-external-curricula-data.ts @@ -1,5 +1,6 @@ import { mkdirSync, writeFileSync, readFileSync } from 'fs'; import { resolve, dirname } from 'path'; +import { submitTypes } from '../../../client/utils/challenge-types'; import { SuperBlocks } from '../../../config/certification-settings'; type Intro = { [keyValue in SuperBlocks]: IntroProps }; @@ -45,15 +46,16 @@ export function buildExtCurriculumData( curriculum: Curriculum ): void { const staticFolderPath = resolve(__dirname, '../../../client/static'); - const versionPath = `${staticFolderPath}/curriculum-data/${ver}`; + const dataPath = `${staticFolderPath}/curriculum-data/`; const blockIntroPath = resolve( __dirname, '../../../client/i18n/locales/english/intro.json' ); - mkdirSync(versionPath, { recursive: true }); + mkdirSync(dataPath, { recursive: true }); parseCurriculumData(); + getSubmitTypes(); function parseCurriculumData() { const superBlockKeys = Object.values(SuperBlocks).filter(x => @@ -93,7 +95,7 @@ export function buildExtCurriculumData( } function writeToFile(fileName: string, data: Record): void { - const filePath = `${versionPath}/${fileName}.json`; + const filePath = `${dataPath}/${ver}/${fileName}.json`; mkdirSync(dirname(filePath), { recursive: true }); writeFileSync(filePath, JSON.stringify(data, null, 2)); } @@ -121,4 +123,11 @@ export function buildExtCurriculumData( return superBlocks[superBlock].title; } + + function getSubmitTypes() { + writeFileSync( + `${dataPath}/submit-types.json`, + JSON.stringify(submitTypes, null, 2) + ); + } }