@@ -5,153 +5,64 @@ const common = require('../common');
5
5
const assert = require ( 'assert' ) ;
6
6
const errors = require ( 'internal/errors' ) ;
7
7
8
- function invalidKey ( key ) {
9
- return new RegExp ( `^An invalid error message key was used: ${ key } \\.$` ) ;
10
- }
11
-
12
- errors . E ( 'TEST_ERROR_1' , 'Error for testing purposes: %s' ) ;
13
- errors . E ( 'TEST_ERROR_2' , ( a , b ) => `${ a } ${ b } ` ) ;
8
+ errors . E ( 'TEST_ERROR_1' , 'Error for testing purposes: %s' ,
9
+ Error , TypeError , RangeError ) ;
10
+ errors . E ( 'TEST_ERROR_2' , ( a , b ) => `${ a } ${ b } ` , Error ) ;
14
11
15
12
{
16
- const err = new errors . Error ( ' TEST_ERROR_1' , 'test' ) ;
13
+ const err = new errors . codes . TEST_ERROR_1 ( 'test' ) ;
17
14
assert ( err instanceof Error ) ;
18
15
assert . strictEqual ( err . name , 'Error [TEST_ERROR_1]' ) ;
19
16
assert . strictEqual ( err . message , 'Error for testing purposes: test' ) ;
20
17
assert . strictEqual ( err . code , 'TEST_ERROR_1' ) ;
21
18
}
22
19
23
20
{
24
- const err = new errors . TypeError ( 'TEST_ERROR_1' , 'test' ) ;
21
+ const err = new errors . codes . TEST_ERROR_1 . TypeError ( 'test' ) ;
25
22
assert ( err instanceof TypeError ) ;
26
23
assert . strictEqual ( err . name , 'TypeError [TEST_ERROR_1]' ) ;
27
24
assert . strictEqual ( err . message , 'Error for testing purposes: test' ) ;
28
25
assert . strictEqual ( err . code , 'TEST_ERROR_1' ) ;
29
26
}
30
27
31
28
{
32
- const err = new errors . RangeError ( 'TEST_ERROR_1' , 'test' ) ;
29
+ const err = new errors . codes . TEST_ERROR_1 . RangeError ( 'test' ) ;
33
30
assert ( err instanceof RangeError ) ;
34
31
assert . strictEqual ( err . name , 'RangeError [TEST_ERROR_1]' ) ;
35
32
assert . strictEqual ( err . message , 'Error for testing purposes: test' ) ;
36
33
assert . strictEqual ( err . code , 'TEST_ERROR_1' ) ;
37
34
}
38
35
39
36
{
40
- const err = new errors . Error ( ' TEST_ERROR_2' , 'abc' , 'xyz' ) ;
37
+ const err = new errors . codes . TEST_ERROR_2 ( 'abc' , 'xyz' ) ;
41
38
assert ( err instanceof Error ) ;
42
39
assert . strictEqual ( err . name , 'Error [TEST_ERROR_2]' ) ;
43
40
assert . strictEqual ( err . message , 'abc xyz' ) ;
44
41
assert . strictEqual ( err . code , 'TEST_ERROR_2' ) ;
45
42
}
46
43
47
44
{
48
- const err = new errors . Error ( ' TEST_ERROR_1' ) ;
45
+ const err = new errors . codes . TEST_ERROR_1 ( ) ;
49
46
assert ( err instanceof Error ) ;
50
47
assert . strictEqual ( err . name , 'Error [TEST_ERROR_1]' ) ;
51
48
assert . strictEqual ( err . message , 'Error for testing purposes: %s' ) ;
52
49
assert . strictEqual ( err . code , 'TEST_ERROR_1' ) ;
53
50
}
54
51
55
- common . expectsError (
56
- ( ) => new errors . Error ( 'TEST_FOO_KEY' ) ,
57
- {
58
- code : 'ERR_ASSERTION' ,
59
- message : invalidKey ( 'TEST_FOO_KEY' )
60
- } ) ;
61
- // Calling it twice yields same result (using the key does not create it)
62
- common . expectsError (
63
- ( ) => new errors . Error ( 'TEST_FOO_KEY' ) ,
64
- {
65
- code : 'ERR_ASSERTION' ,
66
- message : invalidKey ( 'TEST_FOO_KEY' )
67
- } ) ;
68
- common . expectsError (
69
- ( ) => new errors . Error ( 1 ) ,
70
- {
71
- code : 'ERR_ASSERTION' ,
72
- message : invalidKey ( 1 )
73
- } ) ;
74
- common . expectsError (
75
- ( ) => new errors . Error ( { } ) ,
76
- {
77
- code : 'ERR_ASSERTION' ,
78
- message : invalidKey ( '\\[object Object\\]' )
79
- } ) ;
80
- common . expectsError (
81
- ( ) => new errors . Error ( [ ] ) ,
82
- {
83
- code : 'ERR_ASSERTION' ,
84
- message : invalidKey ( '' )
85
- } ) ;
86
- common . expectsError (
87
- ( ) => new errors . Error ( true ) ,
88
- {
89
- code : 'ERR_ASSERTION' ,
90
- message : invalidKey ( 'true' )
91
- } ) ;
92
- common . expectsError (
93
- ( ) => new errors . TypeError ( 1 ) ,
94
- {
95
- code : 'ERR_ASSERTION' ,
96
- message : invalidKey ( 1 )
97
- } ) ;
98
- common . expectsError (
99
- ( ) => new errors . TypeError ( { } ) ,
100
- {
101
- code : 'ERR_ASSERTION' ,
102
- message : invalidKey ( '\\[object Object\\]' )
103
- } ) ;
104
- common . expectsError (
105
- ( ) => new errors . TypeError ( [ ] ) ,
106
- {
107
- code : 'ERR_ASSERTION' ,
108
- message : invalidKey ( '' )
109
- } ) ;
110
- common . expectsError (
111
- ( ) => new errors . TypeError ( true ) ,
112
- {
113
- code : 'ERR_ASSERTION' ,
114
- message : invalidKey ( 'true' )
115
- } ) ;
116
- common . expectsError (
117
- ( ) => new errors . RangeError ( 1 ) ,
118
- {
119
- code : 'ERR_ASSERTION' ,
120
- message : invalidKey ( 1 )
121
- } ) ;
122
- common . expectsError (
123
- ( ) => new errors . RangeError ( { } ) ,
124
- {
125
- code : 'ERR_ASSERTION' ,
126
- message : invalidKey ( '\\[object Object\\]' )
127
- } ) ;
128
- common . expectsError (
129
- ( ) => new errors . RangeError ( [ ] ) ,
130
- {
131
- code : 'ERR_ASSERTION' ,
132
- message : invalidKey ( '' )
133
- } ) ;
134
- common . expectsError (
135
- ( ) => new errors . RangeError ( true ) ,
136
- {
137
- code : 'ERR_ASSERTION' ,
138
- message : invalidKey ( 'true' )
139
- } ) ;
140
-
141
52
// Tests for common.expectsError
142
53
common . expectsError ( ( ) => {
143
- throw new errors . TypeError ( 'TEST_ERROR_1' , 'a' ) ;
54
+ throw new errors . codes . TEST_ERROR_1 . TypeError ( 'a' ) ;
144
55
} , { code : 'TEST_ERROR_1' } ) ;
145
56
common . expectsError ( ( ) => {
146
- throw new errors . TypeError ( 'TEST_ERROR_1' , 'a' ) ;
57
+ throw new errors . codes . TEST_ERROR_1 . TypeError ( 'a' ) ;
147
58
} , { code : 'TEST_ERROR_1' ,
148
59
type : TypeError ,
149
60
message : / ^ E r r o r f o r t e s t i n g / } ) ;
150
61
common . expectsError ( ( ) => {
151
- throw new errors . TypeError ( 'TEST_ERROR_1' , 'a' ) ;
62
+ throw new errors . codes . TEST_ERROR_1 . TypeError ( 'a' ) ;
152
63
} , { code : 'TEST_ERROR_1' , type : TypeError } ) ;
153
64
common . expectsError ( ( ) => {
154
- throw new errors . TypeError ( 'TEST_ERROR_1' , 'a' ) ;
65
+ throw new errors . codes . TEST_ERROR_1 . TypeError ( 'a' ) ;
155
66
} , {
156
67
code : 'TEST_ERROR_1' ,
157
68
type : TypeError ,
@@ -160,7 +71,7 @@ common.expectsError(() => {
160
71
161
72
common . expectsError ( ( ) => {
162
73
common . expectsError ( ( ) => {
163
- throw new errors . TypeError ( 'TEST_ERROR_1' , 'a' ) ;
74
+ throw new errors . codes . TEST_ERROR_1 . TypeError ( 'a' ) ;
164
75
} , { code : 'TEST_ERROR_1' , type : RangeError } ) ;
165
76
} , {
166
77
code : 'ERR_ASSERTION' ,
@@ -169,7 +80,7 @@ common.expectsError(() => {
169
80
170
81
common . expectsError ( ( ) => {
171
82
common . expectsError ( ( ) => {
172
- throw new errors . TypeError ( 'TEST_ERROR_1' , 'a' ) ;
83
+ throw new errors . codes . TEST_ERROR_1 . TypeError ( 'a' ) ;
173
84
} , { code : 'TEST_ERROR_1' ,
174
85
type : TypeError ,
175
86
message : / ^ E r r o r f o r t e s t i n g 2 / } ) ;
@@ -318,25 +229,25 @@ assert.strictEqual(
318
229
319
230
{
320
231
const { kMaxLength } = process . binding ( 'buffer' ) ;
321
- const error = new errors . Error ( ' ERR_BUFFER_TOO_LARGE' ) ;
232
+ const error = new errors . codes . ERR_BUFFER_TOO_LARGE ( ) ;
322
233
assert . strictEqual (
323
234
error . message ,
324
235
`Cannot create a Buffer larger than 0x${ kMaxLength . toString ( 16 ) } bytes`
325
236
) ;
326
237
}
327
238
328
239
{
329
- const error = new errors . Error ( ' ERR_INVALID_ARG_VALUE' , 'foo' , '\u0000bar' ) ;
240
+ const error = new errors . codes . ERR_INVALID_ARG_VALUE ( 'foo' , '\u0000bar' ) ;
330
241
assert . strictEqual (
331
242
error . message ,
332
243
'The argument \'foo\' is invalid. Received \'\\u0000bar\''
333
244
) ;
334
245
}
335
246
336
247
{
337
- const error = new errors . Error (
338
- 'ERR_INVALID_ARG_VALUE' ,
339
- 'foo' , { a : 1 } , 'must have property \'b\'' ) ;
248
+ const error = new errors . codes . ERR_INVALID_ARG_VALUE (
249
+ 'foo' , { a : 1 } , 'must have property \'b\''
250
+ ) ;
340
251
assert . strictEqual (
341
252
error . message ,
342
253
'The argument \'foo\' must have property \'b\'. Received { a: 1 }'
@@ -346,7 +257,7 @@ assert.strictEqual(
346
257
// Test that `code` property is mutable and that changing it does not change the
347
258
// name.
348
259
{
349
- const myError = new errors . Error ( ' ERR_TLS_HANDSHAKE_TIMEOUT' ) ;
260
+ const myError = new errors . codes . ERR_TLS_HANDSHAKE_TIMEOUT ( ) ;
350
261
assert . strictEqual ( myError . code , 'ERR_TLS_HANDSHAKE_TIMEOUT' ) ;
351
262
assert . strictEqual ( myError . hasOwnProperty ( 'code' ) , false ) ;
352
263
assert . strictEqual ( myError . hasOwnProperty ( 'name' ) , false ) ;
@@ -364,7 +275,7 @@ assert.strictEqual(
364
275
// `console.log()` results, which is the behavior of `Error` objects in the
365
276
// browser. Note that `name` becomes enumerable after being assigned.
366
277
{
367
- const myError = new errors . Error ( ' ERR_TLS_HANDSHAKE_TIMEOUT' ) ;
278
+ const myError = new errors . codes . ERR_TLS_HANDSHAKE_TIMEOUT ( ) ;
368
279
assert . deepStrictEqual ( Object . keys ( myError ) , [ ] ) ;
369
280
const initialToString = myError . toString ( ) ;
370
281
@@ -379,7 +290,7 @@ assert.strictEqual(
379
290
{
380
291
let initialConsoleLog = '' ;
381
292
common . hijackStdout ( ( data ) => { initialConsoleLog += data ; } ) ;
382
- const myError = new errors . Error ( ' ERR_TLS_HANDSHAKE_TIMEOUT' ) ;
293
+ const myError = new errors . codes . ERR_TLS_HANDSHAKE_TIMEOUT ( ) ;
383
294
assert . deepStrictEqual ( Object . keys ( myError ) , [ ] ) ;
384
295
const initialToString = myError . toString ( ) ;
385
296
console . log ( myError ) ;
0 commit comments