title: Karma test in Angular isn't doing what it is expected to
body: <p>My login controller is:</p>
  
  <pre><code>angular.module('mean').controller('LoginController', ['$scope', '$location', '$rootScope', 'UserService', function ($scope, $location, $rootScope, UserService) {
    $scope.init = function() {
      $scope.credentials = {};
      $scope.status_object = {
        text: '',
        class: '',
        show: false
      };    
    }
  
    $scope.authenticate = function() {
      $scope.status_object = {
        text: 'Authenticating...',
        class: 'info',
        show: true
      };
      UserService.authenticate($scope.credentials).then(function(response) {
        if(response.data.status === 'error') {
          $scope.status_object = {
            text: response.data.error,
            class: 'danger',
            show: true
          };
        } else if(response.data.status === 'ok') {
          $rootScope.globals.logged_in = true;
          $location.path('/' + response.data.user.access);
        }
      });
    };
  }]);
  </code></pre>
  
  <p>My test is:</p>
  
  <pre><code>  describe('LoginController', function() {
      beforeEach(module('mean'));
  
      var scope, rootScope, LoginController, $httpBackend, $location;
  
      beforeEach(inject(function($controller, $rootScope, _$httpBackend_, _$location_) {
        scope = $rootScope.$new();
        rootScope = $rootScope.$new();
  
        LoginController = $controller('LoginController', {
          $scope: scope,
          $rootScope: rootScope
        });
  
        $httpBackend = _$httpBackend_;
  
        $location = _$location_;
      }));
  
      it('should show danger when wrong credentials are used', function() {
        scope.credentials = {
          email: 'test@email.com',
          password: 'password'
        }
  
        $httpBackend.expectPOST('/api/v1/user/auth').respond({
          status: 'error',
          error: 'Invalid User'
        });
  
        console.log(scope.status_object);
        scope.authenticate();
        $httpBackend.flush();
  
  
        expect(scope.status_object).toEqualData({text: 'Invalid User', class: 'danger', show: true});
      });
    });
  </code></pre>
  
  <p>In my view, I have an <code>ng-init="init()"</code>. Everything works smoothly on the front end, but when running my test, I get:</p>
  
  <pre><code>PhantomJS 1.9.7 (Mac OS X) LoginController should show danger when wrong credentials are used FAILED
    TypeError: 'undefined' is not a function (evaluating 'expect(scope.status_object).toEqualData({text: 'Invalid User', class: 'danger', show: true})')
        at /myapp/test/karma/unit/controllers/login.spec.js:43
  PhantomJS 1.9.7 (Mac OS X): Executed 4 of 4 (1 FAILED) (0.135 secs / 0.043 secs)
  </code></pre>
  
  <p>Not sure what my test is doing wrong. Any ideas?</p>