70 lines
1.6 KiB
JavaScript
70 lines
1.6 KiB
JavaScript
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');
|
|
}
|
|
}; |