|
1 | 1 | /* eslint-env mocha */
|
2 | 2 | 'use strict'
|
3 | 3 |
|
4 |
| -/* |
5 | 4 | const expect = require('chai').expect
|
6 | 5 | const multiaddr = require('multiaddr')
|
7 |
| -const Id = require('peer-id') |
8 |
| -const Peer = require('peer-info') |
9 |
| -const WebSockets = require('libp2p-websockets') |
| 6 | +const peerId = require('peer-id') |
| 7 | +const PeerInfo = require('peer-info') |
| 8 | +const WebRTCStar = require('libp2p-webrtc-star') |
10 | 9 | const bl = require('bl')
|
| 10 | +const parallel = require('run-parallel') |
11 | 11 |
|
12 | 12 | const Swarm = require('../src')
|
| 13 | + |
13 | 14 | describe('transport - webrtc-star', function () {
|
14 | 15 | this.timeout(10000)
|
15 | 16 |
|
16 |
| - var swarm |
| 17 | + let swarm1 |
| 18 | + let peer1 |
| 19 | + |
| 20 | + let swarm2 |
| 21 | + let peer2 |
17 | 22 |
|
18 | 23 | before(() => {
|
19 |
| - const b58IdSrc = 'QmYzgdesgjdvD3okTPGZT9NPmh1BuH5FfTVNKjsvaAprhb' |
20 |
| - // use a pre generated Id to save time |
21 |
| - const idSrc = Id.createFromB58String(b58IdSrc) |
22 |
| - const peerSrc = new Peer(idSrc) |
23 |
| - swarm = new Swarm(peerSrc) |
| 24 | + const id1 = peerId.createFromB58String('QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSooooA') |
| 25 | + peer1 = new PeerInfo(id1) |
| 26 | + const mh1 = multiaddr('/libp2p-webrtc-star/ip4/127.0.0.1/tcp/15555/ws/ipfs/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSooooA') |
| 27 | + peer1.multiaddr.add(mh1) |
| 28 | + |
| 29 | + const id2 = peerId.createFromB58String('QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSooooB') |
| 30 | + peer2 = new PeerInfo(id2) |
| 31 | + const mh2 = multiaddr('/libp2p-webrtc-star/ip4/127.0.0.1/tcp/15555/ws/ipfs/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSooooB') |
| 32 | + peer2.multiaddr.add(mh2) |
| 33 | + |
| 34 | + swarm1 = new Swarm(peer1) |
| 35 | + swarm2 = new Swarm(peer2) |
24 | 36 | })
|
25 | 37 |
|
26 |
| - it('add', (done) => { |
27 |
| - swarm.transport.add('ws', new WebSockets(), () => { |
28 |
| - expect(Object.keys(swarm.transports).length).to.equal(1) |
| 38 | + it('add WebRTCStar transport to swarm 1', (done) => { |
| 39 | + swarm1.transport.add('wstar', new WebRTCStar(), () => { |
| 40 | + expect(Object.keys(swarm1.transports).length).to.equal(1) |
29 | 41 | done()
|
30 | 42 | })
|
31 | 43 | })
|
32 | 44 |
|
33 |
| - it('dial', (done) => { |
34 |
| - const ma = multiaddr('/ip4/127.0.0.1/tcp/9100/ws') |
| 45 | + it('add WebRTCStar transport to swarm 2', (done) => { |
| 46 | + swarm2.transport.add('wstar', new WebRTCStar(), () => { |
| 47 | + expect(Object.keys(swarm2.transports).length).to.equal(1) |
| 48 | + done() |
| 49 | + }) |
| 50 | + }) |
| 51 | + |
| 52 | + it('listen on swarm 1', (done) => { |
| 53 | + swarm1.transport.listen('wstar', {}, (conn) => { |
| 54 | + conn.pipe(conn) |
| 55 | + }, done) |
| 56 | + }) |
| 57 | + |
| 58 | + it('listen on swarm 2', (done) => { |
| 59 | + swarm2.transport.listen('wstar', {}, (conn) => { |
| 60 | + conn.pipe(conn) |
| 61 | + }, done) |
| 62 | + }) |
35 | 63 |
|
36 |
| - const conn = swarm.transport.dial('ws', ma, (err, conn) => { |
| 64 | + it('dial', (done) => { |
| 65 | + swarm1.transport.dial('wstar', peer2.multiaddrs[0], (err, conn) => { |
37 | 66 | expect(err).to.not.exist
|
| 67 | + |
| 68 | + const text = 'Hello World' |
| 69 | + conn.pipe(bl((err, data) => { |
| 70 | + expect(err).to.not.exist |
| 71 | + expect(data.toString()).to.equal(text) |
| 72 | + done() |
| 73 | + })) |
| 74 | + |
| 75 | + conn.write(text) |
| 76 | + conn.end() |
38 | 77 | })
|
| 78 | + }) |
39 | 79 |
|
40 |
| - conn.pipe(bl((err, data) => { |
41 |
| - expect(err).to.not.exist |
42 |
| - expect(data.toString()).to.equal('hey') |
43 |
| - done() |
44 |
| - })) |
45 |
| - conn.write('hey') |
46 |
| - conn.end() |
| 80 | + it('close', (done) => { |
| 81 | + parallel([ |
| 82 | + (cb) => { |
| 83 | + swarm1.transport.close('wstar', cb) |
| 84 | + }, |
| 85 | + (cb) => { |
| 86 | + swarm2.transport.close('wstar', cb) |
| 87 | + } |
| 88 | + ], done) |
47 | 89 | })
|
48 | 90 | })
|
49 |
| -*/ |
|
0 commit comments