nested.js 886 Bytes
var binary = require('../');
var test = require('tap').test;
var EventEmitter = require('events').EventEmitter;

test('nested', function (t) {
    t.plan(3);
    var insideDone = false;
    
    var em = new EventEmitter;
    binary.stream(em)
        .word16be('ab')
        .tap(function () {
            this
                .word8('c')
                .word8('d')
                .tap(function () {
                    insideDone = true;
                })
            ;
        })
        .tap(function (vars) {
            t.ok(insideDone);
            t.same(vars.c, 'c'.charCodeAt(0));
            t.same(vars.d, 'd'.charCodeAt(0));
            
        })
    ;
    
    var strs = [ 'abc', 'def', 'hi', 'jkl' ];
    var iv = setInterval(function () {
        var s = strs.shift();
        if (s) em.emit('data', new Buffer(s));
        else clearInterval(iv);
    }, 50);
});