1var pump = require('./index') 2 3var rs = require('fs').createReadStream('/dev/random') 4var ws = require('fs').createWriteStream('/dev/null') 5 6var toHex = function () { 7 var reverse = new (require('stream').Transform)() 8 9 reverse._transform = function (chunk, enc, callback) { 10 reverse.push(chunk.toString('hex')) 11 callback() 12 } 13 14 return reverse 15} 16 17var wsClosed = false 18var rsClosed = false 19var callbackCalled = false 20 21var check = function () { 22 if (wsClosed && rsClosed && callbackCalled) { 23 console.log('test-node.js passes') 24 clearTimeout(timeout) 25 } 26} 27 28ws.on('close', function () { 29 wsClosed = true 30 check() 31}) 32 33rs.on('close', function () { 34 rsClosed = true 35 check() 36}) 37 38var res = pump(rs, toHex(), toHex(), toHex(), ws, function () { 39 callbackCalled = true 40 check() 41}) 42 43if (res !== ws) { 44 throw new Error('should return last stream') 45} 46 47setTimeout(function () { 48 rs.destroy() 49}, 1000) 50 51var timeout = setTimeout(function () { 52 throw new Error('timeout') 53}, 5000) 54