import Client from '../index.js' import common from './common.js' import fixtures from 'webtorrent-fixtures' import test from 'tape' const peerId = Buffer.from('01234567890123456789') function testLargeTorrent (t, serverType) { t.plan(9) common.createServer(t, serverType, (server, announceUrl) => { const client = new Client({ infoHash: fixtures.sintel.parsedTorrent.infoHash, peerId, port: 6881, announce: announceUrl, wrtc: {} }) if (serverType === 'ws') common.mockWebsocketTracker(client) client.on('error', err => { t.error(err) }) client.on('warning', err => { t.error(err) }) client.once('update', data => { t.equal(data.announce, announceUrl) t.equal(typeof data.complete, 'number') t.equal(typeof data.incomplete, 'number') client.update() client.once('update', data => { t.equal(data.announce, announceUrl) t.equal(typeof data.complete, 'number') t.equal(typeof data.incomplete, 'number') client.stop() client.once('update', data => { t.equal(data.announce, announceUrl) t.equal(typeof data.complete, 'number') t.equal(typeof data.incomplete, 'number') server.close() client.destroy() }) }) }) client.start() }) } test('http: large torrent: client.start()', t => { testLargeTorrent(t, 'http') }) test('udp: large torrent: client.start()', t => { testLargeTorrent(t, 'udp') }) test('ws: large torrent: client.start()', t => { testLargeTorrent(t, 'ws') })