From 0bd9b2e8d77b5ad1aea120e908f69d6bcbff3d3f Mon Sep 17 00:00:00 2001 From: supasak Date: Tue, 11 Oct 2016 10:44:27 +0700 Subject: [PATCH 1/5] fix($resource): Delete $cancelRequest from toJSON() result.toJSON() still include $cancelRequest to the JSON output. just simply delete it. --- src/ngResource/resource.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ngResource/resource.js b/src/ngResource/resource.js index 8b5944da9f60..3152e3f9a98c 100644 --- a/src/ngResource/resource.js +++ b/src/ngResource/resource.js @@ -636,6 +636,7 @@ angular.module('ngResource', ['ng']). var data = extend({}, this); delete data.$promise; delete data.$resolved; + delete data.$cancelRequest; return data; }; From d60bbc777fe3d9366edd626aacfa036852e6a424 Mon Sep 17 00:00:00 2001 From: supasak Date: Thu, 13 Oct 2016 14:41:50 +0700 Subject: [PATCH 2/5] test($resource): Delete $cancelRequest from toJSON() Add test of pull request #15244 (https://github.com/angular/angular.js/pull/15244) --- test/ngResource/resourceSpec.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/ngResource/resourceSpec.js b/test/ngResource/resourceSpec.js index 2747253dbe1c..68ad5f60f499 100644 --- a/test/ngResource/resourceSpec.js +++ b/test/ngResource/resourceSpec.js @@ -737,7 +737,7 @@ describe('basic usage', function() { expect(person2).toEqual(jasmine.any(Person)); }); - it('should not include $promise and $resolved when resource is toJson\'ed', function() { + it('should not include $promise, $resolved and $cancelRequest when resource is toJson\'ed', function() { $httpBackend.expect('GET', '/CreditCard/123').respond({id: 123, number: '9876'}); var cc = CreditCard.get({id: 123}); $httpBackend.flush(); @@ -750,6 +750,7 @@ describe('basic usage', function() { var json = JSON.parse(angular.toJson(cc)); expect(json.$promise).not.toBeDefined(); expect(json.$resolved).not.toBeDefined(); + expect(json.$cancelRequest).not.toBeDefined(); expect(json).toEqual({id: 123, number: '9876', $myProp: 'still here'}); }); From 4ce6272cd991b77e5ff54cd2fd1066ef87708c94 Mon Sep 17 00:00:00 2001 From: supasak Date: Thu, 13 Oct 2016 16:51:19 +0700 Subject: [PATCH 3/5] test($resource): Delete $cancelRequest from toJSON() Improved test, per @gkalpak comment, add an expectation that is was there before. --- test/ngResource/resourceSpec.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/test/ngResource/resourceSpec.js b/test/ngResource/resourceSpec.js index 68ad5f60f499..5b62a195aff3 100644 --- a/test/ngResource/resourceSpec.js +++ b/test/ngResource/resourceSpec.js @@ -29,6 +29,9 @@ describe('basic usage', function() { } } + }, + { + cancellable: true }); callback = jasmine.createSpy('callback'); })); @@ -746,6 +749,7 @@ describe('basic usage', function() { expect(cc.$promise).toBeDefined(); expect(cc.$resolved).toBe(true); + expect(cc.$cancelRequest).toBeDefined(); var json = JSON.parse(angular.toJson(cc)); expect(json.$promise).not.toBeDefined(); From dc53f48410e445e5ba1ce88a979792c9f51cdf56 Mon Sep 17 00:00:00 2001 From: supasak Date: Thu, 20 Oct 2016 19:29:35 +0700 Subject: [PATCH 4/5] test($resource): Delete $cancelRequest from toJSON() create separated test since the existing test always pass without this PR. --- test/ngResource/resourceSpec.js | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/test/ngResource/resourceSpec.js b/test/ngResource/resourceSpec.js index 5b62a195aff3..357dec071b8c 100644 --- a/test/ngResource/resourceSpec.js +++ b/test/ngResource/resourceSpec.js @@ -740,7 +740,7 @@ describe('basic usage', function() { expect(person2).toEqual(jasmine.any(Person)); }); - it('should not include $promise, $resolved and $cancelRequest when resource is toJson\'ed', function() { + it('should not include $promise, $resolved when resource is toJson\'ed', function() { $httpBackend.expect('GET', '/CreditCard/123').respond({id: 123, number: '9876'}); var cc = CreditCard.get({id: 123}); $httpBackend.flush(); @@ -749,15 +749,25 @@ describe('basic usage', function() { expect(cc.$promise).toBeDefined(); expect(cc.$resolved).toBe(true); - expect(cc.$cancelRequest).toBeDefined(); var json = JSON.parse(angular.toJson(cc)); expect(json.$promise).not.toBeDefined(); expect(json.$resolved).not.toBeDefined(); - expect(json.$cancelRequest).not.toBeDefined(); expect(json).toEqual({id: 123, number: '9876', $myProp: 'still here'}); }); + it('should not include $cancelRequest when resource is toJson\'ed', function() { + $httpBackend.expect('GET', '/CreditCard/123').respond({id: 123, number: '9876'}); + var cc = CreditCard.get({id: 123}); + $httpBackend.flush(); + + expect(cc.$cancelRequest).toBeDefined(); + + var json = cc.toJSON(); + + expect(json.$cancelRequest).not.toBeDefined(); + }); + describe('promise api', function() { var $rootScope; From 4761592da21ecc4d8d549857ab30726c3fa11885 Mon Sep 17 00:00:00 2001 From: supasak Date: Fri, 21 Oct 2016 09:53:59 +0700 Subject: [PATCH 5/5] test($resource): Delete $cancelRequest from toJSON() create separated cancellable resource for test. --- test/ngResource/resourceSpec.js | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/test/ngResource/resourceSpec.js b/test/ngResource/resourceSpec.js index 357dec071b8c..0ac2c0d49404 100644 --- a/test/ngResource/resourceSpec.js +++ b/test/ngResource/resourceSpec.js @@ -29,9 +29,6 @@ describe('basic usage', function() { } } - }, - { - cancellable: true }); callback = jasmine.createSpy('callback'); })); @@ -740,7 +737,7 @@ describe('basic usage', function() { expect(person2).toEqual(jasmine.any(Person)); }); - it('should not include $promise, $resolved when resource is toJson\'ed', function() { + it('should not include $promise and $resolved when resource is toJson\'ed', function() { $httpBackend.expect('GET', '/CreditCard/123').respond({id: 123, number: '9876'}); var cc = CreditCard.get({id: 123}); $httpBackend.flush(); @@ -757,14 +754,22 @@ describe('basic usage', function() { }); it('should not include $cancelRequest when resource is toJson\'ed', function() { - $httpBackend.expect('GET', '/CreditCard/123').respond({id: 123, number: '9876'}); - var cc = CreditCard.get({id: 123}); - $httpBackend.flush(); + $httpBackend.whenGET('/CreditCard').respond({}); + + var CreditCard = $resource('/CreditCard', {}, { + get: { + method: 'GET', + cancellable: true + } + }); - expect(cc.$cancelRequest).toBeDefined(); + var creditCard = CreditCard.get(); + + expect(creditCard.$cancelRequest).toBeDefined(); - var json = cc.toJSON(); + $httpBackend.flush(); + var json = creditCard.toJSON(); expect(json.$cancelRequest).not.toBeDefined(); });