Skip to content

Commit 7641f9a

Browse files
cjihrigFishrock123
authored andcommitted
test: refactor large event emitter tests
This commit splits several large event emitter tests into smaller block scoped tests. This keeps the tests more isolated. This commit also replaces var with const, assert.equal() with assert.stictEqual(), and other small enhancements. PR-URL: #6446 Reviewed-By: Santiago Gimeno <[email protected]> Reviewed-By: James M Snell <[email protected]>
1 parent 2d503b1 commit 7641f9a

3 files changed

+191
-176
lines changed
+29-23
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,38 @@
11
'use strict';
22

33
require('../common');
4-
var assert = require('assert');
5-
var events = require('events');
4+
const assert = require('assert');
5+
const events = require('events');
66

77
function listener() {}
88
function listener2() {}
99

10-
var e1 = new events.EventEmitter();
11-
e1.on('foo', listener);
12-
var fooListeners = e1.listeners('foo');
13-
assert.deepStrictEqual(e1.listeners('foo'), [listener]);
14-
e1.removeAllListeners('foo');
15-
assert.deepStrictEqual(e1.listeners('foo'), []);
16-
assert.deepStrictEqual(fooListeners, [listener]);
10+
{
11+
const ee = new events.EventEmitter();
12+
ee.on('foo', listener);
13+
const fooListeners = ee.listeners('foo');
14+
assert.deepStrictEqual(ee.listeners('foo'), [listener]);
15+
ee.removeAllListeners('foo');
16+
assert.deepStrictEqual(ee.listeners('foo'), []);
17+
assert.deepStrictEqual(fooListeners, [listener]);
18+
}
1719

18-
var e2 = new events.EventEmitter();
19-
e2.on('foo', listener);
20-
var e2ListenersCopy = e2.listeners('foo');
21-
assert.deepStrictEqual(e2ListenersCopy, [listener]);
22-
assert.deepStrictEqual(e2.listeners('foo'), [listener]);
23-
e2ListenersCopy.push(listener2);
24-
assert.deepStrictEqual(e2.listeners('foo'), [listener]);
25-
assert.deepStrictEqual(e2ListenersCopy, [listener, listener2]);
20+
{
21+
const ee = new events.EventEmitter();
22+
ee.on('foo', listener);
23+
const eeListenersCopy = ee.listeners('foo');
24+
assert.deepStrictEqual(eeListenersCopy, [listener]);
25+
assert.deepStrictEqual(ee.listeners('foo'), [listener]);
26+
eeListenersCopy.push(listener2);
27+
assert.deepStrictEqual(ee.listeners('foo'), [listener]);
28+
assert.deepStrictEqual(eeListenersCopy, [listener, listener2]);
29+
}
2630

27-
var e3 = new events.EventEmitter();
28-
e3.on('foo', listener);
29-
var e3ListenersCopy = e3.listeners('foo');
30-
e3.on('foo', listener2);
31-
assert.deepStrictEqual(e3.listeners('foo'), [listener, listener2]);
32-
assert.deepStrictEqual(e3ListenersCopy, [listener]);
31+
{
32+
const ee = new events.EventEmitter();
33+
ee.on('foo', listener);
34+
const eeListenersCopy = ee.listeners('foo');
35+
ee.on('foo', listener2);
36+
assert.deepStrictEqual(ee.listeners('foo'), [listener, listener2]);
37+
assert.deepStrictEqual(eeListenersCopy, [listener]);
38+
}
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
'use strict';
2-
var common = require('../common');
3-
var assert = require('assert');
4-
var events = require('events');
2+
const common = require('../common');
3+
const assert = require('assert');
4+
const events = require('events');
55

66

