diff --git a/client/src/templates/Challenges/redux/execute-challenge-saga.js b/client/src/templates/Challenges/redux/execute-challenge-saga.js index 4f1bdde20c..028e84ea90 100644 --- a/client/src/templates/Challenges/redux/execute-challenge-saga.js +++ b/client/src/templates/Challenges/redux/execute-challenge-saga.js @@ -86,7 +86,8 @@ export function* executeChallengeSaga({ payload }) { const protect = isLoopProtected(challengeMeta); const buildData = yield buildChallengeData(challengeData, { preview: false, - protect + protect, + usesTestRunner: true }); const document = yield getContext('document'); const testRunner = yield call( diff --git a/client/src/templates/Challenges/utils/build.js b/client/src/templates/Challenges/utils/build.js index fbc9a318c2..31792bc9f0 100644 --- a/client/src/templates/Challenges/utils/build.js +++ b/client/src/templates/Challenges/utils/build.js @@ -138,12 +138,13 @@ async function getDOMTestRunner(buildData, { proxyLogger }, document) { runTestInTestFrame(document, testString, testTimeout); } -export function buildDOMChallenge({ - challengeFiles, - required = [], - template = '' -}) { - const finalRequires = [...globalRequires, ...required, ...frameRunner]; +export function buildDOMChallenge( + { challengeFiles, required = [], template = '' }, + { usesTestRunner } = { usesTestRunner: false } +) { + const finalRequires = [...globalRequires, ...required]; + if (usesTestRunner) finalRequires.push(...frameRunner); + const loadEnzyme = challengeFiles.some( challengeFile => challengeFile.ext === 'jsx' ); diff --git a/curriculum/test/test-challenges.js b/curriculum/test/test-challenges.js index 07ea985f1f..9cf2b3417e 100644 --- a/curriculum/test/test-challenges.js +++ b/curriculum/test/test-challenges.js @@ -570,11 +570,14 @@ async function createTestRunner( challengeFile.editableContents = solutionFile.editableContents; }); - const { build, sources, loadEnzyme } = await buildChallenge({ - challengeFiles, - required, - template - }); + const { build, sources, loadEnzyme } = await buildChallenge( + { + challengeFiles, + required, + template + }, + { usesTestRunner: true } + ); const code = { contents: sources.index,