mirror of
https://github.com/fluencelabs/js-libp2p-interfaces
synced 2025-04-28 21:12:28 +00:00
fix(connection): tracks streams properly (#25)
This commit is contained in:
parent
f6871afd76
commit
5c88d77aaa
@ -138,7 +138,7 @@ class Connection {
|
|||||||
|
|
||||||
const { stream, protocol } = await this._newStream(protocols)
|
const { stream, protocol } = await this._newStream(protocols)
|
||||||
|
|
||||||
this.addStream(stream, protocol)
|
this.addStream(stream, { protocol })
|
||||||
|
|
||||||
return {
|
return {
|
||||||
stream,
|
stream,
|
||||||
|
@ -120,6 +120,19 @@ module.exports = (test) => {
|
|||||||
expect(connection.stat.status).to.equal(Status.CLOSED)
|
expect(connection.stat.status).to.equal(Status.CLOSED)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('should properly track streams', async () => {
|
||||||
|
// Open stream
|
||||||
|
const protocol = '/echo/0.0.1'
|
||||||
|
const { stream } = await connection.newStream(protocol)
|
||||||
|
const trackedStream = connection.registry.get(stream.id)
|
||||||
|
expect(trackedStream).to.have.property('protocol', protocol)
|
||||||
|
|
||||||
|
// Close stream
|
||||||
|
await stream.close()
|
||||||
|
|
||||||
|
expect(connection.registry.get(stream.id)).to.not.exist()
|
||||||
|
})
|
||||||
|
|
||||||
it('should support a proxy on the timeline', async () => {
|
it('should support a proxy on the timeline', async () => {
|
||||||
sinon.spy(proxyHandler, 'set')
|
sinon.spy(proxyHandler, 'set')
|
||||||
expect(connection.stat.timeline.close).to.not.exist()
|
expect(connection.stat.timeline.close).to.not.exist()
|
||||||
|
@ -25,7 +25,7 @@ describe('compliance tests', () => {
|
|||||||
const openStreams = []
|
const openStreams = []
|
||||||
let streamId = 0
|
let streamId = 0
|
||||||
|
|
||||||
return new Connection({
|
const connection = new Connection({
|
||||||
localPeer,
|
localPeer,
|
||||||
remotePeer,
|
remotePeer,
|
||||||
localAddr,
|
localAddr,
|
||||||
@ -43,7 +43,10 @@ describe('compliance tests', () => {
|
|||||||
const id = streamId++
|
const id = streamId++
|
||||||
const stream = pair()
|
const stream = pair()
|
||||||
|
|
||||||
stream.close = () => stream.sink([])
|
stream.close = async () => {
|
||||||
|
await stream.sink([])
|
||||||
|
connection.removeStream(stream.id)
|
||||||
|
}
|
||||||
stream.id = id
|
stream.id = id
|
||||||
|
|
||||||
openStreams.push(stream)
|
openStreams.push(stream)
|
||||||
@ -57,6 +60,7 @@ describe('compliance tests', () => {
|
|||||||
getStreams: () => openStreams,
|
getStreams: () => openStreams,
|
||||||
...properties
|
...properties
|
||||||
})
|
})
|
||||||
|
return connection
|
||||||
},
|
},
|
||||||
async teardown () {
|
async teardown () {
|
||||||
// cleanup resources created by setup()
|
// cleanup resources created by setup()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user