diff options
Diffstat (limited to 'test/service/xhr.errorSpec.js')
| -rw-r--r-- | test/service/xhr.errorSpec.js | 36 | 
1 files changed, 36 insertions, 0 deletions
diff --git a/test/service/xhr.errorSpec.js b/test/service/xhr.errorSpec.js new file mode 100644 index 00000000..da1b102e --- /dev/null +++ b/test/service/xhr.errorSpec.js @@ -0,0 +1,36 @@ +describe('$xhr.error', function() { +  var scope, $browser, $browserXhr, $xhr, $xhrError, log; + +  beforeEach(function(){ +    scope = angular.scope({}, angular.service, { +      '$xhr.error': $xhrError = jasmine.createSpy('$xhr.error') +    }); +    $browser = scope.$service('$browser'); +    $browserXhr = $browser.xhr; +    $xhr = scope.$service('$xhr'); +    log = ''; +  }); + + +  afterEach(function(){ +    dealoc(scope); +  }); + + +  function callback(code, response) { +    expect(code).toEqual(200); +    log = log + toJson(response) + ';'; +  } + + +  it('should handle non 200 status codes by forwarding to error handler', function(){ +    $browserXhr.expectPOST('/req', 'MyData').respond(500, 'MyError'); +    $xhr('POST', '/req', 'MyData', callback); +    $browserXhr.flush(); +    var cb = $xhrError.mostRecentCall.args[0].callback; +    expect(typeof cb).toEqual($function); +    expect($xhrError).wasCalledWith( +        {url:'/req', method:'POST', data:'MyData', callback:cb}, +        {status:500, body:'MyError'}); +  }); +});  | 
