Skip to content

Instantly share code, notes, and snippets.

@aj-dev
Last active April 19, 2017 19:07
Show Gist options
  • Save aj-dev/82a392ac2076973b4a770e0bfeafa926 to your computer and use it in GitHub Desktop.
Save aj-dev/82a392ac2076973b4a770e0bfeafa926 to your computer and use it in GitHub Desktop.
`anon.login.route` state unit tests
describe('login route', function () {
'use strict';
var $httpBackend, $q, $state, $templateCache, $location;
var languageServiceMock = jasmine.createSpyObj('languageService', [
'getTenantLanguages'
]);
var sessionServiceMock = jasmine.createSpyObj('sessionService', [
'getUserPromise'
]);
function mockServices($provide) {
$provide.factory('languageService', function () {
return languageServiceMock;
});
$provide.factory('sessionService', function () {
return sessionServiceMock;
});
}
function services($injector) {
$q = $injector.get('$q');
$state = $injector.get('$state');
$httpBackend = $injector.get('$httpBackend');
$templateCache = $injector.get('$templateCache');
$location = $injector.get('$location');
}
function setUp() {
$httpBackend.whenGET(/assets\/(.+)/).respond(200, {});
}
beforeEach(function () {
module('evbox', 'evbox.templates', mockServices);
inject(services);
setUp();
});
describe('when navigating to `/`', function () {
function goTo(url) {
$location.url(url);
$httpBackend.flush();
}
beforeEach(function () {
languageServiceMock.getTenantLanguages.and.returnValue($q.resolve([]));
});
describe('and user is not logged in', function () {
it('transitions to the login state', function () {
sessionServiceMock.getUserPromise.and.returnValue($q.reject({}));
goTo('/');
expect(languageServiceMock.getTenantLanguages).toHaveBeenCalled();
expect(sessionServiceMock.getUserPromise).toHaveBeenCalled();
expect($state.current.name).toBe('anon.landing.login');
});
});
describe('and user is logged in', function () {
it('redirects to the home state', function () {
sessionServiceMock.getUserPromise.and.returnValue($q.resolve({}));
goTo('/');
expect(languageServiceMock.getTenantLanguages).toHaveBeenCalled();
expect(sessionServiceMock.getUserPromise).toHaveBeenCalled();
expect($state.current.name).toBe('user.home');
});
});
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment