mirror of
https://github.com/pcottle/learnGitBranching.git
synced 2025-07-09 14:14:27 +02:00
working on tree compare tests etc
This commit is contained in:
parent
89fa08e149
commit
3d8e40851e
5 changed files with 71 additions and 4 deletions
|
@ -28136,7 +28136,9 @@ var toGlobalize = {
|
||||||
};
|
};
|
||||||
|
|
||||||
_.each(toGlobalize, function(module) {
|
_.each(toGlobalize, function(module) {
|
||||||
_.extend(window, module);
|
for (var key in module) {
|
||||||
|
window['debug_' + key] = module[key];
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
|
@ -28145,6 +28147,7 @@ $(document).ready(function() {
|
||||||
window.sandbox = toGlobalize.Main.getSandbox();
|
window.sandbox = toGlobalize.Main.getSandbox();
|
||||||
window.modules = toGlobalize;
|
window.modules = toGlobalize;
|
||||||
window.levelDropdown = toGlobalize.Main.getLevelDropdown();
|
window.levelDropdown = toGlobalize.Main.getLevelDropdown();
|
||||||
|
window.under = _;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
var HeadlessGit = require('../src/js/git/headless').HeadlessGit;
|
var HeadlessGit = require('../src/js/git/headless').HeadlessGit;
|
||||||
var TreeCompare = require('../src/js/git/treeCompare').TreeCompare;
|
var TreeCompare = require('../src/js/git/treeCompare').TreeCompare;
|
||||||
var treeCompare = new TreeCompare();
|
|
||||||
|
|
||||||
var loadTree = function(json) {
|
var loadTree = function(json) {
|
||||||
return JSON.parse(unescape(json));
|
return JSON.parse(unescape(json));
|
||||||
|
@ -10,7 +9,7 @@ var compareAnswer = function(headless, expectedJSON) {
|
||||||
var expectedTree = loadTree(expectedJSON);
|
var expectedTree = loadTree(expectedJSON);
|
||||||
var actualTree = headless.gitEngine.exportTree();
|
var actualTree = headless.gitEngine.exportTree();
|
||||||
|
|
||||||
var equal = treeCompare.compareTrees(expectedTree, actualTree);
|
var equal = TreeCompare.compareTrees(expectedTree, actualTree);
|
||||||
if (!equal) {
|
if (!equal) {
|
||||||
console.log('tree1', expectedTree);
|
console.log('tree1', expectedTree);
|
||||||
console.log('tree2', actualTree);
|
console.log('tree2', actualTree);
|
||||||
|
|
39
spec/treeCompare.spec.js
Normal file
39
spec/treeCompare.spec.js
Normal file
|
@ -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() {
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
|
@ -3,6 +3,29 @@ var _ = require('underscore');
|
||||||
// static class...
|
// static class...
|
||||||
var TreeCompare = {};
|
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.. :(
|
// would love to have copy properties here.. :(
|
||||||
TreeCompare.compareAllBranchesWithinTreesAndHEAD = function(treeA, treeB) {
|
TreeCompare.compareAllBranchesWithinTreesAndHEAD = function(treeA, treeB) {
|
||||||
treeA = this.convertTreeSafe(treeA);
|
treeA = this.convertTreeSafe(treeA);
|
||||||
|
|
|
@ -28,7 +28,9 @@ var toGlobalize = {
|
||||||
};
|
};
|
||||||
|
|
||||||
_.each(toGlobalize, function(module) {
|
_.each(toGlobalize, function(module) {
|
||||||
_.extend(window, module);
|
for (var key in module) {
|
||||||
|
window['debug_' + key] = module[key];
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
|
@ -37,5 +39,6 @@ $(document).ready(function() {
|
||||||
window.sandbox = toGlobalize.Main.getSandbox();
|
window.sandbox = toGlobalize.Main.getSandbox();
|
||||||
window.modules = toGlobalize;
|
window.modules = toGlobalize;
|
||||||
window.levelDropdown = toGlobalize.Main.getLevelDropdown();
|
window.levelDropdown = toGlobalize.Main.getLevelDropdown();
|
||||||
|
window.under = _;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue