@@ -3,26 +3,33 @@ var Client = require('../')
33var common = require('./common')
44var fixtures = require('webtorrent-fixtures')
55var test = require('tape')
6+ var Server = require('../server')
67
78var peerId = Buffer.from('01234567890123456789')
89
910function testRequestHandler (t, serverType) {
10- t.plan(4 )
11+ t.plan(5 )
1112
1213 var opts = { serverType: serverType } // this is test-suite-only option
13- opts.requestHandler = {
14- getParams: function (params) {
15- params.extra = 123
16- return params
17- },
18- getResponse: function (params, cb) {
19- return function (err, response) {
20- response.complete = params.extra * 2
21- cb(err, response)
22- }
14+
15+ class Swarm extends Server.Swarm {
16+ announce (params, cb) {
17+ super.announce(params, function (err, response) {
18+ if (err) return cb(response)
19+ response.complete = 246
20+ response.extraData = 'hi'
21+ cb(null, response)
22+ })
2323 }
2424 }
2525
26+ // Use a custom Swarm implementation for this test only
27+ var OldSwarm = Server.Swarm
28+ Server.Swarm = Swarm
29+ t.on('end', function () {
30+ Server.Swarm = OldSwarm
31+ })
32+
2633 common.createServer(t, opts, function (server, announceUrl) {
2734 var client1 = new Client({
2835 infoHash: fixtures.alice.parsedTorrent.infoHash,
@@ -41,6 +48,7 @@ function testRequestHandler (t, serverType) {
4148
4249 client1.once('update', function (data) {
4350 t.equal(data.complete, 246)
51+ t.equal(data.extraData.toString(), 'hi')
4452
4553 client1.destroy(function () {
4654 t.pass('client1 destroyed')
0 commit comments