Skip to content

Commit

Permalink
fix: dont call callback before it's properly set
Browse files Browse the repository at this point in the history
  • Loading branch information
jacobheun committed Nov 5, 2018
1 parent c18d2a4 commit 17b5f73
Show file tree
Hide file tree
Showing 4 changed files with 58 additions and 8 deletions.
8 changes: 4 additions & 4 deletions src/content-routing.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,6 @@ module.exports = (node) => {
* @returns {void}
*/
findProviders: (key, options, callback) => {
if (!routers.length) {
return callback(errCode(new Error('No content routers available'), 'NO_ROUTERS_AVAILABLE'))
}

if (typeof options === 'function') {
callback = options
options = {}
Expand All @@ -37,6 +33,10 @@ module.exports = (node) => {
}
}

if (!routers.length) {
return callback(errCode(new Error('No content routers available'), 'NO_ROUTERS_AVAILABLE'))
}

const tasks = routers.map((router) => {
return (cb) => router.findProviders(key, options, (err, results) => {
if (err) {
Expand Down
8 changes: 4 additions & 4 deletions src/peer-routing.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,15 +22,15 @@ module.exports = (node) => {
* @returns {void}
*/
findPeer: (id, options, callback) => {
if (!routers.length) {
callback(errCode(new Error('No peer routers available'), 'NO_ROUTERS_AVAILABLE'))
}

if (typeof options === 'function') {
callback = options
options = {}
}

if (!routers.length) {
callback(errCode(new Error('No peer routers available'), 'NO_ROUTERS_AVAILABLE'))
}

const tasks = routers.map((router) => {
return (cb) => router.findPeer(id, options, (err, result) => {
if (err) {
Expand Down
25 changes: 25 additions & 0 deletions test/content-routing.node.js
Original file line number Diff line number Diff line change
Expand Up @@ -367,4 +367,29 @@ describe('.contentRouting', () => {
})
})
})

describe('no routers', () => {
let nodeA
before((done) => {
createNode('/ip4/0.0.0.0/tcp/0', (err, node) => {
expect(err).to.not.exist()
nodeA = node
done()
})
})

it('.findProviders should return an error with no options', (done) => {
nodeA.contentRouting.findProviders('a cid', (err) => {
expect(err).to.exist()
done()
})
})

it('.findProviders should return an error with options', (done) => {
nodeA.contentRouting.findProviders('a cid', { maxTimeout: 5000 }, (err) => {
expect(err).to.exist()
done()
})
})
})
})
25 changes: 25 additions & 0 deletions test/peer-routing.node.js
Original file line number Diff line number Diff line change
Expand Up @@ -266,4 +266,29 @@ describe('.peerRouting', () => {
})
})
})

describe('no routers', () => {
let nodeA
before((done) => {
createNode('/ip4/0.0.0.0/tcp/0', (err, node) => {
expect(err).to.not.exist()
nodeA = node
done()
})
})

it('.findPeer should return an error with no options', (done) => {
nodeA.peerRouting.findPeer('a cid', (err) => {
expect(err).to.exist()
done()
})
})

it('.findPeer should return an error with options', (done) => {
nodeA.peerRouting.findPeer('a cid', { maxTimeout: 5000 }, (err) => {
expect(err).to.exist()
done()
})
})
})
})

0 comments on commit 17b5f73

Please sign in to comment.