@@ -12,291 +12,6 @@ describe('Event Emitter Tests', () => {
1212 expect ( actual ) . to . be . instanceOf ( EventEmitter ) ;
1313 } )
1414
15- it ( 'Should match' , async ( ) => {
16- const emitter = new EventEmitter ( )
17-
18- emitter . on ( 'match something' , x => { } )
19- emitter . on ( / m a t c h ( s o m e t h i n g ) / g, x => { } )
20- emitter . on ( / m a t c h ( s o m e ) ( t h i n g ) / i, x => { } )
21- emitter . on ( / m a t c h ( s o m e ) ( t h i n g ) / i, x => { } )
22- emitter . on ( 'no mas' , x => { } )
23- emitter . on ( / n o m a s / g, x => { } )
24-
25- const matches = emitter . match ( 'match something' )
26-
27- expect ( matches . get ( 'match something' ) ?. pattern ) . to . equal ( 'match something' )
28- expect ( matches . get ( '/match (something)/g' ) ?. pattern ) . to . equal ( '/match (something)/g' )
29- expect ( matches . get ( '/match (some)(thing)/i' ) ?. pattern ) . to . equal ( '/match (some)(thing)/i' )
30-
31- expect ( matches . get ( '/match (something)/g' ) ?. data . args . length ) . to . equal ( 1 )
32- expect ( matches . get ( '/match (some)(thing)/i' ) ?. data . args . length ) . to . equal ( 2 )
33- } )
34-
35- it ( 'Should emit' , async ( ) => {
36- const emitter = new EventEmitter < {
37- 'trigger basic something' : [ number ] ,
38- '/trigger basic something/' : [ number ] ,
39- 'trigger advance something' : [ number ] ,
40- 'trigger incomplete something' : [ number ]
41- } >
42-
43- const triggered : number [ ] = [ ]
44- emitter . on ( 'trigger basic something' , async ( x ) => {
45- expect ( x ) . to . equal ( 1 )
46- triggered . push ( 1 )
47- } , 1 )
48-
49- emitter . on < '/trigger basic something/' > ( / t r i g g e r b a s i c s o m e t h i n g / , async x => {
50- expect ( x ) . to . equal ( 1 )
51- triggered . push ( 2 )
52- } , 2 )
53-
54- emitter . on ( 'trigger basic something' , async x => {
55- expect ( x ) . to . equal ( 1 )
56- triggered . push ( 3 )
57- } , 3 )
58-
59- emitter . on ( / t r i g g e r b a s i c s o m e t h i n g / , async x => {
60- expect ( x ) . to . equal ( 1 )
61- triggered . push ( 4 )
62- } , 4 )
63-
64- await emitter . emit ( 'trigger basic something' , 1 )
65-
66- expect ( triggered . length ) . to . equal ( 4 )
67- expect ( triggered [ 0 ] ) . to . equal ( 4 )
68- expect ( triggered [ 1 ] ) . to . equal ( 3 )
69- expect ( triggered [ 2 ] ) . to . equal ( 2 )
70- expect ( triggered [ 3 ] ) . to . equal ( 1 )
71- } )
72-
73- it ( 'Should call all listeners' , async ( ) => {
74- const emitter = new EventEmitter
75-
76- const triggered : number [ ] = [ ]
77- emitter . on ( 'trigger basic something' , async x => {
78- expect ( x ) . to . equal ( 1 )
79- triggered . push ( 1 )
80- } )
81-
82- emitter . on ( 'trigger basic something' , async x => {
83- expect ( x ) . to . equal ( 1 )
84- triggered . push ( 2 )
85- } )
86-
87- emitter . on ( 'trigger basic something' , async x => {
88- expect ( x ) . to . equal ( 1 )
89- triggered . push ( 3 )
90- } )
91-
92- await emitter . emit ( 'trigger basic something' , 1 )
93-
94- expect ( triggered . length ) . to . equal ( 3 )
95- expect ( triggered [ 0 ] ) . to . equal ( 1 )
96- expect ( triggered [ 1 ] ) . to . equal ( 2 )
97- expect ( triggered [ 2 ] ) . to . equal ( 3 )
98- } )
99-
100- it ( 'Should have meta' , async ( ) => {
101- const emitter = new EventEmitter
102-
103- const triggered : number [ ] = [ ]
104- emitter . on ( / ^ t r i g g e r b a s i c ( .+ ) $ / , async function something1 ( ) {
105- expect ( emitter . event ?. event ) . to . equal ( 'trigger basic something' )
106- expect ( emitter . event ?. pattern ) . to . equal ( '/^trigger basic (.+)$/' )
107- expect ( emitter . event ?. data . args [ 0 ] ) . to . equal ( 'something' )
108- triggered . push ( 1 )
109- } , 2 )
110-
111- emitter . on ( / t r i g g e r ( .+ ) s o m e t h i n g $ / , async function something2 ( ) {
112- expect ( emitter . event ?. event ) . to . equal ( 'trigger basic something' )
113- expect ( emitter . event ?. pattern ) . to . equal ( '/trigger (.+) something$/' )
114- expect ( emitter . event ?. data . args [ 0 ] ) . to . equal ( 'basic' )
115- triggered . push ( 2 )
116- } , 1 )
117-
118- const actual = await emitter . emit ( 'trigger basic something' , 1 )
119-
120- expect ( triggered . length ) . to . equal ( 2 )
121- expect ( triggered [ 0 ] ) . to . equal ( 1 )
122- expect ( triggered [ 1 ] ) . to . equal ( 2 )
123- expect ( actual . code ) . to . equal ( 200 )
124- } )
125-
126- it ( 'Should emit advanced event' , async ( ) => {
127- const emitter = new EventEmitter
128-
129- const triggered : number [ ] = [ ]
130- emitter . on ( 'trigger advance something' , async x => {
131- expect ( x ) . to . equal ( 1 )
132- triggered . push ( 1 )
133- } )
134-
135- emitter . on ( / t r i g g e r ( a d v a n c e ) s o m e t h i n g / , async x => {
136- expect ( x ) . to . equal ( 1 )
137- triggered . push ( 2 )
138- expect ( emitter . event ?. data . args [ 0 ] ) . to . equal ( 'advance' )
139- } , 2 )
140-
141- const actual = await emitter . emit ( 'trigger advance something' , 1 )
142-
143- expect ( triggered . length ) . to . equal ( 2 )
144- expect ( triggered [ 0 ] ) . to . equal ( 2 )
145- expect ( triggered [ 1 ] ) . to . equal ( 1 )
146- expect ( actual . code ) . to . equal ( 200 )
147- } )
148-
149- it ( 'Should emit incomplete event' , async ( ) => {
150- const emitter = new EventEmitter
151-
152- const triggered : number [ ] = [ ]
153- emitter . on ( 'trigger incomplete something' , async x => {
154- triggered . push ( 1 )
155- } )
156-
157- emitter . on ( / t r i g g e r ( i n c o m p l e t e ) s o m e t h i n g / , async x => {
158- expect ( x ) . to . equal ( 1 )
159- triggered . push ( 2 )
160- return false
161- } , 2 )
162-
163- const actual = await emitter . emit ( 'trigger incomplete something' , 1 )
164-
165- expect ( triggered . length ) . to . equal ( 1 )
166- expect ( triggered [ 0 ] ) . to . equal ( 2 )
167- expect ( actual . code ) . to . equal ( 309 )
168- } )
169-
170- it ( 'Should unbind' , async ( ) => {
171- const emitter = new EventEmitter
172- let listener = async x => {
173- triggered . push ( 1 )
174- }
175-
176- const triggered : number [ ] = [ ]
177- emitter . on ( 'trigger unbind something' , listener )
178-
179- emitter . clear ( 'trigger unbind something' )
180- const actual = await emitter . emit ( 'trigger unbind something' )
181-
182- expect ( triggered . length ) . to . equal ( 0 )
183- expect ( actual . code ) . to . equal ( 404 )
184-
185- let listener2 = async x => {
186- triggered . push ( 2 )
187- }
188-
189- emitter . on ( 'trigger unbind something' , listener )
190- emitter . on ( 'trigger unbind something' , listener2 )
191- emitter . unbind ( 'trigger unbind something' , listener )
192-
193- const actual2 = await emitter . emit ( 'trigger unbind something' )
194-
195- expect ( triggered . length ) . to . equal ( 1 )
196- expect ( triggered [ 0 ] ) . to . equal ( 2 )
197- expect ( actual2 . code ) . to . equal ( 200 )
198- } )
199-
200- it ( 'Should nest' , async ( ) => {
201- const emitter = new EventEmitter < {
202- 'on something' : [ number ] ,
203- 'on something else' : [ number ]
204- } > ( ) ;
205-
206- emitter . on ( 'on something' , async x => {
207- expect ( emitter . event ?. event ) . to . equal ( 'on something' )
208- const actual = await emitter . emit ( 'on something else' , x + 1 )
209- expect ( actual . code ) . to . equal ( 200 )
210- } )
211-
212- emitter . on ( 'on something else' , x => {
213- expect ( emitter . event ?. event ) . to . equal ( 'on something else' )
214- } )
215-
216- await emitter . emit ( 'on something' , 1 )
217- } )
218-
219- it ( 'Should listen to regexp' , async ( ) => {
220- const emitter = new EventEmitter
221-
222- let triggered = 0
223- emitter . on ( 'GET /components/heyo/beans' , async x => {
224- expect ( emitter . event ?. event ) . to . equal ( 'GET /components/heyo/beans' )
225- triggered ++
226- } )
227-
228- emitter . on ( / ^ G E T \s \/ c o m p o n e n t s \/ ( .* ) \/ * $ / , async x => {
229- expect ( emitter . event ?. event ) . to . equal ( 'GET /components/heyo/beans' )
230- triggered ++
231- expect ( emitter . event ?. data . args [ 0 ] ) . to . equal ( 'heyo/beans' )
232- } )
233-
234- await emitter . emit ( 'GET /components/heyo/beans' , 1 )
235-
236- expect ( triggered ) . to . equal ( 2 )
237- } )
238-
239- it ( 'Should asyncronously emit' , async ( ) => {
240- const emitter = new EventEmitter ( ) ;
241-
242- const actual : number [ ] = [ ]
243-
244- emitter . on ( 'async test' , async ( ) => {
245- actual . push ( 1 )
246- } )
247-
248- emitter . on ( 'async test' , async ( ) => {
249- actual . push ( 2 )
250- } )
251-
252- emitter . on ( 'async test' , async ( ) => {
253- actual . push ( 3 )
254- } )
255-
256- await emitter . emit ( 'async test' , 0 )
257-
258- expect ( actual . length ) . to . equal ( 3 )
259- } )
260-
261- it ( 'Should allow middleware' , async ( ) => {
262- const emitter1 = new EventEmitter
263- const emitter2 = new EventEmitter
264-
265- const triggered : number [ ] = [ ]
266- emitter1 . on ( 'trigger basic something' , async x => {
267- expect ( x ) . to . equal ( 1 )
268- triggered . push ( 1 )
269- } , 1 )
270-
271- emitter2 . on ( 'trigger basic something' , async x => {
272- expect ( x ) . to . equal ( 1 )
273- triggered . push ( 2 )
274- } , 2 )
275-
276- emitter1 . use ( emitter2 )
277-
278- await emitter1 . emit ( 'trigger basic something' , 1 )
279-
280- expect ( triggered . length ) . to . equal ( 2 )
281- expect ( triggered [ 0 ] ) . to . equal ( 2 )
282- expect ( triggered [ 1 ] ) . to . equal ( 1 )
283- } )
284-
285- it ( 'Should handle clearing a non-existent event gracefully' , ( ) => {
286- const emitter = new EventEmitter ( ) ;
287- expect ( emitter . listeners [ 'non-existent event' ] ) . to . be . undefined ;
288- emitter . clear ( 'non-existent event' ) ;
289- expect ( emitter . listeners [ 'non-existent event' ] ) . to . be . undefined ;
290- } )
291-
292- it ( 'Should return empty matches when no patterns match' , ( ) => {
293- const emitter = new EventEmitter ( ) ;
294- emitter . on ( 'exampleEvent' , async ( ) => { } ) ;
295- emitter . on ( / r e g e x E v e n t / , async ( ) => { } ) ;
296- const matches = emitter . match ( 'nonMatchingEvent' ) ;
297- expect ( matches . size ) . to . equal ( 0 ) ;
298- } )
299-
30015 it ( 'Should hook' , async ( ) => {
30116 const emitter = new EventEmitter < {
30217 'on something' : [ number ] ,
0 commit comments