| 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) | |