diff options
author | Ruben Bridgewater <ruben@bridgewater.de> | 2018-01-23 14:38:34 +0100 |
---|---|---|
committer | Ruben Bridgewater <ruben@bridgewater.de> | 2018-02-01 09:21:38 +0100 |
commit | 3cd7977a425d4ef6d2e9b6d535763bc5633789bf (patch) | |
tree | ce25cbe676cd9143fd8658469ab53a0283c1ae26 | |
parent | 776f6cdfc4d7f8b3e0eaff6bd71571ebd937609b (diff) | |
download | android-node-v8-3cd7977a425d4ef6d2e9b6d535763bc5633789bf.tar.gz android-node-v8-3cd7977a425d4ef6d2e9b6d535763bc5633789bf.tar.bz2 android-node-v8-3cd7977a425d4ef6d2e9b6d535763bc5633789bf.zip |
assert: use a default message in assert
In case no arguments are passed to `assert.ok` it should just
use a default message. Otherwise `assert.ok` can not be used as
a callback.
PR-URL: https://github.com/nodejs/node/pull/18319
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Weijia Wang <starkwang@126.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
-rw-r--r-- | doc/api/assert.md | 11 | ||||
-rw-r--r-- | lib/assert.js | 7 | ||||
-rw-r--r-- | test/parallel/test-assert.js | 14 |
3 files changed, 18 insertions, 14 deletions
diff --git a/doc/api/assert.md b/doc/api/assert.md index 04f312aa66..09ea4483d1 100644 --- a/doc/api/assert.md +++ b/doc/api/assert.md @@ -692,9 +692,8 @@ parameter is an instance of an [`Error`][] then it will be thrown instead of the added: v0.1.21 changes: - version: REPLACEME - pr-url: https://github.com/nodejs/node/pull/17581 - description: assert.ok() will throw a `ERR_MISSING_ARGS` error. - Use assert.fail() instead. + pr-url: https://github.com/nodejs/node/pull/REPLACEME + description: assert.ok() (no arguments) will now use a predefined error msg. --> * `value` {any} * `message` {any} @@ -707,6 +706,8 @@ property set equal to the value of the `message` parameter. If the `message` parameter is `undefined`, a default error message is assigned. If the `message` parameter is an instance of an [`Error`][] then it will be thrown instead of the `AssertionError`. +If no arguments are passed in at all `message` will be set to the string: +"No value argument passed to assert.ok". Be aware that in the `repl` the error message will be different to the one thrown in a file! See below for further details. @@ -719,6 +720,10 @@ assert.ok(true); assert.ok(1); // OK +assert.ok(); +// throws: +// "AssertionError: No value argument passed to `assert.ok`. + assert.ok(false, 'it\'s false'); // throws "AssertionError: it's false" diff --git a/lib/assert.js b/lib/assert.js index e25247dfed..8c38cfcd7a 100644 --- a/lib/assert.js +++ b/lib/assert.js @@ -137,11 +137,10 @@ function getBuffer(fd, assertLine) { function innerOk(args, fn) { var [value, message] = args; - if (args.length === 0) - throw new TypeError('ERR_MISSING_ARGS', 'value'); - if (!value) { - if (message == null) { + if (args.length === 0) { + message = 'No value argument passed to `assert.ok()`'; + } else if (message == null) { // Use the call as error message if possible. // This does not work with e.g. the repl. const err = new Error(); diff --git a/test/parallel/test-assert.js b/test/parallel/test-assert.js index 70ba887fee..b61df45b46 100644 --- a/test/parallel/test-assert.js +++ b/test/parallel/test-assert.js @@ -733,18 +733,18 @@ common.expectsError( assert.equal(assert.notDeepEqual, assert.notDeepStrictEqual); assert.equal(Object.keys(assert).length, Object.keys(a).length); assert(7); - common.expectsError( - () => assert(), + assert.throws( + () => assert(...[]), { - code: 'ERR_MISSING_ARGS', - type: TypeError + message: 'No value argument passed to `assert.ok()`', + name: 'AssertionError [ERR_ASSERTION]' } ); - common.expectsError( + assert.throws( () => a(), { - code: 'ERR_MISSING_ARGS', - type: TypeError + message: 'No value argument passed to `assert.ok()`', + name: 'AssertionError [ERR_ASSERTION]' } ); |