@@ -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