You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					50 lines
				
				1.2 KiB
			
		
		
			
		
	
	
					50 lines
				
				1.2 KiB
			| 
											2 years ago
										 | var binary = require('../'); | ||
|  | var test = require('tap').test; | ||
|  | var Stream = require('stream').Stream; | ||
|  | 
 | ||
|  | test('loop', function (t) { | ||
|  |     t.plan(3 * 2 + 1); | ||
|  |      | ||
|  |     var rs = new Stream; | ||
|  |     rs.readable = true; | ||
|  |      | ||
|  |     var ws = binary() | ||
|  |         .loop(function (end, vars) { | ||
|  |             t.strictEqual(vars, this.vars); | ||
|  |             this | ||
|  |                 .word16lu('a') | ||
|  |                 .word8u('b') | ||
|  |                 .word8s('c') | ||
|  |                 .tap(function (vars_) { | ||
|  |                     t.strictEqual(vars, vars_); | ||
|  |                     if (vars.c < 0) end(); | ||
|  |                 }) | ||
|  |             ; | ||
|  |         }) | ||
|  |         .tap(function (vars) { | ||
|  |             t.same(vars, { a : 1337, b : 55, c : -5 }); | ||
|  |         }) | ||
|  |     ; | ||
|  |     rs.pipe(ws); | ||
|  |      | ||
|  |     setTimeout(function () { | ||
|  |         rs.emit('data', new Buffer([ 2, 10, 88 ])); | ||
|  |     }, 10); | ||
|  |     setTimeout(function () { | ||
|  |         rs.emit('data', new Buffer([ 100, 3, 6, 242, 30 ])); | ||
|  |     }, 20); | ||
|  |     setTimeout(function () { | ||
|  |         rs.emit('data', new Buffer([ 60, 60, 199, 44 ])); | ||
|  |     }, 30); | ||
|  |      | ||
|  |     setTimeout(function () { | ||
|  |         rs.emit('data', new Buffer([ 57, 5 ])); | ||
|  |     }, 80); | ||
|  |     setTimeout(function () { | ||
|  |         rs.emit('data', new Buffer([ 55, 251 ])); | ||
|  |     }, 90); | ||
|  |     setTimeout(function () { | ||
|  |         rs.emit('end'); | ||
|  |     }, 100); | ||
|  | }); |