-
Notifications
You must be signed in to change notification settings - Fork 12
/
Copy patherrors.js
51 lines (43 loc) · 1.62 KB
/
errors.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import inspect from '../lib/index.js'
import { expect } from 'chai'
describe('errors', () => {
it('returns `Error` for an empty Error', () => {
expect(inspect(new Error())).to.equal('Error')
})
it('also works with Error subclasses (TypeError)', () => {
expect(inspect(new TypeError())).to.equal('TypeError')
})
it('also works with Error subclasses (SyntaxError)', () => {
expect(inspect(new SyntaxError())).to.equal('SyntaxError')
})
it('also works with Error subclasses (ReferenceError)', () => {
expect(inspect(new ReferenceError())).to.equal('ReferenceError')
})
it('returns `Error{"message"}` for an Error("message")', () => {
expect(inspect(new Error('message'))).to.equal('Error: message')
})
describe('non-standard properties', () => {
it('adds non standard properties to end of output', () => {
const err = new Error('message')
err.code = 404
expect(inspect(err)).to.equal('Error: message { code: 404 }')
})
it('will properly inspect a non-string message property', () => {
const err = new Error('message')
err.message = { code: 404 }
expect(inspect(err)).to.equal('Error { message: { code: 404 } }')
})
it('detects circular references', () => {
const err = new Error('message')
err.fluff = err
expect(inspect(err)).to.equal('Error: message { fluff: [Circular] }')
})
})
describe('ignores built in properties', () => {
it('does not add property to output', () => {
const err = new Error('message')
err.cause = new Error('i caused you')
expect(inspect(err)).to.equal('Error: message')
})
})
})