client-large-torrent.js
1 import Client from '../index.js' 2 import common from './common.js' 3 import fixtures from 'webtorrent-fixtures' 4 import test from 'tape' 5 6 const peerId = Buffer.from('01234567890123456789') 7 8 function testLargeTorrent (t, serverType) { 9 t.plan(9) 10 11 common.createServer(t, serverType, (server, announceUrl) => { 12 const client = new Client({ 13 infoHash: fixtures.sintel.parsedTorrent.infoHash, 14 peerId, 15 port: 6881, 16 announce: announceUrl, 17 wrtc: {} 18 }) 19 20 if (serverType === 'ws') common.mockWebsocketTracker(client) 21 client.on('error', err => { t.error(err) }) 22 client.on('warning', err => { t.error(err) }) 23 24 client.once('update', data => { 25 t.equal(data.announce, announceUrl) 26 t.equal(typeof data.complete, 'number') 27 t.equal(typeof data.incomplete, 'number') 28 29 client.update() 30 31 client.once('update', data => { 32 t.equal(data.announce, announceUrl) 33 t.equal(typeof data.complete, 'number') 34 t.equal(typeof data.incomplete, 'number') 35 36 client.stop() 37 38 client.once('update', data => { 39 t.equal(data.announce, announceUrl) 40 t.equal(typeof data.complete, 'number') 41 t.equal(typeof data.incomplete, 'number') 42 43 server.close() 44 client.destroy() 45 }) 46 }) 47 }) 48 49 client.start() 50 }) 51 } 52 53 test('http: large torrent: client.start()', t => { 54 testLargeTorrent(t, 'http') 55 }) 56 57 test('udp: large torrent: client.start()', t => { 58 testLargeTorrent(t, 'udp') 59 }) 60 61 test('ws: large torrent: client.start()', t => { 62 testLargeTorrent(t, 'ws') 63 })