| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 | const tape = require('tape')const tee = require('./')const { Readable } = require('streamx')tape('throttled by eachother', function (t) {  const r = new Readable()  for (let i = 0; i < 1000; i++) {    r.push(Buffer.alloc(1000))  }  const [a, b] = tee(r)  let aTicks = 0  a.on('data', function (data) {    aTicks++  })  setTimeout(() => b.read(), 100)  setTimeout(() => {    t.same(aTicks, 18)    t.end()  }, 200)})tape('does not premature destroy', function (t) {  const r = new Readable()  const [a, b] = tee(r)  r.push('a')  r.push('b')  r.push('c')  r.push(null)  setTimeout(() => {    const aSeen = []    const bSeen = []    a.on('data', function (data) {      aSeen.push(data)    })    a.on('end', function () {      aSeen.push(null)    })    b.on('data', function (data) {      bSeen.push(data)    })    b.on('end', function () {      bSeen.push(null)    })    let missing = 2    a.on('close', onclose)    b.on('close', onclose)    function onclose () {      if (--missing === 0) {        t.same(aSeen, ['a', 'b', 'c', null])        t.same(bSeen, ['a', 'b', 'c', null])        t.end()      }    }  }, 200)})
 |