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