fix($resource): action defaults should override resource defaults

defaults definned per action should take precedence over defaults
defined for the whole resource.

This is potentialy a BREAKING CHANGE in case someone relied on the buggy
behavior.
This commit is contained in:
Marcello Nuccio 2011-09-02 15:50:10 +02:00 committed by Igor Minar
parent 62d34e1437
commit b3ed7a8a7a
2 changed files with 10 additions and 1 deletions

View file

@ -109,7 +109,7 @@ ResourceFactory.prototype = {
var value = this instanceof Resource ? this : (action.isArray ? [] : new Resource(data));
self.xhr(
action.method,
route.url(extend({}, action.params || {}, extractParams(data), params)),
route.url(extend({}, extractParams(data), action.params || {}, params)),
data,
function(status, response, responseHeaders) {
if (response) {

View file

@ -75,6 +75,15 @@ describe("resource", function() {
nakedExpect(item).toEqual({id:'abc'});
});
it("should build resource with action default param overriding default param", function(){
xhr.expectGET('/Customer/123').respond({id:'abc'});
var TypeItem = resource.route('/:type/:typeId', {type: 'Order'},
{get: {method: 'GET', params: {type: 'Customer'}}});
var item = TypeItem.get({typeId:123});
xhr.flush();
nakedExpect(item).toEqual({id:'abc'});
});
it("should create resource", function(){
xhr.expectPOST('/CreditCard', {name:'misko'}).respond({id:123, name:'misko'});