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