From 6384dc95a2ddbfa53bf2d7a0fc5ffb6c7c5da7e8 Mon Sep 17 00:00:00 2001 From: Friedel Ziegelmayer Date: Thu, 17 Nov 2016 11:43:55 +0100 Subject: [PATCH 1/3] feat: prepare for swarm.peers changes in 0.4.5 --- package.json | 3 ++- src/swarm.js | 49 +++++++++++++++++++++++++++++++++++++++++++------ 2 files changed, 45 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 644a59c0c..da1b5af8c 100644 --- a/package.json +++ b/package.json @@ -34,6 +34,7 @@ "detect-node": "^2.0.3", "ipfs-block": "^0.5.0", "ipld-dag-pb": "^0.8.0", + "multiaddr": "^2.0.3", "multihashes": "^0.2.2", "readable-stream": "2.1.5" }, @@ -49,4 +50,4 @@ "Victor Bjelkholm ", "nginnever " ] -} \ No newline at end of file +} diff --git a/src/swarm.js b/src/swarm.js index 73f117ea2..a9fb63a79 100644 --- a/src/swarm.js +++ b/src/swarm.js @@ -5,9 +5,10 @@ const expect = require('chai').expect const series = require('async/series') +const multiaddr = require('multiaddr') module.exports = (common) => { - describe('.swarm', () => { + describe.only('.swarm', () => { let ipfsA let ipfsB @@ -52,11 +53,47 @@ module.exports = (common) => { }) }) - it('.peers', (done) => { - ipfsA.swarm.peers((err, multiaddrs) => { - expect(err).to.not.exist - expect(multiaddrs).to.have.length.above(0) - done() + describe('.peers', () => { + it('default', (done) => { + ipfsA.swarm.peers((err, peers) => { + expect(err).to.not.exist + expect(peers).to.have.length.above(0) + + const peer = peers[0] + // go-ipfs <= 0.4.4 + expect(multiaddr.isMultiaddr(peer)).to.be.true + + // go-ipfs >= 0.4.5 + // expect(peer).to.have.a.property('addr') + // expect(peer).to.have.a.property('peer') + // expect(peer).to.have.a.property('muxer') + + // expect(peer).to.not.have.a.property('streams') + // expect(peer).to.not.have.a.property('latency') + + done() + }) + }) + + it('verbose', (done) => { + ipfsA.swarm.peers({verbose: true}, (err, peers) => { + expect(err).to.not.exist + expect(peers).to.have.length.above(0) + + const peer = peers[0] + // go-ipfs <= 0.4.4 + expect(multiaddr.isMultiaddr(peer)).to.be.true + + // go-ipfs >= 0.4.5 + // expect(peer).to.have.a.property('addr') + // expect(peer).to.have.a.property('peer') + // expect(peer).to.have.a.property('muxer') + + // expect(peer).to.have.a.property('streams') + // expect(peer).to.have.a.property('latency') + + done() + }) }) }) From 1283bd8953e82ccae4b354e949fd134a16de3e6a Mon Sep 17 00:00:00 2001 From: Friedel Ziegelmayer Date: Thu, 17 Nov 2016 12:18:25 +0100 Subject: [PATCH 2/3] update to new consistent api --- API/swarm/README.md | 15 +++++++++++++-- src/swarm.js | 25 ++++++++++--------------- 2 files changed, 23 insertions(+), 17 deletions(-) diff --git a/API/swarm/README.md b/API/swarm/README.md index 37feb9921..aac813b07 100644 --- a/API/swarm/README.md +++ b/API/swarm/README.md @@ -67,9 +67,20 @@ ipfs.swarm.disconnect(addr, function (err) {}) ##### `Go` **WIP** -##### `JavaScript` - ipfs.swarm.peers([callback]) +##### `JavaScript` - ipfs.swarm.peers([opts] [, callback]) -`callback` must follow `function (err, peerInfos) {}` signature, where `err` is an error if the operation was not successful. `peerInfos` will be an array of [PeerInfo](). +If `opts.verbose` is set to `true` additional information, such as `latency` is provided. + +`callback` must follow `function (err, peerInfos) {}` signature, where `err` is an error if the operation was not successful. `peerInfos` will be an array of the form + +- `addr: Multiaddr` +- `peer: [PeerInfo]()` +- `latency: String` Only if `verbose: true` was passed + +Starting with `go-ipfs 0.4.5` these additional properties are provided + +- `muxer: String` - The type of stream muxer the peer is usng +- `streams: []String` - Only if `verbose: true`, a list of currently open streams If no `callback` is passed, a promise is returned. diff --git a/src/swarm.js b/src/swarm.js index a9fb63a79..8d232d385 100644 --- a/src/swarm.js +++ b/src/swarm.js @@ -8,7 +8,7 @@ const series = require('async/series') const multiaddr = require('multiaddr') module.exports = (common) => { - describe.only('.swarm', () => { + describe('.swarm', () => { let ipfsA let ipfsB @@ -60,16 +60,14 @@ module.exports = (common) => { expect(peers).to.have.length.above(0) const peer = peers[0] - // go-ipfs <= 0.4.4 - expect(multiaddr.isMultiaddr(peer)).to.be.true - // go-ipfs >= 0.4.5 - // expect(peer).to.have.a.property('addr') - // expect(peer).to.have.a.property('peer') - // expect(peer).to.have.a.property('muxer') + expect(peer).to.have.a.property('addr') + expect(peer).to.have.a.property('peer') + expect(peer).to.not.have.a.property('latency') + // only available in 0.4.5 + // expect(peer).to.have.a.property('muxer') // expect(peer).to.not.have.a.property('streams') - // expect(peer).to.not.have.a.property('latency') done() }) @@ -81,16 +79,13 @@ module.exports = (common) => { expect(peers).to.have.length.above(0) const peer = peers[0] - // go-ipfs <= 0.4.4 - expect(multiaddr.isMultiaddr(peer)).to.be.true + expect(peer).to.have.a.property('addr') + expect(peer).to.have.a.property('peer') + expect(peer).to.have.a.property('latency') - // go-ipfs >= 0.4.5 - // expect(peer).to.have.a.property('addr') - // expect(peer).to.have.a.property('peer') + // Only available in 0.4.5 // expect(peer).to.have.a.property('muxer') - // expect(peer).to.have.a.property('streams') - // expect(peer).to.have.a.property('latency') done() }) From 2668d1d8e2aa79f657d89a4edf283280dc4a79ff Mon Sep 17 00:00:00 2001 From: Friedel Ziegelmayer Date: Thu, 17 Nov 2016 13:05:28 +0100 Subject: [PATCH 3/3] improve test --- src/swarm.js | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/swarm.js b/src/swarm.js index 8d232d385..a4ecbab16 100644 --- a/src/swarm.js +++ b/src/swarm.js @@ -43,25 +43,33 @@ module.exports = (common) => { common.teardown(done) }) + let ipfsBId + describe('callback API', () => { it('.connect', (done) => { ipfsB.id((err, id) => { expect(err).to.not.exist - + ipfsBId = id const ipfsBAddr = id.addresses[0] ipfsA.swarm.connect(ipfsBAddr, done) }) }) describe('.peers', () => { + beforeEach((done) => { + const ipfsBAddr = ipfsBId.addresses[0] + ipfsA.swarm.connect(ipfsBAddr, done) + }) + it('default', (done) => { - ipfsA.swarm.peers((err, peers) => { + ipfsB.swarm.peers((err, peers) => { expect(err).to.not.exist expect(peers).to.have.length.above(0) const peer = peers[0] expect(peer).to.have.a.property('addr') + expect(multiaddr.isMultiaddr(peer.addr)).to.be.true expect(peer).to.have.a.property('peer') expect(peer).to.not.have.a.property('latency') @@ -80,6 +88,7 @@ module.exports = (common) => { const peer = peers[0] expect(peer).to.have.a.property('addr') + expect(multiaddr.isMultiaddr(peer.addr)).to.be.true expect(peer).to.have.a.property('peer') expect(peer).to.have.a.property('latency')