I am going to preface this question by saying that I have already received a test to work with my "LoginCtrl", which performs almost the same task. I am sure this is the problem of something very small that I forgot. Thanks in advance for any help :)
I set the expected value / response for httpBackend for my test, but when I ran httpBackend.flush() , it was like I never set the wait.
Test Code:
describe('user register', function () { var scope, RegisterCtrl, httpBackend, userJohnDoe, userJohnDoeRegistered, Restangular; // TEST beforeEach(module('LR.User.Register')); describe('RegisterCtrl', function () { beforeEach(inject(function ($controller, _$httpBackend_, $rootScope, _Restangular_, $state) { scope = $rootScope.$new(); httpBackend = _$httpBackend_; Restangular = _Restangular_; // Models userJohnDoeRegistered = { "access_token": "YzEyZDhjNjBlY2EwMTMxMmQzZGIzYWY5NDY4OGYwMjMzMGVjNDU3MDVhY2U0YjJmNDc1ODI3NWU0ODkzZGNkMQ", "expires_in": 7200, "token_type": "bearer", "scope": null, "refresh_token": "MmFhMTQ5NzU4ODI5ZjE2Mjk3ZjNlYzEwYzJkMjc4M2NkZjY2MjVkMjIwNWQzODUxYWNiYzY3NzIyMzEwYzJhNg", "user": { "username": "johndoe", "email": " johndoe@test.net ", "id": 1, "first_name": "John", "middle_name": "f", "last_name": "Doe", "created": "2013-09-04T10:46:10-0500", "updated": "2013-09-04T10:46:10-0500" }, "status": "success", "status_code": 200, "status_text": "OK" }; userJohnDoe = { "email": " johndoe@test.net ", "first_name": "John", "middle_name": "f", "last_name": "Doe", password: 'test123X', passwordSecond: 'test123X', client_id: '1_3b5zgimwg4kkko4wksk4sw0o48040o8ws8og8kg4wsowwkc44s' }; httpBackend.whenPOST('/register', userJohnDoe).respond(userJohnDoeRegistered); RegisterCtrl = $controller('RegisterCtrl', {$scope: scope, $state: $state, Restangular: Restangular}); })); afterEach(function () { httpBackend.verifyNoOutstandingExpectation(); httpBackend.verifyNoOutstandingRequest(); }); it('should be able to register a fake user', inject(function () { var resolvedRegistration; var cb = function (response) { // Expect the userJohnDoe object resolvedRegistration = sanitizeRestangularOne(response); console.log(logTestHeader('REGISTRATION RESPONSE') + JSON.stringify(resolvedRegistration, null, ' ')); }; // Set credentials scope.user = userJohnDoeCredentials; // Call login var register = scope.register_user().then(function() { cb(); }); scope.$digest(); httpBackend.flush(); expect(resolvedRegistration).toEqual(userJohnDoeRegistered); })); }); });
Output Answer:
Chrome 29.0.1547 (Mac OS X 10.8.4) user register RegisterCtrl should be able to register a fake user FAILED Error: Unexpected request: POST /register No more request expected at Error (<anonymous>) at $httpBackend (/Users/bobothefrofro/Development/lr-phoenix/phoenix-client/vendor/angular-mocks/angular-mocks.js:959:9) at y (/Users/bobothefrofro/Development/lr-phoenix/phoenix-client/vendor/angular/angular.min.js:64:282) at g (/Users/bobothefrofro/Development/lr-phoenix/phoenix-client/vendor/angular/angular.min.js:62:272) at r (/Users/bobothefrofro/Development/lr-phoenix/phoenix-client/vendor/angular/angular.min.js:96:140) at r (/Users/bobothefrofro/Development/lr-phoenix/phoenix-client/vendor/angular/angular.min.js:96:140) at /Users/bobothefrofro/Development/lr-phoenix/phoenix-client/vendor/angular/angular.min.js:97:293 at Object.g.$eval (/Users/bobothefrofro/Development/lr-phoenix/phoenix-client/vendor/angular/angular.min.js:104:502) at Object.g.$digest (/Users/bobothefrofro/Development/lr-phoenix/phoenix-client/vendor/angular/angular.min.js:102:419) at null.<anonymous> (/Users/bobothefrofro/Development/lr-phoenix/phoenix-client/src/app/user/register/register.spec.js:74:19) Error: Declaration Location at window.jasmine.window.inject.angular.mock.inject (/Users/bobothefrofro/Development/lr-phoenix/phoenix-client/vendor/angular-mocks/angular-mocks.js:1781:25) at null.<anonymous> (/Users/bobothefrofro/Development/lr-phoenix/phoenix-client/src/app/user/register/register.spec.js:57:54) at null.<anonymous> (/Users/bobothefrofro/Development/lr-phoenix/phoenix-client/src/app/user/register/register.spec.js:9:5) at /Users/bobothefrofro/Development/lr-phoenix/phoenix-client/src/app/user/register/register.spec.js:1:1