diff --git a/curriculum/getChallenges.js b/curriculum/getChallenges.js index ff62305906..0c5d8e76be 100644 --- a/curriculum/getChallenges.js +++ b/curriculum/getChallenges.js @@ -131,6 +131,9 @@ async function parseTranslation(engPath, transPath, dict, lang) { function createChallengeCreator(basePath, lang) { const hasEnglishSource = hasEnglishSourceCreator(basePath); return async function createChallenge(filePath, maybeMeta) { + function getFullPath(pathLang) { + return path.resolve(__dirname, basePath, pathLang, filePath); + } let meta; if (maybeMeta) { meta = maybeMeta; @@ -149,17 +152,17 @@ function createChallengeCreator(basePath, lang) { throw Error(`Missing English challenge for ${filePath} It should be in -${path.resolve(basePath, 'english', filePath)} +${getFullPath('english')} `); // assumes superblock names are unique // while the auditing is ongoing, we default to English for un-audited certs // once that's complete, we can revert to using isEnglishChallenge(fullPath) const useEnglish = lang === 'english' || !isAuditedCert(lang, superBlock); const challenge = await (useEnglish - ? parseMarkdown(path.resolve(basePath, 'english', filePath)) + ? parseMarkdown(getFullPath('english')) : parseTranslation( - path.resolve(basePath, 'english', filePath), - path.resolve(basePath, lang, filePath), + getFullPath('english'), + getFullPath(lang), COMMENT_TRANSLATIONS, lang )); diff --git a/curriculum/getChallenges.test.js b/curriculum/getChallenges.test.js index 81dfda55f3..83228fa00a 100644 --- a/curriculum/getChallenges.test.js +++ b/curriculum/getChallenges.test.js @@ -1,19 +1,11 @@ /* global expect beforeAll */ const { - challengesDir, createChallengeCreator, hasEnglishSourceCreator } = require('./getChallenges'); -/* eslint-disable max-len */ -const REAL_PATH = - '01-responsive-web-design/applied-accessibility/add-a-text-alternative-to-images-for-visually-impaired-accessibility.english.md'; -const REAL_MISSING_PATH = - '01-responsive-web-design/applied-accessibility/add-a-text-alternative-to-images-for-visually-impaired.md'; - const EXISTING_CHALLENGE_PATH = 'challenge.md'; const MISSING_CHALLENGE_PATH = 'no/challenge.md'; -/* eslint-enable max-len */ let hasEnglishSource; let createChallenge; @@ -23,15 +15,15 @@ describe('create non-English challenge', () => { describe('createChallenge', () => { it('throws if lang is an invalid language', async () => { createChallenge = createChallengeCreator(basePath, 'notlang'); - await expect(createChallenge(REAL_PATH)).rejects.toThrow( - 'notlang is not a accepted language' - ); + await expect( + createChallenge(EXISTING_CHALLENGE_PATH, {}) + ).rejects.toThrow('notlang is not a accepted language'); }); it('throws an error if the source challenge is missing', async () => { - createChallenge = createChallengeCreator(challengesDir, 'chinese'); - await expect(createChallenge(REAL_MISSING_PATH)).rejects.toThrow( + createChallenge = createChallengeCreator(basePath, 'chinese'); + await expect(createChallenge(MISSING_CHALLENGE_PATH, {})).rejects.toThrow( `Missing English challenge for -${REAL_MISSING_PATH} +${MISSING_CHALLENGE_PATH} It should be in ` );