From cc42c99bec6a03d6c41b8e1d29ba2b1f5c16b87d Mon Sep 17 00:00:00 2001 From: Pascal Corpet Date: Wed, 4 Jul 2012 10:07:09 +0200 Subject: feat($resource): allow dynamic default parameters Default resource params can now be calculated at runtime if defined via a function. --- test/ngResource/resourceSpec.js | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'test') diff --git a/test/ngResource/resourceSpec.js b/test/ngResource/resourceSpec.js index 01466f1c..3d263688 100644 --- a/test/ngResource/resourceSpec.js +++ b/test/ngResource/resourceSpec.js @@ -356,6 +356,35 @@ describe("resource", function() { }); + it('should support dynamic default parameters (global)', function() { + var currentGroup = 'students', + Person = $resource('/Person/:group/:id', { group: function() { return currentGroup; }}); + + + $httpBackend.expect('GET', '/Person/students/fedor').respond({id: 'fedor', email: 'f@f.com'}); + + var fedor = Person.get({id: 'fedor'}); + $httpBackend.flush(); + + expect(fedor).toEqualData({id: 'fedor', email: 'f@f.com'}); + }); + + + it('should support dynamic default parameters (action specific)', function() { + var currentGroup = 'students', + Person = $resource('/Person/:group/:id', {}, { + fetch: {method: 'GET', params: {group: function() { return currentGroup; }}} + }); + + $httpBackend.expect('GET', '/Person/students/fedor').respond({id: 'fedor', email: 'f@f.com'}); + + var fedor = Person.fetch({id: 'fedor'}); + $httpBackend.flush(); + + expect(fedor).toEqualData({id: 'fedor', email: 'f@f.com'}); + }); + + it('should exercise full stack', function() { var Person = $resource('/Person/:id'); -- cgit v1.2.3