mirror of https://github.com/Squidex/squidex.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
138 lines
3.7 KiB
138 lines
3.7 KiB
/*
|
|
* Squidex Headless CMS
|
|
*
|
|
* @license
|
|
* Copyright (c) Squidex UG (haftungsbeschränkt). All rights reserved.
|
|
*/
|
|
|
|
import { PagerComponent } from './pager.component';
|
|
|
|
describe('Pager', () => {
|
|
it('should init with default values', () => {
|
|
const pager = new PagerComponent();
|
|
|
|
pager.paging = { page: 0, pageSize: 10, count: 0, total: 0 };
|
|
pager.ngOnChanges();
|
|
|
|
expect(pager.canGoNext).toBeFalse();
|
|
expect(pager.canGoPrev).toBeFalse();
|
|
|
|
expect(pager.itemFirst).toEqual(0);
|
|
expect(pager.itemLast).toEqual(0);
|
|
});
|
|
|
|
it('should init with first full page', () => {
|
|
const pager = new PagerComponent();
|
|
|
|
pager.paging = { page: 0, pageSize: 10, count: 10, total: 100 };
|
|
pager.ngOnChanges();
|
|
|
|
expect(pager.canGoNext).toBeTrue();
|
|
expect(pager.canGoPrev).toBeFalse();
|
|
|
|
expect(pager.itemFirst).toEqual(1);
|
|
expect(pager.itemLast).toEqual(10);
|
|
});
|
|
it('should init with middle page', () => {
|
|
const pager = new PagerComponent();
|
|
|
|
pager.paging = { page: 4, pageSize: 10, count: 10, total: 100 };
|
|
pager.ngOnChanges();
|
|
|
|
expect(pager.canGoNext).toBeTrue();
|
|
expect(pager.canGoPrev).toBeTrue();
|
|
|
|
expect(pager.itemFirst).toEqual(41);
|
|
expect(pager.itemLast).toEqual(50);
|
|
});
|
|
|
|
it('should init with last full page', () => {
|
|
const pager = new PagerComponent();
|
|
|
|
pager.paging = { page: 9, pageSize: 10, count: 10, total: 100 };
|
|
pager.ngOnChanges();
|
|
|
|
expect(pager.canGoNext).toBeFalse();
|
|
expect(pager.canGoPrev).toBeTrue();
|
|
|
|
expect(pager.itemFirst).toEqual(91);
|
|
expect(pager.itemLast).toEqual(100);
|
|
});
|
|
|
|
it('should init with last partly page', () => {
|
|
const pager = new PagerComponent();
|
|
|
|
pager.paging = { page: 9, pageSize: 10, count: 4, total: 100 };
|
|
pager.ngOnChanges();
|
|
|
|
expect(pager.canGoNext).toBeFalse();
|
|
expect(pager.canGoPrev).toBeTrue();
|
|
|
|
expect(pager.itemFirst).toEqual(91);
|
|
expect(pager.itemLast).toEqual(94);
|
|
});
|
|
|
|
it('should init with last partly page 2', () => {
|
|
const pager = new PagerComponent();
|
|
|
|
pager.paging = { page: 9, pageSize: 10, count: 9, total: 100 };
|
|
pager.ngOnChanges();
|
|
|
|
expect(pager.canGoNext).toBeFalse();
|
|
expect(pager.canGoPrev).toBeTrue();
|
|
|
|
expect(pager.itemFirst).toEqual(91);
|
|
expect(pager.itemLast).toEqual(99);
|
|
});
|
|
|
|
it('should emit if changing size', () => {
|
|
const pager = new PagerComponent();
|
|
|
|
pager.paging = { page: 4, pageSize: 10, count: 10, total: 100 };
|
|
pager.ngOnChanges();
|
|
|
|
let emitted: any;
|
|
|
|
pager.pagingChange.subscribe((value: any) => {
|
|
emitted = value;
|
|
});
|
|
|
|
pager.setPageSize(20);
|
|
|
|
expect(emitted).toEqual({ page: 0, pageSize: 20 });
|
|
});
|
|
|
|
it('should emit if going next', () => {
|
|
const pager = new PagerComponent();
|
|
|
|
pager.paging = { page: 4, pageSize: 10, count: 10, total: 100 };
|
|
pager.ngOnChanges();
|
|
|
|
let emitted: any;
|
|
|
|
pager.pagingChange.subscribe((value: any) => {
|
|
emitted = value;
|
|
});
|
|
|
|
pager.goNext();
|
|
|
|
expect(emitted).toEqual({ page: 5, pageSize: 10 });
|
|
});
|
|
|
|
it('should emit if going prev', () => {
|
|
const pager = new PagerComponent();
|
|
|
|
pager.paging = { page: 4, pageSize: 10, count: 10, total: 100 };
|
|
pager.ngOnChanges();
|
|
|
|
let emitted: any;
|
|
|
|
pager.pagingChange.subscribe((value: any) => {
|
|
emitted = value;
|
|
});
|
|
|
|
pager.goPrev();
|
|
|
|
expect(emitted).toEqual({ page: 3, pageSize: 10 });
|
|
});
|
|
});
|
|
|