25 lines
684 B
JavaScript
25 lines
684 B
JavaScript
|
var test = require('tap').test
|
||
|
var sigmund = require('../sigmund.js')
|
||
|
|
||
|
|
||
|
// occasionally there are duplicates
|
||
|
// that's an acceptable edge-case. JSON.stringify and util.inspect
|
||
|
// have some collision potential as well, though less, and collision
|
||
|
// detection is expensive.
|
||
|
var hash = '{abc/def/g{0h1i2{jkl'
|
||
|
var obj1 = {a:'b',c:/def/,g:['h','i',{j:'',k:'l'}]}
|
||
|
var obj2 = {a:'b',c:'/def/',g:['h','i','{jkl']}
|
||
|
|
||
|
var obj3 = JSON.parse(JSON.stringify(obj1))
|
||
|
obj3.c = /def/
|
||
|
obj3.g[2].cycle = obj3
|
||
|
var cycleHash = '{abc/def/g{0h1i2{jklcycle'
|
||
|
|
||
|
test('basic', function (t) {
|
||
|
t.equal(sigmund(obj1), hash)
|
||
|
t.equal(sigmund(obj2), hash)
|
||
|
t.equal(sigmund(obj3), cycleHash)
|
||
|
t.end()
|
||
|
})
|
||
|
|