Skip to content
This repository has been archived by the owner on Mar 10, 2020. It is now read-only.

Fix 683 #688

Merged
merged 10 commits into from
Feb 12, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .aegir.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
const createServer = require('ipfsd-ctl').createServer

const server = createServer()

module.exports = {
karma: {
files: [{
Expand Down
24 changes: 13 additions & 11 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,22 @@
"glob": false,
"fs": false,
"stream": "readable-stream",
"http": "stream-http"
"http": "stream-http",
"ipfs-api": false,
"ipfs": false
},
"scripts": {
"test": "aegir test",
"test:node": "aegir test -t node",
"test:browser": "aegir test -t browser",
"test:webworker": "aegir test -t webworker",
"test:browser": "node --max-old-space-size=8192 $(npm bin)/aegir test -t browser",
"test:webworker": "node --max-old-space-size=8192 $(npm bin)/aegir test -t webworker",
"lint": "aegir lint",
"build": "aegir build",
"release": "aegir release ",
"release-minor": "aegir release --type minor ",
"release-major": "aegir release --type major ",
"coverage": "aegir coverage --timeout 100000",
"coverage-publish": "aegir coverage --provider coveralls --timeout 100000"
"release": "node --max-old-space-size=8192 $(npm bin)/aegir release ",
"release-minor": "node --max-old-space-size=8192 $(npm bin)/aegir release --type minor ",
"release-major": "node --max-old-space-size=8192 $(npm bin)/aegir release --type major ",
"coverage": "node --max-old-space-size=8192 $(npm bin)/aegir coverage --timeout 100000",
"coverage-publish": "anode --max-old-space-size=8192 $(npm bin)/aegir coverage --provider coveralls --timeout 100000"
},
"dependencies": {
"async": "^2.6.0",
Expand All @@ -41,14 +43,14 @@
"multihashes": "~0.4.13",
"ndjson": "^1.5.0",
"once": "^1.4.0",
"peer-id": "~0.10.5",
"peer-id": "~0.10.6",
"peer-info": "~0.11.6",
"promisify-es6": "^1.0.3",
"pull-defer": "^0.2.2",
"pull-pushable": "^2.1.2",
"pump": "^3.0.0",
"qs": "^6.5.1",
"readable-stream": "^2.3.3",
"readable-stream": "^2.3.4",
"stream-http": "^2.8.0",
"stream-to-pull-stream": "^1.7.2",
"streamifier": "^0.1.1",
Expand All @@ -71,7 +73,7 @@
"gulp": "^3.9.1",
"interface-ipfs-core": "~0.48.0",
"hapi": "^17.2.0",
"ipfsd-ctl": "~0.27.3",
"ipfsd-ctl": "~0.28.0",
"pre-commit": "^1.2.2",
"socket.io": "^2.0.4",
"socket.io-client": "^2.0.4",
Expand Down
9 changes: 5 additions & 4 deletions test/bitswap.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,18 @@ chai.use(dirtyChai)

const IPFSApi = require('../src')

const DaemonFactory = require('ipfsd-ctl')
const df = DaemonFactory.create()
const f = require('./utils/factory')

describe('.bitswap', function () {
this.timeout(20 * 1000) // slow CI

let ipfs
let ipfsd = null

before((done) => {
before(function (done) {
this.timeout(20 * 1000) // slow CI
df.spawn((err, _ipfsd) => {

f.spawn((err, _ipfsd) => {
expect(err).to.not.exist()
ipfsd = _ipfsd
ipfs = IPFSApi(_ipfsd.apiAddr)
Expand Down
204 changes: 57 additions & 147 deletions test/bootstrap.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,7 @@ const expect = chai.expect
chai.use(dirtyChai)

const IPFSApi = require('../src')

const DaemonFactory = require('ipfsd-ctl')
const df = DaemonFactory.create()
const f = require('./utils/factory')

const invalidArg = 'this/Is/So/Invalid/'
const validIp4 = '/ip4/104.236.176.52/tcp/4001/ipfs/QmSoLnSGccFuZQJzRadHn95W2CrSFmZuTdDWP8HXaHca9z'
Expand All @@ -22,7 +20,7 @@ describe('.bootstrap', function () {
let ipfs

before((done) => {
df.spawn((err, _ipfsd) => {
f.spawn((err, _ipfsd) => {
expect(err).to.not.exist()
ipfsd = _ipfsd
ipfs = IPFSApi(_ipfsd.apiAddr)
Expand All @@ -34,169 +32,81 @@ describe('.bootstrap', function () {

let peers

describe('Callback API', function () {
this.timeout(100 * 1000)

describe('.add', () => {
it('returns an error when called with an invalid arg', (done) => {
ipfs.bootstrap.add(invalidArg, (err) => {
expect(err).to.be.an.instanceof(Error)
done()
})
})

it('returns a list of containing the bootstrap peer when called with a valid arg (ip4)', (done) => {
ipfs.bootstrap.add(validIp4, (err, res) => {
expect(err).to.not.exist()
expect(res).to.be.eql({ Peers: [validIp4] })
peers = res.Peers
expect(peers).to.exist()
expect(peers.length).to.eql(1)
done()
})
})

it('returns a list of bootstrap peers when called with the default option', (done) => {
ipfs.bootstrap.add({ default: true }, (err, res) => {
expect(err).to.not.exist()
peers = res.Peers
expect(peers).to.exist()
expect(peers.length).to.above(1)
done()
})
describe('.add', () => {
it('returns an error when called with an invalid arg', (done) => {
ipfs.bootstrap.add(invalidArg, (err) => {
expect(err).to.be.an.instanceof(Error)
done()
})
})

describe('.list', () => {
it('returns a list of peers', (done) => {
ipfs.bootstrap.list((err, res) => {
expect(err).to.not.exist()
peers = res.Peers
expect(peers).to.exist()
done()
})
it('returns a list of containing the bootstrap peer when called with a valid arg (ip4)', (done) => {
ipfs.bootstrap.add(validIp4, (err, res) => {
expect(err).to.not.exist()
expect(res).to.be.eql({ Peers: [validIp4] })
peers = res.Peers
expect(peers).to.exist()
expect(peers.length).to.eql(1)
done()
})
})

describe('.rm', () => {
it('returns an error when called with an invalid arg', (done) => {
ipfs.bootstrap.rm(invalidArg, (err) => {
expect(err).to.be.an.instanceof(Error)
done()
})
})

it('returns empty list because no peers removed when called without an arg or options', (done) => {
ipfs.bootstrap.rm(null, (err, res) => {
expect(err).to.not.exist()
peers = res.Peers
expect(peers).to.exist()
expect(peers.length).to.eql(0)
done()
})
})

it('returns list containing the peer removed when called with a valid arg (ip4)', (done) => {
ipfs.bootstrap.rm(null, (err, res) => {
expect(err).to.not.exist()
peers = res.Peers
expect(peers).to.exist()
expect(peers.length).to.eql(0)
done()
})
})

it('returns list of all peers removed when all option is passed', (done) => {
ipfs.bootstrap.rm(null, { all: true }, (err, res) => {
expect(err).to.not.exist()
peers = res.Peers
expect(peers).to.exist()
done()
})
it('returns a list of bootstrap peers when called with the default option', (done) => {
ipfs.bootstrap.add({ default: true }, (err, res) => {
expect(err).to.not.exist()
peers = res.Peers
expect(peers).to.exist()
expect(peers.length).to.above(1)
done()
})
})
})

describe('Promise API', function () {
this.timeout(100 * 1000)

describe('.add', () => {
it('returns an error when called without args or options', () => {
return ipfs.bootstrap.add(null)
.catch((err) => {
expect(err).to.be.an.instanceof(Error)
})
})

it('returns an error when called with an invalid arg', () => {
return ipfs.bootstrap.add(invalidArg)
.catch((err) => {
expect(err).to.be.an.instanceof(Error)
})
})

it('returns a list of peers when called with a valid arg (ip4)', () => {
return ipfs.bootstrap.add(validIp4)
.then((res) => {
expect(res).to.be.eql({ Peers: [validIp4] })
peers = res.Peers
expect(peers).to.exist()
expect(peers.length).to.eql(1)
})
})

it('returns a list of default peers when called with the default option', () => {
return ipfs.bootstrap.add(null, { default: true })
.then((res) => {
peers = res.Peers
expect(peers).to.exist()
expect(peers.length).to.above(1)
})
describe('.list', () => {
it('returns a list of peers', (done) => {
ipfs.bootstrap.list((err, res) => {
expect(err).to.not.exist()
peers = res.Peers
expect(peers).to.exist()
done()
})
})
})

describe('.list', () => {
it('returns a list of peers', () => {
return ipfs.bootstrap.list()
.then((res) => {
peers = res.Peers
expect(peers).to.exist()
})
describe('.rm', () => {
it('returns an error when called with an invalid arg', (done) => {
ipfs.bootstrap.rm(invalidArg, (err) => {
expect(err).to.be.an.instanceof(Error)
done()
})
})

describe('.rm', () => {
it('returns an error when called with an invalid arg', () => {
return ipfs.bootstrap.rm(invalidArg)
.catch((err) => {
expect(err).to.be.an.instanceof(Error)
})
})

it('returns empty list when called without an arg or options', () => {
return ipfs.bootstrap.rm(null)
.then((res) => {
peers = res.Peers
expect(peers).to.exist()
expect(peers.length).to.eql(0)
})
it('returns empty list because no peers removed when called without an arg or options', (done) => {
ipfs.bootstrap.rm(null, (err, res) => {
expect(err).to.not.exist()
peers = res.Peers
expect(peers).to.exist()
expect(peers.length).to.eql(0)
done()
})
})

it('returns list containing the peer removed when called with a valid arg (ip4)', () => {
return ipfs.bootstrap.rm(null)
.then((res) => {
peers = res.Peers
expect(peers).to.exist()
expect(peers.length).to.eql(0)
})
it('returns list containing the peer removed when called with a valid arg (ip4)', (done) => {
ipfs.bootstrap.rm(null, (err, res) => {
expect(err).to.not.exist()
peers = res.Peers
expect(peers).to.exist()
expect(peers.length).to.eql(0)
done()
})
})

it('returns list of all peers removed when all option is passed', () => {
return ipfs.bootstrap.rm(null, { all: true })
.then((res) => {
peers = res.Peers
expect(peers).to.exist()
})
it('returns list of all peers removed when all option is passed', (done) => {
ipfs.bootstrap.rm(null, { all: true }, (err, res) => {
expect(err).to.not.exist()
peers = res.Peers
expect(peers).to.exist()
done()
})
})
})
Expand Down
5 changes: 2 additions & 3 deletions test/commands.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,7 @@ chai.use(dirtyChai)

const IPFSApi = require('../src')

const DaemonFactory = require('ipfsd-ctl')
const df = DaemonFactory.create()
const f = require('./utils/factory')

describe('.commands', function () {
this.timeout(20 * 1000)
Expand All @@ -18,7 +17,7 @@ describe('.commands', function () {
let ipfs

before((done) => {
df.spawn((err, _ipfsd) => {
f.spawn((err, _ipfsd) => {
expect(err).to.not.exist()
ipfsd = _ipfsd
ipfs = IPFSApi(_ipfsd.apiAddr)
Expand Down
7 changes: 3 additions & 4 deletions test/constructor.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,7 @@ const dirtyChai = require('dirty-chai')
const expect = chai.expect
chai.use(dirtyChai)

const DaemonFactory = require('ipfsd-ctl')
const df = DaemonFactory.create()

const f = require('./utils/factory')
const ipfsAPI = require('../src/index.js')

function clientWorks (client, done) {
Expand All @@ -28,7 +26,8 @@ describe('ipfs-api constructor tests', () => {

before(function (done) {
this.timeout(20 * 1000) // slow CI
df.spawn((err, node) => {

f.spawn((err, node) => {
expect(err).to.not.exist()
ipfsd = node
apiAddr = node.apiAddr.toString()
Expand Down
Loading