46 lines
		
	
	
		
			707 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			707 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| var test = require('tape')
 | |
| var through = require('../')
 | |
| 
 | |
| // must emit end before close.
 | |
| 
 | |
| test('end before close', function (assert) {
 | |
|   var ts = through()
 | |
|   var ended = false, closed = false
 | |
| 
 | |
|   ts.on('end', function () {
 | |
|     assert.ok(!closed)
 | |
|     ended = true
 | |
|   })
 | |
|   ts.on('close', function () {
 | |
|     assert.ok(ended)
 | |
|     closed = true
 | |
|   })
 | |
| 
 | |
|   ts.write(1)
 | |
|   ts.write(2)
 | |
|   ts.write(3)
 | |
|   ts.end()
 | |
|   assert.ok(ended)
 | |
|   assert.ok(closed)
 | |
|   assert.end()
 | |
| })
 | |
| 
 | |
| test('end only once', function (t) {
 | |
| 
 | |
|   var ts = through()
 | |
|   var ended = false, closed = false
 | |
| 
 | |
|   ts.on('end', function () {
 | |
|     t.equal(ended, false)
 | |
|     ended = true
 | |
|   })
 | |
| 
 | |
|   ts.queue(null)
 | |
|   ts.queue(null)
 | |
|   ts.queue(null)
 | |
| 
 | |
|   ts.resume()
 | |
| 
 | |
|   t.end()
 | |
| })
 |