summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorRuben Bridgewater <ruben@bridgewater.de>2019-06-14 16:14:50 +0200
committerRuben Bridgewater <ruben@bridgewater.de>2019-10-01 22:55:11 +0200
commitd47b6786c91908e2601400f4e3e381143049beed (patch)
tree4cb0b194b48565ba0f0ea754c99cfdb81eaef61e /test
parent0b3242c3ce0ff2cdf9c740f45f3755a683073c32 (diff)
downloadandroid-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.js15
-rw-r--r--test/parallel/test-assert.js17
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',
+ }
+ );
+}