I have the next resource as:
angular.module('resources.venue', ['ngResource'])
.factory('Venue', function($resource) {
return $resource('/venue/:id', { id: '@_id' },{ update: { method: 'PUT' } });
});
And Im testing it like this:
describe('Venue Resource', function() {
var Venue, $httpBackend;
var id = '123456789012345678901234';
beforeEach(module('resources.venue'));
beforeEach(inject(function(_Venue_, _$httpBackend_) {
Venue = _Venue_;
$httpBackend = _$httpBackend_;
}));
....
it('should get one venue', function() {
$httpBackend.expectGET('/venue/' + id).respond();
var obj = Venue.get({ "id": id }); // if changed to { "_id": id } it breaks
$httpBackend.flush();
});
it('should put venue', function() {
var obj = new Venue({ "_id": id }); // if changed to { "id": id } it breaks
$httpBackend.expectPUT('/venue/' + id, { "_id": id }).respond();
obj.$update();
$httpBackend.flush();
});
....
As i commented, in the get test, if i renamed the "id" property to "_id" i get the error:
Error: Unexpected request: GET /venue?_id=123456789012345678901234
Expected GET /venue/123456789012345678901234
And in the put test, if i renamed the "_id" property to "id" i get:
Error: Unexpected request: PUT /venue
Expected PUT /venue/123456789012345678901234
Im i missing something? I try to look for documentation about how angular treats parameters with underscores but i didnt find any.