summaryrefslogtreecommitdiff
path: root/test/parallel/test-process-warning.js
diff options
context:
space:
mode:
authorJames M Snell <jasnell@gmail.com>2017-09-05 16:08:11 -0700
committerJames M Snell <jasnell@gmail.com>2017-09-12 04:06:39 -0700
commit8c2eba0f069c9c26c4975c2e57474855307bdb5f (patch)
tree1725053ca7ad50d5eff4922c6a01f18737c91139 /test/parallel/test-process-warning.js
parent6ff521b59b966adc202431c6a9a9091419bb5030 (diff)
downloadandroid-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.js59
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();