define(['common/login/login.controller'], function() {
describe('Login Module', function() {
- var scope, state, controller, AuthMock;
+ var scope, state, controller, location, _AuthMock;
+ var url = '/test';
beforeEach(module('ui.router'));
+ beforeEach(module('app.common.layout'));
beforeEach(module('app.common.login', function($provide) {
- AuthMock = jasmine.createSpyObj('AuthMock', ['isAuthed']);
+ AuthMock = {
+ isAuthed: function() {},
+ login: function() {}
+ };
$provide.value('Auth', AuthMock);
}));
- beforeEach(inject( function($rootScope, $controller, $state) {
+ beforeEach(inject( function($rootScope, $controller, $state, $location) {
scope = $rootScope.$new();
controller = $controller;
state = $state;
+ location = $location;
}));
it('Should load the login state', function() {
controller('LoginCtrl', {$scope: scope, $state: state});
expect(state.href(stateName, {})).toBe('#/login');
});
+
+ it('Should redirect any url to login if not logged', function() {
+ var stateName = 'login';
+ spyOn(AuthMock,'isAuthed').andReturn(false);
+ location.url(url);
+ controller('LoginCtrl', {$scope: scope, $state: state});
+ state.go('main');
+
+ expect(AuthMock.isAuthed).toHaveBeenCalled();
+ expect(state.is("login"));
+ expect(location.url()).toEqual('/login');
+ });
+
+ it('Should not redirect if logged', function() {
+ spyOn(AuthMock,'isAuthed').andReturn(true);
+ location.url(url);
+ controller('LoginCtrl', {$scope: scope, $state: state});
+ state.go('main');
+
+ expect(AuthMock.isAuthed).toHaveBeenCalled();
+ expect(state.is("main"));
+ expect(location.url()).toEqual(url);
+ });
+
+ it('Should call the Auth module', function() {
+ spyOn(AuthMock,'login');
+ controller('LoginCtrl', {$scope: scope, $state: state});
+
+ scope.sendLogin();
+ expect(AuthMock.login).toHaveBeenCalled();
+ });
});
});