Skip to content

Commit

Permalink
test: add test to verify libp2p starts and stops the right things
Browse files Browse the repository at this point in the history
  • Loading branch information
jacobheun committed Jul 19, 2018
1 parent f5c288d commit bca997d
Show file tree
Hide file tree
Showing 4 changed files with 71 additions and 1 deletion.
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,9 @@ class Node extends libp2p {
active: false
}
},
dht: {
kBucketSize: 20
},
// Enable/Disable Experimental features
EXPERIMENTAL: { // Experimental features ("behind a flag")
pubsub: false,
Expand Down
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,8 @@
},
"homepage": "https://github.com/libp2p/js-libp2p",
"browser": {
"joi": "joi-browser"
"joi": "joi-browser",
"./test/utils/bundle-nodejs": "./test/utils/bundle-browser"
},
"dependencies": {
"async": "^2.6.1",
Expand Down
63 changes: 63 additions & 0 deletions test/create.spec.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
/* eslint-env mocha */
'use strict'

const chai = require('chai')
chai.use(require('dirty-chai'))
const expect = chai.expect
const series = require('async/series')
const createNode = require('./utils/create-node')
const sinon = require('sinon')

describe('libp2p creation', () => {
it('should be able to start and stop successfully', (done) => {
createNode([], {
config: {
EXPERIMENTAL: {
dht: true,
pubsub: true
}
}
}, (err, node) => {
expect(err).to.not.exist()

let sw = node._switch
let cm = node.connectionManager
let dht = node._dht
let pub = node._floodSub

sinon.spy(sw, 'start')
sinon.spy(cm, 'start')
sinon.spy(dht, 'start')
sinon.spy(pub, 'start')
sinon.spy(sw, 'stop')
sinon.spy(cm, 'stop')
sinon.spy(dht, 'stop')
sinon.spy(pub, 'stop')
sinon.spy(node, 'emit')

series([
(cb) => node.start(cb),
(cb) => {
expect(sw.start.calledOnce).to.be.true
expect(cm.start.calledOnce).to.be.true
expect(dht.start.calledOnce).to.be.true
expect(pub.start.calledOnce).to.be.true
expect(node.emit.calledWith('start')).to.be.true

cb()
},
(cb) => node.stop(cb)
], (err) => {
expect(err).to.not.exist()

expect(sw.stop.calledOnce).to.be.true
expect(cm.stop.calledOnce).to.be.true
expect(dht.stop.calledOnce).to.be.true
expect(pub.stop.calledOnce).to.be.true
expect(node.emit.calledWith('stop')).to.be.true

done()
})
})
})
})
3 changes: 3 additions & 0 deletions test/utils/bundle-browser.js
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,9 @@ class Node extends libp2p {
active: false
}
},
dht: {
kBucketSize: 20
},
EXPERIMENTAL: {
dht: false,
pubsub: false
Expand Down

0 comments on commit bca997d

Please sign in to comment.