diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-build-a-recipe-project/top-build-a-recipe-project.md b/curriculum/challenges/arabic/16-the-odin-project/top-build-a-recipe-project/top-build-a-recipe-project.md index 8fc0d7b5e38..1589e6bcba8 100644 --- a/curriculum/challenges/arabic/16-the-odin-project/top-build-a-recipe-project/top-build-a-recipe-project.md +++ b/curriculum/challenges/arabic/16-the-odin-project/top-build-a-recipe-project/top-build-a-recipe-project.md @@ -202,3 +202,7 @@ assert(allAnchorsHaveHrefHash && anchorTags.length > 0); ``` + +```css + +``` diff --git a/curriculum/challenges/chinese-traditional/16-the-odin-project/top-build-a-recipe-project/top-build-a-recipe-project.md b/curriculum/challenges/chinese-traditional/16-the-odin-project/top-build-a-recipe-project/top-build-a-recipe-project.md index 8fc0d7b5e38..1589e6bcba8 100644 --- a/curriculum/challenges/chinese-traditional/16-the-odin-project/top-build-a-recipe-project/top-build-a-recipe-project.md +++ b/curriculum/challenges/chinese-traditional/16-the-odin-project/top-build-a-recipe-project/top-build-a-recipe-project.md @@ -202,3 +202,7 @@ assert(allAnchorsHaveHrefHash && anchorTags.length > 0); ``` + +```css + +``` diff --git a/curriculum/challenges/chinese/16-the-odin-project/top-build-a-recipe-project/top-build-a-recipe-project.md b/curriculum/challenges/chinese/16-the-odin-project/top-build-a-recipe-project/top-build-a-recipe-project.md index 8fc0d7b5e38..1589e6bcba8 100644 --- a/curriculum/challenges/chinese/16-the-odin-project/top-build-a-recipe-project/top-build-a-recipe-project.md +++ b/curriculum/challenges/chinese/16-the-odin-project/top-build-a-recipe-project/top-build-a-recipe-project.md @@ -202,3 +202,7 @@ assert(allAnchorsHaveHrefHash && anchorTags.length > 0); ``` + +```css + +``` diff --git a/curriculum/challenges/english/16-the-odin-project/top-build-a-recipe-project/top-build-a-recipe-project.md b/curriculum/challenges/english/16-the-odin-project/top-build-a-recipe-project/top-build-a-recipe-project.md index 8bba3032881..255514eca51 100644 --- a/curriculum/challenges/english/16-the-odin-project/top-build-a-recipe-project/top-build-a-recipe-project.md +++ b/curriculum/challenges/english/16-the-odin-project/top-build-a-recipe-project/top-build-a-recipe-project.md @@ -204,3 +204,7 @@ assert(allAnchorsHaveHrefHash && anchorTags.length > 0); ``` + +```css + +``` diff --git a/curriculum/challenges/espanol/16-the-odin-project/top-build-a-recipe-project/top-build-a-recipe-project.md b/curriculum/challenges/espanol/16-the-odin-project/top-build-a-recipe-project/top-build-a-recipe-project.md index 71b63098422..592618bee5c 100644 --- a/curriculum/challenges/espanol/16-the-odin-project/top-build-a-recipe-project/top-build-a-recipe-project.md +++ b/curriculum/challenges/espanol/16-the-odin-project/top-build-a-recipe-project/top-build-a-recipe-project.md @@ -202,3 +202,7 @@ assert(allAnchorsHaveHrefHash && anchorTags.length > 0); ``` + +```css + +``` diff --git a/curriculum/challenges/german/16-the-odin-project/top-build-a-recipe-project/top-build-a-recipe-project.md b/curriculum/challenges/german/16-the-odin-project/top-build-a-recipe-project/top-build-a-recipe-project.md index 8fc0d7b5e38..1589e6bcba8 100644 --- a/curriculum/challenges/german/16-the-odin-project/top-build-a-recipe-project/top-build-a-recipe-project.md +++ b/curriculum/challenges/german/16-the-odin-project/top-build-a-recipe-project/top-build-a-recipe-project.md @@ -202,3 +202,7 @@ assert(allAnchorsHaveHrefHash && anchorTags.length > 0); ``` + +```css + +``` diff --git a/curriculum/challenges/italian/16-the-odin-project/top-build-a-recipe-project/top-build-a-recipe-project.md b/curriculum/challenges/italian/16-the-odin-project/top-build-a-recipe-project/top-build-a-recipe-project.md index 78f31967220..77a27864699 100644 --- a/curriculum/challenges/italian/16-the-odin-project/top-build-a-recipe-project/top-build-a-recipe-project.md +++ b/curriculum/challenges/italian/16-the-odin-project/top-build-a-recipe-project/top-build-a-recipe-project.md @@ -202,3 +202,7 @@ assert(allAnchorsHaveHrefHash && anchorTags.length > 0); ``` + +```css + +``` diff --git a/curriculum/challenges/japanese/16-the-odin-project/top-build-a-recipe-project/top-build-a-recipe-project.md b/curriculum/challenges/japanese/16-the-odin-project/top-build-a-recipe-project/top-build-a-recipe-project.md index 8fc0d7b5e38..1589e6bcba8 100644 --- a/curriculum/challenges/japanese/16-the-odin-project/top-build-a-recipe-project/top-build-a-recipe-project.md +++ b/curriculum/challenges/japanese/16-the-odin-project/top-build-a-recipe-project/top-build-a-recipe-project.md @@ -202,3 +202,7 @@ assert(allAnchorsHaveHrefHash && anchorTags.length > 0); ``` + +```css + +``` diff --git a/curriculum/challenges/portuguese/16-the-odin-project/top-build-a-recipe-project/top-build-a-recipe-project.md b/curriculum/challenges/portuguese/16-the-odin-project/top-build-a-recipe-project/top-build-a-recipe-project.md index 6ff30b274b0..ecca35e1d5f 100644 --- a/curriculum/challenges/portuguese/16-the-odin-project/top-build-a-recipe-project/top-build-a-recipe-project.md +++ b/curriculum/challenges/portuguese/16-the-odin-project/top-build-a-recipe-project/top-build-a-recipe-project.md @@ -202,3 +202,7 @@ assert(allAnchorsHaveHrefHash && anchorTags.length > 0); ``` + +```css + +``` diff --git a/curriculum/challenges/swahili/16-the-odin-project/top-build-a-recipe-project/top-build-a-recipe-project.md b/curriculum/challenges/swahili/16-the-odin-project/top-build-a-recipe-project/top-build-a-recipe-project.md index 8fc0d7b5e38..1589e6bcba8 100644 --- a/curriculum/challenges/swahili/16-the-odin-project/top-build-a-recipe-project/top-build-a-recipe-project.md +++ b/curriculum/challenges/swahili/16-the-odin-project/top-build-a-recipe-project/top-build-a-recipe-project.md @@ -202,3 +202,7 @@ assert(allAnchorsHaveHrefHash && anchorTags.length > 0); ``` + +```css + +``` diff --git a/curriculum/challenges/ukrainian/16-the-odin-project/top-build-a-recipe-project/top-build-a-recipe-project.md b/curriculum/challenges/ukrainian/16-the-odin-project/top-build-a-recipe-project/top-build-a-recipe-project.md index 744d4b51f0e..d667558abee 100644 --- a/curriculum/challenges/ukrainian/16-the-odin-project/top-build-a-recipe-project/top-build-a-recipe-project.md +++ b/curriculum/challenges/ukrainian/16-the-odin-project/top-build-a-recipe-project/top-build-a-recipe-project.md @@ -202,3 +202,7 @@ assert(allAnchorsHaveHrefHash && anchorTags.length > 0); ``` + +```css + +``` diff --git a/curriculum/test/test-challenges.js b/curriculum/test/test-challenges.js index 6db9494d2f8..2cf69978588 100644 --- a/curriculum/test/test-challenges.js +++ b/curriculum/test/test-challenges.js @@ -31,7 +31,10 @@ const { const { default: createWorker } = require('../../client/src/templates/Challenges/utils/worker-executor'); -const { challengeTypes } = require('../../shared/config/challenge-types'); +const { + challengeTypes, + hasNoSolution +} = require('../../shared/config/challenge-types'); // the config files are created during the build, but not before linting const javaScriptTestEvaluator = require('../../client/config/browser-scripts/test-evaluator.json').filename; @@ -370,17 +373,8 @@ function populateTestsForLang({ lang, challenges, meta }) { }); const { challengeType } = challenge; - // TODO: shouldn't this be a function in challenge-types.js? - if ( - challengeType !== challengeTypes.html && - challengeType !== challengeTypes.js && - challengeType !== challengeTypes.jsProject && - challengeType !== challengeTypes.modern && - challengeType !== challengeTypes.backend && - challengeType !== challengeTypes.python - ) { - return; - } + + if (hasNoSolution(challengeType)) return; let { tests = [] } = challenge; tests = tests.filter(test => !!test.testString); diff --git a/shared/config/challenge-types.ts b/shared/config/challenge-types.ts index b3095f02068..ed1fea5ef87 100644 --- a/shared/config/challenge-types.ts +++ b/shared/config/challenge-types.ts @@ -79,6 +79,31 @@ export const hasNoTests = (challengeType: number): boolean => challengeType === dialogue || challengeType === fillInTheBlank; +export const hasNoSolution = (challengeType: number): boolean => { + const noSolutions = [ + backend, + zipline, + frontEndProject, + backEndProject, + step, + quiz, + invalid, + pythonProject, + video, + codeAllyPractice, + codeAllyCert, + theOdinProject, + colab, + exam, + msTrophy, + multipleChoice, + dialogue, + fillInTheBlank + ]; + + return noSolutions.includes(challengeType); +}; + // determine the component view for each challenge export const viewTypes = { [html]: 'classic',