Show tests on html view

This commit is contained in:
Nathan Leniz
2015-02-14 18:31:32 -05:00
parent 693b8fbb33
commit 9ac19023d9
4 changed files with 29 additions and 23 deletions

View File

@ -59,11 +59,14 @@ 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();
$('#testSuite').empty();
preview.write(libraryIncludes + editor.getValue() + otherTestsForNow);
preview.close();
}
setTimeout(updatePreview, 300);
@ -71,17 +74,27 @@ setTimeout(updatePreview, 300);
* "post" methods
*/
var postSuccess = function() {
showCompletion();
var postSuccess = function(data) {
var testDoc = document.createElement("div");
$(testDoc)
.html("<div class='row'><div class='col-xs-2 text-center'><i class='ion-checkmark-circled big-success-icon'></i></div><div class='col-xs-10 test-output test-vertical-center wrappable'>" + JSON.parse(data) + "</div></div><div class='ten-pixel-break'/>")
.appendTo($('#testSuite'));
testSuccess();
};
var postError = function(data) {
console.log(Object.keys(data));
var testDoc = document.createElement("div");
$(testDoc)
.html("<div class='row'><div class='col-xs-1 text-center'><i class='ion-close-circled big-error-icon'></i></div><div class='col-xs-11 test-output wrappable'>" + data + "</div></div><div class='ten-pixel-break'/>")
.html("<div class='row'><div class='col-xs-2 text-center'><i class='ion-close-circled big-error-icon'></i></div><div class='col-xs-10 test-output wrappable'>" + JSON.parse(data) + "</div></div><div class='ten-pixel-break'/>")
.prependTo($('#testSuite'))
};
var goodTests = 0;
var testSuccess = function() {
goodTests++;
if (goodTests === tests.length) {
showCompletion();
}
};
var challengeSeed = challengeSeed || null;
var tests = tests || [];
var allSeeds = '';
@ -116,7 +129,7 @@ function doLinting () {
});
};
//$('#testSuite').empty();
function showCompletion() {
var time = Math.floor(Date.now() / 1000) - started;
ga('send', 'event', 'Challenge', 'solved', challengeName + ', Time: ' + time);

View File

@ -1,21 +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) {
allTestsGood = false;
console.log('All tests are good?', allTestsGood);
parent.postError(err);
thisTest = false;
parent.postError(JSON.stringify(tests[i]));
} finally {
if (allTestsGood) {
console.log('You should not be able to see me if there are errors on teh screen!', allTestsGood);
parent.postSuccess();
if (thisTest) {
parent.postSuccess(JSON.stringify(tests[i]));
}
}
}

View File

@ -575,7 +575,7 @@
],
"tests": [
"expect($('img')).to.have.class('thick-green-border');",
"expect($('img')).to.have.css('border-color', 'rgb(0,255,0)');",
"expect($('img')).to.have.css('border-color', 'rgb(0, 255, 0)');",
"expect($('img')).to.have.css('border-width', '10px');"
],
"challengeSeed": [

View File

@ -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").
@ -88,7 +87,4 @@ block content
.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
script.
$(document).ready(function() {
script(src='/js/lib/coursewares/coursewaresHCJQFramework_v0.1.1.js')
});
script(src="/js/lib/coursewares/coursewaresHCJQFramework_v0.1.1.js")