array-change.js 842 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. /*jshint indent:2, laxcomma:true, laxbreak:true*/
  2. var util = require('util');
  3. var expect = require('expect.js');
  4. var deep = require('..');
  5. var lhs = {
  6. 'id': 'Release',
  7. 'phases': [{
  8. 'id': 'Phase1',
  9. 'tasks': [
  10. { 'id': 'Task1' },
  11. { 'id': 'Task2' }
  12. ]
  13. }, {
  14. 'id': 'Phase2',
  15. 'tasks': [
  16. { 'id': 'Task3' }
  17. ]
  18. }]
  19. };
  20. var rhs = {
  21. 'id': 'Release',
  22. 'phases': [{
  23. // E: Phase1 -> Phase2
  24. 'id': 'Phase2',
  25. 'tasks': [
  26. { 'id': 'Task3' }
  27. ]
  28. }, {
  29. 'id': 'Phase1',
  30. 'tasks': [
  31. { 'id': 'Task1' },
  32. { 'id': 'Task2' }
  33. ]
  34. }]
  35. };
  36. var diff = deep.diff(lhs, rhs);
  37. console.log(util.inspect(diff, false, 9)); // eslint-disable-line no-console
  38. deep.applyDiff(lhs, rhs);
  39. console.log(util.inspect(lhs, false, 9)); // eslint-disable-line no-console
  40. expect(lhs).to.be.eql(rhs);