2017-07-04 11:43:45 +01:00
|
|
|
'use strict'
|
|
|
|
|
|
|
|
const PeerInfo = require('peer-info')
|
|
|
|
const PeerId = require('peer-id')
|
|
|
|
const pull = require('pull-stream')
|
2017-11-27 10:10:36 +01:00
|
|
|
const parallel = require('async/parallel')
|
2017-07-04 11:43:45 +01:00
|
|
|
|
2017-11-27 10:10:36 +01:00
|
|
|
const rawPeer = require('./test/fixtures/test-peer.json')
|
|
|
|
const Node = require('./test/utils/bundle.node.js')
|
2017-07-04 11:43:45 +01:00
|
|
|
const sigServer = require('libp2p-webrtc-star/src/sig-server')
|
2017-11-27 10:10:36 +01:00
|
|
|
const WebSocketStarRendezvous = require('libp2p-websocket-star-rendezvous')
|
2017-07-04 11:43:45 +01:00
|
|
|
|
2017-11-27 10:10:36 +01:00
|
|
|
let wrtcRendezvous
|
|
|
|
let wsRendezvous
|
2017-07-04 11:43:45 +01:00
|
|
|
let node
|
|
|
|
|
2017-10-26 04:51:36 -07:00
|
|
|
const before = (done) => {
|
2017-11-27 10:10:36 +01:00
|
|
|
parallel([
|
|
|
|
(cb) => {
|
|
|
|
sigServer.start({ port: 15555 }, (err, server) => {
|
|
|
|
if (err) { return cb(err) }
|
|
|
|
wrtcRendezvous = server
|
|
|
|
cb()
|
|
|
|
})
|
|
|
|
},
|
|
|
|
(cb) => {
|
|
|
|
WebSocketStarRendezvous.start({
|
|
|
|
port: 14444,
|
|
|
|
refreshPeerListIntervalMS: 1000,
|
|
|
|
strictMultiaddr: false,
|
|
|
|
cryptoChallenge: false
|
|
|
|
}, (err, _server) => {
|
|
|
|
if (err) { return cb(err) }
|
|
|
|
wsRendezvous = _server
|
|
|
|
cb()
|
|
|
|
})
|
|
|
|
},
|
|
|
|
(cb) => {
|
|
|
|
PeerId.createFromJSON(rawPeer, (err, peerId) => {
|
|
|
|
if (err) {
|
|
|
|
return done(err)
|
|
|
|
}
|
|
|
|
const peer = new PeerInfo(peerId)
|
2017-07-04 11:43:45 +01:00
|
|
|
|
2017-11-27 10:10:36 +01:00
|
|
|
peer.multiaddrs.add('/ip4/127.0.0.1/tcp/9200/ws')
|
2017-07-04 11:43:45 +01:00
|
|
|
|
2017-11-27 10:10:36 +01:00
|
|
|
node = new Node(peer)
|
|
|
|
node.handle('/echo/1.0.0', (protocol, conn) => pull(conn, conn))
|
|
|
|
node.start(cb)
|
|
|
|
})
|
2017-07-04 11:43:45 +01:00
|
|
|
}
|
2017-11-27 10:10:36 +01:00
|
|
|
], done)
|
2017-10-26 04:51:36 -07:00
|
|
|
}
|
2017-07-04 11:43:45 +01:00
|
|
|
|
2017-10-26 04:51:36 -07:00
|
|
|
const after = (done) => {
|
2017-11-27 10:10:36 +01:00
|
|
|
setTimeout(() => parallel(
|
|
|
|
[node, wrtcRendezvous, wsRendezvous].map((s) => {
|
|
|
|
return (cb) => s.stop(cb)
|
|
|
|
})
|
|
|
|
, done), 2000)
|
2017-10-26 04:51:36 -07:00
|
|
|
}
|
2017-07-04 11:43:45 +01:00
|
|
|
|
2017-10-26 04:51:36 -07:00
|
|
|
module.exports = {
|
|
|
|
hooks: {
|
|
|
|
pre: before,
|
|
|
|
post: after
|
|
|
|
}
|
|
|
|
}
|