Comparing version 0.0.7 to 0.0.8
0.0.8 / 2012-11-27 | ||
================== | ||
* add mm.datas(), mm.data(), mm.empty() mock methods | ||
0.0.7 / 2012-11-26 | ||
@@ -3,0 +8,0 @@ ================== |
@@ -23,2 +23,18 @@ /*! | ||
function getCallback(args) { | ||
var index = args.length - 1; | ||
var callback = args[index]; | ||
while (typeof callback !== 'function') { | ||
index--; | ||
if (index < 0) { | ||
break; | ||
} | ||
callback = args[index]; | ||
} | ||
if (!callback) { | ||
throw new TypeError('Can\'t find callback function'); | ||
} | ||
return callback; | ||
} | ||
/** | ||
@@ -41,14 +57,3 @@ * Mock async function error. | ||
muk(mod, method, function () { | ||
var index = arguments.length - 1; | ||
var callback = arguments[index]; | ||
while (typeof callback !== 'function') { | ||
index--; | ||
if (index < 0) { | ||
break; | ||
} | ||
callback = arguments[index]; | ||
} | ||
if (!callback) { | ||
throw new TypeError('Can\'t find callback function'); | ||
} | ||
var callback = getCallback(arguments); | ||
setTimeout(function () { | ||
@@ -62,2 +67,51 @@ callback(error); | ||
/** | ||
* mock return callback(null, data1, data2). | ||
* | ||
* @param {Object} mod, module object | ||
* @param {String} method, mock module object method name. | ||
* @param {Array} datas, return datas array. | ||
* @param {Number} [tiemout], mock async callback timeout, default is 0. | ||
*/ | ||
exports.datas = function (mod, method, datas, timeout) { | ||
if (timeout) { | ||
timeout = parseInt(timeout, 10); | ||
} | ||
timeout = timeout || 0; | ||
if (!Array.isArray(datas)) { | ||
datas = [ datas ]; | ||
} | ||
muk(mod, method, function () { | ||
var callback = getCallback(arguments); | ||
setTimeout(function () { | ||
datas.unshift(null); // null for error | ||
callback.apply(null, datas); | ||
}, timeout); | ||
}); | ||
return this; | ||
}; | ||
/** | ||
* mock return callback(null, data). | ||
* | ||
* @param {Object} mod, module object | ||
* @param {String} method, mock module object method name. | ||
* @param {Object} data, return data. | ||
* @param {Number} [tiemout], mock async callback timeout, default is 0. | ||
*/ | ||
exports.data = function (mod, method, data, timeout) { | ||
return exports.datas(mod, method, [ data ], timeout); | ||
}; | ||
/** | ||
* mock return callback(null, null). | ||
* | ||
* @param {Object} mod, module object | ||
* @param {String} method, mock module object method name. | ||
* @param {Number} [tiemout], mock async callback timeout, default is 0. | ||
*/ | ||
exports.empty = function (mod, method, timeout) { | ||
return exports.datas(mod, method, null, timeout); | ||
}; | ||
/** | ||
* remove all mock effects. | ||
@@ -64,0 +118,0 @@ */ |
{ | ||
"name": "mm", | ||
"version": "0.0.7", | ||
"version": "0.0.8", | ||
"description": "mock mate, mock http request, fs access and so on.", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
@@ -105,2 +105,20 @@ mm (美眉,Mock伴侣) [![Build Status](https://secure.travis-ci.org/fengmk2/mm.png)](http://travis-ci.org/fengmk2/mm) | ||
### Mock `callback(null, data)` | ||
```js | ||
mm.data(fs, 'readFile', new Buffer('some content')); | ||
``` | ||
### Mock `callback(null, null)` | ||
```js | ||
mm.empty(mysql, 'query'); | ||
``` | ||
### Mock `callback(null, data1, data2)` | ||
```js | ||
mm.datas(urllib, 'request', new Buffer('data'), { headers: { foo: 'bar' } }); | ||
``` | ||
### use `mm` just like [`muk`](https://github.com/fent/node-muk) | ||
@@ -107,0 +125,0 @@ |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
14463
280
157