summaryrefslogtreecommitdiff
path: root/deps/npm/node_modules/JSONStream/test/stringify_object.js
blob: 9490115a0db996e20f17b3adf1c2822d20143e9e (plain)
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
46
47

var fs = require ('fs')
  , join = require('path').join
  , file = join(__dirname, 'fixtures','all_npm.json')
  , JSONStream = require('../')
  , it = require('it-is').style('colour')
  , es = require('event-stream')
  , pending = 10
  , passed = true

  function randomObj () {
    return (
      Math.random () < 0.4
      ? {hello: 'eonuhckmqjk',
          whatever: 236515,
          lies: true,
          nothing: [null],
          stuff: [Math.random(),Math.random(),Math.random()]
        } 
      : ['AOREC', 'reoubaor', {ouec: 62642}, [[[], {}, 53]]]
    )
  }

for (var ix = 0; ix < pending; ix++) (function (count) {
  var expected =  {}
    , stringify = JSONStream.stringifyObject()
    
  es.connect(
    stringify,
    es.writeArray(function (err, lines) {
      it(JSON.parse(lines.join(''))).deepEqual(expected)
      if (--pending === 0) {
        console.error('PASSED')
      }
    })
  )

  while (count --) {
    var key = Math.random().toString(16).slice(2)
    expected[key] = randomObj()
    stringify.write([ key, expected[key] ])
  }

  process.nextTick(function () {
    stringify.end()
  })
})(ix)