var test = require('tape') var _JSON = require('../') function clone (o) { return JSON.parse(JSON.stringify(o)) } var examples = { simple: { foo: [], bar: {}, baz: Buffer.from('some binary data') }, just_buffer: Buffer.from('JUST A BUFFER'), all_types: { string:'hello', number: 3145, null: null, object: {}, array: [], boolean: true, boolean2: false }, foo: Buffer.from('foo'), foo2: Buffer.from('foo2'), escape: { buffer: Buffer.from('x'), string: _JSON.stringify(Buffer.from('x')) }, escape2: { buffer: Buffer.from('x'), string: ':base64:'+ Buffer.from('x').toString('base64') }, undefined: { empty: undefined, test: true }, undefined2: { first: 1, empty: undefined, test: true }, undefinedArray: { array: [undefined, 1, 'two'] }, fn: { fn: function () {} }, undefined: undefined } for(k in examples) (function (value, k) { test(k, function (t) { var s = _JSON.stringify(value) console.log('parse', s) if(JSON.stringify(value) !== undefined) { console.log(s) var _value = _JSON.parse(s) t.deepEqual(clone(_value), clone(value)) } else t.equal(s, undefined) t.end() }) })(examples[k], k)