From f6ecf9a3c9090593faf5fa50586c99a56b51c776 Mon Sep 17 00:00:00 2001 From: Tobias Bosch Date: Wed, 20 Nov 2013 16:45:39 -0800 Subject: fix($resource): Always return a resource instance when calling class methods on resources. Previously, calling `MyResource.save(myResourceInstance)`returned a promise, in contrast to the docs for `$resource`. However, calling `MyResource.save({name: 'Tobias"})`already correctly returned a resource instance. Fixes #4545. Closes #5061. --- test/ngResource/resourceSpec.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'test/ngResource') diff --git a/test/ngResource/resourceSpec.js b/test/ngResource/resourceSpec.js index 5b75c8cf..28154313 100644 --- a/test/ngResource/resourceSpec.js +++ b/test/ngResource/resourceSpec.js @@ -533,6 +533,18 @@ describe("resource", function() { expect(person.name).toEqual('misko'); }); + it('should return a resource instance when calling a class method with a resource instance', function() { + $httpBackend.expect('GET', '/Person/123').respond('{"name":"misko"}'); + var Person = $resource('/Person/:id'); + var person = Person.get({id:123}); + $httpBackend.flush(); + $httpBackend.expect('POST', '/Person').respond('{"name":"misko2"}'); + + var person2 = Person.save(person); + $httpBackend.flush(); + + expect(person2).toEqual(jasmine.any(Person)); + }); describe('promise api', function() { -- cgit v1.2.3