You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.5 KiB
48 lines
1.5 KiB
var test = require('tape'); |
|
var ErrorWithCause = require('error-cause/Error'); |
|
|
|
var inspect = require('../'); |
|
|
|
test('type error', function (t) { |
|
t.plan(1); |
|
var aerr = new TypeError(); |
|
aerr.foo = 555; |
|
aerr.bar = [1, 2, 3]; |
|
|
|
var berr = new TypeError('tuv'); |
|
berr.baz = 555; |
|
|
|
var cerr = new SyntaxError(); |
|
cerr.message = 'whoa'; |
|
cerr['a-b'] = 5; |
|
|
|
var withCause = new ErrorWithCause('foo', { cause: 'bar' }); |
|
var withCausePlus = new ErrorWithCause('foo', { cause: 'bar' }); |
|
withCausePlus.foo = 'bar'; |
|
var withUndefinedCause = new ErrorWithCause('foo', { cause: undefined }); |
|
var withEnumerableCause = new Error('foo'); |
|
withEnumerableCause.cause = 'bar'; |
|
|
|
var obj = [ |
|
new TypeError(), |
|
new TypeError('xxx'), |
|
aerr, |
|
berr, |
|
cerr, |
|
withCause, |
|
withCausePlus, |
|
withUndefinedCause, |
|
withEnumerableCause |
|
]; |
|
t.equal(inspect(obj), '[ ' + [ |
|
'[TypeError]', |
|
'[TypeError: xxx]', |
|
'{ [TypeError] foo: 555, bar: [ 1, 2, 3 ] }', |
|
'{ [TypeError: tuv] baz: 555 }', |
|
'{ [SyntaxError: whoa] message: \'whoa\', \'a-b\': 5 }', |
|
'cause' in Error.prototype ? '[Error: foo]' : '{ [Error: foo] [cause]: \'bar\' }', |
|
'{ [Error: foo] ' + ('cause' in Error.prototype ? '' : '[cause]: \'bar\', ') + 'foo: \'bar\' }', |
|
'cause' in Error.prototype ? '[Error: foo]' : '{ [Error: foo] [cause]: undefined }', |
|
'{ [Error: foo] cause: \'bar\' }' |
|
].join(', ') + ' ]'); |
|
});
|
|
|