From 5d4fa75727011075d520b656b669b513118fc1ab Mon Sep 17 00:00:00 2001 From: Zak Henry Date: Thu, 6 Aug 2015 23:13:50 +1000 Subject: [PATCH 1/3] Added (failing) tests for the custom interceptor --- test/test.ts | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/test/test.ts b/test/test.ts index cdbed36..0729bb3 100644 --- a/test/test.ts +++ b/test/test.ts @@ -361,6 +361,29 @@ describe('Service tests', () => { expect(spyMethod.calledOnce).to.be.true; }); + it('should be able to define a custom interceptor function to only fail in some conditions', () => { + + + let customInterceptor = (rejection:ng.IHttpPromiseCallbackArg):boolean => { + + return rejection.status >= 500; + }; + + $httpBackend.expectGET('/api/fatal').respond(500); + ngRestAdapterService.skipInterceptor(customInterceptor).get('/fatal'); //get a failing url + $httpBackend.flush(); + + expect(spyMethod).to.be.calledTwice; + + $httpBackend.expectGET('/api/recoverable').respond(416); + ngRestAdapterService.skipInterceptor(customInterceptor).get('/recoverable'); //get a recoverable url + $httpBackend.flush(); + + expect(spyMethod).to.be.calledTwice; //should not have been called again + + + }); + it('should not catch an exception thrown from an error interceptor if it is user supplied', () => { From 542f687a55068571d5fb4280f09db2f03b786240 Mon Sep 17 00:00:00 2001 From: Zak Henry Date: Thu, 6 Aug 2015 23:15:40 +1000 Subject: [PATCH 2/3] Added interfaces --- src/ngRestAdapterInterfaces.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/ngRestAdapterInterfaces.ts b/src/ngRestAdapterInterfaces.ts index 55e032e..adf96a6 100644 --- a/src/ngRestAdapterInterfaces.ts +++ b/src/ngRestAdapterInterfaces.ts @@ -12,7 +12,7 @@ module NgRestAdapter { remove(url:string, data?:any, headers?:IHeaderConfig, configOverrides?:ng.IRequestShortcutConfig):ng.IHttpPromise; api(url:string):NgRestAdapter.NgRestAdapterService; - skipInterceptor():NgRestAdapter.NgRestAdapterService; + skipInterceptor(shouldSkip?:ISkipInterceptorFunction):NgRestAdapter.NgRestAdapterService; setSkipInterceptorRoutes(excludedRoutes:RegExp[]):NgRestAdapter.NgRestAdapterService; getSkipInterceptorRoutes():Array; @@ -42,4 +42,8 @@ module NgRestAdapter { (requestConfig:ng.IRequestConfig, responseObject:ng.IHttpPromiseCallbackArg):void; } + export interface ISkipInterceptorFunction { + (rejection:ng.IHttpPromiseCallbackArg):boolean; + } + } From 30879cf0bfe8bcdc37e2784cd4d6f896a6044bb2 Mon Sep 17 00:00:00 2001 From: Zak Henry Date: Thu, 6 Aug 2015 23:50:24 +1000 Subject: [PATCH 3/3] Implemented custom interceptor handling --- dist/ngRestAdapter.d.ts | 9 ++++++--- dist/ngRestAdapter.js | 11 ++++++----- dist/ngRestAdapter.js.map | 2 +- src/ngRestAdapterInterceptor.ts | 6 +++--- src/ngRestAdapterInterfaces.ts | 2 +- src/ngRestAdapterService.ts | 4 ++-- src/ngRestAdapterServiceProvider.ts | 2 +- test/test.ts | 25 +++++++++++++------------ 8 files changed, 33 insertions(+), 28 deletions(-) diff --git a/dist/ngRestAdapter.d.ts b/dist/ngRestAdapter.d.ts index 3058195..8c583ee 100644 --- a/dist/ngRestAdapter.d.ts +++ b/dist/ngRestAdapter.d.ts @@ -25,7 +25,7 @@ declare module NgRestAdapter { patch(url: string, data: any, headers?: IHeaderConfig, configOverrides?: ng.IRequestShortcutConfig): ng.IHttpPromise; remove(url: string, data?: any, headers?: IHeaderConfig, configOverrides?: ng.IRequestShortcutConfig): ng.IHttpPromise; api(url: string): NgRestAdapter.NgRestAdapterService; - skipInterceptor(): NgRestAdapter.NgRestAdapterService; + skipInterceptor(shouldSkip?: ISkipInterceptorFunction): NgRestAdapter.NgRestAdapterService; setSkipInterceptorRoutes(excludedRoutes: RegExp[]): NgRestAdapter.NgRestAdapterService; getSkipInterceptorRoutes(): Array; uuid(): string; @@ -42,11 +42,14 @@ declare module NgRestAdapter { interface INgRestAdapterServiceConfig { baseUrl: string; defaultHeaders?: IHeaderConfig; - skipInterceptor?: boolean; + skipInterceptor?: ISkipInterceptorFunction; } interface IApiErrorHandler { (requestConfig: ng.IRequestConfig, responseObject: ng.IHttpPromiseCallbackArg): void; } + interface ISkipInterceptorFunction { + (rejection: ng.IHttpPromiseCallbackArg): boolean; + } } declare module NgRestAdapter { class NgRestAdapterService implements INgRestAdapterService { @@ -71,7 +74,7 @@ declare module NgRestAdapter { patch(url: string, data: any, headers?: IHeaderConfig, configOverrides?: ng.IRequestShortcutConfig): ng.IHttpPromise; remove(url: string, data?: any, headers?: IHeaderConfig, configOverrides?: ng.IRequestShortcutConfig): ng.IHttpPromise; api(url: string): NgRestAdapterService; - skipInterceptor(): NgRestAdapterService; + skipInterceptor(shouldSkip?: ISkipInterceptorFunction): NgRestAdapterService; uuid(): string; isUuid(uuid: string): boolean; getConfig(): NgRestAdapter.INgRestAdapterServiceConfig; diff --git a/dist/ngRestAdapter.js b/dist/ngRestAdapter.js index 281752a..0fafc35 100644 --- a/dist/ngRestAdapter.js +++ b/dist/ngRestAdapter.js @@ -14,8 +14,8 @@ var NgRestAdapter; }; this.responseError = function (rejection) { var ngRestAdapter = _this.getNgRestAdapterService(); - var skipInterceptor = _.get(rejection.config, 'ngRestAdapterServiceConfig.skipInterceptor', false); - if (skipInterceptor === true) { + var skipInterceptor = _.get(rejection.config, 'ngRestAdapterServiceConfig.skipInterceptor'); + if (_.isFunction(skipInterceptor) && skipInterceptor(rejection)) { return _this.$q.reject(rejection); //exit early } var skipInterceptorRoutes = ngRestAdapter.getSkipInterceptorRoutes(); @@ -125,8 +125,9 @@ var NgRestAdapter; var config = _.defaults({ baseUrl: url }, this.config); return new NgRestAdapterService(config, this.$http, this.uuid4); }; - NgRestAdapterService.prototype.skipInterceptor = function () { - var config = _.defaults({ skipInterceptor: true }, this.config); + NgRestAdapterService.prototype.skipInterceptor = function (shouldSkip) { + if (shouldSkip === void 0) { shouldSkip = function () { return true; }; } + var config = _.defaults({ skipInterceptor: shouldSkip }, this.config); return new NgRestAdapterService(config, this.$http, this.uuid4); }; NgRestAdapterService.prototype.uuid = function () { @@ -208,7 +209,7 @@ var NgRestAdapter; defaultHeaders: { 'Requested-With': 'angular-rest-adapter' }, - skipInterceptor: false + skipInterceptor: function () { return false; } }; } /** diff --git a/dist/ngRestAdapter.js.map b/dist/ngRestAdapter.js.map index b178d71..11f4322 100644 --- a/dist/ngRestAdapter.js.map +++ b/dist/ngRestAdapter.js.map @@ -1 +1 @@ -{"version":3,"sources":["ngRestAdapterInterceptor.ts","ngRestAdapterInterfaces.ts","ngRestAdapterService.ts","ngRestAdapterServiceProvider.ts"],"names":["NgRestAdapter","NgRestAdapter.NgRestAdapterInterceptor","NgRestAdapter.NgRestAdapterInterceptor.constructor","NgRestAdapter.NgRestAdapterService","NgRestAdapter.NgRestAdapterService.constructor","NgRestAdapter.NgRestAdapterService.sendRequest","NgRestAdapter.NgRestAdapterService.options","NgRestAdapter.NgRestAdapterService.get","NgRestAdapter.NgRestAdapterService.head","NgRestAdapter.NgRestAdapterService.put","NgRestAdapter.NgRestAdapterService.post","NgRestAdapter.NgRestAdapterService.patch","NgRestAdapter.NgRestAdapterService.remove","NgRestAdapter.NgRestAdapterService.api","NgRestAdapter.NgRestAdapterService.skipInterceptor","NgRestAdapter.NgRestAdapterService.uuid","NgRestAdapter.NgRestAdapterService.isUuid","NgRestAdapter.NgRestAdapterService.getConfig","NgRestAdapter.NgRestAdapterService.registerApiErrorHandler","NgRestAdapter.NgRestAdapterService.getErrorHandler","NgRestAdapter.NgRestAdapterService.getSkipInterceptorRoutes","NgRestAdapter.NgRestAdapterService.setSkipInterceptorRoutes","NgRestAdapter.NgRestAdapterException","NgRestAdapter.NgRestAdapterException.constructor","NgRestAdapter.NgRestAdapterException.toString","NgRestAdapter.NgRestAdapterErrorHandlerNotFoundException","NgRestAdapter.NgRestAdapterErrorHandlerNotFoundException.constructor","NgRestAdapter.NgRestAdapterServiceProvider","NgRestAdapter.NgRestAdapterServiceProvider.constructor","NgRestAdapter.NgRestAdapterServiceProvider.constructor.NgRestAdapterServiceFactory","NgRestAdapter.NgRestAdapterServiceProvider.configure"],"mappings":"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","file":"ngRestAdapter.js","sourceRoot":"../src/"} \ No newline at end of file +{"version":3,"sources":["ngRestAdapterInterceptor.ts","ngRestAdapterInterfaces.ts","ngRestAdapterService.ts","ngRestAdapterServiceProvider.ts"],"names":["NgRestAdapter","NgRestAdapter.NgRestAdapterInterceptor","NgRestAdapter.NgRestAdapterInterceptor.constructor","NgRestAdapter.NgRestAdapterService","NgRestAdapter.NgRestAdapterService.constructor","NgRestAdapter.NgRestAdapterService.sendRequest","NgRestAdapter.NgRestAdapterService.options","NgRestAdapter.NgRestAdapterService.get","NgRestAdapter.NgRestAdapterService.head","NgRestAdapter.NgRestAdapterService.put","NgRestAdapter.NgRestAdapterService.post","NgRestAdapter.NgRestAdapterService.patch","NgRestAdapter.NgRestAdapterService.remove","NgRestAdapter.NgRestAdapterService.api","NgRestAdapter.NgRestAdapterService.skipInterceptor","NgRestAdapter.NgRestAdapterService.uuid","NgRestAdapter.NgRestAdapterService.isUuid","NgRestAdapter.NgRestAdapterService.getConfig","NgRestAdapter.NgRestAdapterService.registerApiErrorHandler","NgRestAdapter.NgRestAdapterService.getErrorHandler","NgRestAdapter.NgRestAdapterService.getSkipInterceptorRoutes","NgRestAdapter.NgRestAdapterService.setSkipInterceptorRoutes","NgRestAdapter.NgRestAdapterException","NgRestAdapter.NgRestAdapterException.constructor","NgRestAdapter.NgRestAdapterException.toString","NgRestAdapter.NgRestAdapterErrorHandlerNotFoundException","NgRestAdapter.NgRestAdapterErrorHandlerNotFoundException.constructor","NgRestAdapter.NgRestAdapterServiceProvider","NgRestAdapter.NgRestAdapterServiceProvider.constructor","NgRestAdapter.NgRestAdapterServiceProvider.constructor.NgRestAdapterServiceFactory","NgRestAdapter.NgRestAdapterServiceProvider.configure"],"mappings":"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","file":"ngRestAdapter.js","sourceRoot":"../src/"} \ No newline at end of file diff --git a/src/ngRestAdapterInterceptor.ts b/src/ngRestAdapterInterceptor.ts index 708a962..61cdd7f 100644 --- a/src/ngRestAdapterInterceptor.ts +++ b/src/ngRestAdapterInterceptor.ts @@ -28,10 +28,10 @@ module NgRestAdapter { public responseError = (rejection:ng.IHttpPromiseCallbackArg):any => { let ngRestAdapter = this.getNgRestAdapterService(); - - let skipInterceptor = _.get(rejection.config, 'ngRestAdapterServiceConfig.skipInterceptor', false); - if (skipInterceptor === true){ + let skipInterceptor = _.get(rejection.config, 'ngRestAdapterServiceConfig.skipInterceptor'); + + if (_.isFunction(skipInterceptor) && skipInterceptor(rejection)){ return this.$q.reject(rejection); //exit early } diff --git a/src/ngRestAdapterInterfaces.ts b/src/ngRestAdapterInterfaces.ts index adf96a6..46cd9ea 100644 --- a/src/ngRestAdapterInterfaces.ts +++ b/src/ngRestAdapterInterfaces.ts @@ -35,7 +35,7 @@ module NgRestAdapter { export interface INgRestAdapterServiceConfig { baseUrl: string; defaultHeaders?: IHeaderConfig - skipInterceptor?: boolean; + skipInterceptor?: ISkipInterceptorFunction; } export interface IApiErrorHandler { diff --git a/src/ngRestAdapterService.ts b/src/ngRestAdapterService.ts index 7e1e501..b5f1440 100644 --- a/src/ngRestAdapterService.ts +++ b/src/ngRestAdapterService.ts @@ -92,9 +92,9 @@ module NgRestAdapter { return new NgRestAdapterService(config, this.$http, this.uuid4); } - public skipInterceptor():NgRestAdapterService { + public skipInterceptor(shouldSkip:ISkipInterceptorFunction = () => true):NgRestAdapterService { - let config = _.defaults({skipInterceptor:true}, this.config); + let config = _.defaults({skipInterceptor:shouldSkip}, this.config); return new NgRestAdapterService(config, this.$http, this.uuid4); diff --git a/src/ngRestAdapterServiceProvider.ts b/src/ngRestAdapterServiceProvider.ts index f541860..1e81993 100644 --- a/src/ngRestAdapterServiceProvider.ts +++ b/src/ngRestAdapterServiceProvider.ts @@ -39,7 +39,7 @@ module NgRestAdapter { defaultHeaders: { 'Requested-With': 'angular-rest-adapter' }, - skipInterceptor: false + skipInterceptor: () => false } } diff --git a/test/test.ts b/test/test.ts index 0729bb3..82f175b 100644 --- a/test/test.ts +++ b/test/test.ts @@ -12,7 +12,7 @@ let fixtures = { defaultHeaders: { 'Test-Header': 'This is a test header' }, - skipInterceptor: true + skipInterceptor: () => false }; }, @@ -57,7 +57,8 @@ describe('Custom configuration', function () { let configuration = customRestAdapter.getConfig(); - return expect(configuration).to.deep.equal(fixtures.customConfig); + expect(configuration.baseUrl).to.equal(fixtures.customConfig.baseUrl); + expect(configuration.defaultHeaders).to.deep.equal(fixtures.customConfig.defaultHeaders); }); @@ -285,10 +286,10 @@ describe('Service tests', () => { let throwException = false; - let spyMethod = sinon.spy(); + let errorHandlerSpy = sinon.spy(); let errorHandlerMock = (requestConfig:ng.IRequestConfig, responseObject:ng.IHttpPromiseCallbackArg):void => { - spyMethod(requestConfig, responseObject); //spy on the options + errorHandlerSpy(requestConfig, responseObject); //spy on the options if (throwException){ throw Error("An error occurred!"); @@ -303,7 +304,7 @@ describe('Service tests', () => { $httpBackend.flush(); - expect(spyMethod.called).to.be.false; + expect(errorHandlerSpy.called).to.be.false; expect(response).eventually.to.be.rejected; }); @@ -314,7 +315,7 @@ describe('Service tests', () => { ngRestAdapterService.registerApiErrorHandler(errorHandlerMock); - expect(spyMethod.called).to.be.false; + expect(errorHandlerSpy.called).to.be.false; }); @@ -337,7 +338,7 @@ describe('Service tests', () => { $httpBackend.flush(); - expect(spyMethod.called).to.be.false; + expect(errorHandlerSpy).not.to.be.called; }); it('should call the api error handler when the api responds with an error', () => { @@ -347,7 +348,7 @@ describe('Service tests', () => { $httpBackend.flush(); - expect(spyMethod.called).to.be.true; + expect(errorHandlerSpy).to.be.calledOnce; }); it('should not call the api error handler the api service specifies the interceptor should be skipped', () => { @@ -358,7 +359,7 @@ describe('Service tests', () => { $httpBackend.flush(); - expect(spyMethod.calledOnce).to.be.true; + expect(errorHandlerSpy.calledOnce).to.be.true; }); it('should be able to define a custom interceptor function to only fail in some conditions', () => { @@ -366,20 +367,20 @@ describe('Service tests', () => { let customInterceptor = (rejection:ng.IHttpPromiseCallbackArg):boolean => { - return rejection.status >= 500; + return rejection.status <= 500; }; $httpBackend.expectGET('/api/fatal').respond(500); ngRestAdapterService.skipInterceptor(customInterceptor).get('/fatal'); //get a failing url $httpBackend.flush(); - expect(spyMethod).to.be.calledTwice; + expect(errorHandlerSpy).to.have.been.calledOnce; $httpBackend.expectGET('/api/recoverable').respond(416); ngRestAdapterService.skipInterceptor(customInterceptor).get('/recoverable'); //get a recoverable url $httpBackend.flush(); - expect(spyMethod).to.be.calledTwice; //should not have been called again + expect(errorHandlerSpy).to.have.been.calledOnce; //should not have been called again });