Socket
Socket
Sign inDemoInstall

axios-mock-adapter

Package Overview
Dependencies
Maintainers
1
Versions
38
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

axios-mock-adapter - npm Package Compare versions

Comparing version 1.15.0 to 1.16.0

596

dist/axios-mock-adapter.js

@@ -10,3 +10,3 @@ (function webpackUniversalModuleDefinition(root, factory) {

root["AxiosMockAdapter"] = factory(root["axios"]);
})(typeof self !== 'undefined' ? self : this, function(__WEBPACK_EXTERNAL_MODULE_6__) {
})(window, function(__WEBPACK_EXTERNAL_MODULE_axios__) {
return /******/ (function(modules) { // webpackBootstrap

@@ -50,10 +50,30 @@ /******/ // The module cache

/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, {
/******/ configurable: false,
/******/ enumerable: true,
/******/ get: getter
/******/ });
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ }
/******/ };
/******/
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/ __webpack_require__.t = function(value, mode) {
/******/ if(mode & 1) value = __webpack_require__(value);
/******/ if(mode & 8) return value;
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ var ns = Object.create(null);
/******/ __webpack_require__.r(ns);
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ return ns;
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules

@@ -74,544 +94,90 @@ /******/ __webpack_require__.n = function(module) {

/******/
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = 1);
/******/ return __webpack_require__(__webpack_require__.s = "./src/index.js");
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/******/ ({
/***/ "./node_modules/deep-equal/index.js":
/*!******************************************!*\
!*** ./node_modules/deep-equal/index.js ***!
\******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
var pSlice = Array.prototype.slice;
var objectKeys = __webpack_require__(2);
var isArguments = __webpack_require__(3);
eval("var pSlice = Array.prototype.slice;\nvar objectKeys = __webpack_require__(/*! ./lib/keys.js */ \"./node_modules/deep-equal/lib/keys.js\");\nvar isArguments = __webpack_require__(/*! ./lib/is_arguments.js */ \"./node_modules/deep-equal/lib/is_arguments.js\");\n\nvar deepEqual = module.exports = function (actual, expected, opts) {\n if (!opts) opts = {};\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n\n } else if (actual instanceof Date && expected instanceof Date) {\n return actual.getTime() === expected.getTime();\n\n // 7.3. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n return opts.strict ? actual === expected : actual == expected;\n\n // 7.4. For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else {\n return objEquiv(actual, expected, opts);\n }\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer (x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') return false;\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n var i, key;\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n return false;\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) return false;\n //~~~I've managed to break Object.keys through screwy arguments passing.\n // Converting to array solves the problem.\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepEqual(a, b, opts);\n }\n if (isBuffer(a)) {\n if (!isBuffer(b)) {\n return false;\n }\n if (a.length !== b.length) return false;\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n }\n try {\n var ka = objectKeys(a),\n kb = objectKeys(b);\n } catch (e) {//happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length != kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) return false;\n }\n return typeof a === typeof b;\n}\n\n\n//# sourceURL=webpack://AxiosMockAdapter/./node_modules/deep-equal/index.js?");
var deepEqual = module.exports = function (actual, expected, opts) {
if (!opts) opts = {};
// 7.1. All identical values are equivalent, as determined by ===.
if (actual === expected) {
return true;
/***/ }),
} else if (actual instanceof Date && expected instanceof Date) {
return actual.getTime() === expected.getTime();
/***/ "./node_modules/deep-equal/lib/is_arguments.js":
/*!*****************************************************!*\
!*** ./node_modules/deep-equal/lib/is_arguments.js ***!
\*****************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
// 7.3. Other pairs that do not both pass typeof value == 'object',
// equivalence is determined by ==.
} else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {
return opts.strict ? actual === expected : actual == expected;
eval("var supportsArgumentsClass = (function(){\n return Object.prototype.toString.call(arguments)\n})() == '[object Arguments]';\n\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\nexports.supported = supported;\nfunction supported(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n};\n\nexports.unsupported = unsupported;\nfunction unsupported(object){\n return object &&\n typeof object == 'object' &&\n typeof object.length == 'number' &&\n Object.prototype.hasOwnProperty.call(object, 'callee') &&\n !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n false;\n};\n\n\n//# sourceURL=webpack://AxiosMockAdapter/./node_modules/deep-equal/lib/is_arguments.js?");
// 7.4. For all other Object pairs, including Array objects, equivalence is
// determined by having the same number of owned properties (as verified
// with Object.prototype.hasOwnProperty.call), the same set of keys
// (although not necessarily the same order), equivalent values for every
// corresponding key, and an identical 'prototype' property. Note: this
// accounts for both named and indexed properties on Arrays.
} else {
return objEquiv(actual, expected, opts);
}
}
/***/ }),
function isUndefinedOrNull(value) {
return value === null || value === undefined;
}
/***/ "./node_modules/deep-equal/lib/keys.js":
/*!*********************************************!*\
!*** ./node_modules/deep-equal/lib/keys.js ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports) {
function isBuffer (x) {
if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;
if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {
return false;
}
if (x.length > 0 && typeof x[0] !== 'number') return false;
return true;
}
eval("exports = module.exports = typeof Object.keys === 'function'\n ? Object.keys : shim;\n\nexports.shim = shim;\nfunction shim (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n}\n\n\n//# sourceURL=webpack://AxiosMockAdapter/./node_modules/deep-equal/lib/keys.js?");
function objEquiv(a, b, opts) {
var i, key;
if (isUndefinedOrNull(a) || isUndefinedOrNull(b))
return false;
// an identical 'prototype' property.
if (a.prototype !== b.prototype) return false;
//~~~I've managed to break Object.keys through screwy arguments passing.
// Converting to array solves the problem.
if (isArguments(a)) {
if (!isArguments(b)) {
return false;
}
a = pSlice.call(a);
b = pSlice.call(b);
return deepEqual(a, b, opts);
}
if (isBuffer(a)) {
if (!isBuffer(b)) {
return false;
}
if (a.length !== b.length) return false;
for (i = 0; i < a.length; i++) {
if (a[i] !== b[i]) return false;
}
return true;
}
try {
var ka = objectKeys(a),
kb = objectKeys(b);
} catch (e) {//happens when one is a string literal and the other isn't
return false;
}
// having the same number of owned properties (keys incorporates
// hasOwnProperty)
if (ka.length != kb.length)
return false;
//the same set of keys (although not necessarily the same order),
ka.sort();
kb.sort();
//~~~cheap key test
for (i = ka.length - 1; i >= 0; i--) {
if (ka[i] != kb[i])
return false;
}
//equivalent values for every corresponding key, and
//~~~possibly expensive deep test
for (i = ka.length - 1; i >= 0; i--) {
key = ka[i];
if (!deepEqual(a[key], b[key], opts)) return false;
}
return typeof a === typeof b;
}
/***/ }),
/***/ }),
/* 1 */
/***/ "./src/handle_request.js":
/*!*******************************!*\
!*** ./src/handle_request.js ***!
\*******************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ./utils */ \"./src/utils.js\");\n\nfunction makeResponse(result, config) {\n return {\n status: result[0],\n data: utils.isSimpleObject(result[1]) ? JSON.parse(JSON.stringify(result[1])) : result[1],\n headers: result[2],\n config: config\n };\n}\n\nfunction handleRequest(mockAdapter, resolve, reject, config) {\n var url = config.url;\n if (config.baseURL && config.url.substr(0, config.baseURL.length) === config.baseURL) {\n url = config.url.slice(config.baseURL ? config.baseURL.length : 0);\n }\n\n delete config.adapter;\n mockAdapter.history[config.method].push(config);\n\n var handler = utils.findHandler(\n mockAdapter.handlers,\n config.method,\n url,\n config.data,\n config.params,\n config.headers,\n config.baseURL\n );\n\n if (handler) {\n if (handler.length === 7) {\n utils.purgeIfReplyOnce(mockAdapter, handler);\n }\n\n if (handler.length === 2) {\n // passThrough handler\n // tell axios to use the original adapter instead of our mock, fixes #35\n config.adapter = mockAdapter.originalAdapter;\n mockAdapter.axiosInstance.request(config).then(resolve, reject);\n } else if (typeof handler[3] !== 'function') {\n utils.settle(\n resolve,\n reject,\n makeResponse(handler.slice(3), config),\n mockAdapter.delayResponse\n );\n } else {\n var result = handler[3](config);\n // TODO throw a sane exception when return value is incorrect\n if (typeof result.then !== 'function') {\n utils.settle(resolve, reject, makeResponse(result, config), mockAdapter.delayResponse);\n } else {\n result.then(\n function(result) {\n if (result.config && result.status) {\n utils.settle(resolve, reject, makeResponse([result.status, result.data, result.headers], result.config), 0);\n } else {\n utils.settle(resolve, reject, makeResponse(result, config), mockAdapter.delayResponse);\n }\n },\n function(error) {\n if (mockAdapter.delayResponse > 0) {\n setTimeout(function() {\n reject(error);\n }, mockAdapter.delayResponse);\n } else {\n reject(error);\n }\n }\n );\n }\n }\n } else {\n // handler not found\n utils.settle(\n resolve,\n reject,\n {\n status: 404,\n config: config\n },\n mockAdapter.delayResponse\n );\n }\n}\n\nmodule.exports = handleRequest;\n\n\n//# sourceURL=webpack://AxiosMockAdapter/./src/handle_request.js?");
var deepEqual = __webpack_require__(0);
var handleRequest = __webpack_require__(4);
var VERBS = ['get', 'post', 'head', 'delete', 'patch', 'put', 'options'];
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 getVerbObject() {
return VERBS.reduce(function(accumulator, verb) {
accumulator[verb] = [];
return accumulator;
}, {});
}
function reset() {
resetHandlers.call(this);
resetHistory.call(this);
}
function resetHandlers() {
this.handlers = getVerbObject();
}
function resetHistory() {
this.history = getVerbObject();
}
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 = this.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;
MockAdapter.prototype.resetHandlers = resetHandlers;
MockAdapter.prototype.resetHistory = resetHistory;
VERBS.concat('any').forEach(function(method) {
var methodName = 'on' + method.charAt(0).toUpperCase() + method.slice(1);
MockAdapter.prototype[methodName] = function(matcher, body, requestHeaders) {
var _this = this;
var matcher = matcher === undefined ? /.*/ : matcher;
function reply(code, response, headers) {
var handler = [matcher, body, requestHeaders, code, response, headers];
addHandler(method, _this.handlers, handler);
return _this;
}
return {
reply: reply,
replyOnce: function replyOnce(code, response, headers) {
var handler = [matcher, body, requestHeaders, code, response, headers, true];
addHandler(method, _this.handlers, 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 findInHandlers(method, handlers, handler) {
var index = -1;
for (var i = 0; i < handlers[method].length; i += 1) {
var item = handlers[method][i];
var isReplyOnce = item.length === 7;
var comparePaths = item[0] instanceof RegExp && handler[0] instanceof RegExp
? String(item[0]) === String(handler[0])
: item[0] === handler[0];
var isSame = (
comparePaths &&
deepEqual(item[1], handler[1], { strict: true }) &&
deepEqual(item[2], handler[2], { strict: true })
);
if (isSame && !isReplyOnce) {
index = i;
}
}
return index;
}
function addHandler(method, handlers, handler) {
if (method === 'any') {
VERBS.forEach(function(verb) {
handlers[verb].push(handler);
});
} else {
var indexOfExistingHandler = findInHandlers(method, handlers, handler);
if (indexOfExistingHandler > -1 && handler.length < 7) {
handlers[method].splice(indexOfExistingHandler, 1, handler);
} else {
handlers[method].push(handler);
}
}
}
module.exports = MockAdapter;
module.exports.default = MockAdapter;
/***/ }),
/* 2 */
/***/ (function(module, exports) {
exports = module.exports = typeof Object.keys === 'function'
? Object.keys : shim;
/***/ "./src/index.js":
/*!**********************!*\
!*** ./src/index.js ***!
\**********************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
exports.shim = shim;
function shim (obj) {
var keys = [];
for (var key in obj) keys.push(key);
return keys;
}
"use strict";
eval("\n\nvar deepEqual = __webpack_require__(/*! deep-equal */ \"./node_modules/deep-equal/index.js\");\n\nvar handleRequest = __webpack_require__(/*! ./handle_request */ \"./src/handle_request.js\");\n\nvar VERBS = ['get', 'post', 'head', 'delete', 'patch', 'put', 'options', 'list'];\n\nfunction adapter() {\n return function(config) {\n var mockAdapter = this;\n // axios >= 0.13.0 only passes the config and expects a promise to be\n // returned. axios < 0.13.0 passes (config, resolve, reject).\n if (arguments.length === 3) {\n handleRequest(mockAdapter, arguments[0], arguments[1], arguments[2]);\n } else {\n return new Promise(function(resolve, reject) {\n handleRequest(mockAdapter, resolve, reject, config);\n });\n }\n }.bind(this);\n}\n\nfunction getVerbObject() {\n return VERBS.reduce(function(accumulator, verb) {\n accumulator[verb] = [];\n return accumulator;\n }, {});\n}\n\nfunction reset() {\n resetHandlers.call(this);\n resetHistory.call(this);\n}\n\nfunction resetHandlers() {\n this.handlers = getVerbObject();\n}\n\nfunction resetHistory() {\n this.history = getVerbObject();\n}\n\nfunction MockAdapter(axiosInstance, options) {\n reset.call(this);\n\n if (axiosInstance) {\n this.axiosInstance = axiosInstance;\n this.originalAdapter = axiosInstance.defaults.adapter;\n this.delayResponse = options && options.delayResponse > 0 ? options.delayResponse : null;\n axiosInstance.defaults.adapter = this.adapter.call(this);\n }\n}\n\nMockAdapter.prototype.adapter = adapter;\n\nMockAdapter.prototype.restore = function restore() {\n if (this.axiosInstance) {\n this.axiosInstance.defaults.adapter = this.originalAdapter;\n }\n};\n\nMockAdapter.prototype.reset = reset;\nMockAdapter.prototype.resetHandlers = resetHandlers;\nMockAdapter.prototype.resetHistory = resetHistory;\n\nVERBS.concat('any').forEach(function(method) {\n var methodName = 'on' + method.charAt(0).toUpperCase() + method.slice(1);\n MockAdapter.prototype[methodName] = function(matcher, body, requestHeaders) {\n var _this = this;\n var matcher = matcher === undefined ? /.*/ : matcher;\n\n function reply(code, response, headers) {\n var handler = [matcher, body, requestHeaders, code, response, headers];\n addHandler(method, _this.handlers, handler);\n return _this;\n }\n\n function replyOnce(code, response, headers) {\n var handler = [matcher, body, requestHeaders, code, response, headers, true];\n addHandler(method, _this.handlers, handler);\n return _this;\n }\n\n return {\n reply: reply,\n\n replyOnce: replyOnce,\n\n passThrough: function passThrough() {\n var handler = [matcher, body];\n addHandler(method, _this.handlers, handler);\n return _this;\n },\n\n networkError: function() {\n reply(function(config) {\n var error = new Error('Network Error');\n error.config = config;\n return Promise.reject(error);\n });\n },\n\n networkErrorOnce: function() {\n replyOnce(function(config) {\n var error = new Error('Network Error');\n error.config = config;\n return Promise.reject(error);\n });\n },\n\n timeout: function() {\n reply(function(config) {\n var error = new Error('timeout of ' + config.timeout + 'ms exceeded');\n error.config = config;\n error.code = 'ECONNABORTED';\n return Promise.reject(error);\n });\n },\n\n timeoutOnce: function() {\n replyOnce(function(config) {\n var error = new Error('timeout of ' + config.timeout + 'ms exceeded');\n error.config = config;\n error.code = 'ECONNABORTED';\n return Promise.reject(error);\n });\n }\n };\n };\n});\n\nfunction findInHandlers(method, handlers, handler) {\n var index = -1;\n for (var i = 0; i < handlers[method].length; i += 1) {\n var item = handlers[method][i];\n var isReplyOnce = item.length === 7;\n var comparePaths = item[0] instanceof RegExp && handler[0] instanceof RegExp\n ? String(item[0]) === String(handler[0])\n : item[0] === handler[0];\n var isSame = (\n comparePaths &&\n deepEqual(item[1], handler[1], { strict: true }) &&\n deepEqual(item[2], handler[2], { strict: true })\n );\n if (isSame && !isReplyOnce) {\n index = i;\n }\n }\n return index;\n}\n\nfunction addHandler(method, handlers, handler) {\n if (method === 'any') {\n VERBS.forEach(function(verb) {\n handlers[verb].push(handler);\n });\n } else {\n var indexOfExistingHandler = findInHandlers(method, handlers, handler);\n if (indexOfExistingHandler > -1 && handler.length < 7) {\n handlers[method].splice(indexOfExistingHandler, 1, handler);\n } else {\n handlers[method].push(handler);\n }\n }\n}\n\nmodule.exports = MockAdapter;\nmodule.exports.default = MockAdapter;\n\n\n//# sourceURL=webpack://AxiosMockAdapter/./src/index.js?");
/***/ }),
/* 3 */
/***/ (function(module, exports) {
var supportsArgumentsClass = (function(){
return Object.prototype.toString.call(arguments)
})() == '[object Arguments]';
exports = module.exports = supportsArgumentsClass ? supported : unsupported;
exports.supported = supported;
function supported(object) {
return Object.prototype.toString.call(object) == '[object Arguments]';
};
exports.unsupported = unsupported;
function unsupported(object){
return object &&
typeof object == 'object' &&
typeof object.length == 'number' &&
Object.prototype.hasOwnProperty.call(object, 'callee') &&
!Object.prototype.propertyIsEnumerable.call(object, 'callee') ||
false;
};
/***/ }),
/* 4 */
/***/ "./src/utils.js":
/*!**********************!*\
!*** ./src/utils.js ***!
\**********************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nvar axios = __webpack_require__(/*! axios */ \"axios\");\nvar deepEqual = __webpack_require__(/*! deep-equal */ \"./node_modules/deep-equal/index.js\");\n\nfunction isEqual(a, b) {\n return deepEqual(a, b, { strict: true });\n}\n\n// < 0.13.0 will not have default headers set on a custom instance\nvar rejectWithError = !!axios.create().defaults.headers;\n\nfunction find(array, predicate) {\n var length = array.length;\n for (var i = 0; i < length; i++) {\n var value = array[i];\n if (predicate(value)) return value;\n }\n}\n\nfunction combineUrls(baseURL, url) {\n if (baseURL) {\n return baseURL.replace(/\\/+$/, '') + '/' + url.replace(/^\\/+/, '');\n }\n\n return url;\n}\n\nfunction findHandler(handlers, method, url, body, parameters, headers, baseURL) {\n return find(handlers[method.toLowerCase()], function(handler) {\n if (typeof handler[0] === 'string') {\n return (isUrlMatching(url, handler[0]) || isUrlMatching(combineUrls(baseURL, url), handler[0])) && isBodyOrParametersMatching(method, body, parameters, handler[1]) && isRequestHeadersMatching(headers, handler[2]);\n } else if (handler[0] instanceof RegExp) {\n return (handler[0].test(url) || handler[0].test(combineUrls(baseURL, url))) && isBodyOrParametersMatching(method, body, parameters, handler[1]) && isRequestHeadersMatching(headers, handler[2]);\n }\n });\n}\n\nfunction isUrlMatching(url, required) {\n var noSlashUrl = url[0] === '/' ? url.substr(1) : url;\n var noSlashRequired = required[0] === '/' ? required.substr(1) : required;\n return (noSlashUrl === noSlashRequired);\n}\n\nfunction isRequestHeadersMatching(requestHeaders, required) {\n if (required === undefined) return true;\n return isEqual(requestHeaders, required);\n}\n\nfunction isBodyOrParametersMatching(method, body, parameters, required) {\n var allowedParamsMethods = ['delete', 'get', 'head', 'options'];\n if (allowedParamsMethods.indexOf(method.toLowerCase()) >= 0 ) {\n var params = required ? required.params : undefined;\n return isParametersMatching(parameters, params);\n } else {\n return isBodyMatching(body, required);\n }\n}\n\nfunction isParametersMatching(parameters, required) {\n if (required === undefined) return true;\n\n return isEqual(parameters, required);\n}\n\nfunction isBodyMatching(body, requiredBody) {\n if (requiredBody === undefined) {\n return true;\n }\n var parsedBody;\n try {\n parsedBody = JSON.parse(body);\n } catch (e) { }\n return parsedBody ? isEqual(parsedBody, requiredBody) : isEqual(body, requiredBody);\n}\n\nfunction purgeIfReplyOnce(mock, handler) {\n Object.keys(mock.handlers).forEach(function(key) {\n var index = mock.handlers[key].indexOf(handler);\n if (index > -1) {\n mock.handlers[key].splice(index, 1);\n }\n });\n}\n\nfunction settle(resolve, reject, response, delay) {\n if (delay > 0) {\n setTimeout(function() {\n settle(resolve, reject, response);\n }, delay);\n return;\n }\n\n if (response.config && response.config.validateStatus) {\n response.config.validateStatus(response.status)\n ? resolve(response)\n : reject(createErrorResponse(\n 'Request failed with status code ' + response.status,\n response.config,\n response\n ));\n return;\n }\n\n // Support for axios < 0.11\n if (response.status >= 200 && response.status < 300) {\n resolve(response);\n } else {\n reject(response);\n }\n}\n\nfunction createErrorResponse(message, config, response) {\n // Support for axios < 0.13.0\n if (!rejectWithError) return response;\n\n var error = new Error(message);\n error.config = config;\n error.response = response;\n return error;\n}\n\nfunction isSimpleObject(value) {\n return value !== null && value !== undefined && value.toString() === '[object Object]';\n}\n\nmodule.exports = {\n find: find,\n findHandler: findHandler,\n isSimpleObject: isSimpleObject,\n purgeIfReplyOnce: purgeIfReplyOnce,\n settle: settle\n};\n\n\n//# sourceURL=webpack://AxiosMockAdapter/./src/utils.js?");
var utils = __webpack_require__(5);
function makeResponse(result, config) {
return {
status: result[0],
data: utils.isSimpleObject(result[1]) ? JSON.parse(JSON.stringify(result[1])) : result[1],
headers: result[2],
config: config
};
}
function handleRequest(mockAdapter, resolve, reject, config) {
if (config.baseURL && config.url.substr(0, config.baseURL.length) === config.baseURL) {
config.url = config.url.slice(config.baseURL ? config.baseURL.length : 0);
}
delete config.adapter;
mockAdapter.history[config.method].push(config);
var handler = utils.findHandler(
mockAdapter.handlers,
config.method,
config.url,
config.data,
config.params,
config.headers,
config.baseURL
);
if (handler) {
if (handler.length === 7) {
utils.purgeIfReplyOnce(mockAdapter, handler);
}
if (handler.length === 2) {
// passThrough handler
// tell axios to use the original adapter instead of our mock, fixes #35
config.adapter = mockAdapter.originalAdapter;
mockAdapter.axiosInstance.request(config).then(resolve, reject);
} else if (!(handler[3] instanceof Function)) {
utils.settle(
resolve,
reject,
makeResponse(handler.slice(3), config),
mockAdapter.delayResponse
);
} else {
var result = handler[3](config);
// TODO throw a sane exception when return value is incorrect
if (!(result.then instanceof Function)) {
utils.settle(resolve, reject, makeResponse(result, config), mockAdapter.delayResponse);
} else {
result.then(
function(result) {
utils.settle(resolve, reject, makeResponse(result, config), mockAdapter.delayResponse);
},
function(error) {
if (mockAdapter.delayResponse > 0) {
setTimeout(function() {
reject(error);
}, mockAdapter.delayResponse);
} else {
reject(error);
}
}
);
}
}
} else {
// handler not found
utils.settle(
resolve,
reject,
{
status: 404,
config: config
},
mockAdapter.delayResponse
);
}
}
module.exports = handleRequest;
/***/ }),
/* 5 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var axios = __webpack_require__(6);
var deepEqual = __webpack_require__(0);
function isEqual(a, b) {
return deepEqual(a, b, { strict: true });
}
// < 0.13.0 will not have default headers set on a custom instance
var rejectWithError = !!axios.create().defaults.headers;
function find(array, predicate) {
var length = array.length;
for (var i = 0; i < length; i++) {
var value = array[i];
if (predicate(value)) return value;
}
}
function combineUrls(baseURL, url) {
if (baseURL) {
return baseURL.replace(/\/+$/, '') + '/' + url.replace(/^\/+/, '');
}
return url;
}
function findHandler(handlers, method, url, body, parameters, headers, baseURL) {
return find(handlers[method.toLowerCase()], function(handler) {
if (typeof handler[0] === 'string') {
return (isUrlMatching(url, handler[0]) || isUrlMatching(combineUrls(baseURL, url), handler[0])) && isBodyOrParametersMatching(method, body, parameters, handler[1]) && isRequestHeadersMatching(headers, handler[2]);
} else if (handler[0] instanceof RegExp) {
return (handler[0].test(url) || handler[0].test(combineUrls(baseURL, url))) && isBodyOrParametersMatching(method, body, parameters, handler[1]) && isRequestHeadersMatching(headers, handler[2]);
}
});
}
function isUrlMatching(url, required) {
var noSlashUrl = url[0] === '/' ? url.substr(1) : url;
var noSlashRequired = required[0] === '/' ? required.substr(1) : required;
return (noSlashUrl === noSlashRequired);
}
function isRequestHeadersMatching(requestHeaders, required) {
if (required === undefined) return true;
return isEqual(requestHeaders, required);
}
function isBodyOrParametersMatching(method, body, parameters, required) {
var allowedParamsMethods = ['delete', 'get', 'head', 'options'];
if (allowedParamsMethods.indexOf(method.toLowerCase()) >= 0 ) {
var params = required ? required.params : undefined;
return isParametersMatching(parameters, params);
} else {
return isBodyMatching(body, required);
}
}
function isParametersMatching(parameters, required) {
if (required === undefined) return true;
return isEqual(parameters, required);
}
function isBodyMatching(body, requiredBody) {
if (requiredBody === undefined) {
return true;
}
var parsedBody;
try {
parsedBody = JSON.parse(body);
} catch (e) { }
return parsedBody ? isEqual(parsedBody, requiredBody) : isEqual(body, requiredBody);
}
function purgeIfReplyOnce(mock, handler) {
Object.keys(mock.handlers).forEach(function(key) {
var index = mock.handlers[key].indexOf(handler);
if (index > -1) {
mock.handlers[key].splice(index, 1);
}
});
}
function settle(resolve, reject, response, delay) {
if (delay > 0) {
setTimeout(function() {
settle(resolve, reject, response);
}, delay);
return;
}
if (response.config && response.config.validateStatus) {
response.config.validateStatus(response.status)
? resolve(response)
: reject(createErrorResponse(
'Request failed with status code ' + response.status,
response.config,
response
));
return;
}
// Support for axios < 0.11
if (response.status >= 200 && response.status < 300) {
resolve(response);
} else {
reject(response);
}
}
function createErrorResponse(message, config, response) {
// Support for axios < 0.13.0
if (!rejectWithError) return response;
var error = new Error(message);
error.config = config;
error.response = response;
return error;
}
function isSimpleObject(value) {
return value !== null && value !== undefined && value.toString() === '[object Object]';
}
module.exports = {
find: find,
findHandler: findHandler,
isSimpleObject: isSimpleObject,
purgeIfReplyOnce: purgeIfReplyOnce,
settle: settle
};
/***/ }),
/* 6 */
/***/ "axios":
/*!************************!*\
!*** external "axios" ***!
\************************/
/*! no static exports found */
/***/ (function(module, exports) {
module.exports = __WEBPACK_EXTERNAL_MODULE_6__;
eval("module.exports = __WEBPACK_EXTERNAL_MODULE_axios__;\n\n//# sourceURL=webpack://AxiosMockAdapter/external_%22axios%22?");
/***/ })
/******/ ]);
/******/ });
});

