ng-browse
Version:
unified browse service for angularjs projects
88 lines (86 loc) • 3.25 kB
JavaScript
describe('ng-browse', function () {
var browseService = {},
$location,
$state,
$window,
temp;
// load app
beforeEach(module('ngBrowse'));
// inject all dependencies (for mocking and spying)
beforeEach(inject(function ($injector) {
browseService = $injector.get('$ngBrowse');
$location = $injector.get('$location');
$state = $injector.get('$state');
$window = $injector.get('$window');
temp = $window.location.reload;
$window.location.reload = angular.noop;
}));
// undo overwritings
afterEach(function () {
$window.location.reload = temp;
});
describe('init', function () {
// check if default values are set
it('functions', function () {
expect(browseService.back).toBeDefined();
expect(browseService.navigate).toBeDefined();
expect(browseService.go).toBeDefined();
expect(browseService.current).toBeDefined();
expect(browseService.params).toBeDefined();
expect(browseService.location).toBeDefined();
expect(browseService.reload).toBeDefined();
});
});
describe('callFunctions', function () {
it('back', function () {
spyOn($window.history, 'go');
browseService.back(3);
expect($window.history.go).toHaveBeenCalledWith(3);
});
it('back without param', function () {
spyOn($window.history, 'go');
browseService.back();
expect($window.history.go).toHaveBeenCalledWith(-1);
});
it('navigate wihout notInHistory', function () {
spyOn($location, 'path');
browseService.navigate('senf');
expect($location.path).toHaveBeenCalledWith('senf');
});
it('navigate with notInHistory', function () {
spyOn($location, 'path').and.callThrough();
spyOn($location, 'replace');
browseService.navigate('senf', true);
expect($location.path).toHaveBeenCalledWith('senf');
expect($location.path).toHaveBeenCalled();
});
it('current', function () {
expect(browseService.current()).toBeDefined();
});
it('params', function () {
expect(browseService.params()).toBeDefined();
});
it('go', function () {
spyOn($state, 'go');
browseService.go('asdf', {});
expect($state.go).toHaveBeenCalled();
browseService.go('asdf', {}, true, true);
expect($state.go).toHaveBeenCalled();
});
it('location', function () {
spyOn($location, 'path');
browseService.location();
expect($location.path).toHaveBeenCalled();
});
it('reload', function () {
spyOn($state, 'transitionTo');
browseService.reload();
expect($state.transitionTo).toHaveBeenCalled();
});
it('force full reload', function () {
spyOn($window.location, 'reload');
browseService.reload(true);
expect($window.location.reload).toHaveBeenCalled();
});
});
});