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.9.0 to 1.10.0

469

dist/axios-mock-adapter.js

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

root["AxiosMockAdapter"] = factory(root["axios"]);
})(this, function(__WEBPACK_EXTERNAL_MODULE_6__) {
})(this, function(__WEBPACK_EXTERNAL_MODULE_3__) {
return /******/ (function(modules) { // webpackBootstrap

@@ -47,5 +47,2 @@ /******/ // The module cache

/******/
/******/ // identity function for calling harmony imports with the correct context
/******/ __webpack_require__.i = function(value) { return value; };
/******/
/******/ // define getter function for harmony exports

@@ -78,3 +75,3 @@ /******/ __webpack_require__.d = function(exports, name, getter) {

/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = 4);
/******/ return __webpack_require__(__webpack_require__.s = 0);
/******/ })

@@ -89,216 +86,4 @@ /************************************************************************/

var utils = __webpack_require__(5);
var handleRequest = __webpack_require__(1);
function makeResponse(result, config) {
return {
status: result[0],
data: utils.isObject(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);
}
config.adapter = null;
var handler = utils.findHandler(mockAdapter.handlers, config.method, config.url, config.data, config.params);
if (handler) {
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[2] instanceof Function)) {
utils.settle(resolve, reject, makeResponse(handler.slice(2), config), mockAdapter.delayResponse);
} else {
var result = handler[2](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;
/***/ }),
/* 1 */
/***/ (function(module, exports, __webpack_require__) {
var pSlice = Array.prototype.slice;
var objectKeys = __webpack_require__(3);
var isArguments = __webpack_require__(2);
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();
// 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;
// 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;
}
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;
}
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;
}
/***/ }),
/* 2 */
/***/ (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;
};
/***/ }),
/* 3 */
/***/ (function(module, exports) {
exports = module.exports = typeof Object.keys === 'function'
? Object.keys : shim;
exports.shim = shim;
function shim (obj) {
var keys = [];
for (var key in obj) keys.push(key);
return keys;
}
/***/ }),
/* 4 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var handleRequest = __webpack_require__(0);
var VERBS = ['get', 'post', 'head', 'delete', 'patch', 'put'];

@@ -354,3 +139,3 @@

var methodName = 'on' + method.charAt(0).toUpperCase() + method.slice(1);
MockAdapter.prototype[methodName] = function(matcher, body) {
MockAdapter.prototype[methodName] = function(matcher, body, requestHeaders) {
var _this = this;

@@ -360,3 +145,3 @@ var matcher = matcher === undefined ? /.*/ : matcher;

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

@@ -370,3 +155,3 @@ return _this;

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

@@ -414,7 +199,7 @@ _this.replyOnceHandlers.push(handler);

module.exports = MockAdapter;
module.exports = module.exports.default = MockAdapter;
/***/ }),
/* 5 */
/* 1 */
/***/ (function(module, exports, __webpack_require__) {

@@ -425,5 +210,76 @@

var axios = __webpack_require__(6);
var deepEqual = __webpack_require__(1);
var utils = __webpack_require__(2);
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);
}
config.adapter = null;
var handler = utils.findHandler(mockAdapter.handlers, config.method, config.url, config.data, config.params, config.headers);
if (handler) {
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;
/***/ }),
/* 2 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var axios = __webpack_require__(3);
var deepEqual = __webpack_require__(4);
function isEqual(a, b) {

@@ -444,8 +300,8 @@ return deepEqual(a, b, { strict: true });

function findHandler(handlers, method, url, body, parameters) {
function findHandler(handlers, method, url, body, parameters, headers) {
return find(handlers[method.toLowerCase()], function(handler) {
if (typeof handler[0] === 'string') {
return isUrlMatching(url, handler[0]) && isBodyOrParametersMatching(method, body, parameters, handler[1]);
return isUrlMatching(url, handler[0]) && isBodyOrParametersMatching(method, body, parameters, handler[1]) && isRequestHeadersMatching(headers, handler[2]);
} else if (handler[0] instanceof RegExp) {
return handler[0].test(url) && isBodyOrParametersMatching(method, body, parameters, handler[1]);
return handler[0].test(url) && isBodyOrParametersMatching(method, body, parameters, handler[1]) && isRequestHeadersMatching(headers, handler[2]);
}

@@ -461,4 +317,10 @@ });

function isRequestHeadersMatching(requestHeaders, required) {
if (required === undefined) return true;
return isEqual(requestHeaders, required);
}
function isBodyOrParametersMatching(method, body, parameters, required) {
if (method.toLowerCase() === 'get') {
var allowedParamsMethods = ['delete', 'get', 'head', 'options'];
if (allowedParamsMethods.indexOf(method.toLowerCase()) >= 0 ) {
var params = required ? required.params : undefined;

@@ -539,4 +401,4 @@ return isParametersMatching(parameters, params);

function isObject(value) {
return value !== null && typeof value === 'object';
function isSimpleObject(value) {
return value !== null && value !== undefined && value.toString() === '[object Object]';
}

@@ -547,3 +409,3 @@

findHandler: findHandler,
isObject: isObject,
isSimpleObject: isSimpleObject,
purgeIfReplyOnce: purgeIfReplyOnce,

@@ -555,9 +417,150 @@ settle: settle

/***/ }),
/* 3 */
/***/ (function(module, exports) {
module.exports = __WEBPACK_EXTERNAL_MODULE_3__;
/***/ }),
/* 4 */
/***/ (function(module, exports, __webpack_require__) {
var pSlice = Array.prototype.slice;
var objectKeys = __webpack_require__(5);
var isArguments = __webpack_require__(6);
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();
// 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;
// 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;
}
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;
}
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;
}
/***/ }),
/* 5 */
/***/ (function(module, exports) {
exports = module.exports = typeof Object.keys === 'function'
? Object.keys : shim;
exports.shim = shim;
function shim (obj) {
var keys = [];
for (var key in obj) keys.push(key);
return keys;
}
/***/ }),
/* 6 */
/***/ (function(module, exports) {
module.exports = __WEBPACK_EXTERNAL_MODULE_6__;
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;
};
/***/ })
/******/ ]);
});

