Skip to content

Commit 8b32018

Browse files
MKirovaMKirova
authored andcommitted
chore(*): Add test for external sort template set via input.
1 parent c85d03d commit 8b32018

File tree

3 files changed

+48
-1
lines changed

3 files changed

+48
-1
lines changed

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

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -571,6 +571,29 @@ describe('IgxGrid - Grid Sorting #grid', () => {
571571
expect(icon.nativeElement.textContent.toLowerCase().trim()).toBe('expand_more');
572572
});
573573

574+
it('Should allow setting custom templates for header sorting none/ascending/descending icons via Input.', () => {
575+
fixture = TestBed.createComponent(SortByParityComponent);
576+
fixture.detectChanges();
577+
grid = fixture.componentInstance.grid;
578+
grid.sortHeaderIconTemplate = fixture.componentInstance.sortIconTemplate;
579+
grid.sortAscendingHeaderIconTemplate = fixture.componentInstance.sortAscIconTemplate;
580+
grid.sortDescendingHeaderIconTemplate = fixture.componentInstance.sortDescIconTemplate;
581+
fixture.detectChanges();
582+
const header = GridFunctions.getColumnHeader('Name', fixture, grid);
583+
let icon = GridFunctions.getHeaderSortIcon(header);
584+
expect(icon.nativeElement.textContent.toLowerCase().trim()).toBe('arrow_right');
585+
586+
grid.sort({ fieldName: 'Name', dir: SortingDirection.Asc, ignoreCase: false });
587+
fixture.detectChanges();
588+
icon = GridFunctions.getHeaderSortIcon(header);
589+
expect(icon.nativeElement.textContent.toLowerCase().trim()).toBe('arrow_drop_up');
590+
591+
grid.sort({ fieldName: 'Name', dir: SortingDirection.Desc, ignoreCase: false });
592+
fixture.detectChanges();
593+
icon = GridFunctions.getHeaderSortIcon(header);
594+
expect(icon.nativeElement.textContent.toLowerCase().trim()).toBe('arrow_drop_down');
595+
});
596+
574597
it('Should be able to set single sorting mode and sort one column at a time', fakeAsync(() => {
575598
fixture = TestBed.createComponent(SortByParityComponent);
576599
fixture.detectChanges();

projects/igniteui-angular/src/lib/test-utils/grid-samples.spec.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import {
77
} from './grid-base-components.spec';
88
import { IGridSelection } from './grid-interfaces.spec';
99
import { SampleTestData, DataParent } from './sample-test-data.spec';
10-
import { ColumnDefinitions, GridTemplateStrings, EventSubscriptions, TemplateDefinitions } from './template-strings.spec';
10+
import { ColumnDefinitions, GridTemplateStrings, EventSubscriptions, TemplateDefinitions, ExternalTemplateDefinitions } from './template-strings.spec';
1111
import { IgxColumnComponent } from '../grids/columns/column.component';
1212
import { IgxFilteringOperand, IgxNumberFilteringOperand } from '../data-operations/filtering-condition';
1313
import { IFilteringExpressionsTree, FilteringExpressionsTree } from '../data-operations/filtering-expressions-tree';
@@ -2294,8 +2294,18 @@ export class NoColumnWidthGridComponent extends BasicGridComponent {
22942294
'',
22952295
'',
22962296
TemplateDefinitions.sortIconTemplates)
2297+
+ ExternalTemplateDefinitions.sortIconTemplates
22972298
})
22982299
export class SortByParityComponent extends GridDeclaredColumnsComponent implements ISortingStrategy {
2300+
@ViewChild('sortIcon', {read: TemplateRef })
2301+
public sortIconTemplate: TemplateRef<any>;
2302+
2303+
@ViewChild('sortAscIcon', {read: TemplateRef })
2304+
public sortAscIconTemplate: TemplateRef<any>;
2305+
2306+
@ViewChild('sortDescIcon', {read: TemplateRef })
2307+
public sortDescIconTemplate: TemplateRef<any>;
2308+
22992309
public sort(data: any[], fieldName: string, dir: SortingDirection) {
23002310
const key = fieldName;
23012311
const reverse = (dir === SortingDirection.Desc ? -1 : 1);

projects/igniteui-angular/src/lib/test-utils/template-strings.spec.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -514,6 +514,20 @@ export class TemplateDefinitions {
514514
`;
515515
}
516516

517+
export class ExternalTemplateDefinitions {
518+
public static sortIconTemplates = `
519+
<ng-template #sortIcon igxSortHeaderIcon>
520+
<igx-icon>arrow_right</igx-icon>
521+
</ng-template>
522+
<ng-template #sortAscIcon igxSortAscendingHeaderIcon>
523+
<igx-icon>arrow_drop_up</igx-icon>
524+
</ng-template>
525+
<ng-template #sortDescIcon igxSortDescendingHeaderIcon>
526+
<igx-icon>arrow_drop_down</igx-icon>
527+
</ng-template>
528+
`;
529+
}
530+
517531
export class EventSubscriptions {
518532

519533
public static columnInit = ` (columnInit)="columnInit($event)"`;

0 commit comments

Comments
 (0)