| 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() | |
| })
 |