diff --git a/lib/core/Axios.js b/lib/core/Axios.js index 1d9296c..42ea75e 100644 --- a/lib/core/Axios.js +++ b/lib/core/Axios.js @@ -81,7 +81,7 @@ Axios.prototype.request = function request(config) { var chain = [dispatchRequest, undefined]; Array.prototype.unshift.apply(chain, requestInterceptorChain); - chain.concat(responseInterceptorChain); + chain = chain.concat(responseInterceptorChain); promise = Promise.resolve(config); while (chain.length) { diff --git a/test/specs/interceptors.spec.js b/test/specs/interceptors.spec.js index 61b4180..d8768f9 100644 --- a/test/specs/interceptors.spec.js +++ b/test/specs/interceptors.spec.js @@ -252,6 +252,35 @@ describe('interceptors', function () { }); }); + it('should add a response interceptor when request interceptor is defined', function (done) { + var response; + + axios.interceptors.request.use(function (data) { + return data; + }); + + axios.interceptors.response.use(function (data) { + data.data = data.data + ' - modified by interceptor'; + return data; + }); + + axios('/foo').then(function (data) { + response = data; + }); + + getAjaxRequest().then(function (request) { + request.respondWith({ + status: 200, + responseText: 'OK' + }); + + setTimeout(function () { + expect(response.data).toBe('OK - modified by interceptor'); + done(); + }, 100); + }); + }); + it('should add a response interceptor that returns a new data object', function (done) { var response;