diff options
Diffstat (limited to 'test/ngResource')
| -rw-r--r-- | test/ngResource/resourceSpec.js | 49 |
1 files changed, 48 insertions, 1 deletions
diff --git a/test/ngResource/resourceSpec.js b/test/ngResource/resourceSpec.js index 52395297..19456f01 100644 --- a/test/ngResource/resourceSpec.js +++ b/test/ngResource/resourceSpec.js @@ -807,7 +807,6 @@ describe("resource", function() { }); }); - it('should transform request/response', function() { var Person = $resource('/Person/:id', {}, { save: { @@ -1034,3 +1033,51 @@ describe("resource", function() { }); }); }); + +describe('resource', function() { + var $httpBackend, $resource; + + beforeEach(module(function($exceptionHandlerProvider) { + $exceptionHandlerProvider.mode('log'); + })); + + beforeEach(module('ngResource')); + + beforeEach(inject(function($injector) { + $httpBackend = $injector.get('$httpBackend'); + $resource = $injector.get('$resource'); + })); + + + it('should fail if action expects an object but response is an array', function() { + var successSpy = jasmine.createSpy('successSpy'); + var failureSpy = jasmine.createSpy('failureSpy'); + + $httpBackend.expect('GET', '/Customer/123').respond({id: 'abc'}); + + $resource('/Customer/123').query() + .$promise.then(successSpy, function(e) { failureSpy(e.message); }); + $httpBackend.flush(); + + expect(successSpy).not.toHaveBeenCalled(); + expect(failureSpy).toHaveBeenCalledWith( + '[ngResource:badcfg] Error in resource configuration. Expected response to contain an array but got an object'); + }); + + it('should fail if action expects an array but response is an object', function() { + var successSpy = jasmine.createSpy('successSpy'); + var failureSpy = jasmine.createSpy('failureSpy'); + + $httpBackend.expect('GET', '/Customer/123').respond([1,2,3]); + + $resource('/Customer/123').get() + .$promise.then(successSpy, function(e) { failureSpy(e.message); }); + $httpBackend.flush(); + + expect(successSpy).not.toHaveBeenCalled(); + expect(failureSpy).toHaveBeenCalledWith( + '[ngResource:badcfg] Error in resource configuration. Expected response to contain an object but got an array'); + }); + + +});
\ No newline at end of file |
