Skip to content

Commit 8d63dd7

Browse files
committed
chore(*): fixing tests, better code approach
1 parent 178e8d4 commit 8d63dd7

File tree

3 files changed

+31
-12
lines changed

3 files changed

+31
-12
lines changed

projects/igniteui-angular/src/lib/grids/api.service.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -443,7 +443,7 @@ export class GridBaseAPIService <T extends IgxGridBaseDirective & GridType> {
443443

444444
public get_all_data(includeTransactions = false): any[] {
445445
const grid = this.grid;
446-
let data = grid.data ? grid.data : [];
446+
let data = grid && grid.data ? grid.data : [];
447447
data = includeTransactions ? grid.dataWithAddedInTransactionRows : data;
448448
return data;
449449
}

projects/igniteui-angular/src/lib/grids/grid-base.directive.ts

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6417,22 +6417,33 @@ export class IgxGridBaseDirective extends DisplayDensityBase implements
64176417
* @hidden @internal
64186418
*/
64196419
public get template(): TemplateRef<any> {
6420-
const hasZeroResultFilter = this.filteredData && this.filteredData.length === 0;
6421-
const hasNoData = !this.data || this.dataLength === 0;
6422-
6423-
if (this.isLoading && (hasZeroResultFilter || hasNoData)) {
6420+
if (this.isLoading && (this.hasZeroResultFilter || this.hasNoData)) {
64246421
return this.loadingGridTemplate ? this.loadingGridTemplate : this.loadingGridDefaultTemplate;
64256422
}
64266423

6427-
if (hasZeroResultFilter) {
6424+
if (this.hasZeroResultFilter) {
64286425
return this.emptyGridTemplate ? this.emptyGridTemplate : this.emptyFilteredGridTemplate;
64296426
}
64306427

6431-
if (hasNoData) {
6428+
if (this.hasNoData) {
64326429
return this.emptyGridTemplate ? this.emptyGridTemplate : this.emptyGridDefaultTemplate;
64336430
}
64346431
}
64356432

6433+
/**
6434+
* @hidden @internal
6435+
*/
6436+
private get hasZeroResultFilter(): boolean {
6437+
return this.filteredData && this.filteredData.length === 0;
6438+
}
6439+
6440+
/**
6441+
* @hidden @internal
6442+
*/
6443+
private get hasNoData(): boolean {
6444+
return !this.data || this.dataLength === 0;
6445+
}
6446+
64366447
/**
64376448
* @hidden @internal
64386449
*/
@@ -6471,7 +6482,7 @@ export class IgxGridBaseDirective extends DisplayDensityBase implements
64716482
* @hidden @internal
64726483
*/
64736484
get shouldOverlayLoading(): boolean {
6474-
return this.isLoading && this.data && this.data.length > 0;
6485+
return this.isLoading && !this.hasNoData && !this.hasZeroResultFilter;
64756486
}
64766487

64776488
/**

projects/igniteui-angular/src/lib/grids/grid/grid.component.spec.ts

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ import { SortingDirection, ISortingExpression } from '../../data-operations/sort
2222
import { configureTestSuite } from '../../test-utils/configure-suite';
2323
import { IgxTabsModule, IgxTabsComponent } from '../../tabs/public_api';
2424
import { GridSelectionMode } from '../common/enums';
25-
25+
import { FilteringExpressionsTree } from '../../data-operations/filtering-expressions-tree';
26+
import { FilteringLogic } from '../../data-operations/filtering-expression.interface';
2627

2728
describe('IgxGrid Component Tests #grid', () => {
2829
const MIN_COL_WIDTH = '136px';
@@ -345,7 +346,7 @@ describe('IgxGrid Component Tests #grid', () => {
345346
grid.filter(columns[0].field, 546000, IgxNumberFilteringOperand.instance().condition('equals'));
346347
fixture.detectChanges();
347348
tick(100);
348-
expect(gridBody.nativeElement.textContent).toEqual(grid.emptyFilteredGridMessage);
349+
expect(gridBody.nativeElement.textContent).not.toEqual(grid.emptyFilteredGridMessage);
349350
expect(parseInt(window.getComputedStyle(gridBody.nativeElement).height, 10)).toBe(548);
350351

351352
// Clear filter and check if grid's body height is restored based on all loaded rows
@@ -397,7 +398,7 @@ describe('IgxGrid Component Tests #grid', () => {
397398
grid.filter(columns[0].field, 546000, IgxNumberFilteringOperand.instance().condition('equals'));
398399
fixture.detectChanges();
399400
tick(100);
400-
expect(gridBody.nativeElement.textContent).toEqual(grid.emptyFilteredGridMessage);
401+
expect(gridBody.nativeElement.textContent).not.toEqual(grid.emptyFilteredGridMessage);
401402

402403
// Clear filter and check if grid's body height is restored based on all loaded rows
403404
grid.clearFilter(columns[0].field);
@@ -484,7 +485,14 @@ describe('IgxGrid Component Tests #grid', () => {
484485
it('should render loading indicator when loading is enabled and the grid has empty filtering pre-applied', fakeAsync(() => {
485486
const fixture = TestBed.createComponent(IgxGridTestComponent);
486487
const grid = fixture.componentInstance.grid;
487-
grid.filter('index', 0, IgxNumberFilteringOperand.instance().condition('equals'), true);
488+
grid.filteringExpressionsTree = new FilteringExpressionsTree(FilteringLogic.And);
489+
grid.filteringExpressionsTree.filteringOperands = [
490+
{
491+
condition: IgxNumberFilteringOperand.instance().condition('equals'),
492+
fieldName: 'index',
493+
searchVal: 0
494+
}
495+
];
488496
grid.isLoading = true;
489497
fixture.detectChanges();
490498
tick(16);

0 commit comments

Comments
 (0)