simplify tests

This commit is contained in:
Mads Rasmussen
2023-11-06 11:46:25 +01:00
parent 38e0ba3a07
commit cc6dd53da8
2 changed files with 34 additions and 24 deletions

View File

@@ -8,6 +8,8 @@ describe('UmbPaginationManager', () => {
beforeEach(() => {
manager = new UmbPaginationManager();
manager.setPageSize(10);
manager.setTotalItems(100);
});
describe('Public API', () => {
@@ -62,8 +64,8 @@ describe('UmbPaginationManager', () => {
describe('Page Size', () => {
it('sets and gets the pageSize value', () => {
manager.setPageSize(10);
expect(manager.getPageSize()).to.equal(10);
manager.setPageSize(5);
expect(manager.getPageSize()).to.equal(5);
});
it('updates the observable', (done) => {
@@ -79,13 +81,11 @@ describe('UmbPaginationManager', () => {
describe('Total Items', () => {
it('sets and gets the totalItems value', () => {
manager.setTotalItems(100);
expect(manager.getTotalItems()).to.equal(100);
manager.setTotalItems(200);
expect(manager.getTotalItems()).to.equal(200);
});
it('updates the observable', (done) => {
manager.setTotalItems(100);
it('updates the observable', (done) => {
manager.totalItems.subscribe((value) => {
expect(value).to.equal(100);
done();
@@ -94,16 +94,12 @@ describe('UmbPaginationManager', () => {
});
it('recalculates the total pages', () => {
manager.setPageSize(5);
manager.setTotalItems(100);
expect(manager.getTotalPages()).to.equal(20);
expect(manager.getTotalPages()).to.equal(10);
});
it('it fall backs to the last page number if the totalPages is less than the currentPage', () => {
manager.setPageSize(5);
manager.setTotalItems(100);
manager.setCurrentPageNumber(10);
manager.setTotalItems(10);
manager.setTotalItems(20);
expect(manager.getCurrentPageNumber()).to.equal(2);
});
});
@@ -114,6 +110,18 @@ describe('UmbPaginationManager', () => {
expect(manager.getCurrentPageNumber()).to.equal(2);
});
it ('cant be set to a value less than 1', () => {
manager.setCurrentPageNumber(0);
expect(manager.getCurrentPageNumber()).to.equal(1);
});
it ('cant be set to a value greater than the total pages', () => {
manager.setPageSize(1);
manager.setTotalItems(2);
manager.setCurrentPageNumber(10);
expect(manager.getCurrentPageNumber()).to.equal(2);
});
it('updates the observable', (done) => {
manager.setCurrentPageNumber(2);
@@ -125,38 +133,32 @@ describe('UmbPaginationManager', () => {
});
it('updates the skip value', () => {
manager.setPageSize(5);
manager.setTotalItems(100);
manager.setCurrentPageNumber(5);
expect(manager.getSkip()).to.equal(20);
expect(manager.getSkip()).to.equal(40);
});
it('dispatches a change event', async () => {
const listener = oneEvent(manager, UmbChangeEvent.TYPE);
manager.setCurrentPageNumber(200);
manager.setCurrentPageNumber(2);
const event = (await listener) as unknown as UmbChangeEvent;
const target = event.target as UmbPaginationManager;
expect(event).to.exist;
expect(event.type).to.equal(UmbChangeEvent.TYPE);
expect(target.getCurrentPageNumber()).to.equal(200);
expect(target.getCurrentPageNumber()).to.equal(2);
});
});
describe('Skip', () => {
it('gets the skip value', () => {
manager.setPageSize(5);
manager.setTotalItems(100);
manager.setCurrentPageNumber(5);
expect(manager.getSkip()).to.equal(20);
expect(manager.getSkip()).to.equal(40);
});
it('updates the observable', (done) => {
manager.setPageSize(5);
manager.setTotalItems(100);
manager.setCurrentPageNumber(5);
manager.skip.subscribe((value) => {
expect(value).to.equal(20);
expect(value).to.equal(40);
done();
})
.unsubscribe();

View File

@@ -80,6 +80,14 @@ export class UmbPaginationManager extends EventTarget {
* @memberof UmbPaginationManager
*/
public setCurrentPageNumber(pageNumber: number) {
if (pageNumber < 1) {
pageNumber = 1;
}
if (pageNumber > this.#totalPages.getValue()) {
pageNumber = this.#totalPages.getValue();
}
this.#currentPage.next(pageNumber);
this.#calculateSkip();
this.dispatchEvent(new UmbChangeEvent());