mirror of
https://github.com/fluencelabs/js-libp2p-tcp
synced 2025-06-22 22:01:46 +00:00
feat: cancel dials with AbortController
This commit is contained in:
committed by
Jacob Heun
parent
bc1aeefd0d
commit
e18a3d51a6
@ -1,8 +1,10 @@
|
||||
/* eslint-env mocha */
|
||||
'use strict'
|
||||
|
||||
const sinon = require('sinon')
|
||||
const tests = require('interface-transport')
|
||||
const multiaddr = require('multiaddr')
|
||||
const net = require('net')
|
||||
const TCP = require('../src')
|
||||
|
||||
describe('interface-transport compliance', () => {
|
||||
@ -15,7 +17,27 @@ describe('interface-transport compliance', () => {
|
||||
multiaddr('/ip4/127.0.0.1/tcp/9093'),
|
||||
multiaddr('/dns4/ipfs.io')
|
||||
]
|
||||
return { transport: tcp, addrs }
|
||||
|
||||
// Used by the dial tests to simulate a delayed connect
|
||||
const connector = {
|
||||
delay (delayMs) {
|
||||
const netConnect = net.connect
|
||||
sinon.replace(net, 'connect', (opts) => {
|
||||
const socket = netConnect(opts)
|
||||
const socketEmit = socket.emit.bind(socket)
|
||||
sinon.replace(socket, 'emit', (...args) => {
|
||||
const time = args[0] === 'connect' ? delayMs : 0
|
||||
setTimeout(() => socketEmit(...args), time)
|
||||
})
|
||||
return socket
|
||||
})
|
||||
},
|
||||
restore () {
|
||||
sinon.restore()
|
||||
}
|
||||
}
|
||||
|
||||
return { transport: tcp, addrs, connector }
|
||||
}
|
||||
})
|
||||
})
|
||||
|
Reference in New Issue
Block a user