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