test: remove internal error tests · nodejs/node@1458711 (original) (raw)
`@@ -6,7 +6,6 @@ const {
`
6
6
` restoreStdout,
`
7
7
`} = require('../common/hijackstdio');
`
8
8
``
9
``
`-
const { internalBinding } = require('internal/test/binding');
`
10
9
`const assert = require('assert');
`
11
10
`const errors = require('internal/errors');
`
12
11
``
`@@ -101,125 +100,11 @@ common.expectsError(() => {
`
101
100
`message: /+ message: 'Error for testing purposes: a',\n- message: /^Error/
`
102
101
`});
`
103
102
``
104
``
`-
// Test ERR_INVALID_FD_TYPE
`
105
``
`-
assert.strictEqual(errors.getMessage('ERR_INVALID_FD_TYPE', ['a']),
`
106
``
`-
'Unsupported fd type: a');
`
107
``
-
108
``
`-
// Test ERR_INVALID_URL_SCHEME
`
109
``
`-
assert.strictEqual(errors.getMessage('ERR_INVALID_URL_SCHEME', ['file']),
`
110
``
`-
'The URL must be of scheme file');
`
111
``
`-
assert.strictEqual(errors.getMessage('ERR_INVALID_URL_SCHEME', [['file']]),
`
112
``
`-
'The URL must be of scheme file');
`
113
``
`-
assert.strictEqual(errors.getMessage('ERR_INVALID_URL_SCHEME',
`
114
``
`-
[['http', 'ftp']]),
`
115
``
`-
'The URL must be one of scheme http or ftp');
`
116
``
`-
assert.strictEqual(errors.getMessage('ERR_INVALID_URL_SCHEME',
`
117
``
`-
[['a', 'b', 'c']]),
`
118
``
`-
'The URL must be one of scheme a, b, or c');
`
119
``
`-
common.expectsError(
`
120
``
`-
() => errors.getMessage('ERR_INVALID_URL_SCHEME', [[]]),
`
121
``
`-
{
`
122
``
`-
code: 'ERR_ASSERTION',
`
123
``
`-
type: assert.AssertionError,
`
124
``
`-
message: /^At least one expected value needs to be specified$/
`
125
``
`-
});
`
126
``
-
127
``
`-
// Test ERR_MISSING_ARGS
`
128
``
`-
assert.strictEqual(errors.getMessage('ERR_MISSING_ARGS', ['name']),
`
129
``
`-
'The "name" argument must be specified');
`
130
``
`-
assert.strictEqual(errors.getMessage('ERR_MISSING_ARGS', ['name', 'value']),
`
131
``
`-
'The "name" and "value" arguments must be specified');
`
132
``
`-
assert.strictEqual(errors.getMessage('ERR_MISSING_ARGS', ['a', 'b', 'c']),
`
133
``
`-
'The "a", "b", and "c" arguments must be specified');
`
134
``
-
135
``
`-
// Test ERR_SOCKET_BAD_PORT
`
136
``
`-
assert.strictEqual(
`
137
``
`-
errors.getMessage('ERR_SOCKET_BAD_PORT', [0]),
`
138
``
`-
'Port should be >= 0 and < 65536. Received 0.');
`
139
``
-
140
``
`-
// Test ERR_TLS_CERT_ALTNAME_INVALID
`
141
``
`-
assert.strictEqual(
`
142
``
`-
errors.getMessage('ERR_TLS_CERT_ALTNAME_INVALID', ['altname']),
`
143
``
`-
'Hostname/IP does not match certificate's altnames: altname');
`
144
``
-
145
``
`-
assert.strictEqual(
`
146
``
`-
errors.getMessage('ERR_INVALID_PROTOCOL', ['bad protocol', 'http']),
`
147
``
`-
'Protocol "bad protocol" not supported. Expected "http"'
`
148
``
`-
);
`
149
``
-
150
``
`-
assert.strictEqual(
`
151
``
`-
errors.getMessage('ERR_HTTP_HEADERS_SENT', ['render']),
`
152
``
`-
'Cannot render headers after they are sent to the client'
`
153
``
`-
);
`
154
``
-
155
``
`-
assert.strictEqual(
`
156
``
`-
errors.getMessage('ERR_INVALID_HTTP_TOKEN', ['Method', 'foo']),
`
157
``
`-
'Method must be a valid HTTP token ["foo"]'
`
158
``
`-
);
`
159
``
-
160
``
`-
assert.strictEqual(
`
161
``
`-
errors.getMessage('ERR_OUT_OF_RANGE', ['A', 'some values', 'B']),
`
162
``
`-
'The value of "A" is out of range. It must be some values. Received B'
`
163
``
`-
);
`
164
``
-
165
``
`-
assert.strictEqual(
`
166
``
`-
errors.getMessage('ERR_UNESCAPED_CHARACTERS', ['Request path']),
`
167
``
`-
'Request path contains unescaped characters'
`
168
``
`-
);
`
169
``
-
170
``
`-
// Test ERR_DNS_SET_SERVERS_FAILED
`
171
``
`-
assert.strictEqual(
`
172
``
`-
errors.getMessage('ERR_DNS_SET_SERVERS_FAILED', ['err', 'servers']),
`
173
``
`-
'c-ares failed to set servers: "err" [servers]');
`
174
``
-
175
``
`-
// Test ERR_ENCODING_NOT_SUPPORTED
`
176
``
`-
assert.strictEqual(
`
177
``
`-
errors.getMessage('ERR_ENCODING_NOT_SUPPORTED', ['enc']),
`
178
``
`-
'The "enc" encoding is not supported');
`
179
``
-
180
``
`-
// Test error messages for async_hooks
`
181
``
`-
assert.strictEqual(
`
182
``
`-
errors.getMessage('ERR_ASYNC_CALLBACK', ['init']),
`
183
``
`-
'init must be a function');
`
184
``
`-
assert.strictEqual(
`
185
``
`-
errors.getMessage('ERR_ASYNC_TYPE', [{}]),
`
186
``
`-
'Invalid name for async "type": [object Object]');
`
187
``
`-
assert.strictEqual(
`
188
``
`-
errors.getMessage('ERR_INVALID_ASYNC_ID', ['asyncId', undefined]),
`
189
``
`-
'Invalid asyncId value: undefined');
`
190
``
-
191
``
`-
{
`
192
``
`-
const { kMaxLength } = internalBinding('buffer');
`
193
``
`-
const error = new errors.codes.ERR_BUFFER_TOO_LARGE();
`
194
``
`-
assert.strictEqual(
`
195
``
`-
error.message,
`
196
``
`` -
Cannot create a Buffer larger than 0x${kMaxLength.toString(16)} bytes
``
197
``
`-
);
`
198
``
`-
}
`
199
``
-
200
``
`-
{
`
201
``
`-
const error = new errors.codes.ERR_INVALID_ARG_VALUE('foo', '\u0000bar');
`
202
``
`-
assert.strictEqual(
`
203
``
`-
error.message,
`
204
``
`-
'The argument 'foo' is invalid. Received '\u0000bar''
`
205
``
`-
);
`
206
``
`-
}
`
207
``
-
208
``
`-
{
`
209
``
`-
const error = new errors.codes.ERR_INVALID_ARG_VALUE(
`
210
``
`-
'foo', { a: 1 }, 'must have property 'b''
`
211
``
`-
);
`
212
``
`-
assert.strictEqual(
`
213
``
`-
error.message,
`
214
``
`-
'The argument 'foo' must have property 'b'. Received { a: 1 }'
`
215
``
`-
);
`
216
``
`-
}
`
217
``
-
218
103
`` // Test that code
property is mutable and that changing it does not change the
``
219
104
`// name.
`
220
105
`{
`
221
``
`-
const myError = new errors.codes.ERR_TLS_HANDSHAKE_TIMEOUT();
`
222
``
`-
assert.strictEqual(myError.code, 'ERR_TLS_HANDSHAKE_TIMEOUT');
`
``
106
`+
const myError = new errors.codes.TEST_ERROR_1('foo');
`
``
107
`+
assert.strictEqual(myError.code, 'TEST_ERROR_1');
`
223
108
`assert.strictEqual(myError.hasOwnProperty('code'), false);
`
224
109
`assert.strictEqual(myError.hasOwnProperty('name'), false);
`
225
110
`assert.deepStrictEqual(Object.keys(myError), []);
`
`@@ -228,15 +113,15 @@ assert.strictEqual(
`
228
113
`assert.strictEqual(myError.code, 'FHQWHGADS');
`
229
114
`assert.strictEqual(myError.name, initialName);
`
230
115
`assert.deepStrictEqual(Object.keys(myError), ['code']);
`
231
``
`-
assert.ok(myError.name.includes('ERR_TLS_HANDSHAKE_TIMEOUT'));
`
``
116
`+
assert.ok(myError.name.includes('TEST_ERROR_1'));
`
232
117
`assert.ok(!myError.name.includes('FHQWHGADS'));
`
233
118
`}
`
234
119
``
235
120
`` // Test that name
is mutable and that changing it alters toString()
but not
``
236
121
`` // console.log()
results, which is the behavior of Error
objects in the
``
237
122
`` // browser. Note that name
becomes enumerable after being assigned.
``
238
123
`{
`
239
``
`-
const myError = new errors.codes.ERR_TLS_HANDSHAKE_TIMEOUT();
`
``
124
`+
const myError = new errors.codes.TEST_ERROR_1('foo');
`
240
125
`assert.deepStrictEqual(Object.keys(myError), []);
`
241
126
`const initialToString = myError.toString();
`
242
127
``
`@@ -251,7 +136,7 @@ assert.strictEqual(
`
251
136
`{
`
252
137
`let initialConsoleLog = '';
`
253
138
`hijackStdout((data) => { initialConsoleLog += data; });
`
254
``
`-
const myError = new errors.codes.ERR_TLS_HANDSHAKE_TIMEOUT();
`
``
139
`+
const myError = new errors.codes.TEST_ERROR_1('foo');
`
255
140
`assert.deepStrictEqual(Object.keys(myError), []);
`
256
141
`const initialToString = myError.toString();
`
257
142
`console.log(myError);
`
`@@ -269,13 +154,3 @@ assert.strictEqual(
`
269
154
``
270
155
`restoreStdout();
`
271
156
`}
`
272
``
-
273
``
`-
{
`
274
``
`-
const error = new errors.codes.ERR_WORKER_INVALID_EXEC_ARGV(
`
275
``
`-
['--foo, --bar']
`
276
``
`-
);
`
277
``
`-
assert.strictEqual(
`
278
``
`-
error.message,
`
279
``
`-
'Initiated Worker with invalid execArgv flags: --foo, --bar'
`
280
``
`-
);
`
281
``
`-
}
`