Skip to content

Commit c339c86

Browse files
authored
Clean up socket.end() calls in tests (#199)
* Clean up socket.end() calls in tests * Just get rid of socket.end calls * Only attach error handler when error is expected * Use endAndCloseSocket helper * Clean stream.end usage
1 parent 657b706 commit c339c86

File tree

2 files changed

+20
-8
lines changed

2 files changed

+20
-8
lines changed

test/connections.js

+10-7
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
const test = require('brittle')
2-
const { swarm, createDHT } = require('./helpers')
2+
const { swarm, createDHT, endAndCloseSocket } = require('./helpers')
33
const { encode } = require('hypercore-id-encoding')
44
const { once } = require('events')
55
const DHT = require('../')
@@ -640,19 +640,21 @@ test('connect using id instead of buffer', async function (t) {
640640

641641
const [a, b] = await swarm(t)
642642
const server = a.createServer()
643+
server.on('connection', conn => {
644+
conn.on('end', () => conn.end())
645+
})
643646

644647
await server.listen()
645648

646649
const id = encode(server.publicKey)
647650
const socket = b.connect(id)
648-
socket.on('error', () => {})
649651

650652
await once(socket, 'open')
651653

652654
t.is(id.length, 52)
653655
t.pass('connects if id is given instead of buffer')
654656

655-
await socket.end()
657+
await endAndCloseSocket(socket)
656658
await server.close()
657659

658660
await a.destroy()
@@ -745,20 +747,21 @@ test('connectionKeepAlive passed to server and connection', async function (t) {
745747
const a = createDHT({ bootstrap, connectionKeepAlive: 10000 })
746748
const b = createDHT({ bootstrap, connectionKeepAlive: 20000 })
747749

748-
const server = a.createServer(async function (socket) {
749-
socket.on('error', () => {})
750+
const server = a.createServer((socket) => {
751+
socket.on('end', () => socket.end())
750752
allChecks.is(socket.keepAlive, 10000, 'keepAlive set for server')
751753
})
752754

753755
await server.listen()
754756

755757
const socket = b.connect(server.publicKey)
756-
socket.on('error', () => {})
757758

758759
allChecks.is(socket.keepAlive, 20000, 'keepAlive set for connection')
759760

760761
await allChecks
761-
await socket.end()
762+
763+
await endAndCloseSocket(socket)
764+
762765
await server.close()
763766

764767
await a.destroy()

test/helpers/index.js

+10-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ const { spawn } = require('child_process')
44
const goodbye = require('graceful-goodbye')
55
const DHT = require('../../')
66

7-
module.exports = { swarm, toArray, spawnFixture, createDHT }
7+
module.exports = { swarm, toArray, spawnFixture, createDHT, endAndCloseSocket }
88

99
async function toArray (iterable) {
1010
const result = []
@@ -34,3 +34,12 @@ async function * spawnFixture (t, args) {
3434
function createDHT (opts) {
3535
return new DHT({ ...opts, host: '127.0.0.1' })
3636
}
37+
38+
async function endAndCloseSocket (socket) {
39+
// We wait on the other side to end the stream too
40+
// So make sure a handler was added like
41+
// socket.on('end', () => socket.end())
42+
socket.end()
43+
if (socket.destroyed) return
44+
await new Promise(resolve => socket.on('close', resolve))
45+
}

0 commit comments

Comments
 (0)