var pump = require('./index') | |
var rs = require('fs').createReadStream('/dev/random') | |
var ws = require('fs').createWriteStream('/dev/null') | |
var toHex = function () { | |
var reverse = new (require('stream').Transform)() | |
reverse._transform = function (chunk, enc, callback) { | |
reverse.push(chunk.toString('hex')) | |
callback() | |
} | |
return reverse | |
} | |
var wsClosed = false | |
var rsClosed = false | |
var callbackCalled = false | |
var check = function () { | |
if (wsClosed && rsClosed && callbackCalled) { | |
console.log('test-node.js passes') | |
clearTimeout(timeout) | |
} | |
} | |
ws.on('close', function () { | |
wsClosed = true | |
check() | |
}) | |
rs.on('close', function () { | |
rsClosed = true | |
check() | |
}) | |
var res = pump(rs, toHex(), toHex(), toHex(), ws, function () { | |
callbackCalled = true | |
check() | |
}) | |
if (res !== ws) { | |
throw new Error('should return last stream') | |
} | |
setTimeout(function () { | |
rs.destroy() | |
}, 1000) | |
var timeout = setTimeout(function () { | |
throw new Error('timeout') | |
}, 5000) | |