Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
assert: stricter ifError
This makes `assert.ifError` stricter by only accepting `null` and
`undefined` from now on. Before any truthy value was accepted.
PR-URL: #18247
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Loading branch information
@@ -474,21 +474,23 @@ changes:
pr-url: https://github.com/nodejs/node/pull/18247
description: Instead of throwing the original error it is now wrapped into
a AssertionError that contains the full stack trace.
- version: REPLACEME
pr-url: https://github.com/nodejs/node/pull/18247
description: Value may now only be `undefined` or `null`. Before any truthy
input was accepted.
-->
* `value` {any}
Throws `value` if `value` is truthy . This is useful when testing the `error`
argument in callbacks.
Throws `value` if `value` is not `undefined` or `null` . This is useful when
testing the `error` argument in callbacks.
```js
const assert = require (' assert' ).strict ;
assert .ifError (null );
// OK
assert .ifError (0 );
// OK
assert .ifError (1 );
// AssertionError [ERR_ASSERTION]: ifError got unwanted exception: 1
// AssertionError [ERR_ASSERTION]: ifError got unwanted exception: 0
assert .ifError (' error' );
// AssertionError [ERR_ASSERTION]: ifError got unwanted exception: 'error'
assert .ifError (new Error ());
@@ -453,7 +453,7 @@ assert.doesNotThrow = function doesNotThrow(block, error, message) {
} ;
assert . ifError = function ifError ( err ) {
if ( err ) {
if ( err !== null && err !== undefined ) {
let message = 'ifError got unwanted exception: ' ;
if ( typeof err === 'object' && typeof err . message === 'string' ) {
if ( err . message . length === 0 && err . constructor ) {
@@ -60,10 +60,16 @@ assert.throws(
}
) ;
assert . throws (
( ) => { assert . ifError ( false ) ; } ,
{
message : 'ifError got unwanted exception: false'
}
) ;
assert . doesNotThrow ( ( ) => { assert . ifError ( null ) ; } ) ;
assert . doesNotThrow ( ( ) => { assert . ifError ( ) ; } ) ;
assert . doesNotThrow ( ( ) => { assert . ifError ( undefined ) ; } ) ;
assert . doesNotThrow ( ( ) => { assert . ifError ( false ) ; } ) ;
// https://github.com/nodejs/node-v0.x-archive/issues/2893
{
@@ -16,8 +16,8 @@ function test(arg, port = '') {
let stderr = '' ;
proc . stdout . on ( 'data' , ( data ) => stdout += data ) ;
proc . stderr . on ( 'data' , ( data ) => stderr += data ) ;
proc . stdout . on ( 'close' , assert . ifError ) ;
proc . stderr . on ( 'close' , assert . ifError ) ;
proc . stdout . on ( 'close' , ( hadErr ) => assert ( ! hadErr ) ) ;
proc . stderr . on ( 'close' , ( hadErr ) => assert ( ! hadErr ) ) ;
proc . stderr . on ( 'data' , ( ) => {
if ( !stderr . includes ( '\n' ) ) return ;
assert ( /Debugger listening on ( .+ ) / . test ( stderr ) ) ;
Toggle all file notes
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session.
You signed out in another tab or window. Reload to refresh your session.