1
- import EventEmitter from 'events' ;
2
-
3
1
import { expect } from 'chai' ;
4
2
import { describe , it } from 'mocha' ;
5
3
6
- import eventEmitterAsyncIterator from './eventEmitterAsyncIterator ' ;
4
+ import SimplePubSub from './simplePubSub ' ;
7
5
8
- describe ( 'eventEmitterAsyncIterator ' , ( ) => {
6
+ describe ( 'SimplePubSub ' , ( ) => {
9
7
it ( 'subscribe async-iterator mock' , async ( ) => {
10
- // Create an AsyncGenerator from an EventEmitter
11
- const emitter = new EventEmitter ( ) ;
12
- const iterator = eventEmitterAsyncIterator ( emitter , 'publish' ) ;
8
+ const pubsub = new SimplePubSub ( ) ;
9
+ const iterator = pubsub . getSubscriber ( ) ;
13
10
14
11
// Queue up publishes
15
- expect ( emitter . emit ( 'publish' , 'Apple' ) ) . to . equal ( true ) ;
16
- expect ( emitter . emit ( 'publish' , 'Banana' ) ) . to . equal ( true ) ;
12
+ expect ( pubsub . emit ( 'Apple' ) ) . to . equal ( true ) ;
13
+ expect ( pubsub . emit ( 'Banana' ) ) . to . equal ( true ) ;
17
14
18
15
// Read payloads
19
16
expect ( await iterator . next ( ) ) . to . deep . equal ( {
@@ -30,8 +27,8 @@ describe('eventEmitterAsyncIterator', () => {
30
27
const i4 = iterator . next ( ) . then ( ( x ) => x ) ;
31
28
32
29
// Publish
33
- expect ( emitter . emit ( 'publish' , 'Coconut' ) ) . to . equal ( true ) ;
34
- expect ( emitter . emit ( 'publish' , 'Durian' ) ) . to . equal ( true ) ;
30
+ expect ( pubsub . emit ( 'Coconut' ) ) . to . equal ( true ) ;
31
+ expect ( pubsub . emit ( 'Durian' ) ) . to . equal ( true ) ;
35
32
36
33
// Await out of order to get correct results
37
34
expect ( await i4 ) . to . deep . equal ( { done : false , value : 'Durian' } ) ;
@@ -40,11 +37,11 @@ describe('eventEmitterAsyncIterator', () => {
40
37
// Read ahead
41
38
const i5 = iterator . next ( ) . then ( ( x ) => x ) ;
42
39
43
- // Terminate emitter
40
+ // Terminate queue
44
41
await iterator . return ( ) ;
45
42
46
43
// Publish is not caught after terminate
47
- expect ( emitter . emit ( 'publish' , 'Fig' ) ) . to . equal ( false ) ;
44
+ expect ( pubsub . emit ( 'Fig' ) ) . to . equal ( false ) ;
48
45
49
46
// Find that cancelled read-ahead got a "done" result
50
47
expect ( await i5 ) . to . deep . equal ( { done : true , value : undefined } ) ;
0 commit comments