Template Upload
This commit is contained in:
100
node_modules/verror/tests/tst.inherit.js
generated
vendored
Normal file
100
node_modules/verror/tests/tst.inherit.js
generated
vendored
Normal file
@ -0,0 +1,100 @@
|
||||
/*
|
||||
* tst.inherit.js: test that inheriting from VError and WError work as expected.
|
||||
*/
|
||||
|
||||
var mod_assert = require('assert');
|
||||
var mod_util = require('util');
|
||||
|
||||
var mod_verror = require('../lib/verror');
|
||||
|
||||
var VError = mod_verror.VError;
|
||||
var WError = mod_verror.WError;
|
||||
var err, suberr;
|
||||
|
||||
function VErrorChild()
|
||||
{
|
||||
VError.apply(this, Array.prototype.slice.call(arguments));
|
||||
}
|
||||
|
||||
mod_util.inherits(VErrorChild, VError);
|
||||
VErrorChild.prototype.name = 'VErrorChild';
|
||||
|
||||
|
||||
function WErrorChild()
|
||||
{
|
||||
WError.apply(this, Array.prototype.slice.call(arguments));
|
||||
}
|
||||
|
||||
mod_util.inherits(WErrorChild, WError);
|
||||
WErrorChild.prototype.name = 'WErrorChild';
|
||||
|
||||
|
||||
suberr = new Error('root cause');
|
||||
err = new VErrorChild(suberr, 'top');
|
||||
mod_assert.ok(err instanceof Error);
|
||||
mod_assert.ok(err instanceof VError);
|
||||
mod_assert.ok(err instanceof VErrorChild);
|
||||
mod_assert.equal(err.cause(), suberr);
|
||||
mod_assert.equal(err.message, 'top: root cause');
|
||||
mod_assert.equal(err.toString(), 'VErrorChild: top: root cause');
|
||||
mod_assert.equal(err.stack.split('\n')[0], 'VErrorChild: top: root cause');
|
||||
|
||||
suberr = new Error('root cause');
|
||||
err = new WErrorChild(suberr, 'top');
|
||||
mod_assert.ok(err instanceof Error);
|
||||
mod_assert.ok(err instanceof WError);
|
||||
mod_assert.ok(err instanceof WErrorChild);
|
||||
mod_assert.equal(err.cause(), suberr);
|
||||
mod_assert.equal(err.message, 'top');
|
||||
mod_assert.equal(err.toString(),
|
||||
'WErrorChild: top; caused by Error: root cause');
|
||||
mod_assert.equal(err.stack.split('\n')[0],
|
||||
'WErrorChild: top; caused by Error: root cause');
|
||||
|
||||
|
||||
// Test that `<Ctor>.toString()` uses the ctor name. I.e. setting
|
||||
// `<Ctor>.prototype.name` isn't necessary.
|
||||
function VErrorChildNoName() {
|
||||
VError.apply(this, Array.prototype.slice.call(arguments));
|
||||
}
|
||||
mod_util.inherits(VErrorChildNoName, VError);
|
||||
err = new VErrorChildNoName('top');
|
||||
mod_assert.equal(err.toString(), 'VErrorChildNoName: top');
|
||||
|
||||
function WErrorChildNoName() {
|
||||
WError.apply(this, Array.prototype.slice.call(arguments));
|
||||
}
|
||||
mod_util.inherits(WErrorChildNoName, WError);
|
||||
err = new WErrorChildNoName('top');
|
||||
mod_assert.equal(err.toString(), 'WErrorChildNoName: top');
|
||||
|
||||
|
||||
// Test that `<Ctor>.prototype.name` can be used for the `.toString()`
|
||||
// when the ctor is anonymous.
|
||||
var VErrorChildAnon = function () {
|
||||
VError.apply(this, Array.prototype.slice.call(arguments));
|
||||
};
|
||||
mod_util.inherits(VErrorChildAnon, VError);
|
||||
VErrorChildAnon.prototype.name = 'VErrorChildAnon';
|
||||
err = new VErrorChildAnon('top');
|
||||
mod_assert.equal(err.toString(), 'VErrorChildAnon: top');
|
||||
|
||||
var WErrorChildAnon = function () {
|
||||
WError.apply(this, Array.prototype.slice.call(arguments));
|
||||
};
|
||||
mod_util.inherits(WErrorChildAnon, WError);
|
||||
WErrorChildAnon.prototype.name = 'WErrorChildAnon';
|
||||
err = new WErrorChildAnon('top');
|
||||
mod_assert.equal(err.toString(), 'WErrorChildAnon: top');
|
||||
|
||||
|
||||
// Test get appropriate exception name in `.toString()` when reconstituting
|
||||
// an error instance a la:
|
||||
// https://github.com/mcavage/node-fast/blob/master/lib/client.js#L215
|
||||
err = new VError('top');
|
||||
err.name = 'CustomNameError';
|
||||
mod_assert.equal(err.toString(), 'CustomNameError: top');
|
||||
|
||||
err = new WError('top');
|
||||
err.name = 'CustomNameError';
|
||||
mod_assert.equal(err.toString(), 'CustomNameError: top');
|
156
node_modules/verror/tests/tst.verror.js
generated
vendored
Normal file
156
node_modules/verror/tests/tst.verror.js
generated
vendored
Normal file
@ -0,0 +1,156 @@
|
||||
/*
|
||||
* tst.verror.js: tests basic functionality of the VError class.
|
||||
*/
|
||||
|
||||
var mod_assert = require('assert');
|
||||
var mod_verror = require('../lib/verror');
|
||||
|
||||
var VError = mod_verror.VError;
|
||||
var WError = mod_verror.WError;
|
||||
|
||||
var err, suberr, stack, substack;
|
||||
|
||||
/*
|
||||
* Remove full paths and relative line numbers from stack traces so that we can
|
||||
* compare against "known-good" output.
|
||||
*/
|
||||
function cleanStack(stacktxt)
|
||||
{
|
||||
var re = new RegExp(__filename + ':\\d+:\\d+', 'gm');
|
||||
stacktxt = stacktxt.replace(re, 'tst.verror.js');
|
||||
return (stacktxt);
|
||||
}
|
||||
|
||||
/*
|
||||
* Save the generic parts of all stack traces so we can avoid hardcoding
|
||||
* Node-specific implementation details in our testing of stack traces.
|
||||
*/
|
||||
var nodestack = new Error().stack.split('\n').slice(2).join('\n');
|
||||
|
||||
/* no arguments */
|
||||
err = new VError();
|
||||
mod_assert.equal(err.name, 'VError');
|
||||
mod_assert.ok(err instanceof Error);
|
||||
mod_assert.ok(err instanceof VError);
|
||||
mod_assert.equal(err.message, '');
|
||||
mod_assert.ok(err.cause() === undefined);
|
||||
stack = cleanStack(err.stack);
|
||||
mod_assert.equal(stack, [
|
||||
'VError',
|
||||
' at Object.<anonymous> (tst.verror.js)'
|
||||
].join('\n') + '\n' + nodestack);
|
||||
|
||||
/* options-argument form */
|
||||
err = new VError({});
|
||||
mod_assert.equal(err.message, '');
|
||||
mod_assert.ok(err.cause() === undefined);
|
||||
|
||||
/* simple message */
|
||||
err = new VError('my error');
|
||||
mod_assert.equal(err.message, 'my error');
|
||||
mod_assert.ok(err.cause() === undefined);
|
||||
stack = cleanStack(err.stack);
|
||||
mod_assert.equal(stack, [
|
||||
'VError: my error',
|
||||
' at Object.<anonymous> (tst.verror.js)'
|
||||
].join('\n') + '\n' + nodestack);
|
||||
|
||||
err = new VError({}, 'my error');
|
||||
mod_assert.equal(err.message, 'my error');
|
||||
mod_assert.ok(err.cause() === undefined);
|
||||
|
||||
/* printf-style message */
|
||||
err = new VError('%s error: %3d problems', 'very bad', 15);
|
||||
mod_assert.equal(err.message, 'very bad error: 15 problems');
|
||||
mod_assert.ok(err.cause() === undefined);
|
||||
|
||||
err = new VError({}, '%s error: %3d problems', 'very bad', 15);
|
||||
mod_assert.equal(err.message, 'very bad error: 15 problems');
|
||||
mod_assert.ok(err.cause() === undefined);
|
||||
|
||||
/* caused by another error, with no additional message */
|
||||
suberr = new Error('root cause');
|
||||
err = new VError(suberr);
|
||||
mod_assert.equal(err.message, ': root cause');
|
||||
mod_assert.ok(err.cause() === suberr);
|
||||
|
||||
err = new VError({ 'cause': suberr });
|
||||
mod_assert.equal(err.message, ': root cause');
|
||||
mod_assert.ok(err.cause() === suberr);
|
||||
|
||||
/* caused by another error, with annotation */
|
||||
err = new VError(suberr, 'proximate cause: %d issues', 3);
|
||||
mod_assert.equal(err.message, 'proximate cause: 3 issues: root cause');
|
||||
mod_assert.ok(err.cause() === suberr);
|
||||
stack = cleanStack(err.stack);
|
||||
mod_assert.equal(stack, [
|
||||
'VError: proximate cause: 3 issues: root cause',
|
||||
' at Object.<anonymous> (tst.verror.js)'
|
||||
].join('\n') + '\n' + nodestack);
|
||||
|
||||
err = new VError({ 'cause': suberr }, 'proximate cause: %d issues', 3);
|
||||
mod_assert.equal(err.message, 'proximate cause: 3 issues: root cause');
|
||||
mod_assert.ok(err.cause() === suberr);
|
||||
stack = cleanStack(err.stack);
|
||||
mod_assert.equal(stack, [
|
||||
'VError: proximate cause: 3 issues: root cause',
|
||||
' at Object.<anonymous> (tst.verror.js)'
|
||||
].join('\n') + '\n' + nodestack);
|
||||
|
||||
/* caused by another VError, with annotation. */
|
||||
suberr = err;
|
||||
err = new VError(suberr, 'top');
|
||||
mod_assert.equal(err.message, 'top: proximate cause: 3 issues: root cause');
|
||||
mod_assert.ok(err.cause() === suberr);
|
||||
|
||||
err = new VError({ 'cause': suberr }, 'top');
|
||||
mod_assert.equal(err.message, 'top: proximate cause: 3 issues: root cause');
|
||||
mod_assert.ok(err.cause() === suberr);
|
||||
|
||||
/* caused by a WError */
|
||||
suberr = new WError(new Error('root cause'), 'mid');
|
||||
err = new VError(suberr, 'top');
|
||||
mod_assert.equal(err.message, 'top: mid');
|
||||
mod_assert.ok(err.cause() === suberr);
|
||||
|
||||
/* null cause (for backwards compatibility with older versions) */
|
||||
err = new VError(null, 'my error');
|
||||
mod_assert.equal(err.message, 'my error');
|
||||
mod_assert.ok(err.cause() === undefined);
|
||||
stack = cleanStack(err.stack);
|
||||
mod_assert.equal(stack, [
|
||||
'VError: my error',
|
||||
' at Object.<anonymous> (tst.verror.js)'
|
||||
].join('\n') + '\n' + nodestack);
|
||||
|
||||
err = new VError({ 'cause': null }, 'my error');
|
||||
mod_assert.equal(err.message, 'my error');
|
||||
mod_assert.ok(err.cause() === undefined);
|
||||
|
||||
err = new VError(null);
|
||||
mod_assert.equal(err.message, '');
|
||||
mod_assert.ok(err.cause() === undefined);
|
||||
stack = cleanStack(err.stack);
|
||||
mod_assert.equal(stack, [
|
||||
'VError',
|
||||
' at Object.<anonymous> (tst.verror.js)'
|
||||
].join('\n') + '\n' + nodestack);
|
||||
|
||||
/* constructorOpt */
|
||||
function makeErr(options) {
|
||||
return (new VError(options, 'test error'));
|
||||
}
|
||||
err = makeErr({});
|
||||
stack = cleanStack(err.stack);
|
||||
mod_assert.equal(stack, [
|
||||
'VError: test error',
|
||||
' at makeErr (tst.verror.js)',
|
||||
' at Object.<anonymous> (tst.verror.js)'
|
||||
].join('\n') + '\n' + nodestack);
|
||||
|
||||
err = makeErr({ 'constructorOpt': makeErr });
|
||||
stack = cleanStack(err.stack);
|
||||
mod_assert.equal(stack, [
|
||||
'VError: test error',
|
||||
' at Object.<anonymous> (tst.verror.js)'
|
||||
].join('\n') + '\n' + nodestack);
|
179
node_modules/verror/tests/tst.werror.js
generated
vendored
Normal file
179
node_modules/verror/tests/tst.werror.js
generated
vendored
Normal file
@ -0,0 +1,179 @@
|
||||
/*
|
||||
* tst.werror.js: tests basic functionality of the WError class.
|
||||
*/
|
||||
|
||||
var mod_assert = require('assert');
|
||||
var mod_verror = require('../lib/verror');
|
||||
|
||||
var VError = mod_verror.VError;
|
||||
var WError = mod_verror.WError;
|
||||
|
||||
var err, suberr, stack, substack;
|
||||
|
||||
/*
|
||||
* Remove full paths and relative line numbers from stack traces so that we can
|
||||
* compare against "known-good" output.
|
||||
*/
|
||||
function cleanStack(stacktxt)
|
||||
{
|
||||
var re = new RegExp(__filename + ':\\d+:\\d+', 'gm');
|
||||
stacktxt = stacktxt.replace(re, 'tst.werror.js');
|
||||
return (stacktxt);
|
||||
}
|
||||
|
||||
/*
|
||||
* Save the generic parts of all stack traces so we can avoid hardcoding
|
||||
* Node-specific implementation details in our testing of stack traces.
|
||||
*/
|
||||
var nodestack = new Error().stack.split('\n').slice(2).join('\n');
|
||||
|
||||
/* no arguments */
|
||||
err = new WError();
|
||||
mod_assert.equal(err.name, 'WError');
|
||||
mod_assert.ok(err instanceof Error);
|
||||
mod_assert.ok(err instanceof WError);
|
||||
mod_assert.equal(err.message, '');
|
||||
mod_assert.equal(err.toString(), 'WError');
|
||||
mod_assert.ok(err.cause() === undefined);
|
||||
stack = cleanStack(err.stack);
|
||||
mod_assert.equal(stack, [
|
||||
'WError',
|
||||
' at Object.<anonymous> (tst.werror.js)'
|
||||
].join('\n') + '\n' + nodestack);
|
||||
|
||||
/* options-argument form */
|
||||
err = new WError({});
|
||||
mod_assert.equal(err.message, '');
|
||||
mod_assert.equal(err.toString(), 'WError');
|
||||
mod_assert.ok(err.cause() === undefined);
|
||||
|
||||
/* simple message */
|
||||
err = new WError('my error');
|
||||
mod_assert.equal(err.message, 'my error');
|
||||
mod_assert.equal(err.toString(), 'WError: my error');
|
||||
mod_assert.ok(err.cause() === undefined);
|
||||
stack = cleanStack(err.stack);
|
||||
mod_assert.equal(stack, [
|
||||
'WError: my error',
|
||||
' at Object.<anonymous> (tst.werror.js)'
|
||||
].join('\n') + '\n' + nodestack);
|
||||
|
||||
err = new WError({}, 'my error');
|
||||
mod_assert.equal(err.message, 'my error');
|
||||
mod_assert.equal(err.toString(), 'WError: my error');
|
||||
mod_assert.ok(err.cause() === undefined);
|
||||
|
||||
/* printf-style message */
|
||||
err = new WError('%s error: %3d problems', 'very bad', 15);
|
||||
mod_assert.equal(err.message, 'very bad error: 15 problems');
|
||||
mod_assert.equal(err.toString(), 'WError: very bad error: 15 problems');
|
||||
mod_assert.ok(err.cause() === undefined);
|
||||
|
||||
err = new WError({}, '%s error: %3d problems', 'very bad', 15);
|
||||
mod_assert.equal(err.message, 'very bad error: 15 problems');
|
||||
mod_assert.equal(err.toString(), 'WError: very bad error: 15 problems');
|
||||
mod_assert.ok(err.cause() === undefined);
|
||||
|
||||
/* caused by another error, with no additional message */
|
||||
suberr = new Error('root cause');
|
||||
err = new WError(suberr);
|
||||
mod_assert.equal(err.message, '');
|
||||
mod_assert.equal(err.toString(), 'WError; caused by Error: root cause');
|
||||
mod_assert.ok(err.cause() === suberr);
|
||||
|
||||
err = new WError({ 'cause': suberr });
|
||||
mod_assert.equal(err.message, '');
|
||||
mod_assert.equal(err.toString(), 'WError; caused by Error: root cause');
|
||||
mod_assert.ok(err.cause() === suberr);
|
||||
|
||||
/* caused by another error, with annotation */
|
||||
err = new WError(suberr, 'proximate cause: %d issues', 3);
|
||||
mod_assert.equal(err.message, 'proximate cause: 3 issues');
|
||||
mod_assert.equal(err.toString(), 'WError: proximate cause: 3 issues; ' +
|
||||
'caused by Error: root cause');
|
||||
mod_assert.ok(err.cause() === suberr);
|
||||
stack = cleanStack(err.stack);
|
||||
mod_assert.equal(stack, [
|
||||
'WError: proximate cause: 3 issues; caused by Error: root cause',
|
||||
' at Object.<anonymous> (tst.werror.js)'
|
||||
].join('\n') + '\n' + nodestack);
|
||||
|
||||
err = new WError({ 'cause': suberr }, 'proximate cause: %d issues', 3);
|
||||
mod_assert.equal(err.message, 'proximate cause: 3 issues');
|
||||
mod_assert.equal(err.toString(), 'WError: proximate cause: 3 issues; ' +
|
||||
'caused by Error: root cause');
|
||||
mod_assert.ok(err.cause() === suberr);
|
||||
stack = cleanStack(err.stack);
|
||||
mod_assert.equal(stack, [
|
||||
'WError: proximate cause: 3 issues; caused by Error: root cause',
|
||||
' at Object.<anonymous> (tst.werror.js)'
|
||||
].join('\n') + '\n' + nodestack);
|
||||
|
||||
/* caused by another WError, with annotation. */
|
||||
suberr = err;
|
||||
err = new WError(suberr, 'top');
|
||||
mod_assert.equal(err.message, 'top');
|
||||
mod_assert.equal(err.toString(), 'WError: top; caused by WError: ' +
|
||||
'proximate cause: 3 issues; caused by Error: root cause');
|
||||
mod_assert.ok(err.cause() === suberr);
|
||||
|
||||
err = new WError({ 'cause': suberr }, 'top');
|
||||
mod_assert.equal(err.message, 'top');
|
||||
mod_assert.equal(err.toString(), 'WError: top; caused by WError: ' +
|
||||
'proximate cause: 3 issues; caused by Error: root cause');
|
||||
mod_assert.ok(err.cause() === suberr);
|
||||
|
||||
/* caused by a VError */
|
||||
suberr = new VError(new Error('root cause'), 'mid');
|
||||
err = new WError(suberr, 'top');
|
||||
mod_assert.equal(err.message, 'top');
|
||||
mod_assert.equal(err.toString(),
|
||||
'WError: top; caused by VError: mid: root cause');
|
||||
mod_assert.ok(err.cause() === suberr);
|
||||
|
||||
/* null cause (for backwards compatibility with older versions) */
|
||||
err = new WError(null, 'my error');
|
||||
mod_assert.equal(err.message, 'my error');
|
||||
mod_assert.equal(err.toString(), 'WError: my error');
|
||||
mod_assert.ok(err.cause() === undefined);
|
||||
stack = cleanStack(err.stack);
|
||||
mod_assert.equal(stack, [
|
||||
'WError: my error',
|
||||
' at Object.<anonymous> (tst.werror.js)'
|
||||
].join('\n') + '\n' + nodestack);
|
||||
|
||||
err = new WError({ 'cause': null }, 'my error');
|
||||
mod_assert.equal(err.message, 'my error');
|
||||
mod_assert.equal(err.toString(), 'WError: my error');
|
||||
mod_assert.ok(err.cause() === undefined);
|
||||
|
||||
err = new WError(null);
|
||||
mod_assert.equal(err.message, '');
|
||||
mod_assert.equal(err.toString(), 'WError');
|
||||
mod_assert.ok(err.cause() === undefined);
|
||||
stack = cleanStack(err.stack);
|
||||
mod_assert.equal(stack, [
|
||||
'WError',
|
||||
' at Object.<anonymous> (tst.werror.js)'
|
||||
].join('\n') + '\n' + nodestack);
|
||||
|
||||
/* constructorOpt */
|
||||
function makeErr(options) {
|
||||
return (new WError(options, 'test error'));
|
||||
}
|
||||
err = makeErr({});
|
||||
mod_assert.equal(err.toString(), 'WError: test error');
|
||||
stack = cleanStack(err.stack);
|
||||
mod_assert.equal(stack, [
|
||||
'WError: test error',
|
||||
' at makeErr (tst.werror.js)',
|
||||
' at Object.<anonymous> (tst.werror.js)'
|
||||
].join('\n') + '\n' + nodestack);
|
||||
|
||||
err = makeErr({ 'constructorOpt': makeErr });
|
||||
mod_assert.equal(err.toString(), 'WError: test error');
|
||||
stack = cleanStack(err.stack);
|
||||
mod_assert.equal(stack, [
|
||||
'WError: test error',
|
||||
' at Object.<anonymous> (tst.werror.js)'
|
||||
].join('\n') + '\n' + nodestack);
|
Reference in New Issue
Block a user