Skip to content

Commit 4e6fb60

Browse files
committed
Merge branch 'dmdimitrov/query-builder-improvements' of https://github.com/IgniteUI/igniteui-angular into dmdimitrov/query-builder-improvements
2 parents 2efdde6 + f8c2cac commit 4e6fb60

File tree

1 file changed

+110
-107
lines changed

1 file changed

+110
-107
lines changed

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

Lines changed: 110 additions & 107 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import { IFilteringEventArgs } from '../public_api';
2424
import { SampleTestData } from '../../test-utils/sample-test-data.spec';
2525
import { QueryBuilderConstants, QueryBuilderFunctions } from '../../query-builder/query-builder-functions.spec';
2626
import { By } from '@angular/platform-browser';
27+
import { IgxDateTimeEditorDirective } from '../../directives/date-time-editor/date-time-editor.directive';
2728

2829
describe('IgxGrid - Advanced Filtering #grid - ', () => {
2930
configureTestSuite((() => {
@@ -633,10 +634,11 @@ describe('IgxGrid - Advanced Filtering #grid - ', () => {
633634
QueryBuilderFunctions.clickQueryBuilderColumnSelect(fix);
634635
fix.detectChanges();
635636
const dropdownItems = QueryBuilderFunctions.getQueryBuilderSelectDropdownItems(queryBuilderElement);
636-
expect(dropdownItems.length).toBe(3);
637+
expect(dropdownItems.length).toBe(4);
637638
expect((dropdownItems[0] as HTMLElement).innerText).toBe('HeaderID');
638639
expect((dropdownItems[1] as HTMLElement).innerText).toBe('ProductName');
639640
expect((dropdownItems[2] as HTMLElement).innerText).toBe('Another Field');
641+
expect((dropdownItems[3] as HTMLElement).innerText).toBe('ReleaseTime');
640642
}));
641643

642644
it('Should scroll the adding buttons into view when the add icon of a chip is clicked.', fakeAsync(() => {
@@ -1050,112 +1052,113 @@ describe('IgxGrid - Advanced Filtering #grid - ', () => {
10501052
expect(rows.length).toEqual(1, 'Wrong filtered rows count');
10511053
}));
10521054

1053-
// it('DateTime: Should set editorOptions.dateTimeFormat prop as inputFormat for the filter value editor', fakeAsync(() => {
1054-
// const releaseDateColumn = grid.getColumnByName('ReleaseDate');
1055-
// releaseDateColumn.dataType = 'dateTime';
1056-
// releaseDateColumn.editorOptions = {
1057-
// dateTimeFormat: 'dd-MM-yyyy HH:mm aaaaa'
1058-
// }
1059-
// fix.detectChanges();
1060-
1061-
// grid.openAdvancedFilteringDialog();
1062-
// fix.detectChanges();
1063-
1064-
// GridFunctions.clickAdvancedFilteringInitialAddGroupButton(fix, 0);
1065-
// tick(100);
1066-
// fix.detectChanges();
1067-
1068-
// GridFunctions.clickAdvancedFilteringColumnSelect(fix);
1069-
// fix.detectChanges();
1070-
// const dropdownItems = GridFunctions.getAdvancedFilteringSelectDropdownItems(fix);
1071-
// expect(dropdownItems[4].innerText).toBe('ReleaseDate');
1072-
1073-
// selectColumnInEditModeExpression(fix, 4); // Select 'ReleaseDate' column
1074-
// selectOperatorInEditModeExpression(fix, 0);
1075-
1076-
// const dateTimeEditor = fix.debugElement.query(By.directive(IgxDateTimeEditorDirective))
1077-
// .injector.get(IgxDateTimeEditorDirective);
1078-
// expect(dateTimeEditor.inputFormat.normalize('NFKC')).toMatch(releaseDateColumn.editorOptions.dateTimeFormat);
1079-
// expect(dateTimeEditor.displayFormat.normalize('NFKC')).toMatch(releaseDateColumn.pipeArgs.format);
1080-
// expect(dateTimeEditor.locale).toMatch(grid.locale);
1081-
// }));
1082-
1083-
// it('DateTime: Should set pipeArgs.format as inputFormat for the filter editor if numeric and editorOptions.dateTimeFormat not set', fakeAsync(() => {
1084-
// const releaseDateColumn = grid.getColumnByName('ReleaseDate');
1085-
// releaseDateColumn.dataType = 'dateTime';
1086-
// releaseDateColumn.pipeArgs = {
1087-
// format: 'dd-MM-yyyy HH:mm aaaaa'
1088-
// }
1089-
// fix.detectChanges();
1090-
1091-
// grid.openAdvancedFilteringDialog();
1092-
// fix.detectChanges();
1093-
1094-
// GridFunctions.clickAdvancedFilteringInitialAddGroupButton(fix, 0);
1095-
// tick(100);
1096-
// fix.detectChanges();
1097-
1098-
// GridFunctions.clickAdvancedFilteringColumnSelect(fix);
1099-
// fix.detectChanges();
1100-
1101-
// selectColumnInEditModeExpression(fix, 4);
1102-
// selectOperatorInEditModeExpression(fix, 0);
1103-
1104-
// const dateTimeEditor = fix.debugElement.query(By.directive(IgxDateTimeEditorDirective))
1105-
// .injector.get(IgxDateTimeEditorDirective);
1106-
// expect(dateTimeEditor.inputFormat.normalize('NFKC')).toMatch(releaseDateColumn.pipeArgs.format);
1107-
// expect(dateTimeEditor.displayFormat.normalize('NFKC')).toMatch(releaseDateColumn.pipeArgs.format);
1108-
// }));
1109-
1110-
// it('Time: Should set editorOptions.dateTimeFormat prop as inputFormat for the filter value editor', fakeAsync(() => {
1111-
// const releaseTimeColumn = grid.getColumnByName('ReleaseTime');
1112-
// releaseTimeColumn.editorOptions = {
1113-
// dateTimeFormat: 'hh:mm'
1114-
// }
1115-
// fix.detectChanges();
1116-
1117-
// grid.openAdvancedFilteringDialog();
1118-
// fix.detectChanges();
1119-
1120-
// GridFunctions.clickAdvancedFilteringInitialAddGroupButton(fix, 0);
1121-
// tick(100);
1122-
// fix.detectChanges();
1123-
1124-
// GridFunctions.clickAdvancedFilteringColumnSelect(fix);
1125-
// fix.detectChanges();
1126-
1127-
// selectColumnInEditModeExpression(fix, 6);
1128-
// selectOperatorInEditModeExpression(fix, 0);
1129-
1130-
// const dateTimeEditor = fix.debugElement.query(By.directive(IgxDateTimeEditorDirective))
1131-
// .injector.get(IgxDateTimeEditorDirective);
1132-
// expect(dateTimeEditor.inputFormat.normalize('NFKC')).toMatch(releaseTimeColumn.editorOptions.dateTimeFormat);
1133-
// }));
1134-
1135-
// it('Time: Should set pipeArgs.format as inputFormat for the filter editor if numeric and editorOptions.dateTimeFormat not set', fakeAsync(() => {
1136-
// const releaseTimeColumn = grid.getColumnByName('ReleaseTime');
1137-
// releaseTimeColumn.pipeArgs = {
1138-
// format: 'hh:mm'
1139-
// }
1140-
// fix.detectChanges();
1141-
1142-
// grid.openAdvancedFilteringDialog();
1143-
// fix.detectChanges();
1144-
1145-
// GridFunctions.clickAdvancedFilteringInitialAddGroupButton(fix, 0);
1146-
// tick(100);
1147-
// fix.detectChanges();
1148-
1149-
// GridFunctions.clickAdvancedFilteringColumnSelect(fix);
1150-
// fix.detectChanges();
1151-
1152-
// selectColumnInEditModeExpression(fix, 6);
1153-
// selectOperatorInEditModeExpression(fix, 0);
1154-
1155-
// const dateTimeEditor = fix.debugElement.query(By.directive(IgxDateTimeEditorDirective))
1156-
// .injector.get(IgxDateTimeEditorDirective);
1157-
// expect(dateTimeEditor.inputFormat.normalize('NFKC')).toMatch(releaseTimeColumn.pipeArgs.format);
1158-
// }));
1055+
it('DateTime: Should set editorOptions.dateTimeFormat prop as inputFormat for the filter value editor', fakeAsync(() => {
1056+
const releaseDateColumn = grid.getColumnByName('ReleaseDate');
1057+
releaseDateColumn.dataType = 'dateTime';
1058+
releaseDateColumn.editorOptions = {
1059+
dateTimeFormat: 'dd-MM-yyyy HH:mm aaaaa'
1060+
}
1061+
fix.detectChanges();
1062+
1063+
grid.openAdvancedFilteringDialog();
1064+
fix.detectChanges();
1065+
1066+
const queryBuilderElement: HTMLElement = fix.debugElement.queryAll(By.css(`.${QueryBuilderConstants.QUERY_BUILDER_TREE}`))[0].nativeElement;
1067+
QueryBuilderFunctions.clickQueryBuilderInitialAddGroupButton(fix, 0);
1068+
tick(100);
1069+
fix.detectChanges();
1070+
1071+
QueryBuilderFunctions.clickQueryBuilderColumnSelect(fix);
1072+
fix.detectChanges();
1073+
const dropdownItems = QueryBuilderFunctions.getQueryBuilderSelectDropdownItems(queryBuilderElement);
1074+
expect((dropdownItems[4] as HTMLElement).innerText).toBe('ReleaseDate');
1075+
1076+
QueryBuilderFunctions.selectColumnInEditModeExpression(fix, 4); // Select 'ReleaseDate' column
1077+
QueryBuilderFunctions.selectOperatorInEditModeExpression(fix, 0);
1078+
1079+
const dateTimeEditor = fix.debugElement.query(By.directive(IgxDateTimeEditorDirective))
1080+
.injector.get(IgxDateTimeEditorDirective);
1081+
expect(dateTimeEditor.inputFormat.normalize('NFKC')).toMatch(releaseDateColumn.editorOptions.dateTimeFormat);
1082+
expect(dateTimeEditor.displayFormat.normalize('NFKC')).toMatch(releaseDateColumn.pipeArgs.format);
1083+
expect(dateTimeEditor.locale).toMatch(grid.locale);
1084+
}));
1085+
1086+
it('DateTime: Should set pipeArgs.format as inputFormat for the filter editor if numeric and editorOptions.dateTimeFormat not set', fakeAsync(() => {
1087+
const releaseDateColumn = grid.getColumnByName('ReleaseDate');
1088+
releaseDateColumn.dataType = 'dateTime';
1089+
releaseDateColumn.pipeArgs = {
1090+
format: 'dd-MM-yyyy HH:mm aaaaa'
1091+
}
1092+
fix.detectChanges();
1093+
1094+
grid.openAdvancedFilteringDialog();
1095+
fix.detectChanges();
1096+
1097+
QueryBuilderFunctions.clickQueryBuilderInitialAddGroupButton(fix, 0);
1098+
tick(100);
1099+
fix.detectChanges();
1100+
1101+
QueryBuilderFunctions.clickQueryBuilderColumnSelect(fix);
1102+
fix.detectChanges();
1103+
1104+
QueryBuilderFunctions.selectColumnInEditModeExpression(fix, 4);
1105+
QueryBuilderFunctions.selectOperatorInEditModeExpression(fix, 0);
1106+
1107+
const dateTimeEditor = fix.debugElement.query(By.directive(IgxDateTimeEditorDirective))
1108+
.injector.get(IgxDateTimeEditorDirective);
1109+
expect(dateTimeEditor.inputFormat.normalize('NFKC')).toMatch(releaseDateColumn.pipeArgs.format);
1110+
expect(dateTimeEditor.displayFormat.normalize('NFKC')).toMatch(releaseDateColumn.pipeArgs.format);
1111+
}));
1112+
1113+
it('Time: Should set editorOptions.dateTimeFormat prop as inputFormat for the filter value editor', fakeAsync(() => {
1114+
const releaseTimeColumn = grid.getColumnByName('ReleaseTime');
1115+
releaseTimeColumn.editorOptions = {
1116+
dateTimeFormat: 'hh:mm'
1117+
}
1118+
fix.detectChanges();
1119+
1120+
grid.openAdvancedFilteringDialog();
1121+
fix.detectChanges();
1122+
1123+
QueryBuilderFunctions.clickQueryBuilderInitialAddGroupButton(fix, 0);
1124+
tick(100);
1125+
fix.detectChanges();
1126+
1127+
QueryBuilderFunctions.clickQueryBuilderColumnSelect(fix);
1128+
fix.detectChanges();
1129+
1130+
QueryBuilderFunctions.selectColumnInEditModeExpression(fix, 6);
1131+
QueryBuilderFunctions.selectOperatorInEditModeExpression(fix, 0);
1132+
1133+
const dateTimeEditor = fix.debugElement.query(By.directive(IgxDateTimeEditorDirective))
1134+
.injector.get(IgxDateTimeEditorDirective);
1135+
expect(dateTimeEditor.inputFormat.normalize('NFKC')).toMatch(releaseTimeColumn.editorOptions.dateTimeFormat);
1136+
}));
1137+
1138+
it('Time: Should set pipeArgs.format as inputFormat for the filter editor if numeric and editorOptions.dateTimeFormat not set', fakeAsync(() => {
1139+
const releaseTimeColumn = grid.getColumnByName('ReleaseTime');
1140+
releaseTimeColumn.pipeArgs = {
1141+
format: 'hh:mm'
1142+
}
1143+
fix.detectChanges();
1144+
1145+
grid.openAdvancedFilteringDialog();
1146+
fix.detectChanges();
1147+
1148+
QueryBuilderFunctions.clickQueryBuilderInitialAddGroupButton(fix, 0);
1149+
tick(100);
1150+
fix.detectChanges();
1151+
1152+
QueryBuilderFunctions.clickQueryBuilderColumnSelect(fix);
1153+
fix.detectChanges();
1154+
1155+
QueryBuilderFunctions.selectColumnInEditModeExpression(fix, 6);
1156+
QueryBuilderFunctions.selectOperatorInEditModeExpression(fix, 0);
1157+
1158+
const dateTimeEditor = fix.debugElement.query(By.directive(IgxDateTimeEditorDirective))
1159+
.injector.get(IgxDateTimeEditorDirective);
1160+
expect(dateTimeEditor.inputFormat.normalize('NFKC')).toMatch(releaseTimeColumn.pipeArgs.format);
1161+
}));
11591162

11601163
it('should handle advanced filtering correctly when grid columns and data are dynamically changed', fakeAsync(() => {
11611164
const fixture = TestBed.createComponent(IgxGridAdvancedFilteringDynamicColumnsComponent);

0 commit comments

Comments
 (0)