Advertisement
Guest User

Untitled

a guest
Apr 28th, 2017
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import * as angular from 'angular';
  2. import 'angular-mocks';
  3. import { PageSelector } from './page-selector.component';
  4.  
  5. describe('PageSelector component', () => {
  6.     beforeEach(() => {
  7.         angular
  8.             .module('app', ['app/core/components/page-selector/page-selector.component.html'])
  9.             .component('pageSelector', new PageSelector());
  10.         angular.mock.module('app');
  11.     });
  12.  
  13.     it('should render UL correctly when max-page is set', angular.mock.inject(($rootScope: ng.IRootScopeService, $compile: ng.ICompileService) => {
  14.         const $scope = <any> $rootScope.$new();
  15.         $scope.maxPage = 5;
  16.         const element = $compile('<page-selector max-page="maxPage"></page-selector>')($scope);
  17.         $scope.$digest();
  18.         const elements = element.find('ul');
  19.         expect(elements.length).toEqual(1);
  20.     }));
  21.  
  22.     it('should not render UL when max-page is not set', angular.mock.inject(($rootScope: ng.IRootScopeService, $compile: ng.ICompileService) => {
  23.         const $scope = <any>$rootScope.$new();
  24.         $scope.maxPage = 5;
  25.         const element = $compile('<page-selector></page-selector>')($scope);
  26.         $scope.$digest();
  27.         const elements = element.find('ul');
  28.         expect(elements.length).toEqual(0);
  29.     }));
  30.  
  31.     it('should add disable class to previous button when page eq 1', angular.mock.inject(($rootScope: ng.IRootScopeService, $compile: ng.ICompileService) => {
  32.         const $scope = <any>$rootScope.$new();
  33.         $scope.maxPage = 5;
  34.         $scope.page = 1;
  35.         const element = $compile('<page-selector max-page="maxPage" page="page"></page-selector>')($scope);
  36.         $scope.$digest();
  37.         expect(element.find('li:first').hasClass('disabled')).toBe(true);
  38.     }));
  39.  
  40.     it('should remove disable class from previous button when page gt 1', angular.mock.inject(($rootScope: ng.IRootScopeService, $compile: ng.ICompileService) => {
  41.         const $scope = <any>$rootScope.$new();
  42.         $scope.maxPage = 5;
  43.         $scope.page = 2;
  44.         const element = $compile('<page-selector max-page="maxPage" page="page"></page-selector>')($scope);
  45.         $scope.$digest();
  46.         expect(element.find('li:first').hasClass('disabled')).toBe(false);
  47.     }));
  48.  
  49.     it('should add disable class to next button when page eq maxPage', angular.mock.inject(($rootScope: ng.IRootScopeService, $compile: ng.ICompileService) => {
  50.         const $scope = <any>$rootScope.$new();
  51.         $scope.maxPage = 5;
  52.         $scope.page = 5;
  53.         const element = $compile('<page-selector max-page="maxPage" page="page"></page-selector>')($scope);
  54.         $scope.$digest();
  55.         expect(element.find('li:last').hasClass('disabled')).toBe(true);
  56.     }));
  57.  
  58.     it('should remove disable class from next button when page lt maxPage', angular.mock.inject(($rootScope: ng.IRootScopeService, $compile: ng.ICompileService) => {
  59.         const $scope = <any>$rootScope.$new();
  60.         $scope.maxPage = 5;
  61.         $scope.page = 2;
  62.         const element = $compile('<page-selector max-page="maxPage" page="page"></page-selector>')($scope);
  63.         $scope.$digest();
  64.         expect(element.find('li:last').hasClass('disabled')).toBe(false);
  65.     }));
  66.  
  67.     it('should not calculate amount of pages by default', angular.mock.inject($componentController => {
  68.         const bindings = {
  69.             maxPage: 5
  70.         };
  71.         const component = $componentController('pageSelector', {}, bindings);
  72.         component.$onChanges({});
  73.  
  74.         expect(component.pages).toBeUndefined();
  75.     }));
  76.  
  77.     it('should calculate amount of pages', angular.mock.inject($componentController => {
  78.         const bindings = {
  79.             maxPage: 5
  80.         };
  81.         const component = $componentController('pageSelector', {}, bindings);
  82.         component.$onChanges({
  83.             maxPage: true
  84.         });
  85.  
  86.         expect(component.pages.length).toEqual(5);
  87.     }));
  88.  
  89.     it('should call pageChanged when calling onPageChanged', angular.mock.inject($componentController => {
  90.         const pageSize = 10;
  91.         const bindings = {
  92.             pageChanged: (value) => { }
  93.         };
  94.         spyOn(bindings, 'pageChanged');
  95.  
  96.         const component = $componentController('pageSelector', {}, bindings);
  97.         component.onPageChanged(3);
  98.  
  99.         expect(bindings.pageChanged).toHaveBeenCalledWith(jasmine.objectContaining({
  100.             page: 3
  101.         }));
  102.     }));
  103.  
  104.     it('should render amount of pages', angular.mock.inject(($rootScope: ng.IRootScopeService, $compile: ng.ICompileService) => {
  105.         const $scope = <any>$rootScope.$new();
  106.         $scope.maxPage = 5;
  107.         const element = $compile('<page-selector max-page="maxPage"></page-selector>')($scope);
  108.         $scope.$digest();
  109.         const elements = element.find('li');
  110.         expect(elements.length).toEqual($scope.maxPage + 2);
  111.     }));
  112.  
  113.  
  114.    
  115. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement