• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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