/*jshint indent:2, laxcomma:true, laxbreak:true*/ var util = require('util'); var expect = require('expect.js'); var deep = require('..'); var lhs = { 'id': 'Release', 'phases': [{ 'id': 'Phase1', 'tasks': [ { 'id': 'Task1' }, { 'id': 'Task2' } ] }, { 'id': 'Phase2', 'tasks': [ { 'id': 'Task3' } ] }] }; var rhs = { 'id': 'Release', 'phases': [{ // E: Phase1 -> Phase2 'id': 'Phase2', 'tasks': [ { 'id': 'Task3' } ] }, { 'id': 'Phase1', 'tasks': [ { 'id': 'Task1' }, { 'id': 'Task2' } ] }] }; var diff = deep.diff(lhs, rhs); console.log(util.inspect(diff, false, 9)); // eslint-disable-line no-console deep.applyDiff(lhs, rhs); console.log(util.inspect(lhs, false, 9)); // eslint-disable-line no-console expect(lhs).to.be.eql(rhs);