diff options
author | Ruben Bridgewater <ruben@bridgewater.de> | 2019-06-14 16:14:50 +0200 |
---|---|---|
committer | Ruben Bridgewater <ruben@bridgewater.de> | 2019-10-01 22:55:11 +0200 |
commit | d47b6786c91908e2601400f4e3e381143049beed (patch) | |
tree | 4cb0b194b48565ba0f0ea754c99cfdb81eaef61e /test | |
parent | 0b3242c3ce0ff2cdf9c740f45f3755a683073c32 (diff) | |
download | android-node-v8-d47b6786c91908e2601400f4e3e381143049beed.tar.gz android-node-v8-d47b6786c91908e2601400f4e3e381143049beed.tar.bz2 android-node-v8-d47b6786c91908e2601400f4e3e381143049beed.zip |
assert: wrap validation function errors
This makes sure that validation function used by `assert.throws` and
`assert.rejects` always throw validatin errors instead of rethrowing
the received error.
That should improve the debugging experience for developers since
they have a better context where the error is coming from and they
also get to know what triggered it.
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 'test')
-rw-r--r-- | test/parallel/test-assert-async.js | 15 | ||||
-rw-r--r-- | test/parallel/test-assert.js | 17 |
2 files changed, 32 insertions, 0 deletions
diff --git a/test/parallel/test-assert-async.js b/test/parallel/test-assert-async.js index 8aad1d865c..45447d4563 100644 --- a/test/parallel/test-assert-async.js +++ b/test/parallel/test-assert-async.js @@ -66,6 +66,21 @@ const invalidThenableFunc = () => { code: 'ERR_INVALID_RETURN_VALUE' }) ); + + const err = new Error('foobar'); + const validate = () => { return 'baz'; }; + promises.push(assert.rejects( + () => assert.rejects(Promise.reject(err), validate), + { + message: 'The "validate" validation function is expected to ' + + "return \"true\". Received 'baz'", + code: 'ERR_ASSERTION', + actual: err, + expected: validate, + name: 'AssertionError', + operator: 'rejects', + } + )); } { diff --git a/test/parallel/test-assert.js b/test/parallel/test-assert.js index 13f9d6427b..9c59227a78 100644 --- a/test/parallel/test-assert.js +++ b/test/parallel/test-assert.js @@ -1326,3 +1326,20 @@ assert.throws( 'Received "[Array]"' } ); + +{ + const err = new TypeError('foo'); + const validate = (() => () => ({ a: true, b: [ 1, 2, 3 ] }))(); + assert.throws( + () => assert.throws(() => { throw err; }, validate), + { + message: 'The validation function is expected to ' + + `return "true". Received ${inspect(validate())}`, + code: 'ERR_ASSERTION', + actual: err, + expected: validate, + name: 'AssertionError', + operator: 'throws', + } + ); +} |