From a27f48d6199eac396a488b5625a1b3f629d5b070 Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Wed, 31 Jan 2018 15:43:09 +0100 Subject: [PATCH] assert: fix generatedMessage The generatedMessage was wrong in case simple assert was used and a message was auto generated. This fixed the TODO. PR-URL: https://github.com/nodejs/node/pull/18322 Reviewed-By: James M Snell Reviewed-By: Matteo Collina Reviewed-By: Joyee Cheung --- lib/assert.js | 15 ++++++++++----- test/parallel/test-assert.js | 8 ++++++-- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/lib/assert.js b/lib/assert.js index a6447278f0c..8f324b86493 100644 --- a/lib/assert.js +++ b/lib/assert.js @@ -204,7 +204,10 @@ function innerOk(args, fn) { var [value, message] = args; if (!value) { + let generatedMessage = false; + if (args.length === 0) { + generatedMessage = true; message = 'No value argument passed to `assert.ok()`'; } else if (message == null) { // Use the call as error message if possible. @@ -222,20 +225,22 @@ function innerOk(args, fn) { const call = err.stack[0]; Error.prepareStackTrace = tmpPrepare; - // TODO(BridgeAR): fix the "generatedMessage property" - // Since this is actually a generated message, it has to be - // determined differently from now on. - // Make sure it would be "null" in case that is used. message = getErrMessage(call) || message; + generatedMessage = true; + } else if (message instanceof Error) { + throw message; } - innerFail({ + + const err = new AssertionError({ actual: value, expected: true, message, operator: '==', stackStartFn: fn }); + err.generatedMessage = generatedMessage; + throw err; } } diff --git a/test/parallel/test-assert.js b/test/parallel/test-assert.js index e4784e06881..e422acbbfbc 100644 --- a/test/parallel/test-assert.js +++ b/test/parallel/test-assert.js @@ -919,6 +919,7 @@ common.expectsError( { code: 'ERR_ASSERTION', type: assert.AssertionError, + generatedMessage: true, message: `The expression evaluated to a falsy value:${EOL}${EOL} ` + `assert.ok(null)${EOL}` } @@ -928,6 +929,7 @@ common.expectsError( { code: 'ERR_ASSERTION', type: assert.AssertionError, + generatedMessage: true, message: `The expression evaluated to a falsy value:${EOL}${EOL} ` + `assert(typeof 123 === 'string')${EOL}` } @@ -1011,7 +1013,8 @@ common.expectsError( { code: 'ERR_ASSERTION', type: assert.AssertionError, - message: '0 == true' + message: '0 == true', + generatedMessage: true } ); @@ -1020,7 +1023,8 @@ common.expectsError( { code: 'ERR_ASSERTION', type: assert.AssertionError, - message: 'test' + message: 'test', + generatedMessage: false } );