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