@@ -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=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}])});
!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.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=0)}([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(1),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,r){function o(o,u,a){var c=[t,n,r,o,u,a];return s(e,i.handlers,c),i}var i=this,t=void 0===t?/.*/:t;return{reply:o,replyOnce:function(o,u,a){var c=[t,n,r,o,u,a];return s(e,i.handlers,c),i.replyOnceHandlers.push(c),i},passThrough:function(){var r=[t,n];return s(e,i.handlers,r),i},networkError:function(){o(function(e){var t=new Error("Network Error");return t.config=e,Promise.reject(t)})},timeout:function(){o(function(e){var t=new Error("timeout of "+e.timeout+"ms exceeded");return t.config=e,t.code="ECONNABORTED",Promise.reject(t)})}}}}),e.exports=e.exports.default=i},function(e,t,n){"use strict";function r(e,t){return{status:e[0],data:i.isSimpleObject(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,o.headers);if(s)if(i.purgeIfReplyOnce(e,s),2===s.length)o.adapter=e.originalAdapter,e.axiosInstance.request(o).then(t,n);else if(s[3]instanceof Function){var u=s[3](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(3),o),e.delayResponse);else i.settle(t,n,{status:404,config:o},e.delayResponse)}var i=n(2);e.exports=o},function(e,t,n){"use strict";function r(e,t){return g(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,c){return o(e[t.toLowerCase()],function(e){return"string"==typeof e[0]?s(n,e[0])&&a(t,r,i,e[1])&&u(c,e[2]):e[0]instanceof RegExp?e[0].test(n)&&a(t,r,i,e[1])&&u(c,e[2]):void 0})}function s(e,t){return("/"===e[0]?e.substr(1):e)===("/"===t[0]?t.substr(1):t)}function u(e,t){return void 0===t||r(e,t)}function a(e,t,n,r){if(["delete","get","head","options"].indexOf(e.toLowerCase())>=0)return c(n,r?r.params:void 0);return f(t,r)}function c(e,t){return void 0===t||r(e,t)}function f(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 l(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 p(e,t,n,r){return r>0?void setTimeout(function(){p(e,t,n)},r):n.config&&n.config.validateStatus?void(n.config.validateStatus(n.status)?e(n):t(d("Request failed with status code "+n.status,n.config,n))):void(n.status>=200&&n.status<300?e(n):t(n))}function d(e,t,n){if(!v)return n;var r=new Error(e);return r.config=t,r.response=n,r}function h(e){return null!==e&&void 0!==e&&"[object Object]"===e.toString()}var y=n(3),g=n(4),v=!!y.create().defaults.headers;e.exports={find:o,findHandler:i,isSimpleObject:h,purgeIfReplyOnce:l,settle:p}},function(t,n){t.exports=e},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(5),a=n(6),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){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){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}])});
{
"name": "axios-mock-adapter",
"version": "1.9.0",
"version": "1.10.0",
"description": "Axios adapter that allows to easily mock requests",

@@ -19,2 +19,3 @@ "main": "src/index.js",

],
"types": "types",
"repository": {

@@ -42,10 +43,10 @@ "type": "git",

"devDependencies": {
"axios": "^0.16.2",
"chai": "^4.0.2",
"cross-env": "3.2.4",
"eslint": "^4.0.0",
"axios": "^0.17.0",
"chai": "^4.1.0",
"cross-env": "^5.1.0",
"eslint": "^4.3.0",
"istanbul": "^0.4.5",
"mocha": "^3.4.2",
"mocha": "^4.0.1",
"rimraf": "^2.6.1",
"webpack": "^2.6.1"
"webpack": "^3.3.0"
},

@@ -52,0 +53,0 @@ "dependencies": {

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

status: result[0],
data: utils.isObject(result[1]) ? JSON.parse(JSON.stringify(result[1])) : result[1],
data: utils.isSimpleObject(result[1]) ? JSON.parse(JSON.stringify(result[1])) : result[1],
headers: result[2],

@@ -21,3 +21,3 @@ config: config

var handler = utils.findHandler(mockAdapter.handlers, config.method, config.url, config.data, config.params);
var handler = utils.findHandler(mockAdapter.handlers, config.method, config.url, config.data, config.params, config.headers);

@@ -34,6 +34,6 @@ if (handler) {

.then(resolve, reject);
} else if (!(handler[2] instanceof Function)) {
utils.settle(resolve, reject, makeResponse(handler.slice(2), config), mockAdapter.delayResponse);
} else if (!(handler[3] instanceof Function)) {
utils.settle(resolve, reject, makeResponse(handler.slice(3), config), mockAdapter.delayResponse);
} else {
var result = handler[2](config);
var result = handler[3](config);
// TODO throw a sane exception when return value is incorrect

@@ -40,0 +40,0 @@ if (!(result.then instanceof Function)) {

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

var methodName = 'on' + method.charAt(0).toUpperCase() + method.slice(1);
MockAdapter.prototype[methodName] = function(matcher, body) {
MockAdapter.prototype[methodName] = function(matcher, body, requestHeaders) {
var _this = this;

@@ -61,3 +61,3 @@ var matcher = matcher === undefined ? /.*/ : matcher;

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

@@ -71,3 +71,3 @@ return _this;

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

@@ -115,2 +115,2 @@ _this.replyOnceHandlers.push(handler);

module.exports = MockAdapter;
module.exports = module.exports.default = MockAdapter;

@@ -21,8 +21,8 @@ 'use strict';

function findHandler(handlers, method, url, body, parameters) {
function findHandler(handlers, method, url, body, parameters, headers) {
return find(handlers[method.toLowerCase()], function(handler) {
if (typeof handler[0] === 'string') {
return isUrlMatching(url, handler[0]) && isBodyOrParametersMatching(method, body, parameters, handler[1]);
return isUrlMatching(url, handler[0]) && isBodyOrParametersMatching(method, body, parameters, handler[1]) && isRequestHeadersMatching(headers, handler[2]);
} else if (handler[0] instanceof RegExp) {
return handler[0].test(url) && isBodyOrParametersMatching(method, body, parameters, handler[1]);
return handler[0].test(url) && isBodyOrParametersMatching(method, body, parameters, handler[1]) && isRequestHeadersMatching(headers, handler[2]);
}

@@ -38,4 +38,10 @@ });

function isRequestHeadersMatching(requestHeaders, required) {
if (required === undefined) return true;
return isEqual(requestHeaders, required);
}
function isBodyOrParametersMatching(method, body, parameters, required) {
if (method.toLowerCase() === 'get') {
var allowedParamsMethods = ['delete', 'get', 'head', 'options'];
if (allowedParamsMethods.indexOf(method.toLowerCase()) >= 0 ) {
var params = required ? required.params : undefined;

@@ -116,4 +122,4 @@ return isParametersMatching(parameters, params);

function isObject(value) {
return value !== null && typeof value === 'object';
function isSimpleObject(value) {
return value !== null && value !== undefined && value.toString() === '[object Object]';
}

@@ -124,5 +130,5 @@

findHandler: findHandler,
isObject: isObject,
isSimpleObject: isSimpleObject,
purgeIfReplyOnce: purgeIfReplyOnce,
settle: settle
};
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