summaryrefslogtreecommitdiff
path: root/tests/node_compat/test/parallel/test-event-emitter-error-monitor.js
diff options
context:
space:
mode:
Diffstat (limited to 'tests/node_compat/test/parallel/test-event-emitter-error-monitor.js')
-rw-r--r--tests/node_compat/test/parallel/test-event-emitter-error-monitor.js39
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/node_compat/test/parallel/test-event-emitter-error-monitor.js b/tests/node_compat/test/parallel/test-event-emitter-error-monitor.js
new file mode 100644
index 000000000..714a47e59
--- /dev/null
+++ b/tests/node_compat/test/parallel/test-event-emitter-error-monitor.js
@@ -0,0 +1,39 @@
+// deno-fmt-ignore-file
+// deno-lint-ignore-file
+
+// Copyright Joyent and Node contributors. All rights reserved. MIT license.
+// Taken from Node 18.12.1
+// This file is automatically generated by `tools/node_compat/setup.ts`. Do not modify this file manually.
+
+'use strict';
+const common = require('../common');
+const assert = require('assert');
+const EventEmitter = require('events');
+
+const EE = new EventEmitter();
+const theErr = new Error('MyError');
+
+EE.on(
+ EventEmitter.errorMonitor,
+ common.mustCall(function onErrorMonitor(e) {
+ assert.strictEqual(e, theErr);
+ }, 3)
+);
+
+// Verify with no error listener
+assert.throws(
+ () => EE.emit('error', theErr), theErr
+);
+
+// Verify with error listener
+EE.once('error', common.mustCall((e) => assert.strictEqual(e, theErr)));
+EE.emit('error', theErr);
+
+
+// Verify it works with once
+process.nextTick(() => EE.emit('error', theErr));
+assert.rejects(EventEmitter.once(EE, 'notTriggered'), theErr);
+
+// Only error events trigger error monitor
+EE.on('aEvent', common.mustCall());
+EE.emit('aEvent');