2

dist/axios-mock-adapter.min.js

@@ -1,1 +0,1 @@

!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("axios")):"function"==typeof define&&define.amd?define(["axios"],e):"object"==typeof exports?exports.AxiosMockAdapter=e(require("axios")):t.AxiosMockAdapter=e(t.axios)}("undefined"!=typeof self?self:this,function(t){return function(t){function e(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,e),o.l=!0,o.exports}var n={};return e.m=t,e.c=n,e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:r})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=1)}([function(t,e,n){function r(t){return null===t||void 0===t}function o(t){return!(!t||"object"!=typeof t||"number"!=typeof t.length)&&("function"==typeof t.copy&&"function"==typeof t.slice&&!(t.length>0&&"number"!=typeof t[0]))}function i(t,e,n){var i,f;if(r(t)||r(e))return!1;if(t.prototype!==e.prototype)return!1;if(a(t))return!!a(e)&&(t=s.call(t),e=s.call(e),c(t,e,n));if(o(t)){if(!o(e))return!1;if(t.length!==e.length)return!1;for(i=0;i<t.length;i++)if(t[i]!==e[i])return!1;return!0}try{var p=u(t),l=u(e)}catch(t){return!1}if(p.length!=l.length)return!1;for(p.sort(),l.sort(),i=p.length-1;i>=0;i--)if(p[i]!=l[i])return!1;for(i=p.length-1;i>=0;i--)if(f=p[i],!c(t[f],e[f],n))return!1;return typeof t==typeof e}var s=Array.prototype.slice,u=n(2),a=n(3),c=t.exports=function(t,e,n){return n||(n={}),t===e||(t instanceof Date&&e instanceof Date?t.getTime()===e.getTime():!t||!e||"object"!=typeof t&&"object"!=typeof e?n.strict?t===e:t==e:i(t,e,n))}},function(t,e,n){"use strict";function r(){return function(t){var e=this;if(3!==arguments.length)return new Promise(function(n,r){l(e,n,r,t)});l(e,arguments[0],arguments[1],arguments[2])}.bind(this)}function o(){return d.reduce(function(t,e){return t[e]=[],t},{})}function i(){s.call(this),u.call(this)}function s(){this.handlers=o()}function u(){this.history=o()}function a(t,e){i.call(this),t&&(this.axiosInstance=t,this.originalAdapter=t.defaults.adapter,this.delayResponse=e&&e.delayResponse>0?e.delayResponse:null,t.defaults.adapter=this.adapter.call(this))}function c(t,e,n){for(var r=-1,o=0;o<e[t].length;o+=1){var i=e[t][o],s=7===i.length;(i[0]instanceof RegExp&&n[0]instanceof RegExp?String(i[0])===String(n[0]):i[0]===n[0])&&p(i[1],n[1],{strict:!0})&&p(i[2],n[2],{strict:!0})&&!s&&(r=o)}return r}function f(t,e,n){if("any"===t)d.forEach(function(t){e[t].push(n)});else{var r=c(t,e,n);r>-1&&n.length<7?e[t].splice(r,1,n):e[t].push(n)}}var p=n(0),l=n(4),d=["get","post","head","delete","patch","put","options"];a.prototype.adapter=r,a.prototype.restore=function(){this.axiosInstance&&(this.axiosInstance.defaults.adapter=this.originalAdapter)},a.prototype.reset=i,a.prototype.resetHandlers=s,a.prototype.resetHistory=u,d.concat("any").forEach(function(t){var e="on"+t.charAt(0).toUpperCase()+t.slice(1);a.prototype[e]=function(e,n,r){function o(o,s,u){var a=[e,n,r,o,s,u];return f(t,i.handlers,a),i}var i=this,e=void 0===e?/.*/:e;return{reply:o,replyOnce:function(o,s,u){var a=[e,n,r,o,s,u,!0];return f(t,i.handlers,a),i},passThrough:function(){var r=[e,n];return f(t,i.handlers,r),i},networkError:function(){o(function(t){var e=new Error("Network Error");return e.config=t,Promise.reject(e)})},timeout:function(){o(function(t){var e=new Error("timeout of "+t.timeout+"ms exceeded");return e.config=t,e.code="ECONNABORTED",Promise.reject(e)})}}}}),t.exports=a,t.exports.default=a},function(t,e){function n(t){var e=[];for(var n in t)e.push(n);return e}e=t.exports="function"==typeof Object.keys?Object.keys:n,e.shim=n},function(t,e){function n(t){return"[object Arguments]"==Object.prototype.toString.call(t)}function r(t){return t&&"object"==typeof t&&"number"==typeof t.length&&Object.prototype.hasOwnProperty.call(t,"callee")&&!Object.prototype.propertyIsEnumerable.call(t,"callee")||!1}var o="[object Arguments]"==function(){return Object.prototype.toString.call(arguments)}();e=t.exports=o?n:r,e.supported=n,e.unsupported=r},function(t,e,n){"use strict";function r(t,e){return{status:t[0],data:i.isSimpleObject(t[1])?JSON.parse(JSON.stringify(t[1])):t[1],headers:t[2],config:e}}function o(t,e,n,o){o.baseURL&&o.url.substr(0,o.baseURL.length)===o.baseURL&&(o.url=o.url.slice(o.baseURL?o.baseURL.length:0)),delete o.adapter,t.history[o.method].push(o);var s=i.findHandler(t.handlers,o.method,o.url,o.data,o.params,o.headers,o.baseURL);if(s)if(7===s.length&&i.purgeIfReplyOnce(t,s),2===s.length)o.adapter=t.originalAdapter,t.axiosInstance.request(o).then(e,n);else if(s[3]instanceof Function){var u=s[3](o);u.then instanceof Function?u.then(function(s){i.settle(e,n,r(s,o),t.delayResponse)},function(e){t.delayResponse>0?setTimeout(function(){n(e)},t.delayResponse):n(e)}):i.settle(e,n,r(u,o),t.delayResponse)}else i.settle(e,n,r(s.slice(3),o),t.delayResponse);else i.settle(e,n,{status:404,config:o},t.delayResponse)}var i=n(5);t.exports=o},function(t,e,n){"use strict";function r(t,e){return v(t,e,{strict:!0})}function o(t,e){for(var n=t.length,r=0;r<n;r++){var o=t[r];if(e(o))return o}}function i(t,e){return t?t.replace(/\/+$/,"")+"/"+e.replace(/^\/+/,""):e}function s(t,e,n,r,s,f,p){return o(t[e.toLowerCase()],function(t){return"string"==typeof t[0]?(u(n,t[0])||u(i(p,n),t[0]))&&c(e,r,s,t[1])&&a(f,t[2]):t[0]instanceof RegExp?(t[0].test(n)||t[0].test(i(p,n)))&&c(e,r,s,t[1])&&a(f,t[2]):void 0})}function u(t,e){return("/"===t[0]?t.substr(1):t)===("/"===e[0]?e.substr(1):e)}function a(t,e){return void 0===e||r(t,e)}function c(t,e,n,r){if(["delete","get","head","options"].indexOf(t.toLowerCase())>=0)return f(n,r?r.params:void 0);return p(e,r)}function f(t,e){return void 0===e||r(t,e)}function p(t,e){if(void 0===e)return!0;var n;try{n=JSON.parse(t)}catch(t){}return n?r(n,e):r(t,e)}function l(t,e){Object.keys(t.handlers).forEach(function(n){var r=t.handlers[n].indexOf(e);r>-1&&t.handlers[n].splice(r,1)})}function d(t,e,n,r){return r>0?void setTimeout(function(){d(t,e,n)},r):n.config&&n.config.validateStatus?void(n.config.validateStatus(n.status)?t(n):e(h("Request failed with status code "+n.status,n.config,n))):void(n.status>=200&&n.status<300?t(n):e(n))}function h(t,e,n){if(!b)return n;var r=new Error(t);return r.config=e,r.response=n,r}function y(t){return null!==t&&void 0!==t&&"[object Object]"===t.toString()}var g=n(6),v=n(0),b=!!g.create().defaults.headers;t.exports={find:o,findHandler:s,isSimpleObject:y,purgeIfReplyOnce:l,settle:d}},function(e,n){e.exports=t}])});
!function(t,n){"object"==typeof exports&&"object"==typeof module?module.exports=n(require("axios")):"function"==typeof define&&define.amd?define(["axios"],n):"object"==typeof exports?exports.AxiosMockAdapter=n(require("axios")):t.AxiosMockAdapter=n(t.axios)}(window,function(t){return function(t){var n={};function e(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,e),o.l=!0,o.exports}return e.m=t,e.c=n,e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:r})},e.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},e.t=function(t,n){if(1&n&&(t=e(t)),8&n)return t;if(4&n&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(e.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&n&&"string"!=typeof t)for(var o in t)e.d(r,o,function(n){return t[n]}.bind(null,o));return r},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},e.p="",e(e.s=1)}([function(t,n,e){var r=Array.prototype.slice,o=e(2),i=e(3),u=t.exports=function(t,n,e){return e||(e={}),t===n||(t instanceof Date&&n instanceof Date?t.getTime()===n.getTime():!t||!n||"object"!=typeof t&&"object"!=typeof n?e.strict?t===n:t==n:function(t,n,e){var s,c;if(f(t)||f(n))return!1;if(t.prototype!==n.prototype)return!1;if(i(t))return!!i(n)&&(t=r.call(t),n=r.call(n),u(t,n,e));if(a(t)){if(!a(n))return!1;if(t.length!==n.length)return!1;for(s=0;s<t.length;s++)if(t[s]!==n[s])return!1;return!0}try{var p=o(t),y=o(n)}catch(t){return!1}if(p.length!=y.length)return!1;for(p.sort(),y.sort(),s=p.length-1;s>=0;s--)if(p[s]!=y[s])return!1;for(s=p.length-1;s>=0;s--)if(c=p[s],!u(t[c],n[c],e))return!1;return typeof t==typeof n}(t,n,e))};function f(t){return null==t}function a(t){return!(!t||"object"!=typeof t||"number"!=typeof t.length)&&("function"==typeof t.copy&&"function"==typeof t.slice&&!(t.length>0&&"number"!=typeof t[0]))}},function(t,n,e){"use strict";var r=e(0),o=e(4),i=["get","post","head","delete","patch","put","options","list"];function u(){return i.reduce(function(t,n){return t[n]=[],t},{})}function f(){a.call(this),s.call(this)}function a(){this.handlers=u()}function s(){this.history=u()}function c(t,n){f.call(this),t&&(this.axiosInstance=t,this.originalAdapter=t.defaults.adapter,this.delayResponse=n&&n.delayResponse>0?n.delayResponse:null,t.defaults.adapter=this.adapter.call(this))}function p(t,n,e){if("any"===t)i.forEach(function(t){n[t].push(e)});else{var o=function(t,n,e){for(var o=-1,i=0;i<n[t].length;i+=1){var u=n[t][i],f=7===u.length;(u[0]instanceof RegExp&&e[0]instanceof RegExp?String(u[0])===String(e[0]):u[0]===e[0])&&r(u[1],e[1],{strict:!0})&&r(u[2],e[2],{strict:!0})&&!f&&(o=i)}return o}(t,n,e);o>-1&&e.length<7?n[t].splice(o,1,e):n[t].push(e)}}c.prototype.adapter=function(){return function(t){var n=this;if(3!==arguments.length)return new Promise(function(e,r){o(n,e,r,t)});o(n,arguments[0],arguments[1],arguments[2])}.bind(this)},c.prototype.restore=function(){this.axiosInstance&&(this.axiosInstance.defaults.adapter=this.originalAdapter)},c.prototype.reset=f,c.prototype.resetHandlers=a,c.prototype.resetHistory=s,i.concat("any").forEach(function(t){var n="on"+t.charAt(0).toUpperCase()+t.slice(1);c.prototype[n]=function(n,e,r){var o=this;n=void 0===n?/.*/:n;function i(i,u,f){var a=[n,e,r,i,u,f];return p(t,o.handlers,a),o}function u(i,u,f){var a=[n,e,r,i,u,f,!0];return p(t,o.handlers,a),o}return{reply:i,replyOnce:u,passThrough:function(){var r=[n,e];return p(t,o.handlers,r),o},networkError:function(){i(function(t){var n=new Error("Network Error");return n.config=t,Promise.reject(n)})},networkErrorOnce:function(){u(function(t){var n=new Error("Network Error");return n.config=t,Promise.reject(n)})},timeout:function(){i(function(t){var n=new Error("timeout of "+t.timeout+"ms exceeded");return n.config=t,n.code="ECONNABORTED",Promise.reject(n)})},timeoutOnce:function(){u(function(t){var n=new Error("timeout of "+t.timeout+"ms exceeded");return n.config=t,n.code="ECONNABORTED",Promise.reject(n)})}}}}),t.exports=c,t.exports.default=c},function(t,n){function e(t){var n=[];for(var e in t)n.push(e);return n}(t.exports="function"==typeof Object.keys?Object.keys:e).shim=e},function(t,n){var e="[object Arguments]"==function(){return Object.prototype.toString.call(arguments)}();function r(t){return"[object Arguments]"==Object.prototype.toString.call(t)}function o(t){return t&&"object"==typeof t&&"number"==typeof t.length&&Object.prototype.hasOwnProperty.call(t,"callee")&&!Object.prototype.propertyIsEnumerable.call(t,"callee")||!1}(n=t.exports=e?r:o).supported=r,n.unsupported=o},function(t,n,e){"use strict";var r=e(5);function o(t,n){return{status:t[0],data:r.isSimpleObject(t[1])?JSON.parse(JSON.stringify(t[1])):t[1],headers:t[2],config:n}}t.exports=function(t,n,e,i){var u=i.url;i.baseURL&&i.url.substr(0,i.baseURL.length)===i.baseURL&&(u=i.url.slice(i.baseURL?i.baseURL.length:0)),delete i.adapter,t.history[i.method].push(i);var f=r.findHandler(t.handlers,i.method,u,i.data,i.params,i.headers,i.baseURL);if(f)if(7===f.length&&r.purgeIfReplyOnce(t,f),2===f.length)i.adapter=t.originalAdapter,t.axiosInstance.request(i).then(n,e);else if("function"!=typeof f[3])r.settle(n,e,o(f.slice(3),i),t.delayResponse);else{var a=f[3](i);"function"!=typeof a.then?r.settle(n,e,o(a,i),t.delayResponse):a.then(function(u){u.config&&u.status?r.settle(n,e,o([u.status,u.data,u.headers],u.config),0):r.settle(n,e,o(u,i),t.delayResponse)},function(n){t.delayResponse>0?setTimeout(function(){e(n)},t.delayResponse):e(n)})}else r.settle(n,e,{status:404,config:i},t.delayResponse)}},function(t,n,e){"use strict";var r=e(6),o=e(0);function i(t,n){return o(t,n,{strict:!0})}var u=!!r.create().defaults.headers;function f(t,n){for(var e=t.length,r=0;r<e;r++){var o=t[r];if(n(o))return o}}function a(t,n){return t?t.replace(/\/+$/,"")+"/"+n.replace(/^\/+/,""):n}function s(t,n){return("/"===t[0]?t.substr(1):t)===("/"===n[0]?n.substr(1):n)}function c(t,n){return void 0===n||i(t,n)}function p(t,n,e,r){return["delete","get","head","options"].indexOf(t.toLowerCase())>=0?function(t,n){return void 0===n||i(t,n)}(e,r?r.params:void 0):function(t,n){if(void 0===n)return!0;var e;try{e=JSON.parse(t)}catch(t){}return i(e||t,n)}(n,r)}t.exports={find:f,findHandler:function(t,n,e,r,o,i,u){return f(t[n.toLowerCase()],function(t){return"string"==typeof t[0]?(s(e,t[0])||s(a(u,e),t[0]))&&p(n,r,o,t[1])&&c(i,t[2]):t[0]instanceof RegExp?(t[0].test(e)||t[0].test(a(u,e)))&&p(n,r,o,t[1])&&c(i,t[2]):void 0})},isSimpleObject:function(t){return null!=t&&"[object Object]"===t.toString()},purgeIfReplyOnce:function(t,n){Object.keys(t.handlers).forEach(function(e){var r=t.handlers[e].indexOf(n);r>-1&&t.handlers[e].splice(r,1)})},settle:function t(n,e,r,o){o>0?setTimeout(function(){t(n,e,r)},o):r.config&&r.config.validateStatus?r.config.validateStatus(r.status)?n(r):e(function(t,n,e){if(!u)return e;var r=new Error(t);return r.config=n,r.response=e,r}("Request failed with status code "+r.status,r.config,r)):r.status>=200&&r.status<300?n(r):e(r)}}},function(n,e){n.exports=t}])});
{
"name": "axios-mock-adapter",
"version": "1.15.0",
"version": "1.16.0",
"description": "Axios adapter that allows to easily mock requests",

@@ -11,4 +11,4 @@ "main": "src/index.js",

"lint": "eslint src test",
"build:umd": "webpack src/index.js dist/axios-mock-adapter.js",
"build:umd:min": "cross-env NODE_ENV=production webpack src/index.js dist/axios-mock-adapter.min.js",
"build:umd": "webpack --mode development ./src/index.js --output ./dist/axios-mock-adapter.js",
"build:umd:min": "webpack --mode production ./src/index.js --output ./dist/axios-mock-adapter.min.js",
"prepublish": "npm run clean && npm run build:umd && npm run build:umd:min"

@@ -46,8 +46,8 @@ },

