summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorRuben Bridgewater <ruben@bridgewater.de>2019-09-23 17:22:10 +0200
committerRich Trott <rtrott@gmail.com>2019-10-03 12:34:44 -0700
commit500720f5781b96147422614b82c1f85e22d6a6e8 (patch)
treeb09135e15cada8813afbc39ba3d56db308e1b17c /test
parent6ea51bc4918c05e293c30d5efc384a15ae6cfd7e (diff)
downloadandroid-node-v8-500720f5781b96147422614b82c1f85e22d6a6e8.tar.gz
android-node-v8-500720f5781b96147422614b82c1f85e22d6a6e8.tar.bz2
android-node-v8-500720f5781b96147422614b82c1f85e22d6a6e8.zip
errors: make sure all Node.js errors show their properties
This improves Node.js errors by always showing the attached properties when inspecting such an error. This applies especially to SystemError. It did often not show any properties but now all properties will be visible. This is done in a mainly backwards compatible way. Instead of using prototype getters and setters, the property is now set directly on the error. PR-URL: https://github.com/nodejs/node/pull/29677 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Diffstat (limited to 'test')
-rw-r--r--test/message/internal_assert.out4
-rw-r--r--test/message/internal_assert_fail.out4
-rw-r--r--test/parallel/test-dgram-socket-buffer-size.js23
-rw-r--r--test/parallel/test-internal-errors.js12
-rw-r--r--test/parallel/test-repl-top-level-await.js6
5 files changed, 36 insertions, 13 deletions
diff --git a/test/message/internal_assert.out b/test/message/internal_assert.out
index ae8de3e1a0..cf09fdcb60 100644
--- a/test/message/internal_assert.out
+++ b/test/message/internal_assert.out
@@ -12,4 +12,6 @@ Please open an issue with this stack trace at https://github.com/nodejs/node/iss
at *
at *
at *
- at *
+ at * {
+ code: 'ERR_INTERNAL_ASSERTION'
+}
diff --git a/test/message/internal_assert_fail.out b/test/message/internal_assert_fail.out
index 70f49ad33a..11b532b7b2 100644
--- a/test/message/internal_assert_fail.out
+++ b/test/message/internal_assert_fail.out
@@ -13,4 +13,6 @@ Please open an issue with this stack trace at https://github.com/nodejs/node/iss
at *
at *
at *
- at *
+ at * {
+ code: 'ERR_INTERNAL_ASSERTION'
+}
diff --git a/test/parallel/test-dgram-socket-buffer-size.js b/test/parallel/test-dgram-socket-buffer-size.js
index c2936ba8fd..d3317e85c3 100644
--- a/test/parallel/test-dgram-socket-buffer-size.js
+++ b/test/parallel/test-dgram-socket-buffer-size.js
@@ -4,6 +4,7 @@
const common = require('../common');
const assert = require('assert');
const dgram = require('dgram');
+const { inspect } = require('util');
const { SystemError } = require('internal/errors');
const { internalBinding } = require('internal/test/binding');
const {
@@ -22,7 +23,7 @@ function getExpectedError(type) {
'ENOTSOCK (socket operation on non-socket)' : 'EBADF (bad file descriptor)';
const error = {
code: 'ERR_SOCKET_BUFFER_SIZE',
- type: SystemError,
+ name: 'SystemError',
message: `Could not get or set buffer size: ${syscall} returned ${suffix}`,
info: {
code,
@@ -40,9 +41,25 @@ function getExpectedError(type) {
const socket = dgram.createSocket('udp4');
- common.expectsError(() => {
+ assert.throws(() => {
socket.setSendBufferSize(8192);
- }, errorObj);
+ }, (err) => {
+ assert.strictEqual(
+ inspect(err).replace(/^ +at .*\n/gm, ''),
+ `SystemError [ERR_SOCKET_BUFFER_SIZE]: ${errorObj.message}\n` +
+ " code: 'ERR_SOCKET_BUFFER_SIZE',\n" +
+ ' info: {\n' +
+ ` errno: ${errorObj.info.errno},\n` +
+ ` code: '${errorObj.info.code}',\n` +
+ ` message: '${errorObj.info.message}',\n` +
+ ` syscall: '${errorObj.info.syscall}'\n` +
+ ' },\n' +
+ ` errno: [Getter/Setter: ${errorObj.info.errno}],\n` +
+ ` syscall: [Getter/Setter: '${errorObj.info.syscall}']\n` +
+ '}'
+ );
+ return true;
+ });
common.expectsError(() => {
socket.getSendBufferSize();
diff --git a/test/parallel/test-internal-errors.js b/test/parallel/test-internal-errors.js
index 10d79cb8fa..a34218fd1d 100644
--- a/test/parallel/test-internal-errors.js
+++ b/test/parallel/test-internal-errors.js
@@ -82,9 +82,9 @@ common.expectsError(() => {
{
const myError = new errors.codes.TEST_ERROR_1('foo');
assert.strictEqual(myError.code, 'TEST_ERROR_1');
- assert.strictEqual(myError.hasOwnProperty('code'), false);
+ assert.strictEqual(myError.hasOwnProperty('code'), true);
assert.strictEqual(myError.hasOwnProperty('name'), false);
- assert.deepStrictEqual(Object.keys(myError), []);
+ assert.deepStrictEqual(Object.keys(myError), ['code']);
const initialName = myError.name;
myError.code = 'FHQWHGADS';
assert.strictEqual(myError.code, 'FHQWHGADS');
@@ -99,11 +99,11 @@ common.expectsError(() => {
// browser. Note that `name` becomes enumerable after being assigned.
{
const myError = new errors.codes.TEST_ERROR_1('foo');
- assert.deepStrictEqual(Object.keys(myError), []);
+ assert.deepStrictEqual(Object.keys(myError), ['code']);
const initialToString = myError.toString();
myError.name = 'Fhqwhgads';
- assert.deepStrictEqual(Object.keys(myError), ['name']);
+ assert.deepStrictEqual(Object.keys(myError), ['code', 'name']);
assert.notStrictEqual(myError.toString(), initialToString);
}
@@ -114,7 +114,7 @@ common.expectsError(() => {
let initialConsoleLog = '';
hijackStdout((data) => { initialConsoleLog += data; });
const myError = new errors.codes.TEST_ERROR_1('foo');
- assert.deepStrictEqual(Object.keys(myError), []);
+ assert.deepStrictEqual(Object.keys(myError), ['code']);
const initialToString = myError.toString();
console.log(myError);
assert.notStrictEqual(initialConsoleLog, '');
@@ -124,7 +124,7 @@ common.expectsError(() => {
let subsequentConsoleLog = '';
hijackStdout((data) => { subsequentConsoleLog += data; });
myError.message = 'Fhqwhgads';
- assert.deepStrictEqual(Object.keys(myError), []);
+ assert.deepStrictEqual(Object.keys(myError), ['code']);
assert.notStrictEqual(myError.toString(), initialToString);
console.log(myError);
assert.strictEqual(subsequentConsoleLog, initialConsoleLog);
diff --git a/test/parallel/test-repl-top-level-await.js b/test/parallel/test-repl-top-level-await.js
index f72a5daa01..f629d3f1d0 100644
--- a/test/parallel/test-repl-top-level-await.js
+++ b/test/parallel/test-repl-top-level-await.js
@@ -161,8 +161,10 @@ async function ctrlCTest() {
]), [
'await timeout(100000)\r',
'Thrown:',
- 'Error [ERR_SCRIPT_EXECUTION_INTERRUPTED]: ' +
- 'Script execution was interrupted by `SIGINT`',
+ '[Error [ERR_SCRIPT_EXECUTION_INTERRUPTED]: ' +
+ 'Script execution was interrupted by `SIGINT`] {',
+ " code: 'ERR_SCRIPT_EXECUTION_INTERRUPTED'",
+ '}',
PROMPT
]);
}