diff options
author | Ruben Bridgewater <ruben@bridgewater.de> | 2019-06-15 13:27:21 +0200 |
---|---|---|
committer | Ruben Bridgewater <ruben@bridgewater.de> | 2019-10-01 22:56:01 +0200 |
commit | 97c52ca5dc0b9c4df015dc36ef394ebe06ec00c6 (patch) | |
tree | 1358922d0f8dce279dffc43ebcbcd3095eee4e71 /lib | |
parent | 5700cd17dd167f6835131b42809476e5f30762ba (diff) | |
download | android-node-v8-97c52ca5dc0b9c4df015dc36ef394ebe06ec00c6.tar.gz android-node-v8-97c52ca5dc0b9c4df015dc36ef394ebe06ec00c6.tar.bz2 android-node-v8-97c52ca5dc0b9c4df015dc36ef394ebe06ec00c6.zip |
assert: add more information to AssertionErrors
This adds information about the actual thrown error to the
AssertionError's message property.
It also improves the logged error instances error name by using the
constructors name, if available.
PR-URL: https://github.com/nodejs/node/pull/28263
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/assert.js | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/lib/assert.js b/lib/assert.js index 50ab6b39b1..0b256e604e 100644 --- a/lib/assert.js +++ b/lib/assert.js @@ -620,8 +620,13 @@ function expectedException(actual, expected, message, fn) { generatedMessage = true; message = 'The error is expected to be an instance of ' + `"${expected.name}". Received `; + // TODO: Special handle identical names. if (isError(actual)) { - message += `"${actual.name}"`; + const name = actual.constructor && actual.constructor.name; + message += `"${name || actual.name}"`; + if (actual.message) { + message += `\n\nError message:\n\n${actual.message}`; + } } else { message += `"${inspect(actual, { depth: -1 })}"`; } @@ -636,6 +641,10 @@ function expectedException(actual, expected, message, fn) { const name = expected.name ? `"${expected.name}" ` : ''; message = `The ${name}validation function is expected to return` + ` "true". Received ${inspect(res)}`; + + if (isError(actual)) { + message += `\n\nCaught error:\n\n${actual}`; + } } throwError = true; } |