'use strict';
|
|
const is = require('is-type-of');
|
const sleep = require('ko-sleep');
|
const mm = require('./mm');
|
|
const mockDatas = mm.datas;
|
// support generator
|
mm.datas = function(mod, method, datas, timeout) {
|
if (!is.generatorFunction(mod[method])) {
|
return mockDatas.call(mm, mod, method, datas, timeout);
|
}
|
|
if (timeout) {
|
timeout = parseInt(timeout, 10);
|
}
|
timeout = timeout || 0;
|
mm(mod, method, function* () {
|
yield sleep(timeout);
|
return datas;
|
});
|
return this;
|
};
|
|
const mockData = mm.data;
|
mm.data = function(mod, method, data, timeout) {
|
if (!is.generatorFunction(mod[method])) {
|
return mockData.call(mm, mod, method, data, timeout);
|
}
|
|
return mm.datas(mod, method, data, timeout);
|
};
|
|
const mockError = mm.error;
|
mm.error = function(mod, method, error, props, timeout) {
|
if (!is.generatorFunction(mod[method])) {
|
return mockError.call(mm, mod, method, error, props, timeout);
|
}
|
|
error = mm._createError(error, props);
|
|
if (timeout) {
|
timeout = parseInt(timeout, 10);
|
}
|
timeout = timeout || 0;
|
mm(mod, method, function* () {
|
yield sleep(timeout);
|
throw error;
|
});
|
return this;
|
};
|
|
const mockErrorOnce = mm.errorOnce;
|
mm.errorOnce = function(mod, method, error, props, timeout) {
|
if (!is.generatorFunction(mod[method])) {
|
return mockErrorOnce.call(mm, mod, method, error, props, timeout);
|
}
|
|
error = mm._createError(error, props);
|
|
if (timeout) {
|
timeout = parseInt(timeout, 10);
|
}
|
timeout = timeout || 0;
|
mm(mod, method, function* () {
|
yield sleep(timeout);
|
mm.restore();
|
throw error;
|
});
|
return this;
|
};
|