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.
		
		
		
		
		
			
		
			
				
					49 lines
				
				1.5 KiB
			
		
		
			
		
	
	
					49 lines
				
				1.5 KiB
			| 
											3 years ago
										 | 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(', ') + ' ]'); | ||
|  | }); |