12345678910111213141516171819202122232425262728293031323334353637 |
- var assert = require('assert');
- var Lazy = require('..');
- exports.bucket = function () {
- var joined = false;
- var lazy = new Lazy;
- lazy.bucket('', function splitter (acc, x) {
- var accx = acc + x;
- var i = accx.indexOf('\n');
- if (i >= 0) {
- this(accx.slice(0, i));
- return splitter.call(this, accx.slice(i + 1), '');
- }
- return accx;
- }).join(function (lines) {
- assert.deepEqual(lines, 'foo bar baz quux moo'.split(' '));
- joined = true;
- });
-
- setTimeout(function () {
- lazy.emit('data', 'foo\nba');
- }, 50);
- setTimeout(function () {
- lazy.emit('data', 'r');
- }, 100);
- setTimeout(function () {
- lazy.emit('data', '\nbaz\nquux\nm');
- }, 150);
- setTimeout(function () {
- lazy.emit('data', 'oo');
- }, 200);
- setTimeout(function () {
- lazy.emit('data', '\nzoom');
- lazy.emit('end');
- assert.ok(joined);
- }, 250);
- };
|