UNPKG

1.11 kBJavaScriptView Raw
1
2
3var fs = require ('fs')
4 , join = require('path').join
5 , file = join(__dirname, 'fixtures','header_footer.json')
6 , JSONStream = require('../')
7 , it = require('it-is')
8
9var expected = JSON.parse(fs.readFileSync(file))
10 , parser = JSONStream.parse(['rows', /\d+/ /*, 'value'*/])
11 , called = 0
12 , headerCalled = 0
13 , footerCalled = 0
14 , ended = false
15 , parsed = []
16
17fs.createReadStream(file).pipe(parser)
18
19parser.on('header', function (data) {
20 headerCalled ++
21 it(data).deepEqual({
22 total_rows: 129,
23 offset: 0
24 })
25})
26
27parser.on('footer', function (data) {
28 footerCalled ++
29 it(data).deepEqual({
30 foo: { bar: 'baz' }
31 })
32})
33
34parser.on('data', function (data) {
35 called ++
36 it.has({
37 id: it.typeof('string'),
38 value: {rev: it.typeof('string')},
39 key:it.typeof('string')
40 })
41 it(headerCalled).equal(1)
42 parsed.push(data)
43})
44
45parser.on('end', function () {
46 ended = true
47})
48
49process.on('exit', function () {
50 it(called).equal(expected.rows.length)
51 it(headerCalled).equal(1)
52 it(footerCalled).equal(1)
53 it(parsed).deepEqual(expected.rows)
54 console.error('PASSED')
55})