|
4 | 4 | const { Buffer } = require('buffer')
|
5 | 5 | const chai = require('chai')
|
6 | 6 | chai.use(require('dirty-chai'))
|
| 7 | +chai.use(require('chai-as-promised')) |
7 | 8 | const { expect } = chai
|
8 | 9 | const sinon = require('sinon')
|
9 | 10 | const Muxer = require('libp2p-mplex')
|
@@ -401,6 +402,40 @@ describe('libp2p.upgrader', () => {
|
401 | 402 | expect(libp2p.upgrader.protocols.get('/echo/1.0.1')).to.equal(echoHandler)
|
402 | 403 | })
|
403 | 404 |
|
| 405 | + it('should return muxed streams', async () => { |
| 406 | + const remotePeer = peers[1] |
| 407 | + libp2p = new Libp2p({ |
| 408 | + peerId: peers[0], |
| 409 | + modules: { |
| 410 | + transport: [Transport], |
| 411 | + streamMuxer: [Muxer], |
| 412 | + connEncryption: [Crypto] |
| 413 | + } |
| 414 | + }) |
| 415 | + const echoHandler = () => {} |
| 416 | + libp2p.handle(['/echo/1.0.0'], echoHandler) |
| 417 | + |
| 418 | + const remoteUpgrader = new Upgrader({ |
| 419 | + localPeer: remotePeer, |
| 420 | + muxers: new Map([[Muxer.multicodec, Muxer]]), |
| 421 | + cryptos: new Map([[Crypto.protocol, Crypto]]) |
| 422 | + }) |
| 423 | + remoteUpgrader.protocols.set('/echo/1.0.0', echoHandler) |
| 424 | + |
| 425 | + const { inbound, outbound } = mockMultiaddrConnPair({ addrs, remotePeer }) |
| 426 | + const [localConnection] = await Promise.all([ |
| 427 | + libp2p.upgrader.upgradeOutbound(outbound), |
| 428 | + remoteUpgrader.upgradeInbound(inbound) |
| 429 | + ]) |
| 430 | + sinon.spy(remoteUpgrader, '_onStream') |
| 431 | + |
| 432 | + const { stream } = await localConnection.newStream(['/echo/1.0.0']) |
| 433 | + expect(stream).to.include.keys(['id', 'close', 'reset', 'timeline']) |
| 434 | + |
| 435 | + const [arg0] = remoteUpgrader._onStream.getCall(0).args |
| 436 | + expect(arg0.stream).to.include.keys(['id', 'close', 'reset', 'timeline']) |
| 437 | + }) |
| 438 | + |
404 | 439 | it('should emit connect and disconnect events', async () => {
|
405 | 440 | const remotePeer = peers[1]
|
406 | 441 | libp2p = new Libp2p({
|
|
0 commit comments