Skip to content
This repository was archived by the owner on Mar 10, 2020. It is now read-only.
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
11 changes: 5 additions & 6 deletions gulpfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,11 @@

const gulp = require('gulp')

require('./test/setup/spawn-daemons')
require('./test/factory/factory-tasks')
require('./test/ipfs-factory/tasks')

gulp.task('test:node:before', ['daemons:start', 'factory:start'])
gulp.task('test:node:after', ['daemons:stop', 'factory:stop'])
gulp.task('test:browser:before', ['daemons:start', 'factory:start'])
gulp.task('test:browser:after', ['daemons:stop', 'factory:stop'])
gulp.task('test:node:before', ['factory:start'])
gulp.task('test:node:after', ['factory:stop'])
gulp.task('test:browser:before', ['factory:start'])
gulp.task('test:browser:after', ['factory:stop'])

require('aegir/gulp')(gulp)
31 changes: 16 additions & 15 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,29 +24,30 @@
"dependencies": {
"async": "^2.1.4",
"bs58": "^4.0.0",
"cids": "^0.4.0",
"concat-stream": "^1.6.0",
"detect-node": "^2.0.3",
"flatmap": "0.0.3",
"glob": "^7.1.1",
"glob-escape": "0.0.2",
"ipfs-block": "^0.5.1",
"ipfs-unixfs": "^0.1.8",
"ipld-dag-pb": "^0.9.3",
"ipfs-block": "^0.5.4",
"ipfs-unixfs": "^0.1.9",
"ipld-dag-pb": "^0.9.4",
"is-ipfs": "^0.2.1",
"isstream": "^0.1.2",
"lru-cache": "^4.0.2",
"multiaddr": "^2.1.1",
"multihashes": "^0.3.1",
"multiaddr": "^2.2.0",
"multihashes": "^0.3.2",
"multipart-stream": "^2.0.1",
"ndjson": "^1.5.0",
"once": "^1.4.0",
"peer-id": "^0.8.1",
"peer-info": "^0.8.1",
"peer-info": "^0.8.2",
"promisify-es6": "^1.0.2",
"pump": "^1.0.2",
"qs": "^6.3.0",
"readable-stream": "1.1.14",
"stream-http": "^2.5.0",
"stream-http": "^2.6.3",
"streamifier": "^0.1.1",
"tar-stream": "^1.5.2"
},
Expand All @@ -59,16 +60,16 @@
"url": "https://github.com/ipfs/js-ipfs-api"
},
"devDependencies": {
"aegir": "^9.2.1",
"aegir": "^9.4.0",
"chai": "^3.5.0",
"eslint-plugin-react": "^6.8.0",
"eslint-plugin-react": "^6.9.0",
"gulp": "^3.9.1",
"hapi": "^16.0.3",
"interface-ipfs-core": "^0.23.1",
"ipfsd-ctl": "^0.17.0",
"pre-commit": "^1.2.0",
"socket.io": "^1.7.1",
"socket.io-client": "^1.7.1",
"hapi": "^16.1.0",
"interface-ipfs-core": "^0.23.5",
"ipfsd-ctl": "^0.18.2",
"pre-commit": "^1.2.2",
"socket.io": "^1.7.2",
"socket.io-client": "^1.7.2",
"stream-equal": "^0.1.12"
},
"pre-commit": [
Expand Down
86 changes: 86 additions & 0 deletions test/bitswap.spec.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
/* eslint-env mocha */
'use strict'

const expect = require('chai').expect
const FactoryClient = require('./ipfs-factory/client')

describe('.bitswap', () => {
let ipfs
let fc

before(function (done) {
this.timeout(20 * 1000) // slow CI
fc = new FactoryClient()
fc.spawnNode((err, node) => {
expect(err).to.not.exist
ipfs = node
done()
})
})

after((done) => {
fc.dismantle(done)
})

describe('Callback API', () => {
it('.wantlist', (done) => {
ipfs.bitswap.wantlist((err, res) => {
expect(err).to.not.exist
expect(res).to.have.to.be.eql({
Keys: null
})
done()
})
})

it('.stat', (done) => {
ipfs.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'
ipfs.bitswap.unwant(key, (err) => {
expect(err).to.not.exist
done()
})
})
})

describe('Promise API', () => {
it('.wantlist', () => {
return ipfs.bitswap.wantlist()
.then((res) => {
expect(res).to.have.to.be.eql({
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

could probably be to.be.eql rather than that

Keys: null
})
})
})

it('.stat', () => {
return ipfs.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 ipfs.bitswap.unwant(key)
})
})
})
144 changes: 73 additions & 71 deletions test/interface-ipfs-core/bootstrap.spec.js → test/bootstrap.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
'use strict'

const expect = require('chai').expect
const FactoryClient = require('../factory/factory-client')
const FactoryClient = require('./ipfs-factory/client')

const invalidArg = 'this/Is/So/Invalid/'
const validIp4 = '/ip4/104.236.176.52/tcp/4001/ipfs/QmSoLnSGccFuZQJzRadHn95W2CrSFmZuTdDWP8HXaHca9z'
Expand All @@ -28,86 +28,88 @@ describe('.bootstrap', () => {

let peers

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('.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('.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()
describe('Callback API', () => {
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()
})
})
})

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()
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 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()
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()
})
})
})
})

describe('.promise', () => {
describe('Promise API', () => {
describe('.add', () => {
it('returns an error when called without args or options', () => {
return ipfs.bootstrap.add(null)
Expand Down
3 changes: 0 additions & 3 deletions test/browser.js

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
'use strict'

const expect = require('chai').expect
const FactoryClient = require('../factory/factory-client')
const FactoryClient = require('./ipfs-factory/client')

describe('.commands', () => {
let ipfs
Expand Down
Loading