react / wstein / node_modules / react / node_modules / envify / node_modules / through / test / buffering.js
80540 viewsvar test = require('tape')1var through = require('../')23// must emit end before close.45test('buffering', function(assert) {6var ts = through(function (data) {7this.queue(data)8}, function () {9this.queue(null)10})1112var ended = false, actual = []1314ts.on('data', actual.push.bind(actual))15ts.on('end', function () {16ended = true17})1819ts.write(1)20ts.write(2)21ts.write(3)22assert.deepEqual(actual, [1, 2, 3])23ts.pause()24ts.write(4)25ts.write(5)26ts.write(6)27assert.deepEqual(actual, [1, 2, 3])28ts.resume()29assert.deepEqual(actual, [1, 2, 3, 4, 5, 6])30ts.pause()31ts.end()32assert.ok(!ended)33ts.resume()34assert.ok(ended)35assert.end()36})3738test('buffering has data in queue, when ends', function (assert) {3940/*41* If stream ends while paused with data in the queue,42* stream should still emit end after all data is written43* on resume.44*/4546var ts = through(function (data) {47this.queue(data)48}, function () {49this.queue(null)50})5152var ended = false, actual = []5354ts.on('data', actual.push.bind(actual))55ts.on('end', function () {56ended = true57})5859ts.pause()60ts.write(1)61ts.write(2)62ts.write(3)63ts.end()64assert.deepEqual(actual, [], 'no data written yet, still paused')65assert.ok(!ended, 'end not emitted yet, still paused')66ts.resume()67assert.deepEqual(actual, [1, 2, 3], 'resumed, all data should be delivered')68assert.ok(ended, 'end should be emitted once all data was delivered')69assert.end();70})717273