test.js 869 Bytes
var mps = require('./index')

var encode = mps.createEncodeStream()
var decode = mps.createDecodeStream()
var assert = require('assert')

require('tape')('simple', function (t) {

  var expected = [
    1,
    0,
    null,
    true,
    "hello",
    'string\nwith\nlines',
    {object: true, name: 'no need for a name'},
    ['this', 'that', {}, [], [null]],
    Math.PI,
    true,
    false,
  //  Infinity,   //doesn't work
  //  NaN,        //doesn't work
    {obj: {}}
  ]

  var toSend = expected.slice()
    , expectedItems = expected.slice()
    , actual = []

  encode
  .pipe(decode)
  .on('data', function (obj) {
    console.log(obj)
    actual.push(obj)
    t.deepEqual(obj, expectedItems.shift())
  })
  .on('end', function () {
    t.deepEqual(actual, expected)
    t.end()
  })

  while(toSend.length)
    encode.write(toSend.shift())
  encode.end()

})