Skip to content
This repository has been archived by the owner on Jun 26, 2023. It is now read-only.

Commit

Permalink
fix: transport should not handle connection if upgradeInbound throws (#…
Browse files Browse the repository at this point in the history
…16)

* fix: transport should not handle connection if upgradeInbound throws

* chore: address review
  • Loading branch information
vasco-santos authored and jacobheun committed Dec 20, 2019
1 parent 2803e64 commit ff03137
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 0 deletions.
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@
"libp2p-tcp": "^0.14.1",
"multiaddr": "^7.1.0",
"p-limit": "^2.2.1",
"p-wait-for": "^3.1.0",
"peer-id": "^0.13.3",
"sinon": "^7.5.0",
"streaming-iterables": "^4.1.0"
Expand Down
18 changes: 18 additions & 0 deletions src/transport/tests/listen-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ const expect = chai.expect
chai.use(dirtyChai)
const sinon = require('sinon')

const pWaitFor = require('p-wait-for')
const pipe = require('it-pipe')
const { isValidTick } = require('./utils')

Expand Down Expand Up @@ -92,6 +93,23 @@ module.exports = (common) => {
expect(upgradeSpy.callCount).to.equal(2)
})

it('should not handle connection if upgradeInbound throws', async () => {
sinon.stub(upgrader, 'upgradeInbound').throws()

const listener = transport.createListener(() => {
throw new Error('should not handle the connection if upgradeInbound throws')
})

// Listen
await listener.listen(addrs[0])

// Create a connection to the listener
const socket = await transport.dial(addrs[0])

await pWaitFor(() => typeof socket.timeline.close === 'number')
await listener.close()
})

describe('events', () => {
it('connection', (done) => {
const upgradeSpy = sinon.spy(upgrader, 'upgradeInbound')
Expand Down

0 comments on commit ff03137

Please sign in to comment.