46 lines
842 B
JavaScript
46 lines
842 B
JavaScript
|
|
/*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);
|
||
|
|
|