UNPKG

2.9 kBJavaScriptView Raw
1
2
3var pull = require('pull-stream')
4var cat = require('../')
5var test = require('tape')
6var Pushable = require('pull-pushable')
7var Abortable = require('pull-abortable')
8test('cat', function (t) {
9
10 pull(
11 cat([pull.values([1,2,3]), pull.values([4,5,6])]),
12 pull.collect(function (err, ary) {
13 console.log(err, ary)
14 t.notOk(err)
15 t.deepEqual(ary, [1,2,3,4,5,6])
16 t.end()
17 })
18 )
19
20})
21
22test('cat - with empty', function (t) {
23
24 pull(
25 cat([pull.values([1,2,3]), null, pull.values([4,5,6])]),
26 pull.collect(function (err, ary) {
27 console.log(err, ary)
28 t.notOk(err)
29 t.deepEqual(ary, [1,2,3,4,5,6])
30 t.end()
31 })
32 )
33
34})
35
36test('cat - with empty stream', function (t) {
37 var ended = false
38 var justEnd = function (err, cb) { ended = true; cb(true) }
39
40 pull(
41 cat([pull.values([1,2,3]), justEnd, pull.values([4,5,6])]),
42 pull.collect(function (err, ary) {
43 console.log(err, ary)
44 t.ok(ended)
45 t.notOk(err)
46 t.deepEqual(ary, [1,2,3,4,5,6])
47 t.end()
48 })
49 )
50})
51
52
53
54test('abort - with empty', function (t) {
55 pull(
56 cat([pull.values([1,2,3]), null, pull.values([4,5,6])]),
57 function (read) {
58 read(true, function (err) {
59 t.equal(err, true)
60 t.end()
61 })
62 }
63 )
64})
65
66test('error', function (t) {
67 var err = new Error('test error')
68 pull(
69 cat([pull.values([1,2,3]), function (_, cb) {
70 cb(err)
71 }]),
72 pull.collect(function (_err) {
73 console.log('COLLECT END', _err)
74 t.equal(_err, err)
75 t.end()
76 })
77 )
78})
79
80test('abort stalled', function (t) {
81 var err = new Error('intentional'), n = 2
82 var abortable = Abortable()
83 var pushable = Pushable(function (_err) {
84 t.equal(_err, err)
85 next()
86 })
87
88 pushable.push(4)
89
90 pull(
91 cat([pull.values([1,2,3]), undefined, pushable]),
92 abortable,
93 pull.drain(function (item) {
94 if(item == 4)
95 process.nextTick(function () {
96 abortable.abort(err)
97 })
98 }, function (err) {
99 next()
100 })
101 )
102
103 function next () {
104 if(--n) return
105 t.end()
106 }
107})
108
109test('abort empty', function (t) {
110 cat([])(true, function (end) {
111 t.equal(end, true)
112 t.end()
113 })
114})
115
116test('error + undefined', function (t) {
117 var err = new Error('test error')
118 pull(
119 cat([pull.values([1,2,3]), function (_, cb) {
120 cb(err)
121 }, undefined]),
122 pull.collect(function (_err) {
123 t.equal(_err, err)
124 t.end()
125 })
126 )
127})
128
129test('abort streams after error', function (t) {
130 var err = new Error('test error')
131 var aborted = false
132 pull(
133 cat([pull.values([1,2,3]), function (_, cb) {
134 cb(err)
135 }, function (_err, cb) {
136 //this stream should be aborted.
137 aborted = true
138 t.strictEqual(_err, err)
139 cb()
140 }]),
141 pull.collect(function (_err) {
142 t.equal(aborted, true)
143 t.equal(_err, err)
144 t.end()
145 })
146 )
147})
148
149