From e6e6fb9d0266f544d12918049b556f92fc67756f Mon Sep 17 00:00:00 2001 From: Berkeley Martinez Date: Mon, 28 Dec 2015 22:54:02 -0800 Subject: [PATCH] Fix test-challenges to use code/editor.getValue Also filters challenges with empty string tests --- seed/test-challenges.js | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/seed/test-challenges.js b/seed/test-challenges.js index 93a994c30c..5e5f1f444d 100644 --- a/seed/test-challenges.js +++ b/seed/test-challenges.js @@ -51,8 +51,23 @@ function fillAssert(t) { return assert; } -function createTest({ title, tests = [], solutions = [] }) { +function createTest({ + title, + tests = [], + solutions = [], + head = '', + tail = '' +}) { + solutions = solutions.filter(solution => !!solution); + tests = tests.filter(test => !!test); const plan = tests.length; + if (!plan) { + return Observable.just({ + title, + type: 'missing' + }); + } + return Observable.fromCallback(tape)(title) .doOnNext(t => solutions.length ? t.plan(plan) : t.end()) .flatMap(t => { @@ -64,16 +79,19 @@ function createTest({ title, tests = [], solutions = [] }) { }); } + return Observable.just(t) .map(fillAssert) /* eslint-disable no-unused-vars */ // assert is used within the eval .doOnNext(assert => { - /* eslint-enable no-unused-vars */ solutions.forEach(solution => { tests.forEach(test => { + const code = head + solution + tail; + const editor = { getValue() { return code; } }; + /* eslint-enable no-unused-vars */ try { - eval(solution + ';;' + test); + (() => { return eval(solution + ';;' + test); })(); } catch (e) { t.fail(e); }