describe("fbTablePaging", function () { "use strict"; var DOM: any; var element: ng.IAugmentedJQuery; var link: any; var $scope: any; var innerScope: fb.IFbTablePaging; beforeEach(angular.mock.module('fasit', 'fbMocks')); describe('fb-table-paging elementet', function () { beforeEach(inject(function ($compile, $rootScope) { $scope = $rootScope; DOM = ''; element = angular.element(DOM); link = $compile(element)($scope); $scope.page = 0; $scope.itemsPerPage = 2; $scope.length = 15; $scope.$digest(); innerScope = $scope.$$childTail; })); it('borde finnas', function () { expect(element).not.toBe(null); }); it('har rätt antal element', function () { expect(element.find('li').length).toBe(10); }); it('selected classen sätts på rätt sätt', function () { expect(element.find('li')[1 + $scope.page].classList[1]).toBe('selected'); var newPage = 3; $scope.page = newPage; $scope.$digest(); expect(element.find('li')[1 + newPage].classList[1]).toBe('selected'); expect(element.find('li')[1].classList.length).toBe(1); }); it('navigationsfunktionerna', function () { expect($scope.page).toBe(0); innerScope.prev(); $scope.$digest(); expect($scope.page).toBe(0); $scope.page = 1; $scope.$digest(); innerScope.prev(); $scope.$digest(); expect($scope.page).toBe(0); innerScope.next(); $scope.$digest(); expect($scope.page).toBe(1); var maxPage = $scope.length / $scope.itemsPerPage; $scope.page = maxPage; $scope.$digest(); innerScope.next(); expect($scope.page).toBe(maxPage); }); }); });