Server : nginx/1.20.1 System : Linux ccpf-production-2021 5.4.0-148-generic #165-Ubuntu SMP Tue Apr 18 08:53:12 UTC 2023 x86_64 User : forge ( 1000) PHP Version : 7.4.21 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /usr/lib/node_modules/pm2/node_modules/lazy/test/ |
var assert = require('assert');
var Lazy = require('..');
var EventEmitter = require('events').EventEmitter;
exports['buffered lines'] = function () {
var lazy = Lazy();
var joined = false;
lazy.lines
.forEach(function (line) {
assert.ok(line instanceof Buffer);
assert.ok(!line.toString().match(/\n/));
assert.ok(line.length > 0);
})
.join(function (lines) {
assert.deepEqual(
lines.map(function (x) { return x.toString() }),
'foo bar baz quux moo'.split(' ')
);
joined = true;
});
;
setTimeout(function () {
lazy.push(new Buffer('foo\nbar'));
lazy.push(new Buffer('\nbaz\nquux\nmoo'));
lazy.push(new Buffer(''));
lazy.push(new Buffer('\ndoom'));
lazy.end();
assert.ok(joined);
}, 50);
};
exports['string lines'] = function () {
var lazy = Lazy();
var joined = false;
lazy.lines
.forEach(function (line) {
assert.ok(line instanceof Buffer);
assert.ok(!line.toString().match(/\n/));
assert.ok(line.length > 0);
})
.join(function (lines) {
assert.deepEqual(
lines.map(function (x) { return x.toString() }),
'foo bar baz quux moo'.split(' ')
);
joined = true;
});
;
setTimeout(function () {
lazy.push('foo\nbar');
lazy.push('\nbaz\nquux\nmoo');
lazy.push('');
lazy.push('\ndoom');
lazy.end();
assert.ok(joined);
}, 50);
};
exports.endStream = function () {
var to = setTimeout(function () {
assert.fail('never finished');
}, 2500);
var em = new EventEmitter;
var i = 0;
var lines = [];
Lazy(em).lines.forEach(function (line) {
i ++;
lines.push(line);
if (i == 2) {
clearTimeout(to);
assert.eql(lines.map(String), [ 'foo', 'bar' ]);
}
});
setTimeout(function () {
em.emit('data', 'fo');
}, 100);
setTimeout(function () {
em.emit('data', 'o\nbar');
}, 150);
setTimeout(function () {
em.emit('end');
}, 200);
};