123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- var dd = require('../'); // deep-diff
- var inspect = require('util').inspect;
- var expect = require('expect.js');
- var before = {
- name: 'my object',
- description: 'it\'s an object!',
- details: {
- it: 'has',
- an: 'array',
- with: ['a', 'few', 'elements']
- }
- };
- var after = {
- name: 'updated object',
- description: 'it\'s an object!',
- details: {
- it: 'has',
- an: 'array',
- with: ['a', 'few', 'more', 'elements', { than: 'before' }]
- }
- };
- var revertDiff = function (src, d) {
- d.forEach(function (change) {
- dd.revertChange(src, true, change);
- });
- return src;
- };
- var clone = function (src) {
- return JSON.parse(JSON.stringify(src));
- };
- var df = dd.diff(before, after);
- var b1 = clone(before);
- var a1 = clone(after);
- console.log(inspect(a1, false, 9)); // eslint-disable-line no-console
- var reverted = revertDiff(a1, df);
- console.log(inspect(reverted, false, 9)); // eslint-disable-line no-console
- console.log(inspect(b1, false, 9)); // eslint-disable-line no-console
- expect(reverted).to.eql(b1);
|