UNPKG

@tutor/test-suite

Version:

The in app test-suite for Tutor.

39 lines (38 loc) 1.57 kB
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})()" } }; } }; };