Last active
April 19, 2017 19:07
-
-
Save aj-dev/82a392ac2076973b4a770e0bfeafa926 to your computer and use it in GitHub Desktop.
`anon.login.route` state unit tests
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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