@@ -2,6 +2,7 @@ import { it, vi, expect } from 'vitest';
2
2
3
3
import { EventEmitter } from './event_emitter' ;
4
4
import exp from 'constants' ;
5
+ import { emit , removeAllListeners } from 'process' ;
5
6
6
7
it ( 'should call all registered listeners correctly on emit event' , ( ) => {
7
8
const emitter = new EventEmitter < { foo : number , bar : string , baz : boolean } > ( ) ;
@@ -60,12 +61,27 @@ it('should remove listeners correctly', () => {
60
61
expect ( barListener1 ) . toHaveBeenCalledWith ( 'hello' ) ;
61
62
} )
62
63
63
- // it('should remove all listeners', () => {
64
- // const emitter = new EventEmitter();
65
- // const cb = jest.fn();
66
- // emitter.on('foo', cb);
67
- // emitter.on('foo', cb);
68
- // emitter.off('foo');
69
- // emitter.emit('foo');
70
- // expect(cb).not.toHaveBeenCalled();
71
- // }
64
+ it ( 'should remove all listeners when removeAllListeners() is called' , ( ) => {
65
+ const emitter = new EventEmitter < { foo : number , bar : string , baz : boolean } > ( ) ;
66
+ const fooListener1 = vi . fn ( ) ;
67
+ const fooListener2 = vi . fn ( ) ;
68
+
69
+ emitter . on ( 'foo' , fooListener1 ) ;
70
+ emitter . on ( 'foo' , fooListener2 ) ;
71
+
72
+ const barListener1 = vi . fn ( ) ;
73
+ const barListener2 = vi . fn ( ) ;
74
+
75
+ emitter . on ( 'bar' , barListener1 ) ;
76
+ emitter . on ( 'bar' , barListener2 ) ;
77
+
78
+ emitter . removeAllListeners ( ) ;
79
+
80
+ emitter . emit ( 'foo' , 1 ) ;
81
+ emitter . emit ( 'bar' , 'hello' ) ;
82
+
83
+ expect ( fooListener1 ) . not . toHaveBeenCalled ( ) ;
84
+ expect ( fooListener2 ) . not . toHaveBeenCalled ( ) ;
85
+ expect ( barListener1 ) . not . toHaveBeenCalled ( ) ;
86
+ expect ( barListener2 ) . not . toHaveBeenCalled ( ) ;
87
+ } ) ;
0 commit comments