module.exports = { tests: [], register: function(str_title, func_runtest) { this.tests.push({ title: str_title, run: func_runtest }); }, run: function() { var test = this.tests.shift(); var result = { title: test.title }; result.tests = test.run(); return result; }, run_all: function() { var passed = true; while(this.tests.length > 0) { var result = this.run(); console.log('Test: ' + result.title); for(var i in result.tests) { var res = result.tests[i].result ? 'SUCCESS' : 'FAILED'; console.log(result.tests[i].description + ' ' + res); passed = passed && result.tests[i].result; } } if(!passed) process.exit(1); }, result: function(str_description, boolean_result) { this.description = str_description; this.result = boolean_result; } }