var Buffer = require('safe-buffer').Buffer var Client = require('../') var common = require('./common') var fixtures = require('webtorrent-fixtures') var test = require('tape') var peerId = Buffer.from('01234567890123456789') var port = 6881 function testNoEventsAfterDestroy (t, serverType) { t.plan(1) common.createServer(t, serverType, function (server, announceUrl) { var client = new Client({ infoHash: fixtures.leaves.parsedTorrent.infoHash, announce: announceUrl, peerId: peerId, port: port, wrtc: {} }) if (serverType === 'ws') common.mockWebsocketTracker(client) client.on('error', function (err) { t.error(err) }) client.on('warning', function (err) { t.error(err) }) client.once('update', function () { t.fail('no "update" event should fire, since client is destroyed') }) // announce, then immediately destroy client.update() client.destroy() setTimeout(function () { t.pass('wait to see if any events are fired') server.close() }, 1000) }) } test('http: no "update" events after destroy()', function (t) { testNoEventsAfterDestroy(t, 'http') }) test('udp: no "update" events after destroy()', function (t) { testNoEventsAfterDestroy(t, 'udp') }) test('ws: no "update" events after destroy()', function (t) { testNoEventsAfterDestroy(t, 'ws') })