Merge branch 'cloned-args-on-calltracker' of https://github.com/a-r-d/jasmine into a-r-d-cloned-args-on-calltracker

- Merges #1000
- Fixes #872
This commit is contained in:
Gregg Van Hove
2016-02-16 14:49:10 -08:00
4 changed files with 63 additions and 4 deletions

View File

@@ -1,9 +1,26 @@
getJasmineRequireObj().CallTracker = function() {
getJasmineRequireObj().CallTracker = function(j$) {
function CallTracker() {
var calls = [];
var opts = {};
function argCloner(context) {
var clonedArgs = [];
var argsAsArray = j$.util.argsToArray(context.args);
for(var i = 0; i < argsAsArray.length; i++) {
if(Object.prototype.toString.apply(argsAsArray[i]).match(/^\[object/)) {
clonedArgs.push(j$.util.clone(argsAsArray[i]));
} else {
clonedArgs.push(argsAsArray[i]);
}
}
context.args = clonedArgs;
}
this.track = function(context) {
if(opts.cloneArgs) {
argCloner(context);
}
calls.push(context);
};
@@ -44,6 +61,11 @@ getJasmineRequireObj().CallTracker = function() {
this.reset = function() {
calls = [];
};
this.saveArgumentsByValue = function() {
opts.cloneArgs = true;
};
}
return CallTracker;

View File

@@ -27,7 +27,7 @@ var getJasmineRequireObj = (function (jasmineGlobal) {
j$.errors = jRequire.errors();
j$.Any = jRequire.Any(j$);
j$.Anything = jRequire.Anything(j$);
j$.CallTracker = jRequire.CallTracker();
j$.CallTracker = jRequire.CallTracker(j$);
j$.MockDate = jRequire.MockDate();
j$.Clock = jRequire.Clock();
j$.DelayedFunctionScheduler = jRequire.DelayedFunctionScheduler();