From cb5c93a654e235a6b436946e3d6baa25ba64bc3e Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Wed, 19 Apr 2017 19:17:31 +0200 Subject: [PATCH 1/2] test: introduce `common.crashOnUnhandledRejection` Ref: https://github.com/nodejs/node/pull/12442 PR-URL: https://github.com/nodejs/node/pull/12489 Reviewed-By: Matthew Loring Reviewed-By: Julien Gilli Reviewed-By: Benjamin Gruenbaum Reviewed-By: James M Snell --- test/common.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/test/common.js b/test/common.js index dcd830420c3c6f..54357af6ca8e4c 100644 --- a/test/common.js +++ b/test/common.js @@ -552,3 +552,9 @@ exports.expectWarning = function(name, expected) { expected.splice(expected.indexOf(warning.message), 1); }, expected.length)); }; + +// Crash the process on unhandled rejections. +exports.crashOnUnhandledRejection = function() { + process.on('unhandledRejection', + (err) => process.nextTick(() => { throw err; })); +}; From 46d6281c303604f96806dec96c5ab3bfe50e8499 Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Thu, 27 Apr 2017 18:09:57 +0200 Subject: [PATCH 2/2] test,doc: document `crashOnUnhandledRejection()` Add documentation for `common.crashOnUnhandledRejection()`. Ref: https://github.com/nodejs/node/pull/12489/files/a9c2078a60bc3012dc6156df19772697a56a2517#r113737423 PR-URL: https://github.com/nodejs/node/pull/12699 Reviewed-By: James M Snell Reviewed-By: Rich Trott Reviewed-By: Santiago Gimeno Reviewed-By: Luigi Pinca Reviewed-By: Colin Ihrig Reviewed-By: Yuta Hiroto Reviewed-By: Michael Dawson Reviewed-By: Gibson Fahnestock --- test/README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/test/README.md b/test/README.md index 381402770c8621..a97e5f222b4627 100644 --- a/test/README.md +++ b/test/README.md @@ -174,6 +174,13 @@ A stream to push an array into a REPL Blocks for `time` amount of time. +### crashOnUnhandledRejection() + +Installs a `process.on('unhandledRejection')` handler that crashes the process +after a tick. This is useful for tests that use Promises and need to make sure +no unexpected rejections occur, because currently they result in silent +failures. + ### ddCommand(filename, kilobytes) * return [<Object>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)