Skip to content

Commit 8c3734b

Browse files
Display empty grid message when the data is set and then cleared - master (#12746)
* fix(Tree Grid): Display empty grid message when the data is set and then cleared * refactor(Tree Grid): Modifying the value of flatData and adding tests * fix(Tree Grid): Updating excelStyleFiltering values when there is no data * chore(Tree Grid): Adding tests for ESF message when there is no data
1 parent a113768 commit 8c3734b

File tree

3 files changed

+101
-0
lines changed

3 files changed

+101
-0
lines changed

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

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -699,6 +699,60 @@ describe('IgxTreeGrid - Filtering actions #tGrid', () => {
699699
const emptyTextEl = searchComponent.querySelector('.igx-excel-filter__empty');
700700
expect(emptyTextEl.innerText).toEqual('No matches');
701701
}));
702+
703+
it('Should display message when there is no data', fakeAsync(() => {
704+
let data = tGrid.data;
705+
tGrid.data = [];
706+
GridFunctions.clickExcelFilterIcon(fix, 'ID');
707+
fix.detectChanges();
708+
tick();
709+
710+
let searchComponent = GridFunctions.getExcelStyleSearchComponent(fix, null, 'igx-tree-grid');
711+
let emptyTextEl = searchComponent.querySelector('.igx-excel-filter__empty');
712+
expect(emptyTextEl.innerText).toEqual('No matches');
713+
714+
tGrid.data = data;
715+
GridFunctions.clickExcelFilterIcon(fix, 'ID');
716+
fix.detectChanges();
717+
tick();
718+
719+
searchComponent = GridFunctions.getExcelStyleSearchComponent(fix, null, 'igx-tree-grid');
720+
emptyTextEl = searchComponent.querySelector('.igx-excel-filter__empty');
721+
expect(emptyTextEl).toBeFalsy();
722+
723+
}));
724+
725+
it('Should display message when the last row is deleted', fakeAsync(() => {
726+
tGrid.data = [];
727+
tGrid.primaryKey = 'ID';
728+
const row = {
729+
ID: 0,
730+
Name: 'John Winchester',
731+
HireDate: new Date(2008, 3, 20),
732+
Age: 55,
733+
OnPTO: false,
734+
Employees: []
735+
};
736+
tGrid.addRow(row);
737+
fix.detectChanges();
738+
739+
GridFunctions.clickExcelFilterIcon(fix, 'ID');
740+
fix.detectChanges();
741+
tick();
742+
743+
let searchComponent = GridFunctions.getExcelStyleSearchComponent(fix, null, 'igx-tree-grid');
744+
let emptyTextEl = searchComponent.querySelector('.igx-excel-filter__empty');
745+
expect(emptyTextEl).toBeFalsy();
746+
747+
tGrid.deleteRowById(0);
748+
GridFunctions.clickExcelFilterIcon(fix, 'ID');
749+
fix.detectChanges();
750+
tick();
751+
752+
searchComponent = GridFunctions.getExcelStyleSearchComponent(fix, null, 'igx-tree-grid');
753+
emptyTextEl = searchComponent.querySelector('.igx-excel-filter__empty');
754+
expect(emptyTextEl.innerText).toEqual('No matches');
755+
}));
702756
});
703757

704758
describe('Tree grid ESF templates', () => {

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

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,4 +294,48 @@ describe('IgxTreeGrid Component Tests #tGrid', () => {
294294
});
295295
});
296296

297+
describe('Displaying empty grid message', () => {
298+
beforeEach(waitForAsync(() => {
299+
fix = TestBed.createComponent(IgxTreeGridWrappedInContComponent);
300+
grid = fix.componentInstance.treeGrid;
301+
fix.detectChanges();
302+
}));
303+
304+
it('should display empty grid message when there is no data', () => {
305+
const data: any[] = grid.data;
306+
grid.data = [];
307+
fix.detectChanges();
308+
let emptyGridMessage = fix.debugElement.query(By.css('.igx-grid__tbody-message'));
309+
expect(emptyGridMessage).toBeTruthy();
310+
expect(emptyGridMessage.nativeElement.innerText).toBe('Grid has no data.');
311+
312+
grid.data = data;
313+
fix.detectChanges();
314+
emptyGridMessage = fix.debugElement.query(By.css('.igx-grid__tbody-message'));
315+
expect(emptyGridMessage).toBeFalsy();
316+
});
317+
318+
it('should display empty grid message when last row is deleted', () => {
319+
grid.data = [];
320+
grid.addRow({
321+
ID: 0,
322+
Name: 'John Winchester',
323+
HireDate: new Date(2008, 3, 20),
324+
Age: 55,
325+
OnPTO: false,
326+
Employees: []
327+
});
328+
329+
fix.detectChanges();
330+
let emptyGridMessage = fix.debugElement.query(By.css('.igx-grid__tbody-message'));
331+
expect(emptyGridMessage).toBeFalsy();
332+
333+
grid.deleteRowById(0);
334+
fix.detectChanges();
335+
emptyGridMessage = fix.debugElement.query(By.css('.igx-grid__tbody-message'));
336+
expect(emptyGridMessage).toBeTruthy();
337+
expect(emptyGridMessage.nativeElement.innerText).toBe('Grid has no data.');
338+
});
339+
});
340+
297341
});

projects/igniteui-angular/src/lib/grids/tree-grid/tree-grid.pipes.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@ export class IgxTreeGridHierarchizingPipe implements PipeTransform {
2424
const flatData: any[] = [];
2525

2626
if (!collection || !collection.length) {
27+
this.grid.flatData = collection;
28+
this.grid.records = treeGridRecordsMap;
29+
this.grid.rootRecords = collection;
2730
return collection;
2831
}
2932

0 commit comments

Comments
 (0)