1

I try test my component with Jasmine and Angular-mock, but I don't know how this do.

This is my component

var angular = require('angular');
'use strict';
module.exports = angular
    .module('app.login.component.login', [])
    .component('login', {
      templateUrl: '/app/js/login/components/login.template.html',
      controller: LoginController
    });

LoginController.$inject = ['$state', 'Auth', 'messages'];
function LoginController($state, Auth, messages) {
  var ctrl = this;
  ctrl.failMessage = messages.NO_AUTH;
  ctrl.failResponse = false;
  ctrl.login = login;

  function login(user){
    ctrl.errors = {};
    Auth.login(user)
      .success(function(result){
        $state.go('profile');
      })
      .error(function(response) {
        ctrl.failResponse = true;
    })
  };
}

I write this test but his dosen't work. Please explain me what I do wrong and show some pattern how test component

describe('Component: login', function() {
  beforeEach(angular.mock.module(require('angular-ui-router')));
  beforeEach(angular.mock.module(loginComponent.name));

  var scope;
  beforeEach(inject(function($rootScope, $compile){
    scope = $rootScope.$new();
  }));

   var controller;
   beforeEach(inject(function($componentController, Auth) {
     ctrl = $componentController('login', {

      $scope:scope});
   }));

   it('df', function() {
     expect(ctrl.login).toBeDefined();
   });
});

1 Answer 1

1

You use $componentController.

beforeEach(inject(function($rootScope, $componentController){
  scope = $rootScope.$new();
  controller = $componentController('myComponent', {$scope: scope});
}));
Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.