Spaces:
Running
Running
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(', ') + ' ]'); | |
}); | |