77
function expect(expected) {
8-
var actual = [];
8+
const actual = [];
99
process.on('exit', function() {
1010
assert.deepStrictEqual(actual.sort(), expected.sort());
1111
});
@@ -17,56 +17,63 @@ function expect(expected) {
1717

1818
function listener() {}
1919

20-
var e1 = new events.EventEmitter();
21-
e1.on('foo', listener);
22-
e1.on('bar', listener);
23-
e1.on('baz', listener);
24-
e1.on('baz', listener);
25-
var fooListeners = e1.listeners('foo');
26-
var barListeners = e1.listeners('bar');
27-
var bazListeners = e1.listeners('baz');
28-
e1.on('removeListener', expect(['bar', 'baz', 'baz']));
29-
e1.removeAllListeners('bar');
30-
e1.removeAllListeners('baz');
31-
assert.deepStrictEqual(e1.listeners('foo'), [listener]);
32-
assert.deepStrictEqual(e1.listeners('bar'), []);
33-
assert.deepStrictEqual(e1.listeners('baz'), []);
34-
// after calling removeAllListeners,
35-
// the old listeners array should stay unchanged
36-
assert.deepStrictEqual(fooListeners, [listener]);
37-
assert.deepStrictEqual(barListeners, [listener]);
38-
assert.deepStrictEqual(bazListeners, [listener, listener]);
39-
// after calling removeAllListeners,
40-
// new listeners arrays are different from the old
41-
assert.notEqual(e1.listeners('bar'), barListeners);
42-
assert.notEqual(e1.listeners('baz'), bazListeners);
20+
{
21+
const ee = new events.EventEmitter();
22+
ee.on('foo', listener);
23+
ee.on('bar', listener);
24+
ee.on('baz', listener);
25+
ee.on('baz', listener);
26+
const fooListeners = ee.listeners('foo');
27+
const barListeners = ee.listeners('bar');
28+
const bazListeners = ee.listeners('baz');
29+
ee.on('removeListener', expect(['bar', 'baz', 'baz']));
30+
ee.removeAllListeners('bar');
31+
ee.removeAllListeners('baz');
32+
assert.deepStrictEqual(ee.listeners('foo'), [listener]);
33+
assert.deepStrictEqual(ee.listeners('bar'), []);
34+
assert.deepStrictEqual(ee.listeners('baz'), []);
35+
// After calling removeAllListeners(),
36+
// the old listeners array should stay unchanged.
37+
assert.deepStrictEqual(fooListeners, [listener]);
38+
assert.deepStrictEqual(barListeners, [listener]);
39+
assert.deepStrictEqual(bazListeners, [listener, listener]);
40+
// After calling removeAllListeners(),
41+
// new listeners arrays is different from the old.
42+
assert.notEqual(ee.listeners('bar'), barListeners);
43+
assert.notEqual(ee.listeners('baz'), bazListeners);
44+
}
4345

44-
var e2 = new events.EventEmitter();
45-
e2.on('foo', listener);
46-
e2.on('bar', listener);
47-
// expect LIFO order
48-
e2.on('removeListener', expect(['foo', 'bar', 'removeListener']));
49-
e2.on('removeListener', expect(['foo', 'bar']));
50-
e2.removeAllListeners();
51-
console.error(e2);
52-
assert.deepStrictEqual([], e2.listeners('foo'));
53-
assert.deepStrictEqual([], e2.listeners('bar'));
46+
{
47+
const ee = new events.EventEmitter();
48+
ee.on('foo', listener);
49+
ee.on('bar', listener);
50+
// Expect LIFO order
51+
ee.on('removeListener', expect(['foo', 'bar', 'removeListener']));
52+
ee.on('removeListener', expect(['foo', 'bar']));
53+
ee.removeAllListeners();
54+
assert.deepStrictEqual([], ee.listeners('foo'));
55+
assert.deepStrictEqual([], ee.listeners('bar'));
56+
}
5457

55-
var e3 = new events.EventEmitter();
56-
e3.on('removeListener', listener);
57-
// check for regression where removeAllListeners throws when
58-
// there exists a removeListener listener, but there exists
59-
// no listeners for the provided event type
60-
assert.doesNotThrow(e3.removeAllListeners.bind(e3, 'foo'));
58+
{
59+
const ee = new events.EventEmitter();
60+
ee.on('removeListener', listener);
61+
// Check for regression where removeAllListeners() throws when
62+
// there exists a 'removeListener' listener, but there exists
63+
// no listeners for the provided event type.
64+
assert.doesNotThrow(ee.removeAllListeners.bind(ee, 'foo'));
65+
}
6166

62-
var e4 = new events.EventEmitter();
63-
var expectLength = 2;
64-
e4.on('removeListener', function(name, listener) {
65-
assert.equal(expectLength--, this.listeners('baz').length);
66-
});
67-
e4.on('baz', function() {});
68-
e4.on('baz', function() {});
69-
e4.on('baz', function() {});
70-
assert.equal(e4.listeners('baz').length, expectLength + 1);
71-
e4.removeAllListeners('baz');
72-
assert.equal(e4.listeners('baz').length, 0);
67+
{
68+
const ee = new events.EventEmitter();
69+
var expectLength = 2;
70+
ee.on('removeListener', function(name, listener) {
71+
assert.strictEqual(expectLength--, this.listeners('baz').length);
72+
});
73+
ee.on('baz', function() {});
74+
ee.on('baz', function() {});
75+
ee.on('baz', function() {});
76+
assert.strictEqual(ee.listeners('baz').length, expectLength + 1);
77+
ee.removeAllListeners('baz');
78+
assert.strictEqual(ee.listeners('baz').length, 0);
79+
}

0 commit comments

Comments
 (0)