@tutor/test-suite
Version:
The in app test-suite for Tutor.
39 lines (38 loc) • 1.57 kB
JavaScript
module.exports = function(callbacks) {
return {
api: function(code, runner, elem) {
var failed, passed, tests;
passed = 0;
failed = 0;
tests = [];
return {
remote: {
registerTest: function(name, code) {
tests.push(name);
return typeof callbacks.registerTest === "function" ? callbacks.registerTest({
name: name,
code: code
}, elem) : void 0;
},
pass: function(idx) {
passed++;
return callbacks.testResult(null, idx, elem);
},
fail: function(idx, error) {
failed++;
return callbacks.testResult(error, idx, elem);
},
finished: function(error) {
return callbacks.allResults(error, passed, tests.length - passed);
},
failed: function(e) {
return callbacks.allResults(e, 0, tests.length);
}
},
snippets: {
it: "(function(){\n var __it_index = 0;\n return function(name, fn) {\n registerTest(name, 'it(\"'+name+'\", ' + fn.toString() + ')');\n try {\n fn();\n pass(name);\n } catch (e) {\n if(typeof e == \"string\")\n fail(name, {isException: true, exception: e});\n else if (typeof(e.message) !== 'undefined')\n fail(name, {isException: true, exception: e.message});\n else\n fail(name, {isException: true, exception: \"unkown error\"});\n }\n __it_index++;\n }\n})()"
}
};
}
};
};