@@ -13,7 +13,6 @@ import {
13
13
import type { Message , SubscriptionChangeData } from '@libp2p/interfaces/pubsub'
14
14
import type { RPC } from '../ts/message/rpc.js'
15
15
import type { ConnectionManagerEvents } from '@libp2p/interfaces/connection-manager'
16
- import { pEvent } from 'p-event'
17
16
import pWaitFor from 'p-wait-for'
18
17
import { Components } from '@libp2p/interfaces/components'
19
18
import { sparseConnect ,
@@ -98,13 +97,24 @@ const checkReceivedMessage =
98
97
node . getPubSub ( ) . addEventListener ( 'message' , cb )
99
98
} )
100
99
101
- const awaitEvents = async < Events = GossipsubEvents > ( emitter : EventEmitter < Events > , event : keyof Events , number : number , timeout = 10000 ) => {
102
- for ( let i = 0 ; i < number ; i ++ ) {
103
- // @ts -expect-error pEvent types are looser than the sig of this function
104
- await pEvent ( emitter , event , {
105
- timeout
106
- } )
107
- }
100
+ const awaitEvents = async < Events = GossipsubEvents > ( emitter : EventEmitter < Events > , event : keyof Events , number : number , timeout = 30000 ) => {
101
+ return new Promise < void > ( ( resolve , reject ) => {
102
+ let cb : ( ) => void
103
+ let counter = 0
104
+ const t = setTimeout ( ( ) => {
105
+ emitter . removeEventListener ( event , cb )
106
+ reject ( new Error ( `${ counter } of ${ number } '${ event } ' events received after ${ timeout } ms` ) )
107
+ } , timeout )
108
+ cb = ( ) => {
109
+ counter ++
110
+ if ( counter >= number ) {
111
+ clearTimeout ( t )
112
+ emitter . removeEventListener ( event , cb )
113
+ resolve ( )
114
+ }
115
+ }
116
+ emitter . addEventListener ( event , cb )
117
+ } )
108
118
}
109
119
110
120
describe ( 'go-libp2p-pubsub gossipsub tests' , function ( ) {
0 commit comments