diff options
author | James M Snell <jasnell@gmail.com> | 2017-09-05 16:08:11 -0700 |
---|---|---|
committer | James M Snell <jasnell@gmail.com> | 2017-09-12 04:06:39 -0700 |
commit | 8c2eba0f069c9c26c4975c2e57474855307bdb5f (patch) | |
tree | 1725053ca7ad50d5eff4922c6a01f18737c91139 /test/parallel/test-process-warning.js | |
parent | 6ff521b59b966adc202431c6a9a9091419bb5030 (diff) | |
download | android-node-v8-8c2eba0f069c9c26c4975c2e57474855307bdb5f.tar.gz android-node-v8-8c2eba0f069c9c26c4975c2e57474855307bdb5f.tar.bz2 android-node-v8-8c2eba0f069c9c26c4975c2e57474855307bdb5f.zip |
test: improve process warning coverage
PR-URL: https://github.com/nodejs/node/pull/15212
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Diffstat (limited to 'test/parallel/test-process-warning.js')
-rw-r--r-- | test/parallel/test-process-warning.js | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/test/parallel/test-process-warning.js b/test/parallel/test-process-warning.js new file mode 100644 index 0000000000..da4521da79 --- /dev/null +++ b/test/parallel/test-process-warning.js @@ -0,0 +1,59 @@ +'use strict'; + +const common = require('../common'); +const assert = require('assert'); + +function test1() { + // Output is skipped if the argument to the 'warning' event is + // not an Error object. + common.hijackStderr(common.mustNotCall('stderr.write must not be called')); + process.emit('warning', 'test'); + setImmediate(test2); +} + +function test2() { + // Output is skipped if it's a deprecation warning and + // process.noDeprecation = true + process.noDeprecation = true; + process.emitWarning('test', 'DeprecationWarning'); + process.noDeprecation = false; + setImmediate(test3); +} + +function test3() { + common.restoreStderr(); + // Type defaults to warning when the second argument is an object + process.emitWarning('test', {}); + process.once('warning', common.mustCall((warning) => { + assert.strictEqual(warning.name, 'Warning'); + })); + setImmediate(test4); +} + +function test4() { + // process.emitWarning will throw when process.throwDeprecation is true + // and type is `DeprecationWarning`. + process.throwDeprecation = true; + assert.throws( + () => process.emitWarning('test', 'DeprecationWarning'), + /^DeprecationWarning: test$/); + process.throwDeprecation = false; + setImmediate(test5); +} + +function test5() { + // Setting toString to a non-function should not cause an error + const err = new Error('test'); + err.toString = 1; + process.emitWarning(err); + setImmediate(test6); +} + +function test6() { + process.emitWarning('test', { detail: 'foo' }); + process.on('warning', (warning) => { + assert.strictEqual(warning.detail, 'foo'); + }); +} + +test1(); |