1

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.

1

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.