Files
braid/node_modules/sinon/lib/sinon/stub-entire-object.js

23 lines
659 B
JavaScript

"use strict";
var getPropertyDescriptor = require("./util/core/get-property-descriptor");
var walk = require("./util/core/walk");
function stubEntireObject(stub, object) {
walk(object || {}, function(prop, propOwner) {
// we don't want to stub things like toString(), valueOf(), etc. so we only stub if the object
// is not Object.prototype
if (
propOwner !== Object.prototype &&
prop !== "constructor" &&
typeof getPropertyDescriptor(propOwner, prop).value === "function"
) {
stub(object, prop);
}
});
return object;
}
module.exports = stubEntireObject;