Comparing version 0.4.5 to 0.5.0
@@ -318,9 +318,13 @@ // Load modules | ||
exports.abort = function (message) { | ||
exports.abortThrow = false; | ||
if (process.env.NODE_ENV === 'test') { | ||
exports.abort = function (message, hideStack) { | ||
if (process.env.NODE_ENV === 'test' || exports.abortThrow === true) { | ||
throw new Error(message || 'Unknown error'); | ||
} | ||
else { | ||
console.log('ABORT: ' + message + '\n\t' + exports.displayStack(1).join('\n\t')); | ||
var stack = hideStack ? '' : exports.displayStack(1).join('\n\t'); | ||
console.log('ABORT: ' + message + '\n\t' + stack); | ||
process.exit(1); | ||
@@ -331,6 +335,6 @@ } | ||
exports.assert = function (condition, message) { | ||
exports.assert = function (condition, message, hideStack) { | ||
if (!condition) { | ||
exports.abort(message); | ||
exports.abort(message, hideStack); | ||
} | ||
@@ -494,2 +498,2 @@ }; | ||
}); | ||
}; | ||
}; |
{ | ||
"name": "hoek", | ||
"description": "General purpose node utilities", | ||
"version": "0.4.5", | ||
"version": "0.5.0", | ||
"author": "Eran Hammer <eran@hueniverse.com> (http://hueniverse.com)", | ||
@@ -6,0 +6,0 @@ "contributors":[ |
@@ -375,2 +375,71 @@ // Load modules | ||
}); | ||
it('should throw when not in test mode and abortThrow is true', function (done) { | ||
var env = process.env.NODE_ENV; | ||
process.env.NODE_ENV = 'nottatest'; | ||
Hoek.abortThrow = true; | ||
var fn = function () { | ||
Hoek.abort('my error message'); | ||
}; | ||
expect(fn).to.throw('my error message'); | ||
Hoek.abortThrow = false; | ||
process.env.NODE_ENV = env; | ||
done(); | ||
}); | ||
it('should respect hideStack argument', function (done) { | ||
var env = process.env.NODE_ENV; | ||
var write = process.stdout.write; | ||
var exit = process.exit; | ||
var output = ''; | ||
process.exit = function () {}; | ||
process.env.NODE_ENV = ''; | ||
process.stdout.write = function (message) { | ||
output = message; | ||
}; | ||
Hoek.abort('my error message', true); | ||
process.env.NODE_ENV = env; | ||
process.stdout.write = write; | ||
process.exit = exit; | ||
expect(output).to.equal('ABORT: my error message\n\t\n'); | ||
done(); | ||
}); | ||
it('should default to showing stack', function (done) { | ||
var env = process.env.NODE_ENV; | ||
var write = process.stdout.write; | ||
var exit = process.exit; | ||
var output = ''; | ||
process.exit = function () {}; | ||
process.env.NODE_ENV = ''; | ||
process.stdout.write = function (message) { | ||
output = message; | ||
}; | ||
Hoek.abort('my error message'); | ||
process.env.NODE_ENV = env; | ||
process.stdout.write = write; | ||
process.exit = exit; | ||
expect(output).to.contain('index.js'); | ||
done(); | ||
}); | ||
}); | ||
@@ -390,2 +459,27 @@ | ||
}); | ||
it('should respect hideStack argument', function (done) { | ||
var env = process.env.NODE_ENV; | ||
var write = process.stdout.write; | ||
var exit = process.exit; | ||
var output = ''; | ||
process.exit = function () {}; | ||
process.env.NODE_ENV = ''; | ||
process.stdout.write = function (message) { | ||
output = message; | ||
}; | ||
Hoek.assert(false, 'my error message', true); | ||
process.env.NODE_ENV = env; | ||
process.stdout.write = write; | ||
process.exit = exit; | ||
expect(output).to.equal('ABORT: my error message\n\t\n'); | ||
done(); | ||
}); | ||
}); | ||
@@ -392,0 +486,0 @@ |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
78785
832
20