HEX
Server: Apache
System: Linux server.instantlogomakers.com 5.14.0-427.42.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Nov 1 14:58:02 EDT 2024 x86_64
User: s2spw (1156)
PHP: 8.1.34
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //lib/node_modules/forever/node_modules/lazy/test/lines.js
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);
};