gentelella/vendors/update/test/support/spy.js

28 lines
647 B
JavaScript

var fs = require('fs');
var sinon = require('sinon');
var errorfn = false;
function maybeCallAsync(module, func) {
var original = module[func];
return sinon.stub(module, func, function() {
var args = Array.prototype.slice.call(arguments);
args.unshift(module, func);
var err = typeof errorfn === 'function' &&
errorfn.apply(this, args);
if (!err) {
original.apply(this, arguments);
} else {
arguments[arguments.length - 1](err);
}
});
}
module.exports = {
setError: function(fn) {
errorfn = fn;
},
chmodSpy: maybeCallAsync(fs, 'chmod'),
statSpy: maybeCallAsync(fs, 'stat')
};