Files
jasmine/src/core/SpyFactory.js
Elliot Nelson e07da96354 Apply prettier
2019-06-07 23:33:06 -04:00

52 lines
1.4 KiB
JavaScript

getJasmineRequireObj().SpyFactory = function(j$) {
function SpyFactory(getCustomStrategies, getDefaultStrategyFn, getPromise) {
var self = this;
this.createSpy = function(name, originalFn) {
return j$.Spy(
name,
originalFn,
getCustomStrategies(),
getDefaultStrategyFn(),
getPromise
);
};
this.createSpyObj = function(baseName, methodNames) {
var baseNameIsCollection =
j$.isObject_(baseName) || j$.isArray_(baseName);
if (baseNameIsCollection && j$.util.isUndefined(methodNames)) {
methodNames = baseName;
baseName = 'unknown';
}
var obj = {};
var spiesWereSet = false;
if (j$.isArray_(methodNames)) {
for (var i = 0; i < methodNames.length; i++) {
obj[methodNames[i]] = self.createSpy(baseName + '.' + methodNames[i]);
spiesWereSet = true;
}
} else if (j$.isObject_(methodNames)) {
for (var key in methodNames) {
if (methodNames.hasOwnProperty(key)) {
obj[key] = self.createSpy(baseName + '.' + key);
obj[key].and.returnValue(methodNames[key]);
spiesWereSet = true;
}
}
}
if (!spiesWereSet) {
throw 'createSpyObj requires a non-empty array or object of method names to create spies for';
}
return obj;
};
}
return SpyFactory;
};