var Logger = require('../../util/logger.js'); var ErrorHandler = module.exports = { handle : function(err, results, finished) { finished = finished || function() {}; if (results && results.errors) { console.log(results.errmessages.join('\n')); } if (err) { Logger.enable(); if (!err.message) { err.message = 'There was an error while running the test.'; } ErrorHandler.logError(err); finished(false); process.exit(1); } else { var result = true; if (results.failed || results.errors) { result = false; } finished(result); } }, logWarning : function(message) { console.warn(Logger.colors.brown(message)); }, logError : function(err) { if (!err) { return; } var util = require('util'); console.error(''); var stackTrace = err && err.stack; if (!stackTrace) { var data; if (err.message) { data = err.data; err = err.message; } if (typeof err == 'string') { process.stderr.write(Logger.colors.red(err)); if (data) { if (typeof data == 'object' && Object.keys(data).length > 0) { data = util.inspect(data); } process.stderr.write(Logger.colors.stack_trace(data) + '\n'); } process.stderr.write('\n'); } else { console.error(err); } return; } var parts = stackTrace.split('\n'); process.stderr.write(Logger.colors.red(parts.shift()) + '\n'); process.stderr.write(parts.join('\n') + '\n\n'); } };