diff --git a/build/bundle.js b/build/bundle.js index 86a5b05c..a1dd3f4b 100644 --- a/build/bundle.js +++ b/build/bundle.js @@ -28136,7 +28136,9 @@ var toGlobalize = { }; _.each(toGlobalize, function(module) { - _.extend(window, module); + for (var key in module) { + window['debug_' + key] = module[key]; + } }); $(document).ready(function() { @@ -28145,6 +28147,7 @@ $(document).ready(function() { window.sandbox = toGlobalize.Main.getSandbox(); window.modules = toGlobalize; window.levelDropdown = toGlobalize.Main.getLevelDropdown(); + window.under = _; }); diff --git a/spec/git.spec.js b/spec/git.spec.js index a7bcdac9..9d783ca8 100644 --- a/spec/git.spec.js +++ b/spec/git.spec.js @@ -1,6 +1,5 @@ var HeadlessGit = require('../src/js/git/headless').HeadlessGit; var TreeCompare = require('../src/js/git/treeCompare').TreeCompare; -var treeCompare = new TreeCompare(); var loadTree = function(json) { return JSON.parse(unescape(json)); @@ -10,7 +9,7 @@ var compareAnswer = function(headless, expectedJSON) { var expectedTree = loadTree(expectedJSON); var actualTree = headless.gitEngine.exportTree(); - var equal = treeCompare.compareTrees(expectedTree, actualTree); + var equal = TreeCompare.compareTrees(expectedTree, actualTree); if (!equal) { console.log('tree1', expectedTree); console.log('tree2', actualTree); diff --git a/spec/treeCompare.spec.js b/spec/treeCompare.spec.js new file mode 100644 index 00000000..7f686dd3 --- /dev/null +++ b/spec/treeCompare.spec.js @@ -0,0 +1,39 @@ +var TreeCompare = require('../src/js/git/treeCompare').TreeCompare; +var _ = require('underscore'); + +var loadTree = function(json) { + return JSON.parse(unescape(json)); +}; + +var copyArgs = function(args) { + return _.map(args, function(arg) { + return arg; + }); +}; + +var loadTree = function(treeString) { + return TreeCompare.convertTreeSafe(treeString); +}; + +var testMethod = function(compareMethod, goalTreeString /* other trees */) { + if (arguments.length < 3) { + throw new Error('not allowed! need at least one tree to compare'); + } + + var toCompare = copyArgs(arguments).slice(2); + _.each(toCompare, function(actualTree) { + var isEqual = TreeCompare.dispatch(compareMethod, goalTreeString, actualTree); + if (!isEqual) { + console.log('this goal tree', loadTree(goalTreeString)); + console.log('did not match this tree', loadTree(actualTree)); + } + expect(isEqual).toBe(true); + }); +}; + +describe('Tree Compare', function() { + it('can compare only master', function() { + + }); +}); + diff --git a/src/js/git/treeCompare.js b/src/js/git/treeCompare.js index bc9731fa..05d2bfb6 100644 --- a/src/js/git/treeCompare.js +++ b/src/js/git/treeCompare.js @@ -3,6 +3,29 @@ var _ = require('underscore'); // static class... var TreeCompare = {}; +TreeCompare.dispatchFromLevel = function(levelBlob, treeToCompare) { + var goalTreeString = levelBlob.goalTreeString; + return TreeCompare.dispatch(levelBlob, goalTreeString, treeToCompare); +}; + +TreeCompare.dispatch = function(levelBlob, goalTreeString, treeToCompare) { + switch(true) { + case !!levelBlob.compareOnlyMaster: + return TreeCompare.compareBranchWithinTrees(current, goalTreeString, 'master'); + case !!levelBlob.compareOnlyBranches: + return TreeCompare.compareAllBranchesWithinTrees(current, goalTreeString); + case !!levelBlob.compareAllBranchesHashAgnostic: + return TreeCompare.compareAllBranchesWithinTreesHashAgnostic(current, goalTreeString); + case !!levelBlob.compareOnlyMasterHashAgnostic: + return TreeCompare.compareBranchesWithinTreesHashAgnostic(current, goalTreeString, ['master']); + case !!levelBlob.compareOnlyMasterHashAgnosticWithAsserts: + return TreeCompare.compareBranchesWithinTreesHashAgnostic(current, goalTreeString, ['master']) && + TreeCompare.evalAsserts(current, levelBlob.goalAsserts); + default: + return TreeCompare.compareAllBranchesWithinTreesAndHEAD(current, goalTreeString); + } +}; + // would love to have copy properties here.. :( TreeCompare.compareAllBranchesWithinTreesAndHEAD = function(treeA, treeB) { treeA = this.convertTreeSafe(treeA); diff --git a/src/js/util/debug.js b/src/js/util/debug.js index 2b562c03..ed3b2b22 100644 --- a/src/js/util/debug.js +++ b/src/js/util/debug.js @@ -28,7 +28,9 @@ var toGlobalize = { }; _.each(toGlobalize, function(module) { - _.extend(window, module); + for (var key in module) { + window['debug_' + key] = module[key]; + } }); $(document).ready(function() { @@ -37,5 +39,6 @@ $(document).ready(function() { window.sandbox = toGlobalize.Main.getSandbox(); window.modules = toGlobalize; window.levelDropdown = toGlobalize.Main.getLevelDropdown(); + window.under = _; });