Skip to content

Commit a27f48d

Browse files
committed
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: #18322 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
1 parent 3e910fb commit a27f48d

File tree

2 files changed

+16
-7
lines changed

2 files changed

+16
-7
lines changed

lib/assert.js

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,10 @@ function innerOk(args, fn) {
204204
var [value, message] = args;
205205

206206
if (!value) {
207+
let generatedMessage = false;
208+
207209
if (args.length === 0) {
210+
generatedMessage = true;
208211
message = 'No value argument passed to `assert.ok()`';
209212
} else if (message == null) {
210213
// Use the call as error message if possible.
@@ -222,20 +225,22 @@ function innerOk(args, fn) {
222225
const call = err.stack[0];
223226
Error.prepareStackTrace = tmpPrepare;
224227

225-
// TODO(BridgeAR): fix the "generatedMessage property"
226-
// Since this is actually a generated message, it has to be
227-
// determined differently from now on.
228-
229228
// Make sure it would be "null" in case that is used.
230229
message = getErrMessage(call) || message;
230+
generatedMessage = true;
231+
} else if (message instanceof Error) {
232+
throw message;
231233
}
232-
innerFail({
234+
235+
const err = new AssertionError({
233236
actual: value,
234237
expected: true,
235238
message,
236239
operator: '==',
237240
stackStartFn: fn
238241
});
242+
err.generatedMessage = generatedMessage;
243+
throw err;
239244
}
240245
}
241246

test/parallel/test-assert.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -919,6 +919,7 @@ common.expectsError(
919919
{
920920
code: 'ERR_ASSERTION',
921921
type: assert.AssertionError,
922+
generatedMessage: true,
922923
message: `The expression evaluated to a falsy value:${EOL}${EOL} ` +
923924
`assert.ok(null)${EOL}`
924925
}
@@ -928,6 +929,7 @@ common.expectsError(
928929
{
929930
code: 'ERR_ASSERTION',
930931
type: assert.AssertionError,
932+
generatedMessage: true,
931933
message: `The expression evaluated to a falsy value:${EOL}${EOL} ` +
932934
`assert(typeof 123 === 'string')${EOL}`
933935
}
@@ -1011,7 +1013,8 @@ common.expectsError(
10111013
{
10121014
code: 'ERR_ASSERTION',
10131015
type: assert.AssertionError,
1014-
message: '0 == true'
1016+
message: '0 == true',
1017+
generatedMessage: true
10151018
}
10161019
);
10171020

@@ -1020,7 +1023,8 @@ common.expectsError(
10201023
{
10211024
code: 'ERR_ASSERTION',
10221025
type: assert.AssertionError,
1023-
message: 'test'
1026+
message: 'test',
1027+
generatedMessage: false
10241028
}
10251029
);
10261030

0 commit comments

Comments
 (0)