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

Commit 7b4aafb

Browse files
authored
Merge pull request #519 from ipfs/refactor/tests
refactor: tests
2 parents 7d81b30 + 9010c29 commit 7b4aafb

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+1191
-1309
lines changed

gulpfile.js

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,11 @@
22

33
const gulp = require('gulp')
44

5-
require('./test/setup/spawn-daemons')
6-
require('./test/factory/factory-tasks')
5+
require('./test/ipfs-factory/tasks')
76

8-
gulp.task('test:node:before', ['daemons:start', 'factory:start'])
9-
gulp.task('test:node:after', ['daemons:stop', 'factory:stop'])
10-
gulp.task('test:browser:before', ['daemons:start', 'factory:start'])
11-
gulp.task('test:browser:after', ['daemons:stop', 'factory:stop'])
7+
gulp.task('test:node:before', ['factory:start'])
8+
gulp.task('test:node:after', ['factory:stop'])
9+
gulp.task('test:browser:before', ['factory:start'])
10+
gulp.task('test:browser:after', ['factory:stop'])
1211

1312
require('aegir/gulp')(gulp)

package.json

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -24,29 +24,30 @@
2424
"dependencies": {
2525
"async": "^2.1.4",
2626
"bs58": "^4.0.0",
27+
"cids": "^0.4.0",
2728
"concat-stream": "^1.6.0",
2829
"detect-node": "^2.0.3",
2930
"flatmap": "0.0.3",
3031
"glob": "^7.1.1",
3132
"glob-escape": "0.0.2",
32-
"ipfs-block": "^0.5.1",
33-
"ipfs-unixfs": "^0.1.8",
34-
"ipld-dag-pb": "^0.9.3",
33+
"ipfs-block": "^0.5.4",
34+
"ipfs-unixfs": "^0.1.9",
35+
"ipld-dag-pb": "^0.9.4",
3536
"is-ipfs": "^0.2.1",
3637
"isstream": "^0.1.2",
3738
"lru-cache": "^4.0.2",
38-
"multiaddr": "^2.1.1",
39-
"multihashes": "^0.3.1",
39+
"multiaddr": "^2.2.0",
40+
"multihashes": "^0.3.2",
4041
"multipart-stream": "^2.0.1",
4142
"ndjson": "^1.5.0",
4243
"once": "^1.4.0",
4344
"peer-id": "^0.8.1",
44-
"peer-info": "^0.8.1",
45+
"peer-info": "^0.8.2",
4546
"promisify-es6": "^1.0.2",
4647
"pump": "^1.0.2",
4748
"qs": "^6.3.0",
4849
"readable-stream": "1.1.14",
49-
"stream-http": "^2.5.0",
50+
"stream-http": "^2.6.3",
5051
"streamifier": "^0.1.1",
5152
"tar-stream": "^1.5.2"
5253
},
@@ -59,16 +60,16 @@
5960
"url": "https://github.com/ipfs/js-ipfs-api"
6061
},
6162
"devDependencies": {
62-
"aegir": "^9.2.1",
63+
"aegir": "^9.4.0",
6364
"chai": "^3.5.0",
64-
"eslint-plugin-react": "^6.8.0",
65+
"eslint-plugin-react": "^6.9.0",
6566
"gulp": "^3.9.1",
66-
"hapi": "^16.0.3",
67-
"interface-ipfs-core": "^0.23.1",
68-
"ipfsd-ctl": "^0.17.0",
69-
"pre-commit": "^1.2.0",
70-
"socket.io": "^1.7.1",
71-
"socket.io-client": "^1.7.1",
67+
"hapi": "^16.1.0",
68+
"interface-ipfs-core": "^0.23.5",
69+
"ipfsd-ctl": "^0.18.2",
70+
"pre-commit": "^1.2.2",
71+
"socket.io": "^1.7.2",
72+
"socket.io-client": "^1.7.2",
7273
"stream-equal": "^0.1.12"
7374
},
7475
"pre-commit": [

test/bitswap.spec.js

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
/* eslint-env mocha */
2+
'use strict'
3+
4+
const expect = require('chai').expect
5+
const FactoryClient = require('./ipfs-factory/client')
6+
7+
describe('.bitswap', () => {
8+
let ipfs
9+
let fc
10+
11+
before(function (done) {
12+
this.timeout(20 * 1000) // slow CI
13+
fc = new FactoryClient()
14+
fc.spawnNode((err, node) => {
15+
expect(err).to.not.exist
16+
ipfs = node
17+
done()
18+
})
19+
})
20+
21+
after((done) => {
22+
fc.dismantle(done)
23+
})
24+
25+
describe('Callback API', () => {
26+
it('.wantlist', (done) => {
27+
ipfs.bitswap.wantlist((err, res) => {
28+
expect(err).to.not.exist
29+
expect(res).to.have.to.be.eql({
30+
Keys: null
31+
})
32+
done()
33+
})
34+
})
35+
36+
it('.stat', (done) => {
37+
ipfs.bitswap.stat((err, res) => {
38+
expect(err).to.not.exist
39+
expect(res).to.have.property('BlocksReceived')
40+
expect(res).to.have.property('DupBlksReceived')
41+
expect(res).to.have.property('DupDataReceived')
42+
expect(res).to.have.property('Peers')
43+
expect(res).to.have.property('ProvideBufLen')
44+
expect(res).to.have.property('Wantlist')
45+
46+
done()
47+
})
48+
})
49+
50+
it('.unwant', (done) => {
51+
const key = 'Qma4hjFTnCasJ8PVp3mZbZK5g2vGDT4LByLJ7m8ciyRFZP'
52+
ipfs.bitswap.unwant(key, (err) => {
53+
expect(err).to.not.exist
54+
done()
55+
})
56+
})
57+
})
58+
59+
describe('Promise API', () => {
60+
it('.wantlist', () => {
61+
return ipfs.bitswap.wantlist()
62+
.then((res) => {
63+
expect(res).to.have.to.be.eql({
64+
Keys: null
65+
})
66+
})
67+
})
68+
69+
it('.stat', () => {
70+
return ipfs.bitswap.stat()
71+
.then((res) => {
72+
expect(res).to.have.property('BlocksReceived')
73+
expect(res).to.have.property('DupBlksReceived')
74+
expect(res).to.have.property('DupDataReceived')
75+
expect(res).to.have.property('Peers')
76+
expect(res).to.have.property('ProvideBufLen')
77+
expect(res).to.have.property('Wantlist')
78+
})
79+
})
80+
81+
it('.unwant', () => {
82+
const key = 'Qma4hjFTnCasJ8PVp3mZbZK5g2vGDT4LByLJ7m8ciyRFZP'
83+
return ipfs.bitswap.unwant(key)
84+
})
85+
})
86+
})

test/interface-ipfs-core/bootstrap.spec.js renamed to test/bootstrap.spec.js

Lines changed: 73 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
'use strict'
44

55
const expect = require('chai').expect
6-
const FactoryClient = require('../factory/factory-client')
6+
const FactoryClient = require('./ipfs-factory/client')
77

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

2929
let peers
3030

31-
describe('.add', () => {
32-
it('returns an error when called with an invalid arg', (done) => {
33-
ipfs.bootstrap.add(invalidArg, (err) => {
34-
expect(err).to.be.an.instanceof(Error)
35-
done()
36-
})
37-
})
38-
39-
it('returns a list of containing the bootstrap peer when called with a valid arg (ip4)', (done) => {
40-
ipfs.bootstrap.add(validIp4, (err, res) => {
41-
expect(err).to.not.exist
42-
expect(res).to.be.eql({ Peers: [validIp4] })
43-
peers = res.Peers
44-
expect(peers).to.exist
45-
expect(peers.length).to.eql(1)
46-
done()
47-
})
48-
})
49-
50-
it('returns a list of bootstrap peers when called with the default option', (done) => {
51-
ipfs.bootstrap.add({ default: true }, (err, res) => {
52-
expect(err).to.not.exist
53-
peers = res.Peers
54-
expect(peers).to.exist
55-
expect(peers.length).to.above(1)
56-
done()
57-
})
58-
})
59-
})
60-
61-
describe('.list', () => {
62-
it('returns a list of peers', (done) => {
63-
ipfs.bootstrap.list((err, res) => {
64-
expect(err).to.not.exist
65-
peers = res.Peers
66-
expect(peers).to.exist
67-
done()
68-
})
69-
})
70-
})
71-
72-
describe('.rm', () => {
73-
it('returns an error when called with an invalid arg', (done) => {
74-
ipfs.bootstrap.rm(invalidArg, (err) => {
75-
expect(err).to.be.an.instanceof(Error)
76-
done()
77-
})
78-
})
79-
80-
it('returns empty list because no peers removed when called without an arg or options', (done) => {
81-
ipfs.bootstrap.rm(null, (err, res) => {
82-
expect(err).to.not.exist
83-
peers = res.Peers
84-
expect(peers).to.exist
85-
expect(peers.length).to.eql(0)
86-
done()
31+
describe('Callback API', () => {
32+
describe('.add', () => {
33+
it('returns an error when called with an invalid arg', (done) => {
34+
ipfs.bootstrap.add(invalidArg, (err) => {
35+
expect(err).to.be.an.instanceof(Error)
36+
done()
37+
})
38+
})
39+
40+
it('returns a list of containing the bootstrap peer when called with a valid arg (ip4)', (done) => {
41+
ipfs.bootstrap.add(validIp4, (err, res) => {
42+
expect(err).to.not.exist
43+
expect(res).to.be.eql({ Peers: [validIp4] })
44+
peers = res.Peers
45+
expect(peers).to.exist
46+
expect(peers.length).to.eql(1)
47+
done()
48+
})
49+
})
50+
51+
it('returns a list of bootstrap peers when called with the default option', (done) => {
52+
ipfs.bootstrap.add({ default: true }, (err, res) => {
53+
expect(err).to.not.exist
54+
peers = res.Peers
55+
expect(peers).to.exist
56+
expect(peers.length).to.above(1)
57+
done()
58+
})
8759
})
8860
})
8961

90-
it('returns list containing the peer removed when called with a valid arg (ip4)', (done) => {
91-
ipfs.bootstrap.rm(null, (err, res) => {
92-
expect(err).to.not.exist
93-
peers = res.Peers
94-
expect(peers).to.exist
95-
expect(peers.length).to.eql(0)
96-
done()
62+
describe('.list', () => {
63+
it('returns a list of peers', (done) => {
64+
ipfs.bootstrap.list((err, res) => {
65+
expect(err).to.not.exist
66+
peers = res.Peers
67+
expect(peers).to.exist
68+
done()
69+
})
9770
})
9871
})
9972

100-
it('returns list of all peers removed when all option is passed', (done) => {
101-
ipfs.bootstrap.rm(null, { all: true }, (err, res) => {
102-
expect(err).to.not.exist
103-
peers = res.Peers
104-
expect(peers).to.exist
105-
done()
73+
describe('.rm', () => {
74+
it('returns an error when called with an invalid arg', (done) => {
75+
ipfs.bootstrap.rm(invalidArg, (err) => {
76+
expect(err).to.be.an.instanceof(Error)
77+
done()
78+
})
79+
})
80+
81+
it('returns empty list because no peers removed when called without an arg or options', (done) => {
82+
ipfs.bootstrap.rm(null, (err, res) => {
83+
expect(err).to.not.exist
84+
peers = res.Peers
85+
expect(peers).to.exist
86+
expect(peers.length).to.eql(0)
87+
done()
88+
})
89+
})
90+
91+
it('returns list containing the peer removed when called with a valid arg (ip4)', (done) => {
92+
ipfs.bootstrap.rm(null, (err, res) => {
93+
expect(err).to.not.exist
94+
peers = res.Peers
95+
expect(peers).to.exist
96+
expect(peers.length).to.eql(0)
97+
done()
98+
})
99+
})
100+
101+
it('returns list of all peers removed when all option is passed', (done) => {
102+
ipfs.bootstrap.rm(null, { all: true }, (err, res) => {
103+
expect(err).to.not.exist
104+
peers = res.Peers
105+
expect(peers).to.exist
106+
done()
107+
})
106108
})
107109
})
108110
})
109111

110-
describe('.promise', () => {
112+
describe('Promise API', () => {
111113
describe('.add', () => {
112114
it('returns an error when called without args or options', () => {
113115
return ipfs.bootstrap.add(null)

test/browser.js

Lines changed: 0 additions & 3 deletions
This file was deleted.

test/interface-ipfs-core/commands.spec.js renamed to test/commands.spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
'use strict'
33

44
const expect = require('chai').expect
5-
const FactoryClient = require('../factory/factory-client')
5+
const FactoryClient = require('./ipfs-factory/client')
66

77
describe('.commands', () => {
88
let ipfs

0 commit comments

Comments
 (0)