diff --git a/public/js/lib/coursewares/coursewaresHCJQFramework_v0.1.1.js b/public/js/lib/coursewares/coursewaresHCJQFramework_v0.1.1.js
index 189f796c6a..236c80b05a 100644
--- a/public/js/lib/coursewares/coursewaresHCJQFramework_v0.1.1.js
+++ b/public/js/lib/coursewares/coursewaresHCJQFramework_v0.1.1.js
@@ -59,35 +59,42 @@ editor.on("change", function () {
});
var nodeEnv = prodOrDev === 'production' ? 'http://www.freecodecamp.com' : 'http://localhost:3001';
function updatePreview() {
+ goodTests = 0;
var previewFrame = document.getElementById('preview');
var preview = previewFrame.contentDocument || previewFrame.contentWindow.document;
preview.open();
- preview.write(libraryIncludes + editor.getValue());
+ $('#testSuite').empty();
+ preview.write(libraryIncludes + editor.getValue() + otherTestsForNow);
preview.close();
+
}
setTimeout(updatePreview, 300);
/**
- * Window postMessage receiving funtionality
+ * "post" methods
*/
-var eventMethod = window.addEventListener ? "addEventListener" : "attachEvent";
-var eventer = window[eventMethod];
-var messageEvent = eventMethod == "attachEvent" ? "onmessage" : "message";
-// Listen to message from child window
-eventer(messageEvent,function(e) {
- if (e.data === 'CompleteAwesomeSauce') {
- showCompletion();
- }
-},false);
-
-var postError = function(data) {
- console.log(Object.keys(data));
+var postSuccess = function(data) {
var testDoc = document.createElement("div");
$(testDoc)
- .html("
")
+ .html("")
+ .appendTo($('#testSuite'));
+ testSuccess();
+};
+
+var postError = function(data) {
+ var testDoc = document.createElement("div");
+ $(testDoc)
+ .html("")
.prependTo($('#testSuite'))
};
+var goodTests = 0;
+var testSuccess = function() {
+ goodTests++;
+ if (goodTests === tests.length) {
+ showCompletion();
+ }
+};
var challengeSeed = challengeSeed || null;
var tests = tests || [];
var allSeeds = '';
@@ -122,13 +129,12 @@ function doLinting () {
});
};
-
+//$('#testSuite').empty();
function showCompletion() {
var time = Math.floor(Date.now() / 1000) - started;
ga('send', 'event', 'Challenge', 'solved', challengeName + ', Time: ' + time);
$('#next-courseware-button').removeAttr('disabled');
$('#next-courseware-button').addClass('animated tada');
- console.log(!userLoggedIn);
if (!userLoggedIn) {
$('#complete-courseware-dialog').modal('show');
}
diff --git a/public/js/lib/coursewares/coursewaresJSFramework.js b/public/js/lib/coursewares/coursewaresJSFramework.js
index 72a24eff4d..60af334324 100644
--- a/public/js/lib/coursewares/coursewaresJSFramework.js
+++ b/public/js/lib/coursewares/coursewaresJSFramework.js
@@ -34,21 +34,6 @@ if (attempts) {
attempts = 0;
}
-// Default value for editor if one isn't provided in (i.e. a challenge)
-var nonChallengeValue = '/*Welcome to Bonfire, Free Code Camp\'s future CoderByte replacement.\n' +
- 'Please feel free to use Bonfire as an in-browser playground and linting tool.\n' +
- 'Note that you can also write tests using Chai.js by using the keywords assert and expect */\n\n' +
- 'function test() {\n' +
- ' assert(2 !== 3, "2 is not equal to 3");\n' +
- ' return [1,2,3].map(function(elem) {\n' +
- ' return elem * elem;\n' +
- ' });\n' +
- '}\n' +
- 'expect(test()).to.be.a("array");\n\n' +
- 'assert.deepEqual(test(), [1,4,9]);\n\n' +
- 'var foo = test();\n' +
- 'foo.should.be.a("array");\n\n' +
- 'test();\n';
var codeOutput = CodeMirror.fromTextArea(document.getElementById("codeOutput"), {
lineNumbers: false,
@@ -183,12 +168,13 @@ var createTestDisplay = function() {
var test = userTests[i];
var testDoc = document.createElement("div");
if (test.err != null) {
+ console.log('Should be displaying bad tests');
$(testDoc)
- .html("
" + test.text + "
" + test.err + "
")
+ .html("
" + test.text + "
" + test.err + "
")
.prependTo($('#testSuite'))
} else {
$(testDoc)
- .html("")
+ .html("")
.appendTo($('#testSuite'));
}
};
@@ -220,8 +206,11 @@ var runTests = function(err, data) {
}
} catch(error) {
allTestsPassed = false;
- console.log(error);
arr[ix].err = error.name + ":" + error.message;
+ } finally {
+ if (!test) {
+ createTestDisplay();
+ }
}
});
diff --git a/public/js/lib/coursewares/iFrameScripts.js b/public/js/lib/coursewares/iFrameScripts.js
index 5c3d38998f..86ac7cff28 100644
--- a/public/js/lib/coursewares/iFrameScripts.js
+++ b/public/js/lib/coursewares/iFrameScripts.js
@@ -1,18 +1,18 @@
(function() {
- var allTestsGood = true;
var expect = chai.expect;
var tests = parent.tests;
for (var i = 0; i < tests.length; i++) {
-
+ var thisTest = true;
try {
- eval(tests[i]);
+ eval(parent.tests[i]);
} catch (err) {
- parent.postError(err);
allTestsGood = false;
+ thisTest = false;
+ parent.postError(JSON.stringify(tests[i]));
} finally {
- if (allTestsGood) {
- parent.postMessage('CompleteAwesomeSauce', parent.nodeEnv);
+ if (thisTest) {
+ parent.postSuccess(JSON.stringify(tests[i]));
}
}
}
diff --git a/views/coursewares/showHTML.jade b/views/coursewares/showHTML.jade
index 0cd9ce5244..676aadf774 100644
--- a/views/coursewares/showHTML.jade
+++ b/views/coursewares/showHTML.jade
@@ -39,10 +39,8 @@ block content
button#less-info.btn.btn-info
span.ion-help-circled
| Less information
- br
- ul#testSuite.list-group
br
- script(src='/js/lib/coursewares/coursewaresHCJQFramework_v0.1.1.js')
+
- if (cc)
a.btn.btn-primary.btn-lg.btn-block#next-courseware-button
| Go to my next challenge
@@ -55,7 +53,8 @@ block content
a.btn.btn-lg.signup-btn.btn-block(href='/login') Sign in so you can save your progress
script.
var userLoggedIn = false;
- div.hidden
+ br
+ ul#testSuite.list-group
br
script(type="text/javascript").
@@ -71,7 +70,6 @@ block content
form.code
.form-group.codeMirrorView
textarea#codeEditor(autofocus=true)
- script(src='/js/lib/coursewares/coursewaresHCJQFramework_v0.1.1.js')
.col-md-4.col-lg-3
.hidden-xs.hidden-sm
img.iphone-position(src="https://s3.amazonaws.com/freecodecamp/iphone6-frame.png")
@@ -88,4 +86,5 @@ block content
.text-center
.animated.zoomInDown.delay-half
span.completion-icon.ion-checkmark-circled.text-primary
- a.animated.fadeIn.btn.btn-lg.signup-btn.btn-block(href='/login') Sign in so you can save your progress
\ No newline at end of file
+ a.animated.fadeIn.btn.btn-lg.signup-btn.btn-block(href='/login') Sign in so you can save your progress
+ script(src="/js/lib/coursewares/coursewaresHCJQFramework_v0.1.1.js")
diff --git a/views/coursewares/showJS.jade b/views/coursewares/showJS.jade
index 71c8e037e3..3570432d41 100644
--- a/views/coursewares/showJS.jade
+++ b/views/coursewares/showJS.jade
@@ -42,7 +42,7 @@ block content
.form-group.codeMirrorView
textarea#codeOutput
br
- #testSuite.hidden
+ #testSuite
br
script(type="text/javascript").
var tests = !{JSON.stringify(tests)};