common.js
1 import { Server } from '../index.js' 2 3 export const createServer = (t, opts, cb) => { 4 if (typeof opts === 'string') opts = { serverType: opts } 5 6 opts.http = (opts.serverType === 'http') 7 opts.udp = (opts.serverType === 'udp') 8 opts.ws = (opts.serverType === 'ws') 9 10 const server = new Server(opts) 11 12 server.on('error', err => { t.error(err) }) 13 server.on('warning', err => { t.error(err) }) 14 15 server.listen(0, () => { 16 const port = server[opts.serverType].address().port 17 let announceUrl 18 if (opts.serverType === 'http') { 19 announceUrl = `http://127.0.0.1:${port}/announce` 20 } else if (opts.serverType === 'udp') { 21 announceUrl = `udp://127.0.0.1:${port}` 22 } else if (opts.serverType === 'ws') { 23 announceUrl = `ws://127.0.0.1:${port}` 24 } 25 26 cb(server, announceUrl) 27 }) 28 } 29 30 export const mockWebsocketTracker = client => { 31 client._trackers[0]._generateOffers = (numwant, cb) => { 32 const offers = [] 33 for (let i = 0; i < numwant; i++) { 34 offers.push({ fake_offer: `fake_offer_${i}` }) 35 } 36 process.nextTick(() => { 37 cb(offers) 38 }) 39 } 40 } 41 42 export default { mockWebsocketTracker, createServer }