Skip to content

Commit 6b93e08

Browse files
authored
Merge pull request #232 from UiPath/fix/grid_reset_page_index
Fix(grid): reset page index only for distinct search values
2 parents f874025 + 14c6fb3 commit 6b93e08

File tree

6 files changed

+33
-22
lines changed

6 files changed

+33
-22
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
# v13.3.3 (2022-05-13)
2+
* **grid** update tests for page index reset
3+
* **grid** do not reset page index for same search value
4+
* **grid** set page index in tests
5+
16
# v13.3.2 (2022-05-12)
27
* **grid** set first page when page index exists
38

package-lock.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "angular-components",
3-
"version": "13.3.2",
3+
"version": "13.3.3",
44
"author": {
55
"name": "UiPath Inc",
66
"url": "https://uipath.com"

projects/angular/components/ui-grid/src/managers/filter-manager.spec.ts

Lines changed: 24 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -89,11 +89,6 @@ describe('Component: UiGrid', () => {
8989

9090
describe('Event: search change', () => {
9191
const header = new UiGridHeaderDirective<ITestEntity>();
92-
let searchTerm: string;
93-
94-
beforeEach(() => {
95-
searchTerm = faker.company.bs();
96-
});
9792

9893
it('should emit filters for searchable columns only', (done) => {
9994
header.searchFilter
@@ -103,7 +98,7 @@ describe('Component: UiGrid', () => {
10398
)
10499
.subscribe(filters => expect(filters.length).toEqual(columns.filter(c => c.searchable).length));
105100

106-
manager.searchChange(searchTerm, header);
101+
manager.searchChange('a', header);
107102
});
108103

109104
it('should emit the search term via the header subject', (done) => {
@@ -113,10 +108,10 @@ describe('Component: UiGrid', () => {
113108
finalize(done),
114109
)
115110
.subscribe(term => {
116-
expect(term).toEqual(searchTerm);
111+
expect(term).toEqual('b');
117112
});
118113

119-
manager.searchChange(searchTerm, header);
114+
manager.searchChange('b', header);
120115
});
121116

122117
it('should emit the filter collection via the header subject', (done) => {
@@ -140,21 +135,31 @@ describe('Component: UiGrid', () => {
140135
});
141136
});
142137

143-
manager.searchChange(searchTerm, header);
138+
manager.searchChange('c', header);
144139
});
145140

146-
it('should set page index to 0', (done) => {
141+
it('should not set page index to 0 for same search term', () => {
147142
const footer = new UiGridFooterDirective();
148-
footer.state.pageIndex = 2;
149-
footer.pageChange
150-
.pipe(
151-
first(),
152-
finalize(done),
153-
)
154-
.subscribe((pageChange) => expect(pageChange.pageIndex).toEqual(0));
155-
156-
manager.searchChange(searchTerm, header, footer);
143+
const footerEmitSpy = spyOn(footer.pageChange, 'emit');
144+
manager.searchChange('d', header, footer);
145+
expect(footerEmitSpy).toHaveBeenCalledTimes(0);
157146
});
147+
148+
it('should set page index to 0 for different search term', (done) => {
149+
const footer = new UiGridFooterDirective();
150+
footer.state.pageIndex = 2;
151+
const footerEmitSpy = spyOn(footer.pageChange, 'emit').and.callThrough();
152+
153+
footer.pageChange
154+
.pipe(
155+
first(),
156+
finalize(done),
157+
)
158+
.subscribe((pageChange) => expect(pageChange.pageIndex).toEqual(0));
159+
160+
manager.searchChange('e', header, footer);
161+
expect(footerEmitSpy).toHaveBeenCalledTimes(1);
162+
});
158163
});
159164

160165
describe('Event: filter change', () => {

projects/angular/components/ui-grid/src/managers/filter-manager.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ export class FilterManager<T> {
8383
this._updateFilterValue(column, value, this._mapDropdownItem);
8484

8585
searchChange(term: string | undefined, header: UiGridHeaderDirective<T>, footer?: UiGridFooterDirective) {
86+
if (term === header.searchValue) { return; }
8687
const searchFilterCollection: IFilterModel<T>[] = term ?
8788
this._columns
8889
.filter(column => column.searchable)

projects/angular/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@uipath/angular",
3-
"version": "13.3.2",
3+
"version": "13.3.3",
44
"license": "MIT",
55
"author": {
66
"name": "UiPath Inc",

0 commit comments

Comments
 (0)