Browse Source

Page size improved.

pull/453/head
Sebastian 6 years ago
parent
commit
7255ff96de
  1. 26
      frontend/app/features/administration/state/users.state.spec.ts
  2. 23
      frontend/app/shared/state/assets.state.spec.ts
  3. 16
      frontend/app/shared/state/assets.state.ts
  4. 9
      frontend/app/shared/state/contributors.state.spec.ts
  5. 2
      frontend/app/shared/state/rule-events.state.spec.ts

26
frontend/app/features/administration/state/users.state.spec.ts

@ -64,6 +64,15 @@ describe('UsersState', () => {
dialogs.verify(x => x.notifyInfo(It.isAnyString()), Times.never());
});
it('should load page size from local store', () => {
localStore.setup(x => x.getInt('users.pageSize', 10))
.returns(() => 25);
const state = new UsersState(dialogs.object, localStore.object, usersService.object);
expect(state.snapshot.usersPager.pageSize).toBe(25);
});
it('should show notification on load when reload is true', () => {
usersService.setup(x => x.getUsers(10, 0, undefined))
.returns(() => of(oldUsers)).verifiable();
@ -95,14 +104,21 @@ describe('UsersState', () => {
});
it('should load with new pagination when paging', () => {
usersService.setup(x => x.getUsers(10, 0, undefined))
.returns(() => of(oldUsers)).verifiable(Times.once());
usersService.setup(x => x.getUsers(10, 10, undefined))
.returns(() => of(new UsersDto(200, []))).verifiable();
usersState.load().subscribe();
usersState.setPager(new Pager(20, 1, 10)).subscribe();
usersState.setPager(new Pager(200, 1, 10)).subscribe();
expect().nothing();
});
it('should update page size in local store', () => {
usersService.setup(x => x.getUsers(50, 0, undefined))
.returns(() => of(new UsersDto(200, []))).verifiable();
usersState.setPager(new Pager(0, 0, 50));
localStore.verify(x => x.setInt('users.pageSize', 50), Times.atLeastOnce());
expect().nothing();
});

23
frontend/app/shared/state/assets.state.spec.ts

@ -13,6 +13,7 @@ import {
AssetsService,
AssetsState,
DialogService,
LocalStoreService,
Pager,
versioned
} from '@app/shared/internal';
@ -38,15 +39,20 @@ describe('AssetsState', () => {
let dialogs: IMock<DialogService>;
let assetsService: IMock<AssetsService>;
let assetsState: AssetsState;
let localStore: IMock<LocalStoreService>;
beforeEach(() => {
dialogs = Mock.ofType<DialogService>();
localStore = Mock.ofType<LocalStoreService>();
localStore.setup(x => x.getInt('assets.pageSize', 30))
.returns(() => 30);
assetsService = Mock.ofType<AssetsService>();
assetsService.setup(x => x.getTags(app))
.returns(() => of({ tag1: 1, shared: 2, tag2: 1 })).verifiable(Times.atLeastOnce());
assetsState = new AssetsState(appsState.object, assetsService.object, dialogs.object);
assetsState = new AssetsState(appsState.object, assetsService.object, dialogs.object, localStore.object);
});
afterEach(() => {
@ -119,14 +125,21 @@ describe('AssetsState', () => {
});
it('should load with new pagination when paging', () => {
assetsService.setup(x => x.getAssets(app, 30, 0, undefined, It.isValue([])))
assetsService.setup(x => x.getAssets(app, 30, 30, undefined, It.isValue([])))
.returns(() => of(new AssetsDto(200, []))).verifiable();
assetsService.setup(x => x.getAssets(app, 30, 30, undefined, It.isValue([])))
assetsState.setPager(new Pager(200, 1, 30)).subscribe();
expect().nothing();
});
it('should update page size in local store', () => {
assetsService.setup(x => x.getAssets(app, 50, 0, undefined, It.isValue([])))
.returns(() => of(new AssetsDto(200, []))).verifiable();
assetsState.load().subscribe();
assetsState.setPager(new Pager(60, 1, 30)).subscribe();
assetsState.setPager(new Pager(0, 0, 50));
localStore.verify(x => x.setInt('assets.pageSize', 50), Times.atLeastOnce());
expect().nothing();
});

16
frontend/app/shared/state/assets.state.ts

@ -12,6 +12,7 @@ import { tap } from 'rxjs/operators';
import {
compareStrings,
DialogService,
LocalStoreService,
Pager,
shareSubscribed,
State
@ -83,9 +84,20 @@ export class AssetsState extends State<Snapshot> {
constructor(
private readonly appsState: AppsState,
private readonly assetsService: AssetsService,
private readonly dialogs: DialogService
private readonly dialogs: DialogService,
private readonly localStore: LocalStoreService
) {
super({ assets: [], assetsPager: new Pager(0, 0, 30), assetsQueryJson: '', tags: {}, tagsSelected: {} });
super({
assets: [],
assetsPager: Pager.fromLocalStore('assets', localStore, 30),
assetsQueryJson: '',
tags: {},
tagsSelected: {}
});
this.assetsPager.subscribe(pager => {
pager.saveTo('assets', this.localStore);
});
}
public load(isReload = false): Observable<any> {

9
frontend/app/shared/state/contributors.state.spec.ts

@ -100,6 +100,15 @@ describe('ContributorsState', () => {
expect(contributorsState.snapshot.contributorsPager).toEqual(new Pager(20, 1, 10));
});
it('should update page size in local store', () => {
contributorsState.load().subscribe();
contributorsState.setPager(new Pager(0, 0, 50));
localStore.verify(x => x.setInt('contributors.pageSize', 50), Times.atLeastOnce());
expect().nothing();
});
it('should show filtered contributors when searching', () => {
contributorsState.load().subscribe();
contributorsState.search('4');

2
frontend/app/shared/state/rule-events.state.spec.ts

@ -70,7 +70,7 @@ describe('RuleEventsState', () => {
rulesService.setup(x => x.getEvents(app, 10, 10, undefined))
.returns(() => of(new RuleEventsDto(200, [])));
ruleEventsState.setPager(new Pager(20, 1, 10));
ruleEventsState.setPager(new Pager(200, 1, 10));
expect().nothing();

Loading…
Cancel
Save