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