axios-mock-adapter
Advanced tools
Comparing version 1.8.1 to 1.9.0
@@ -10,3 +10,3 @@ (function webpackUniversalModuleDefinition(root, factory) { | ||
root["AxiosMockAdapter"] = factory(root["axios"]); | ||
})(this, function(__WEBPACK_EXTERNAL_MODULE_5__) { | ||
})(this, function(__WEBPACK_EXTERNAL_MODULE_6__) { | ||
return /******/ (function(modules) { // webpackBootstrap | ||
@@ -20,5 +20,5 @@ /******/ // The module cache | ||
/******/ // Check if module is in cache | ||
/******/ if(installedModules[moduleId]) | ||
/******/ if(installedModules[moduleId]) { | ||
/******/ return installedModules[moduleId].exports; | ||
/******/ | ||
/******/ } | ||
/******/ // Create a new module (and put it into the cache) | ||
@@ -78,3 +78,3 @@ /******/ var module = installedModules[moduleId] = { | ||
/******/ // Load entry module and return exports | ||
/******/ return __webpack_require__(__webpack_require__.s = 6); | ||
/******/ return __webpack_require__(__webpack_require__.s = 4); | ||
/******/ }) | ||
@@ -86,8 +86,11 @@ /************************************************************************/ | ||
var utils = __webpack_require__(4); | ||
"use strict"; | ||
var utils = __webpack_require__(5); | ||
function makeResponse(result, config) { | ||
return { | ||
status: result[0], | ||
data: result[1], | ||
data: utils.isObject(result[1]) ? JSON.parse(JSON.stringify(result[1])) : result[1], | ||
headers: result[2], | ||
@@ -299,3 +302,122 @@ config: config | ||
var axios = __webpack_require__(5); | ||
var handleRequest = __webpack_require__(0); | ||
var VERBS = ['get', 'post', 'head', 'delete', 'patch', 'put']; | ||
function adapter() { | ||
return function(config) { | ||
var mockAdapter = this; | ||
// axios >= 0.13.0 only passes the config and expects a promise to be | ||
// returned. axios < 0.13.0 passes (config, resolve, reject). | ||
if (arguments.length === 3) { | ||
handleRequest(mockAdapter, arguments[0], arguments[1], arguments[2]); | ||
} else { | ||
return new Promise(function(resolve, reject) { | ||
handleRequest(mockAdapter, resolve, reject, config); | ||
}); | ||
} | ||
}.bind(this); | ||
} | ||
function reset() { | ||
this.handlers = VERBS.reduce(function(accumulator, verb) { | ||
accumulator[verb] = []; | ||
return accumulator; | ||
}, {}); | ||
this.replyOnceHandlers = []; | ||
} | ||
function MockAdapter(axiosInstance, options) { | ||
reset.call(this); | ||
if (axiosInstance) { | ||
this.axiosInstance = axiosInstance; | ||
this.originalAdapter = axiosInstance.defaults.adapter; | ||
this.delayResponse = options && options.delayResponse > 0 | ||
? options.delayResponse | ||
: null; | ||
axiosInstance.defaults.adapter = adapter.call(this); | ||
} | ||
} | ||
MockAdapter.prototype.adapter = adapter; | ||
MockAdapter.prototype.restore = function restore() { | ||
if (this.axiosInstance) { | ||
this.axiosInstance.defaults.adapter = this.originalAdapter; | ||
} | ||
}; | ||
MockAdapter.prototype.reset = reset; | ||
VERBS.concat('any').forEach(function(method) { | ||
var methodName = 'on' + method.charAt(0).toUpperCase() + method.slice(1); | ||
MockAdapter.prototype[methodName] = function(matcher, body) { | ||
var _this = this; | ||
var matcher = matcher === undefined ? /.*/ : matcher; | ||
function reply(code, response, headers) { | ||
var handler = [matcher, body, code, response, headers]; | ||
addHandler(method, _this.handlers, handler); | ||
return _this; | ||
} | ||
return { | ||
reply: reply, | ||
replyOnce: function replyOnce(code, response, headers) { | ||
var handler = [matcher, body, code, response, headers]; | ||
addHandler(method, _this.handlers, handler); | ||
_this.replyOnceHandlers.push(handler); | ||
return _this; | ||
}, | ||
passThrough: function passThrough() { | ||
var handler = [matcher, body]; | ||
addHandler(method, _this.handlers, handler); | ||
return _this; | ||
}, | ||
networkError: function() { | ||
reply(function(config) { | ||
var error = new Error('Network Error'); | ||
error.config = config; | ||
return Promise.reject(error); | ||
}); | ||
}, | ||
timeout: function() { | ||
reply(function(config) { | ||
var error = new Error('timeout of ' + config.timeout + 'ms exceeded'); | ||
error.config = config; | ||
error.code = 'ECONNABORTED'; | ||
return Promise.reject(error); | ||
}); | ||
} | ||
}; | ||
}; | ||
}); | ||
function addHandler(method, handlers, handler) { | ||
if (method === 'any') { | ||
VERBS.forEach(function(verb) { | ||
handlers[verb].push(handler); | ||
}); | ||
} else { | ||
handlers[method].push(handler); | ||
} | ||
} | ||
module.exports = MockAdapter; | ||
/***/ }), | ||
/* 5 */ | ||
/***/ (function(module, exports, __webpack_require__) { | ||
"use strict"; | ||
var axios = __webpack_require__(6); | ||
var deepEqual = __webpack_require__(1); | ||
@@ -411,5 +533,10 @@ | ||
function isObject(value) { | ||
return value !== null && typeof value === 'object'; | ||
} | ||
module.exports = { | ||
find: find, | ||
findHandler: findHandler, | ||
isObject: isObject, | ||
purgeIfReplyOnce: purgeIfReplyOnce, | ||
@@ -421,107 +548,9 @@ settle: settle | ||
/***/ }), | ||
/* 5 */ | ||
/* 6 */ | ||
/***/ (function(module, exports) { | ||
module.exports = __WEBPACK_EXTERNAL_MODULE_5__; | ||
module.exports = __WEBPACK_EXTERNAL_MODULE_6__; | ||
/***/ }), | ||
/* 6 */ | ||
/***/ (function(module, exports, __webpack_require__) { | ||
"use strict"; | ||
var handleRequest = __webpack_require__(0); | ||
var VERBS = ['get', 'post', 'head', 'delete', 'patch', 'put']; | ||
function adapter() { | ||
return function(config) { | ||
var mockAdapter = this; | ||
// axios >= 0.13.0 only passes the config and expects a promise to be | ||
// returned. axios < 0.13.0 passes (config, resolve, reject). | ||
if (arguments.length === 3) { | ||
handleRequest(mockAdapter, arguments[0], arguments[1], arguments[2]); | ||
} else { | ||
return new Promise(function(resolve, reject) { | ||
handleRequest(mockAdapter, resolve, reject, config); | ||
}); | ||
} | ||
}.bind(this); | ||
} | ||
function reset() { | ||
this.handlers = VERBS.reduce(function(accumulator, verb) { | ||
accumulator[verb] = []; | ||
return accumulator; | ||
}, {}); | ||
this.replyOnceHandlers = []; | ||
} | ||
function MockAdapter(axiosInstance, options) { | ||
reset.call(this); | ||
if (axiosInstance) { | ||
this.axiosInstance = axiosInstance; | ||
this.originalAdapter = axiosInstance.defaults.adapter; | ||
this.delayResponse = options && options.delayResponse > 0 | ||
? options.delayResponse | ||
: null; | ||
axiosInstance.defaults.adapter = adapter.call(this); | ||
} | ||
} | ||
MockAdapter.prototype.adapter = adapter; | ||
MockAdapter.prototype.restore = function restore() { | ||
if (this.axiosInstance) { | ||
this.axiosInstance.defaults.adapter = this.originalAdapter; | ||
} | ||
}; | ||
MockAdapter.prototype.reset = reset; | ||
VERBS.concat('any').forEach(function(method) { | ||
var methodName = 'on' + method.charAt(0).toUpperCase() + method.slice(1); | ||
MockAdapter.prototype[methodName] = function(matcher, body) { | ||
var _this = this; | ||
var matcher = matcher === undefined ? /.*/ : matcher; | ||
return { | ||
reply: function reply(code, response, headers) { | ||
var handler = [matcher, body, code, response, headers]; | ||
addHandler(method, _this.handlers, handler); | ||
return _this; | ||
}, | ||
replyOnce: function replyOnce(code, response, headers) { | ||
var handler = [matcher, body, code, response, headers]; | ||
addHandler(method, _this.handlers, handler); | ||
_this.replyOnceHandlers.push(handler); | ||
return _this; | ||
}, | ||
passThrough: function passThrough() { | ||
var handler = [matcher, body]; | ||
addHandler(method, _this.handlers, handler); | ||
return _this; | ||
} | ||
}; | ||
}; | ||
}); | ||
function addHandler(method, handlers, handler) { | ||
if (method === 'any') { | ||
VERBS.forEach(function(verb) { | ||
handlers[verb].push(handler); | ||
}); | ||
} else { | ||
handlers[method].push(handler); | ||
} | ||
} | ||
module.exports = MockAdapter; | ||
/***/ }) | ||
/******/ ]); | ||
}); |
@@ -1,1 +0,1 @@ | ||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("axios")):"function"==typeof define&&define.amd?define(["axios"],t):"object"==typeof exports?exports.AxiosMockAdapter=t(require("axios")):e.AxiosMockAdapter=t(e.axios)}(this,function(e){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=6)}([function(e,t,n){function r(e,t){return{status:e[0],data:e[1],headers:e[2],config:t}}function o(e,t,n,o){o.baseURL&&o.url.substr(0,o.baseURL.length)===o.baseURL&&(o.url=o.url.slice(o.baseURL?o.baseURL.length:0)),o.adapter=null;var s=i.findHandler(e.handlers,o.method,o.url,o.data,o.params);if(s)if(i.purgeIfReplyOnce(e,s),2===s.length)o.adapter=e.originalAdapter,e.axiosInstance.request(o).then(t,n);else if(s[2]instanceof Function){var u=s[2](o);u.then instanceof Function?u.then(function(s){i.settle(t,n,r(s,o),e.delayResponse)},function(t){e.delayResponse>0?setTimeout(function(){n(t)},e.delayResponse):n(t)}):i.settle(t,n,r(u,o),e.delayResponse)}else i.settle(t,n,r(s.slice(2),o),e.delayResponse);else i.settle(t,n,{status:404,config:o},e.delayResponse)}var i=n(4);e.exports=o},function(e,t,n){function r(e){return null===e||void 0===e}function o(e){return!(!e||"object"!=typeof e||"number"!=typeof e.length)&&("function"==typeof e.copy&&"function"==typeof e.slice&&!(e.length>0&&"number"!=typeof e[0]))}function i(e,t,n){var i,f;if(r(e)||r(t))return!1;if(e.prototype!==t.prototype)return!1;if(a(e))return!!a(t)&&(e=s.call(e),t=s.call(t),c(e,t,n));if(o(e)){if(!o(t))return!1;if(e.length!==t.length)return!1;for(i=0;i<e.length;i++)if(e[i]!==t[i])return!1;return!0}try{var l=u(e),p=u(t)}catch(e){return!1}if(l.length!=p.length)return!1;for(l.sort(),p.sort(),i=l.length-1;i>=0;i--)if(l[i]!=p[i])return!1;for(i=l.length-1;i>=0;i--)if(f=l[i],!c(e[f],t[f],n))return!1;return typeof e==typeof t}var s=Array.prototype.slice,u=n(3),a=n(2),c=e.exports=function(e,t,n){return n||(n={}),e===t||(e instanceof Date&&t instanceof Date?e.getTime()===t.getTime():!e||!t||"object"!=typeof e&&"object"!=typeof t?n.strict?e===t:e==t:i(e,t,n))}},function(e,t){function n(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function r(e){return e&&"object"==typeof e&&"number"==typeof e.length&&Object.prototype.hasOwnProperty.call(e,"callee")&&!Object.prototype.propertyIsEnumerable.call(e,"callee")||!1}var o="[object Arguments]"==function(){return Object.prototype.toString.call(arguments)}();t=e.exports=o?n:r,t.supported=n,t.unsupported=r},function(e,t){function n(e){var t=[];for(var n in e)t.push(n);return t}t=e.exports="function"==typeof Object.keys?Object.keys:n,t.shim=n},function(e,t,n){"use strict";function r(e,t){return h(e,t,{strict:!0})}function o(e,t){for(var n=e.length,r=0;r<n;r++){var o=e[r];if(t(o))return o}}function i(e,t,n,r,i){return o(e[t.toLowerCase()],function(e){return"string"==typeof e[0]?s(n,e[0])&&u(t,r,i,e[1]):e[0]instanceof RegExp?e[0].test(n)&&u(t,r,i,e[1]):void 0})}function s(e,t){var n="/"===e[0]?e.substr(1):e,r="/"===t[0]?t.substr(1):t;return n===r}function u(e,t,n,r){if("get"===e.toLowerCase()){var o=r?r.params:void 0;return a(n,o)}return c(t,r)}function a(e,t){return void 0===t||r(e,t)}function c(e,t){if(void 0===t)return!0;var n;try{n=JSON.parse(e)}catch(e){}return n?r(n,t):r(e,t)}function f(e,t){var n=e.replyOnceHandlers.indexOf(t);n>-1&&(e.replyOnceHandlers.splice(n,1),Object.keys(e.handlers).forEach(function(r){n=e.handlers[r].indexOf(t),n>-1&&e.handlers[r].splice(n,1)}))}function l(e,t,n,r){return r>0?void setTimeout(function(){l(e,t,n)},r):n.config&&n.config.validateStatus?void(n.config.validateStatus(n.status)?e(n):t(p("Request failed with status code "+n.status,n.config,n))):void(n.status>=200&&n.status<300?e(n):t(n))}function p(e,t,n){if(!y)return n;var r=new Error(e);return r.config=t,r.response=n,r}var d=n(5),h=n(1),y=!!d.create().defaults.headers;e.exports={find:o,findHandler:i,purgeIfReplyOnce:f,settle:l}},function(t,n){t.exports=e},function(e,t,n){"use strict";function r(){return function(e){var t=this;return 3!==arguments.length?new Promise(function(n,r){u(t,n,r,e)}):void u(t,arguments[0],arguments[1],arguments[2])}.bind(this)}function o(){this.handlers=a.reduce(function(e,t){return e[t]=[],e},{}),this.replyOnceHandlers=[]}function i(e,t){o.call(this),e&&(this.axiosInstance=e,this.originalAdapter=e.defaults.adapter,this.delayResponse=t&&t.delayResponse>0?t.delayResponse:null,e.defaults.adapter=r.call(this))}function s(e,t,n){"any"===e?a.forEach(function(e){t[e].push(n)}):t[e].push(n)}var u=n(0),a=["get","post","head","delete","patch","put"];i.prototype.adapter=r,i.prototype.restore=function(){this.axiosInstance&&(this.axiosInstance.defaults.adapter=this.originalAdapter)},i.prototype.reset=o,a.concat("any").forEach(function(e){var t="on"+e.charAt(0).toUpperCase()+e.slice(1);i.prototype[t]=function(t,n){var r=this,t=void 0===t?/.*/:t;return{reply:function(o,i,u){var a=[t,n,o,i,u];return s(e,r.handlers,a),r},replyOnce:function(o,i,u){var a=[t,n,o,i,u];return s(e,r.handlers,a),r.replyOnceHandlers.push(a),r},passThrough:function(){var o=[t,n];return s(e,r.handlers,o),r}}}}),e.exports=i}])}); | ||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("axios")):"function"==typeof define&&define.amd?define(["axios"],t):"object"==typeof exports?exports.AxiosMockAdapter=t(require("axios")):e.AxiosMockAdapter=t(e.axios)}(this,function(e){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=4)}([function(e,t,n){"use strict";function r(e,t){return{status:e[0],data:i.isObject(e[1])?JSON.parse(JSON.stringify(e[1])):e[1],headers:e[2],config:t}}function o(e,t,n,o){o.baseURL&&o.url.substr(0,o.baseURL.length)===o.baseURL&&(o.url=o.url.slice(o.baseURL?o.baseURL.length:0)),o.adapter=null;var s=i.findHandler(e.handlers,o.method,o.url,o.data,o.params);if(s)if(i.purgeIfReplyOnce(e,s),2===s.length)o.adapter=e.originalAdapter,e.axiosInstance.request(o).then(t,n);else if(s[2]instanceof Function){var u=s[2](o);u.then instanceof Function?u.then(function(s){i.settle(t,n,r(s,o),e.delayResponse)},function(t){e.delayResponse>0?setTimeout(function(){n(t)},e.delayResponse):n(t)}):i.settle(t,n,r(u,o),e.delayResponse)}else i.settle(t,n,r(s.slice(2),o),e.delayResponse);else i.settle(t,n,{status:404,config:o},e.delayResponse)}var i=n(5);e.exports=o},function(e,t,n){function r(e){return null===e||void 0===e}function o(e){return!(!e||"object"!=typeof e||"number"!=typeof e.length)&&("function"==typeof e.copy&&"function"==typeof e.slice&&!(e.length>0&&"number"!=typeof e[0]))}function i(e,t,n){var i,f;if(r(e)||r(t))return!1;if(e.prototype!==t.prototype)return!1;if(a(e))return!!a(t)&&(e=s.call(e),t=s.call(t),c(e,t,n));if(o(e)){if(!o(t))return!1;if(e.length!==t.length)return!1;for(i=0;i<e.length;i++)if(e[i]!==t[i])return!1;return!0}try{var l=u(e),p=u(t)}catch(e){return!1}if(l.length!=p.length)return!1;for(l.sort(),p.sort(),i=l.length-1;i>=0;i--)if(l[i]!=p[i])return!1;for(i=l.length-1;i>=0;i--)if(f=l[i],!c(e[f],t[f],n))return!1;return typeof e==typeof t}var s=Array.prototype.slice,u=n(3),a=n(2),c=e.exports=function(e,t,n){return n||(n={}),e===t||(e instanceof Date&&t instanceof Date?e.getTime()===t.getTime():!e||!t||"object"!=typeof e&&"object"!=typeof t?n.strict?e===t:e==t:i(e,t,n))}},function(e,t){function n(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function r(e){return e&&"object"==typeof e&&"number"==typeof e.length&&Object.prototype.hasOwnProperty.call(e,"callee")&&!Object.prototype.propertyIsEnumerable.call(e,"callee")||!1}var o="[object Arguments]"==function(){return Object.prototype.toString.call(arguments)}();t=e.exports=o?n:r,t.supported=n,t.unsupported=r},function(e,t){function n(e){var t=[];for(var n in e)t.push(n);return t}t=e.exports="function"==typeof Object.keys?Object.keys:n,t.shim=n},function(e,t,n){"use strict";function r(){return function(e){var t=this;if(3!==arguments.length)return new Promise(function(n,r){u(t,n,r,e)});u(t,arguments[0],arguments[1],arguments[2])}.bind(this)}function o(){this.handlers=a.reduce(function(e,t){return e[t]=[],e},{}),this.replyOnceHandlers=[]}function i(e,t){o.call(this),e&&(this.axiosInstance=e,this.originalAdapter=e.defaults.adapter,this.delayResponse=t&&t.delayResponse>0?t.delayResponse:null,e.defaults.adapter=r.call(this))}function s(e,t,n){"any"===e?a.forEach(function(e){t[e].push(n)}):t[e].push(n)}var u=n(0),a=["get","post","head","delete","patch","put"];i.prototype.adapter=r,i.prototype.restore=function(){this.axiosInstance&&(this.axiosInstance.defaults.adapter=this.originalAdapter)},i.prototype.reset=o,a.concat("any").forEach(function(e){var t="on"+e.charAt(0).toUpperCase()+e.slice(1);i.prototype[t]=function(t,n){function r(r,i,u){var a=[t,n,r,i,u];return s(e,o.handlers,a),o}var o=this,t=void 0===t?/.*/:t;return{reply:r,replyOnce:function(r,i,u){var a=[t,n,r,i,u];return s(e,o.handlers,a),o.replyOnceHandlers.push(a),o},passThrough:function(){var r=[t,n];return s(e,o.handlers,r),o},networkError:function(){r(function(e){var t=new Error("Network Error");return t.config=e,Promise.reject(t)})},timeout:function(){r(function(e){var t=new Error("timeout of "+e.timeout+"ms exceeded");return t.config=e,t.code="ECONNABORTED",Promise.reject(t)})}}}}),e.exports=i},function(e,t,n){"use strict";function r(e,t){return y(e,t,{strict:!0})}function o(e,t){for(var n=e.length,r=0;r<n;r++){var o=e[r];if(t(o))return o}}function i(e,t,n,r,i){return o(e[t.toLowerCase()],function(e){return"string"==typeof e[0]?s(n,e[0])&&u(t,r,i,e[1]):e[0]instanceof RegExp?e[0].test(n)&&u(t,r,i,e[1]):void 0})}function s(e,t){return("/"===e[0]?e.substr(1):e)===("/"===t[0]?t.substr(1):t)}function u(e,t,n,r){if("get"===e.toLowerCase()){return a(n,r?r.params:void 0)}return c(t,r)}function a(e,t){return void 0===t||r(e,t)}function c(e,t){if(void 0===t)return!0;var n;try{n=JSON.parse(e)}catch(e){}return n?r(n,t):r(e,t)}function f(e,t){var n=e.replyOnceHandlers.indexOf(t);n>-1&&(e.replyOnceHandlers.splice(n,1),Object.keys(e.handlers).forEach(function(r){(n=e.handlers[r].indexOf(t))>-1&&e.handlers[r].splice(n,1)}))}function l(e,t,n,r){return r>0?void setTimeout(function(){l(e,t,n)},r):n.config&&n.config.validateStatus?void(n.config.validateStatus(n.status)?e(n):t(p("Request failed with status code "+n.status,n.config,n))):void(n.status>=200&&n.status<300?e(n):t(n))}function p(e,t,n){if(!g)return n;var r=new Error(e);return r.config=t,r.response=n,r}function d(e){return null!==e&&"object"==typeof e}var h=n(6),y=n(1),g=!!h.create().defaults.headers;e.exports={find:o,findHandler:i,isObject:d,purgeIfReplyOnce:f,settle:l}},function(t,n){t.exports=e}])}); |
{ | ||
"name": "axios-mock-adapter", | ||
"version": "1.8.1", | ||
"version": "1.9.0", | ||
"description": "Axios adapter that allows to easily mock requests", | ||
@@ -41,10 +41,10 @@ "main": "src/index.js", | ||
"devDependencies": { | ||
"axios": "^0.15.2", | ||
"chai": "^3.5.0", | ||
"cross-env": "^3.2.3", | ||
"eslint": "^3.17.1", | ||
"axios": "^0.16.2", | ||
"chai": "^4.0.2", | ||
"cross-env": "3.2.4", | ||
"eslint": "^4.0.0", | ||
"istanbul": "^0.4.5", | ||
"mocha": "^3.1.2", | ||
"mocha": "^3.4.2", | ||
"rimraf": "^2.6.1", | ||
"webpack": "^2.2.1" | ||
"webpack": "^2.6.1" | ||
}, | ||
@@ -51,0 +51,0 @@ "dependencies": { |
@@ -91,2 +91,16 @@ # axios-mock-adapter | ||
Mock a low level network error | ||
```js | ||
// Returns a failed promise with Error('Network Error'); | ||
mock.onGet('/users').networkError(); | ||
``` | ||
Mock a network timeout | ||
```js | ||
// Returns a failed promise with Error with code set to 'ECONNABORTED' | ||
mock.onGet('/users').timeout(); | ||
``` | ||
Passing a function to `reply` | ||
@@ -93,0 +107,0 @@ |
@@ -0,1 +1,3 @@ | ||
'use strict'; | ||
var utils = require('./utils'); | ||
@@ -6,3 +8,3 @@ | ||
status: result[0], | ||
data: result[1], | ||
data: utils.isObject(result[1]) ? JSON.parse(JSON.stringify(result[1])) : result[1], | ||
headers: result[2], | ||
@@ -9,0 +11,0 @@ config: config |
@@ -58,8 +58,11 @@ 'use strict'; | ||
var matcher = matcher === undefined ? /.*/ : matcher; | ||
function reply(code, response, headers) { | ||
var handler = [matcher, body, code, response, headers]; | ||
addHandler(method, _this.handlers, handler); | ||
return _this; | ||
} | ||
return { | ||
reply: function reply(code, response, headers) { | ||
var handler = [matcher, body, code, response, headers]; | ||
addHandler(method, _this.handlers, handler); | ||
return _this; | ||
}, | ||
reply: reply, | ||
@@ -77,3 +80,21 @@ replyOnce: function replyOnce(code, response, headers) { | ||
return _this; | ||
}, | ||
networkError: function() { | ||
reply(function(config) { | ||
var error = new Error('Network Error'); | ||
error.config = config; | ||
return Promise.reject(error); | ||
}); | ||
}, | ||
timeout: function() { | ||
reply(function(config) { | ||
var error = new Error('timeout of ' + config.timeout + 'ms exceeded'); | ||
error.config = config; | ||
error.code = 'ECONNABORTED'; | ||
return Promise.reject(error); | ||
}); | ||
} | ||
}; | ||
@@ -80,0 +101,0 @@ }; |
@@ -114,7 +114,12 @@ 'use strict'; | ||
function isObject(value) { | ||
return value !== null && typeof value === 'object'; | ||
} | ||
module.exports = { | ||
find: find, | ||
findHandler: findHandler, | ||
isObject: isObject, | ||
purgeIfReplyOnce: purgeIfReplyOnce, | ||
settle: settle | ||
}; |
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
39267
724
261