summaryrefslogtreecommitdiff
path: root/cli/tests/node_compat/test/parallel/test-nodeeventtarget.js
diff options
context:
space:
mode:
authorMatt Mastracci <matthew@mastracci.com>2024-02-10 13:22:13 -0700
committerGitHub <noreply@github.com>2024-02-10 20:22:13 +0000
commitf5e46c9bf2f50d66a953fa133161fc829cecff06 (patch)
tree8faf2f5831c1c7b11d842cd9908d141082c869a5 /cli/tests/node_compat/test/parallel/test-nodeeventtarget.js
parentd2477f780630a812bfd65e3987b70c0d309385bb (diff)
chore: move cli/tests/ -> tests/ (#22369)
This looks like a massive PR, but it's only a move from cli/tests -> tests, and updates of relative paths for files. This is the first step towards aggregate all of the integration test files under tests/, which will lead to a set of integration tests that can run without the CLI binary being built. While we could leave these tests under `cli`, it would require us to keep a more complex directory structure for the various test runners. In addition, we have a lot of complexity to ignore various test files in the `cli` project itself (cargo publish exclusion rules, autotests = false, etc). And finally, the `tests/` folder will eventually house the `test_ffi`, `test_napi` and other testing code, reducing the size of the root repo directory. For easier review, the extremely large and noisy "move" is in the first commit (with no changes -- just a move), while the remainder of the changes to actual files is in the second commit.
Diffstat (limited to 'cli/tests/node_compat/test/parallel/test-nodeeventtarget.js')
-rw-r--r--cli/tests/node_compat/test/parallel/test-nodeeventtarget.js190
1 files changed, 0 insertions, 190 deletions
diff --git a/cli/tests/node_compat/test/parallel/test-nodeeventtarget.js b/cli/tests/node_compat/test/parallel/test-nodeeventtarget.js
deleted file mode 100644
index b5c6e788f..000000000
--- a/cli/tests/node_compat/test/parallel/test-nodeeventtarget.js
+++ /dev/null
@@ -1,190 +0,0 @@
-// 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.
-
-// Flags: --expose-internals --no-warnings
-'use strict';
-
-const common = require('../common');
-const { NodeEventTarget } = require('internal/event_target');
-
-const {
- deepStrictEqual,
- ok,
- strictEqual,
- throws,
-} = require('assert');
-
-const { on } = require('events');
-
-{
- const eventTarget = new NodeEventTarget();
- strictEqual(eventTarget.listenerCount('foo'), 0);
- deepStrictEqual(eventTarget.eventNames(), []);
-
- const ev1 = common.mustCall(function(event) {
- strictEqual(event.type, 'foo');
- strictEqual(this, eventTarget);
- }, 2);
-
- const ev2 = {
- handleEvent: common.mustCall(function(event) {
- strictEqual(event.type, 'foo');
- strictEqual(this, ev2);
- })
- };
-
- eventTarget.addEventListener('foo', ev1);
- eventTarget.addEventListener('foo', ev2, { once: true });
- strictEqual(eventTarget.listenerCount('foo'), 2);
- ok(eventTarget.dispatchEvent(new Event('foo')));
- strictEqual(eventTarget.listenerCount('foo'), 1);
- eventTarget.dispatchEvent(new Event('foo'));
-
- eventTarget.removeEventListener('foo', ev1);
- strictEqual(eventTarget.listenerCount('foo'), 0);
- eventTarget.dispatchEvent(new Event('foo'));
-}
-
-{
- const eventTarget = new NodeEventTarget();
- strictEqual(eventTarget.listenerCount('foo'), 0);
- deepStrictEqual(eventTarget.eventNames(), []);
-
- const ev1 = common.mustCall((event) => {
- strictEqual(event.type, 'foo');
- }, 2);
-
- const ev2 = {
- handleEvent: common.mustCall((event) => {
- strictEqual(event.type, 'foo');
- })
- };
-
- strictEqual(eventTarget.on('foo', ev1), eventTarget);
- strictEqual(eventTarget.once('foo', ev2, { once: true }), eventTarget);
- strictEqual(eventTarget.listenerCount('foo'), 2);
- eventTarget.dispatchEvent(new Event('foo'));
- strictEqual(eventTarget.listenerCount('foo'), 1);
- eventTarget.dispatchEvent(new Event('foo'));
-
- strictEqual(eventTarget.off('foo', ev1), eventTarget);
- strictEqual(eventTarget.listenerCount('foo'), 0);
- eventTarget.dispatchEvent(new Event('foo'));
-}
-
-{
- const eventTarget = new NodeEventTarget();
- strictEqual(eventTarget.listenerCount('foo'), 0);
- deepStrictEqual(eventTarget.eventNames(), []);
-
- const ev1 = common.mustCall((event) => {
- strictEqual(event.type, 'foo');
- }, 2);
-
- const ev2 = {
- handleEvent: common.mustCall((event) => {
- strictEqual(event.type, 'foo');
- })
- };
-
- eventTarget.addListener('foo', ev1);
- eventTarget.once('foo', ev2, { once: true });
- strictEqual(eventTarget.listenerCount('foo'), 2);
- eventTarget.dispatchEvent(new Event('foo'));
- strictEqual(eventTarget.listenerCount('foo'), 1);
- eventTarget.dispatchEvent(new Event('foo'));
-
- eventTarget.removeListener('foo', ev1);
- strictEqual(eventTarget.listenerCount('foo'), 0);
- eventTarget.dispatchEvent(new Event('foo'));
-}
-
-{
- const eventTarget = new NodeEventTarget();
- strictEqual(eventTarget.listenerCount('foo'), 0);
- deepStrictEqual(eventTarget.eventNames(), []);
-
- // Won't actually be called.
- const ev1 = () => {};
-
- // Won't actually be called.
- const ev2 = { handleEvent() {} };
-
- eventTarget.addListener('foo', ev1);
- eventTarget.addEventListener('foo', ev1);
- eventTarget.once('foo', ev2, { once: true });
- eventTarget.once('foo', ev2, { once: false });
- eventTarget.on('bar', ev1);
- strictEqual(eventTarget.listenerCount('foo'), 2);
- strictEqual(eventTarget.listenerCount('bar'), 1);
- deepStrictEqual(eventTarget.eventNames(), ['foo', 'bar']);
- strictEqual(eventTarget.removeAllListeners('foo'), eventTarget);
- strictEqual(eventTarget.listenerCount('foo'), 0);
- strictEqual(eventTarget.listenerCount('bar'), 1);
- deepStrictEqual(eventTarget.eventNames(), ['bar']);
- strictEqual(eventTarget.removeAllListeners(), eventTarget);
- strictEqual(eventTarget.listenerCount('foo'), 0);
- strictEqual(eventTarget.listenerCount('bar'), 0);
- deepStrictEqual(eventTarget.eventNames(), []);
-}
-
-{
- const target = new NodeEventTarget();
-
- process.on('warning', common.mustCall((warning) => {
- ok(warning instanceof Error);
- strictEqual(warning.name, 'MaxListenersExceededWarning');
- strictEqual(warning.target, target);
- strictEqual(warning.count, 2);
- strictEqual(warning.type, 'foo');
- ok(warning.message.includes(
- '2 foo listeners added to NodeEventTarget'));
- }));
-
- strictEqual(target.getMaxListeners(), NodeEventTarget.defaultMaxListeners);
- target.setMaxListeners(1);
- target.on('foo', () => {});
- target.on('foo', () => {});
-}
-{
- // Test NodeEventTarget emit
- const emitter = new NodeEventTarget();
- emitter.addEventListener('foo', common.mustCall((e) => {
- strictEqual(e.type, 'foo');
- strictEqual(e.detail, 'bar');
- ok(e instanceof Event);
- }), { once: true });
- emitter.once('foo', common.mustCall((e, droppedAdditionalArgument) => {
- strictEqual(e, 'bar');
- strictEqual(droppedAdditionalArgument, undefined);
- }));
- emitter.emit('foo', 'bar', 'baz');
-}
-{
- // Test NodeEventTarget emit unsupported usage
- const emitter = new NodeEventTarget();
- throws(() => {
- emitter.emit();
- }, /ERR_INVALID_ARG_TYPE/);
-}
-
-(async () => {
- // test NodeEventTarget async-iterability
- const emitter = new NodeEventTarget();
- const interval = setInterval(() => {
- emitter.dispatchEvent(new Event('foo'));
- }, 0);
- let count = 0;
- for await (const [ item ] of on(emitter, 'foo')) {
- count++;
- strictEqual(item.type, 'foo');
- if (count > 5) {
- break;
- }
- }
- clearInterval(interval);
-})().then(common.mustCall());