diff --git a/src/api/bitswap.js b/src/api/bitswap.js new file mode 100644 index 000000000..c2f9749b4 --- /dev/null +++ b/src/api/bitswap.js @@ -0,0 +1,15 @@ +'use strict' + +const argCommand = require('../cmd-helpers').argCommand + +module.exports = (send) => { + return { + wantlist (cb) { + return send('bitswap/wantlist', {}, null, null, cb) + }, + stat (cb) { + return send('bitswap/stat', {}, null, null, cb) + }, + unwant: argCommand(send, 'bitswap/unwant') + } +} diff --git a/src/load-commands.js b/src/load-commands.js index fea6ff39d..fc5ee614b 100644 --- a/src/load-commands.js +++ b/src/load-commands.js @@ -3,6 +3,7 @@ function requireCommands () { return { add: require('./api/add'), + bitswap: require('./api/bitswap'), block: require('./api/block'), cat: require('./api/cat'), commands: require('./api/commands'), diff --git a/test/api/bitswap.spec.js b/test/api/bitswap.spec.js new file mode 100644 index 000000000..d3a8d4b81 --- /dev/null +++ b/test/api/bitswap.spec.js @@ -0,0 +1,67 @@ +/* eslint-env mocha */ +/* globals apiClients */ +'use strict' + +const expect = require('chai').expect + +describe('.bitswap', () => { + it('.wantlist', (done) => { + apiClients.a.bitswap.wantlist((err, res) => { + expect(err).to.not.exist + expect(res).to.have.to.be.eql({ + Keys: null + }) + done() + }) + }) + + it('.stat', (done) => { + apiClients.a.bitswap.stat((err, res) => { + expect(err).to.not.exist + expect(res).to.have.property('BlocksReceived') + expect(res).to.have.property('DupBlksReceived') + expect(res).to.have.property('DupDataReceived') + expect(res).to.have.property('Peers') + expect(res).to.have.property('ProvideBufLen') + expect(res).to.have.property('Wantlist') + + done() + }) + }) + + it('.unwant', (done) => { + const key = 'Qma4hjFTnCasJ8PVp3mZbZK5g2vGDT4LByLJ7m8ciyRFZP' + apiClients.a.bitswap.unwant(key, (err) => { + expect(err).to.not.exist + done() + }) + }) + + describe('promise', () => { + it('.wantlist', () => { + return apiClients.a.bitswap.wantlist() + .then((res) => { + expect(res).to.have.to.be.eql({ + Keys: null + }) + }) + }) + + it('.stat', () => { + return apiClients.a.bitswap.stat() + .then((res) => { + expect(res).to.have.property('BlocksReceived') + expect(res).to.have.property('DupBlksReceived') + expect(res).to.have.property('DupDataReceived') + expect(res).to.have.property('Peers') + expect(res).to.have.property('ProvideBufLen') + expect(res).to.have.property('Wantlist') + }) + }) + + it('.unwant', () => { + const key = 'Qma4hjFTnCasJ8PVp3mZbZK5g2vGDT4LByLJ7m8ciyRFZP' + return apiClients.a.bitswap.unwant(key) + }) + }) +})