| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
 | | 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() |  | }) | 
 |