commando.html5/node_modules/traverse/test/super_deep.js

57 lines
719 B
JavaScript

'use strict';
var test = require('tape');
var deepEqual = require('./lib/deep_equal');
function make() {
var a = { self: 'a' };
var b = { self: 'b' };
var c = { self: 'c' };
var d = { self: 'd' };
var e = { self: 'e' };
a.a = a;
a.b = b;
a.c = c;
b.a = a;
b.b = b;
b.c = c;
c.a = a;
c.b = b;
c.c = c;
c.d = d;
d.a = a;
d.b = b;
d.c = c;
d.d = d;
d.e = e;
e.a = a;
e.b = b;
e.c = c;
e.d = d;
e.e = e;
return a;
}
test('super_deep', function (t) {
var a0 = make();
var a1 = make();
t.ok(deepEqual(a0, a1));
a0.c.d.moo = true;
t.ok(!deepEqual(a0, a1));
a1.c.d.moo = true;
t.ok(deepEqual(a0, a1));
// TODO: this one
// a0.c.a = a1;
// t.ok(!deepEqual(a0, a1));
t.end();
});