1 | var JSONStream = require('../')
|
2 | , stream = require('stream')
|
3 | , it = require('it-is')
|
4 |
|
5 | var output = [ [], [] ]
|
6 |
|
7 | var parser1 = JSONStream.parse(['docs', /./])
|
8 | parser1.on('data', function(data) {
|
9 | output[0].push(data)
|
10 | })
|
11 |
|
12 | var parser2 = JSONStream.parse(['docs', /./])
|
13 | parser2.on('data', function(data) {
|
14 | output[1].push(data)
|
15 | })
|
16 |
|
17 | var pending = 2
|
18 | function onend () {
|
19 | if (--pending > 0) return
|
20 | it(output).deepEqual([
|
21 | [], [{hello: 'world'}]
|
22 | ])
|
23 | console.error('PASSED')
|
24 | }
|
25 | parser1.on('end', onend)
|
26 | parser2.on('end', onend)
|
27 |
|
28 | function makeReadableStream() {
|
29 | var readStream = new stream.Stream()
|
30 | readStream.readable = true
|
31 | readStream.write = function (data) { this.emit('data', data) }
|
32 | readStream.end = function (data) { this.emit('end') }
|
33 | return readStream
|
34 | }
|
35 |
|
36 | var emptyArray = makeReadableStream()
|
37 | emptyArray.pipe(parser1)
|
38 | emptyArray.write('{"docs":[]}')
|
39 | emptyArray.end()
|
40 |
|
41 | var objectArray = makeReadableStream()
|
42 | objectArray.pipe(parser2)
|
43 | objectArray.write('{"docs":[{"hello":"world"}]}')
|
44 | objectArray.end()
|