You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.1 KiB
47 lines
1.1 KiB
|
|
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)
|
|
|