into_stream.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. var binary = require('../');
  2. var test = require('tap').test;
  3. var EventEmitter = require('events').EventEmitter;
  4. test('into stream', function (t) {
  5. t.plan(3);
  6. var digits = [ 1, 2, 3, 4, 5, 6 ];
  7. var stream = new EventEmitter;
  8. var iv = setInterval(function () {
  9. var d = digits.shift();
  10. if (d) stream.emit('data', new Buffer([ d ]))
  11. else clearInterval(iv)
  12. }, 20);
  13. binary.stream(stream)
  14. .into('moo', function () {
  15. this
  16. .word8('x')
  17. .word8('y')
  18. .word8('z')
  19. ;
  20. })
  21. .tap(function (vars) {
  22. t.same(vars, { moo : { x : 1, y : 2, z : 3 } });
  23. })
  24. .word8('w')
  25. .tap(function (vars) {
  26. t.same(vars, {
  27. moo : { x : 1, y : 2, z : 3 },
  28. w : 4,
  29. });
  30. })
  31. .word8('x')
  32. .tap(function (vars) {
  33. t.same(vars, {
  34. moo : { x : 1, y : 2, z : 3 },
  35. w : 4,
  36. x : 5,
  37. });
  38. })
  39. ;
  40. });