/ test / common.js
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 }