"chai": "^4.1.0",
"cross-env": "^5.1.0",
"eslint": "^4.17.0",
"eslint": "^5.2.0",
"istanbul": "^0.4.5",
"mocha": "^5.0.0",
"mocha": "^5.2.0",
"rimraf": "^2.6.1",
"webpack": "^3.3.0"
"webpack": "^4.16.4",
"webpack-command": "^0.4.1"
},

@@ -54,0 +54,0 @@ "dependencies": {

@@ -55,3 +55,3 @@ # axios-mock-adapter

// Mock GET request to /users when param `searchText` is 'John'
// Mock GET request to /users when param `searchText` is 'John'
// arguments for reply are (status, data, headers)

@@ -121,2 +121,10 @@ mock.onGet('/users', { params: { searchText: 'John' } }).reply(200, {

Passing a function to `reply` that returns an axios request, essentially mocking a redirect
```js
mock.onPost('/foo').reply(function(config) {
return axios.get('/bar');
});
```
Using a regex

@@ -131,3 +139,11 @@

```
Using variables in regex
```js
const usersUri = '/users';
const url = new RegExp(`${usersUri}/*`);
mock.onGet(url).reply(200, users);
```
Specify no path to match by verb alone

@@ -246,3 +262,3 @@

var mockAxios = axios.create();
var mock = MockAdapter(mockAxios);
var mock = new MockAdapter(mockAxios);

@@ -265,1 +281,24 @@ mock

```
## History
The `history` property allows you to enumerate existing axios request objects. The property is an object of verb keys referencing arrays of request objects.
This is useful for testing.
```js
describe('Feature', () => {
it('requests an endpoint', (done) => {
var mock = new AxiosMockAdapter(axios);
mock.onPost('/endpoint').replyOnce(200);
feature.request()
.then(() => {
expect(mock.history.post.length).toBe(1);
expect(mock.history.post[0].data).toBe(JSON.stringify({ foo: 'bar' }));
})
.then(done)
.catch(done.fail);
});
});
```

@@ -15,4 +15,5 @@ 'use strict';

function handleRequest(mockAdapter, resolve, reject, config) {
var url = config.url;
if (config.baseURL && config.url.substr(0, config.baseURL.length) === config.baseURL) {
config.url = config.url.slice(config.baseURL ? config.baseURL.length : 0);
url = config.url.slice(config.baseURL ? config.baseURL.length : 0);
}

@@ -26,3 +27,3 @@

config.method,
config.url,
url,
config.data,

@@ -44,3 +45,3 @@ config.params,

mockAdapter.axiosInstance.request(config).then(resolve, reject);
} else if (!(handler[3] instanceof Function)) {
} else if (typeof handler[3] !== 'function') {
utils.settle(

@@ -55,3 +56,3 @@ resolve,

// TODO throw a sane exception when return value is incorrect
if (!(result.then instanceof Function)) {
if (typeof result.then !== 'function') {
utils.settle(resolve, reject, makeResponse(result, config), mockAdapter.delayResponse);

@@ -61,3 +62,7 @@ } else {

function(result) {
utils.settle(resolve, reject, makeResponse(result, config), mockAdapter.delayResponse);
if (result.config && result.status) {
utils.settle(resolve, reject, makeResponse([result.status, result.data, result.headers], result.config), 0);
} else {
utils.settle(resolve, reject, makeResponse(result, config), mockAdapter.delayResponse);
}
},

@@ -64,0 +69,0 @@ function(error) {

@@ -7,3 +7,3 @@ 'use strict';

var VERBS = ['get', 'post', 'head', 'delete', 'patch', 'put', 'options'];
var VERBS = ['get', 'post', 'head', 'delete', 'patch', 'put', 'options', 'list'];

@@ -80,10 +80,12 @@ function adapter() {

function replyOnce(code, response, headers) {
var handler = [matcher, body, requestHeaders, code, response, headers, true];
addHandler(method, _this.handlers, handler);
return _this;
}
return {
reply: reply,
replyOnce: function replyOnce(code, response, headers) {
var handler = [matcher, body, requestHeaders, code, response, headers, true];
addHandler(method, _this.handlers, handler);
return _this;
},
replyOnce: replyOnce,

@@ -104,2 +106,10 @@ passThrough: function passThrough() {

networkErrorOnce: function() {
replyOnce(function(config) {
var error = new Error('Network Error');
error.config = config;
return Promise.reject(error);
});
},
timeout: function() {

@@ -112,2 +122,11 @@ reply(function(config) {

});
},
timeoutOnce: function() {
replyOnce(function(config) {
var error = new Error('timeout of ' + config.timeout + 'ms exceeded');
error.config = config;
error.code = 'ECONNABORTED';
return Promise.reject(error);
});
}

@@ -114,0 +133,0 @@ };

@@ -1,6 +0,12 @@

import { AxiosAdapter, AxiosInstance, AxiosRequestConfig } from "axios";
import { AxiosAdapter, AxiosInstance, AxiosRequestConfig } from 'axios';
type CallbackResponseSpecFunc = (config: AxiosRequestConfig) => any[] | Promise<any[]>;
type CallbackResponseSpecFunc = (
config: AxiosRequestConfig
) => any[] | Promise<any[]>;
type ResponseSpecFunc = (statusOrCallback: number | CallbackResponseSpecFunc, data?: any, headers?: any) => MockAdapter;
type ResponseSpecFunc = (
statusOrCallback: number | CallbackResponseSpecFunc,
data?: any,
headers?: any
) => MockAdapter;

@@ -10,6 +16,8 @@ interface RequestHandler {

replyOnce: ResponseSpecFunc;
timeoutOnce: ResponseSpecFunc;
networkErrorOnce: ResponseSpecFunc;
passThrough(): void;
networkError(): void;
timeout(): void;
passThrough(): MockAdapter;
networkError(): MockAdapter;
timeout(): MockAdapter;
}

@@ -24,8 +32,16 @@

params?: {
[index: string]: any,
[index: string]: any;
};
}
type RequestMatcherFunc = (matcher?: string | RegExp, body?: string | RequestDataMatcher) => RequestHandler;
interface HeadersMatcher {
[header: string]: string;
}
type RequestMatcherFunc = (
matcher?: string | RegExp,
body?: string | RequestDataMatcher,
headers?: HeadersMatcher
) => RequestHandler;
declare class MockAdapter {

@@ -37,2 +53,4 @@ constructor(axiosInstance: AxiosInstance, options?: MockAdapterOptions);

restore(): void;
history: { [method:string]:AxiosRequestConfig[]; };

@@ -45,2 +63,3 @@ onGet: RequestMatcherFunc;

onPatch: RequestMatcherFunc;
onList: RequestMatcherFunc;
onAny: RequestMatcherFunc;

@@ -47,0 +66,0 @@ }

@@ -1,3 +0,3 @@

import axios from "axios";
import MockAdapter from "axios-mock-adapter";
import axios from 'axios';
import MockAdapter from 'axios-mock-adapter';

@@ -13,3 +13,3 @@ const instance = axios.create();

new MockAdapter(instance, {
delayResponse: 2000,
delayResponse: 2000
});

@@ -37,2 +37,3 @@ }

mock.onPatch;
mock.onList;
}

@@ -49,3 +50,3 @@

namespace AllowsUrlMatcher {
mock.onGet("/foo");
mock.onGet('/foo');
}

@@ -58,9 +59,9 @@

namespace AllowsStringBodyMatcher {
mock.onPatch("/foo", "bar");
mock.onPatch('/foo', 'bar');
}
namespace AllowsBodyMatcher {
mock.onGet("/foo", {
mock.onGet('/foo', {
id: 4,
name: "foo",
name: 'foo'
});

@@ -70,6 +71,6 @@ }

namespace AllowsParameterMatcher {
mock.onGet("/foo", {
mock.onGet('/foo', {
params: {
searchText: "John",
},
searchText: 'John'
}
});

@@ -95,8 +96,4 @@ }

namespace AllowsFunctionReply {
mock.onGet().reply((config) => {
return [
200,
{ data: "foo" },
{ RequestedURL: config.url },
];
mock.onGet().reply(config => {
return [200, { data: 'foo' }, { RequestedURL: config.url }];
});

@@ -106,7 +103,7 @@ }

namespace AllowsPromiseReply {
mock.onGet().reply((config) => {
mock.onGet().reply(config => {
return Promise.resolve([
200,
{ data: "bar" },
{ RequestedURL: config.url },
{ data: 'bar' },
{ RequestedURL: config.url }
]);

@@ -118,4 +115,10 @@ });

mock
.onGet("/users").reply(200, [/* users */])
.onGet("/posts").reply(200, [/* posts */]);
.onGet('/users')
.reply(200, [
/* users */
])
.onGet('/posts')
.reply(200, [
/* posts */
]);
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc