node/test/parallel/test-events-listener-count-with-listener.js
Paolo Insogna 6473e9c13d
events: add listener argument to listenerCount
PR-URL: https://github.com/nodejs/node/pull/46523
Reviewed-By: Robert Nagy <ronagy@icloud.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
2023-02-21 10:38:51 +00:00

54 lines
1.8 KiB
JavaScript

'use strict';
const common = require('../common');
const EventEmitter = require('events');
const assert = require('assert');
const EE = new EventEmitter();
const handler = common.mustCall(undefined, 3);
const anotherHandler = common.mustCall();
assert.strictEqual(EE.listenerCount('event'), 0);
assert.strictEqual(EE.listenerCount('event', handler), 0);
assert.strictEqual(EE.listenerCount('event', anotherHandler), 0);
EE.on('event', handler);
assert.strictEqual(EE.listenerCount('event'), 1);
assert.strictEqual(EE.listenerCount('event', handler), 1);
assert.strictEqual(EE.listenerCount('event', anotherHandler), 0);
EE.once('event', anotherHandler);
assert.strictEqual(EE.listenerCount('event'), 2);
assert.strictEqual(EE.listenerCount('event', handler), 1);
assert.strictEqual(EE.listenerCount('event', anotherHandler), 1);
assert.strictEqual(EE.listenerCount('another-event'), 0);
assert.strictEqual(EE.listenerCount('another-event', handler), 0);
assert.strictEqual(EE.listenerCount('another-event', anotherHandler), 0);
EE.once('event', handler);
assert.strictEqual(EE.listenerCount('event'), 3);
assert.strictEqual(EE.listenerCount('event', handler), 2);
assert.strictEqual(EE.listenerCount('event', anotherHandler), 1);
EE.emit('event');
assert.strictEqual(EE.listenerCount('event'), 1);
assert.strictEqual(EE.listenerCount('event', handler), 1);
assert.strictEqual(EE.listenerCount('event', anotherHandler), 0);
EE.emit('event');
assert.strictEqual(EE.listenerCount('event'), 1);
assert.strictEqual(EE.listenerCount('event', handler), 1);
assert.strictEqual(EE.listenerCount('event', anotherHandler), 0);
EE.off('event', handler);
assert.strictEqual(EE.listenerCount('event'), 0);
assert.strictEqual(EE.listenerCount('event', handler), 0);
assert.strictEqual(EE.listenerCount('event', anotherHandler), 0);