30 lines
		
	
	
		
			816 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			816 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| var test = require('tap').test;
 | |
| var streamBuffers = require("stream-buffers");
 | |
| var MatchStream = require('../');
 | |
| 
 | |
| test("pipe until pattern", function (t) {
 | |
|   t.plan(2);
 | |
| 
 | |
|   var ms = new MatchStream({ pattern: 'World'}, function (buf, matched, extra) {
 | |
|     if (!matched) {
 | |
|       return this.push(buf);
 | |
|     }
 | |
|     this.push(buf);
 | |
|     t.equal(extra.toString(), 'World');
 | |
|     return this.push(null); //end the stream
 | |
|   });
 | |
| 
 | |
|   var sourceStream = new streamBuffers.ReadableStreamBuffer();
 | |
|   sourceStream.put("Hello World");
 | |
|   var writableStream = new streamBuffers.WritableStreamBuffer();
 | |
| 
 | |
|   sourceStream
 | |
|     .pipe(ms)
 | |
|     .pipe(writableStream)
 | |
|     .once('close', function () {
 | |
|       var str = writableStream.getContentsAsString('utf8');
 | |
|       t.equal(str, 'Hello ');
 | |
|       sourceStream.destroy();
 | |
|       t.end();
 | |
|     });
 | |
| }); | 
