-
-
Notifications
You must be signed in to change notification settings - Fork 32.9k
Closed
Labels
help wantedIssues that need assistance from volunteers or PRs that need help to proceed.Issues that need assistance from volunteers or PRs that need help to proceed.questionIssues that look for answers.Issues that look for answers.testIssues and PRs related to the tests.Issues and PRs related to the tests.
Description
- Version:
master
- Platform: *
- Subsystem: test
Ref: #13092 (comment)
Do we have a better construct for handling err
in callbacks:
What I found that gives the most informative results (stack of exception and a frame for the test) are:
- for regular callbacks
common.mustCall((err) => {if (err) assert.fail(err)})
- for
.on('error')
handlers(err) => assert.fail(err)
That is the only way to get a frame in the stack.
regular callback
common.mustCall((err) => {if (err) assert.fail(err)})
AssertionError [ERR_ASSERTION]: Error: ENOENT: no such file or directory, open 'd:\code\node-cur\test\tmp\watch\foo.txt?'
at fs.writeFile.common.mustCall (d:\code\node-cur\test\parallel\test-fs-watchfile.js:79:86)
at d:\code\node-cur\test\common\index.js:504:15
at fs.js:1239:7
at FSReqWrap.oncomplete (fs.js:112:15)
with common.mustCall((err) => {assert.ifError(err)})
or common.mustCall(assert.ifError)
assert.js:574
assert.ifError = function ifError(err) { if (err) throw err; };
^
Error: ENOENT: no such file or directory, open 'd:\code\node-cur\test\tmp\watch\foo.txt?'
.on('error')
with (err) => assert.fail(err)
assert.js:92
throw new AssertionError({
^
AssertionError [ERR_ASSERTION]: Error: write EPROTO 101057795:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:openssl\ssl\s23_clnt.c:794:
at ClientRequest.req.on (D:\code\node-cur\test\parallel\test-async-wrap-GH13045.js:63:35)
at emitOne (events.js:115:13)
at ClientRequest.emit (events.js:210:7)
at TLSSocket.socketErrorListener (_http_client.js:397:9)
...
with just assert.fail
assert.js:92
throw new AssertionError({
^
AssertionError [ERR_ASSERTION]: Error: write EPROTO 101057795:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:openssl\ssl\s23_clnt.c:794:
at emitOne (events.js:115:13)
at ClientRequest.emit (events.js:210:7)
at TLSSocket.socketErrorListener (_http_client.js:397:9)
...
Metadata
Metadata
Assignees
Labels
help wantedIssues that need assistance from volunteers or PRs that need help to proceed.Issues that need assistance from volunteers or PRs that need help to proceed.questionIssues that look for answers.Issues that look for answers.testIssues and PRs related to the tests.Issues and PRs related to the tests.