Skip to content

Commit c2bc7fe

Browse files
committed
chore: remove setTimeout from test
1 parent 6d72709 commit c2bc7fe

File tree

6 files changed

+27
-12
lines changed

6 files changed

+27
-12
lines changed

.release-please.json

+1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
"packages/peer-id": {},
3030
"packages/peer-record": {},
3131
"packages/peer-store": {},
32+
"packages/pnet": {},
3233
"packages/protocol-autonat": {},
3334
"packages/protocol-dcutr": {},
3435
"packages/protocol-echo": {},

package.json

+3-2
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,13 @@
3434
"release:rc": "aegir release-rc",
3535
"docs": "aegir docs",
3636
"docs:no-publish": "aegir docs --publish false -- --exclude interop --exclude doc",
37-
"postinstall": "patch-package"
37+
"postinstall": "patch-package && rm -rf node_modules/@chainsafe/libp2p-yamux/node_modules node_modules/@chainsafe/libp2p-noise/node_modules node_modules/@chainsafe/libp2p-gossipsub/node_modules node_modules/@libp2p/daemon-client/node_modules node_modules/@libp2p/daemon-server/node_modules node_modules/@libp2p/daemon-protocol/node_modules node_modules/@libp2p/interop/node_modules"
3838
},
3939
"devDependencies": {
4040
"aegir": "^44.0.1",
4141
"npm-run-all": "^4.1.5",
42-
"patch-package": "^8.0.0"
42+
"patch-package": "^8.0.0",
43+
"rimraf": "^6.0.1"
4344
},
4445
"eslintConfig": {
4546
"extends": "ipfs",

packages/kad-dht/test/query.spec.ts

+13-4
Original file line numberDiff line numberDiff line change
@@ -312,6 +312,7 @@ describe('QueryManager', () => {
312312
})
313313
await manager.start()
314314

315+
const deferred = pDefer()
315316
const controller = new AbortController()
316317
let aborted
317318

@@ -331,16 +332,24 @@ describe('QueryManager', () => {
331332
aborted = true
332333
})
333334

335+
deferred.resolve()
336+
334337
await delay(1000)
335338

336339
yield topology[peer.toString()].event
337340
}
338341

339-
setTimeout(() => {
340-
controller.abort()
341-
}, 10)
342+
// start the query
343+
const queryPromise = all(manager.run(key, queryFunc, { signal: controller.signal }))
344+
345+
// wait for the query function to be invoked
346+
await deferred.promise
347+
348+
// abort the query
349+
controller.abort()
342350

343-
await expect(all(manager.run(key, queryFunc, { signal: controller.signal }))).to.eventually.be.rejected()
351+
// the should have been aborted
352+
await expect(queryPromise).to.eventually.be.rejected()
344353
.with.property('name', 'QueryAbortedError')
345354

346355
expect(aborted).to.be.true()

packages/transport-webrtc/src/private-to-private/initiate-connection.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,8 @@ export async function initiateConnection ({ rtcConfiguration, dataChannel, signa
138138

139139
onProgress?.(new CustomProgressEvent('webrtc:read-sdp-answer'))
140140

141+
log.trace('initiator read SDP answer')
142+
141143
// read answer
142144
const answerMessage = await messageStream.read({
143145
signal
@@ -147,7 +149,7 @@ export async function initiateConnection ({ rtcConfiguration, dataChannel, signa
147149
throw new SDPHandshakeFailedError('Remote should send an SDP answer')
148150
}
149151

150-
log.trace('initiator receive SDP answer %s', answerMessage.data)
152+
log.trace('initiator received SDP answer %s', answerMessage.data)
151153

152154
const answerSdp = new RTCSessionDescription({ type: 'answer', sdp: answerMessage.data })
153155
await peerConnection.setRemoteDescription(answerSdp).catch(err => {

packages/transport-webrtc/src/private-to-private/signaling-stream-handler.ts

+5-3
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { pbStream } from 'it-protobuf-stream'
33
import { SDPHandshakeFailedError } from '../error.js'
44
import { type RTCPeerConnection, RTCSessionDescription } from '../webrtc/index.js'
55
import { Message } from './pb/message.js'
6-
import { readCandidatesUntilConnected } from './util.js'
6+
import { getConnectionState, readCandidatesUntilConnected } from './util.js'
77
import type { Logger } from '@libp2p/interface'
88
import type { IncomingStreamData } from '@libp2p/interface-internal'
99

@@ -40,6 +40,8 @@ export async function handleIncomingStream ({ peerConnection, stream, signal, co
4040
})
4141
}
4242

43+
log.trace('recipient read SDP offer')
44+
4345
// read an SDP offer
4446
const pbOffer = await messageStream.read({
4547
signal
@@ -49,7 +51,7 @@ export async function handleIncomingStream ({ peerConnection, stream, signal, co
4951
throw new SDPHandshakeFailedError(`expected message type SDP_OFFER, received: ${pbOffer.type ?? 'undefined'} `)
5052
}
5153

52-
log.trace('recipient receive SDP offer %s', pbOffer.data)
54+
log.trace('recipient received SDP offer %s', pbOffer.data)
5355

5456
const offer = new RTCSessionDescription({
5557
type: 'offer',
@@ -88,7 +90,7 @@ export async function handleIncomingStream ({ peerConnection, stream, signal, co
8890
log
8991
})
9092
} catch (err: any) {
91-
if (peerConnection.connectionState !== 'connected') {
93+
if (getConnectionState(peerConnection) !== 'connected') {
9294
log.error('error while handling signaling stream from peer %a', connection.remoteAddr, err)
9395

9496
peerConnection.close()

packages/transport-webrtc/src/private-to-private/util.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -67,13 +67,13 @@ export const readCandidatesUntilConnected = async (pc: RTCPeerConnection, stream
6767
} catch (err) {
6868
options.log.error('%s error parsing ICE candidate', options.direction, err)
6969

70-
if (options.signal?.aborted === true) {
70+
if (options.signal?.aborted === true && getConnectionState(pc) !== 'connected') {
7171
throw err
7272
}
7373
}
7474
}
7575

76-
function getConnectionState (pc: RTCPeerConnection): string {
76+
export function getConnectionState (pc: RTCPeerConnection): string {
7777
return isFirefox ? pc.iceConnectionState : pc.connectionState
7878
}
7979

0 commit comments

Comments
 (0)