63 lines
1.2 KiB
63 lines
1.2 KiB
|
|
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) |
|
|
|
|
|
|
|
|