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)
- })
|