@@ -1059,45 +1059,6 @@ describe('IgxQueryBuilder', () => {
10591059}` ) ;
10601060 } ) ) ;
10611061
1062- it ( 'Should disable value fields when isNestedQuery condition is selected' , fakeAsync ( ( ) => {
1063- //Run test for all data type fields of the Order entity
1064- for ( let i = 0 ; i <= 3 ; i ++ ) {
1065- QueryBuilderFunctions . clickQueryBuilderInitialAddGroupButton ( fix , 0 ) ; // Click the initial 'Add Or Group' button.
1066- tick ( 100 ) ;
1067- fix . detectChanges ( ) ;
1068-
1069- QueryBuilderFunctions . selectEntityInEditModeExpression ( fix , 1 ) ; // Select 'Orders' entity
1070- tick ( 100 ) ;
1071- fix . detectChanges ( ) ;
1072-
1073- QueryBuilderFunctions . selectColumnInEditModeExpression ( fix , i ) ; // Select 'OrderId','OrderName','OrderDate','Delivered' column.
1074-
1075- let InConditionIndex ;
1076- switch ( i ) {
1077- case 0 :
1078- case 1 : InConditionIndex = 10 ; break ; // for string and number
1079- case 2 : InConditionIndex = 16 ; break ; //for date
1080- case 3 : InConditionIndex = 7 ; break ; // for boolean
1081- }
1082-
1083- //Verify 'In' disables value input and renders empty sub query
1084- QueryBuilderFunctions . selectOperatorInEditModeExpression ( fix , InConditionIndex ) ; // Select 'In' operator.
1085- QueryBuilderFunctions . verifyEditModeExpressionInputStates ( fix , true , true , false , false ) ;
1086- let nestedTree = fix . debugElement . query ( By . css ( QueryBuilderConstants . QUERY_BUILDER_TREE ) ) ;
1087- expect ( nestedTree ) . toBeDefined ( ) ;
1088-
1089- //Verify 'NotIn' disables value input and renders empty sub query
1090- QueryBuilderFunctions . selectOperatorInEditModeExpression ( fix , InConditionIndex + 1 ) ; // Select 'NotIn' operator.
1091- QueryBuilderFunctions . verifyEditModeExpressionInputStates ( fix , true , true , false , false ) ;
1092- nestedTree = fix . debugElement . query ( By . css ( QueryBuilderConstants . QUERY_BUILDER_TREE ) ) ;
1093- expect ( nestedTree ) . toBeDefined ( ) ;
1094-
1095- const closeBtn = QueryBuilderFunctions . getQueryBuilderExpressionCloseButton ( fix ) ;
1096- closeBtn . click ( ) ;
1097- fix . detectChanges ( ) ;
1098- }
1099- } ) ) ;
1100-
11011062 it ( 'Should correctly apply an \'not-in\' column condition through UI.' , fakeAsync ( ( ) => {
11021063 // Verify there is no expression.
11031064 expect ( queryBuilder . expressionTree ) . toBeUndefined ( ) ;
@@ -1183,6 +1144,45 @@ describe('IgxQueryBuilder', () => {
11831144}` ) ;
11841145 } ) ) ;
11851146
1147+ it ( 'Should disable value fields when isNestedQuery condition is selected' , fakeAsync ( ( ) => {
1148+ //Run test for all data type fields of the Order entity
1149+ for ( let i = 0 ; i <= 3 ; i ++ ) {
1150+ QueryBuilderFunctions . clickQueryBuilderInitialAddGroupButton ( fix , 0 ) ; // Click the initial 'Add Or Group' button.
1151+ tick ( 100 ) ;
1152+ fix . detectChanges ( ) ;
1153+
1154+ QueryBuilderFunctions . selectEntityInEditModeExpression ( fix , 1 ) ; // Select 'Orders' entity
1155+ tick ( 100 ) ;
1156+ fix . detectChanges ( ) ;
1157+
1158+ QueryBuilderFunctions . selectColumnInEditModeExpression ( fix , i ) ; // Select 'OrderId','OrderName','OrderDate','Delivered' column.
1159+
1160+ let InConditionIndex ;
1161+ switch ( i ) {
1162+ case 0 :
1163+ case 1 : InConditionIndex = 10 ; break ; // for string and number
1164+ case 2 : InConditionIndex = 16 ; break ; //for date
1165+ case 3 : InConditionIndex = 7 ; break ; // for boolean
1166+ }
1167+
1168+ //Verify 'In' disables value input and renders empty sub query
1169+ QueryBuilderFunctions . selectOperatorInEditModeExpression ( fix , InConditionIndex ) ; // Select 'In' operator.
1170+ QueryBuilderFunctions . verifyEditModeExpressionInputStates ( fix , true , true , false , false ) ;
1171+ let nestedTree = fix . debugElement . query ( By . css ( QueryBuilderConstants . QUERY_BUILDER_TREE ) ) ;
1172+ expect ( nestedTree ) . toBeDefined ( ) ;
1173+
1174+ //Verify 'NotIn' disables value input and renders empty sub query
1175+ QueryBuilderFunctions . selectOperatorInEditModeExpression ( fix , InConditionIndex + 1 ) ; // Select 'NotIn' operator.
1176+ QueryBuilderFunctions . verifyEditModeExpressionInputStates ( fix , true , true , false , false ) ;
1177+ nestedTree = fix . debugElement . query ( By . css ( QueryBuilderConstants . QUERY_BUILDER_TREE ) ) ;
1178+ expect ( nestedTree ) . toBeDefined ( ) ;
1179+
1180+ const closeBtn = QueryBuilderFunctions . getQueryBuilderExpressionCloseButton ( fix ) ;
1181+ closeBtn . click ( ) ;
1182+ fix . detectChanges ( ) ;
1183+ }
1184+ } ) ) ;
1185+
11861186 it ( 'Should correctly focus the search value input when editing the filtering expression' , fakeAsync ( ( ) => {
11871187 //Create dateTime filtering expression
11881188 const tree = new FilteringExpressionsTree ( FilteringLogic . And , null , 'Orders' , [ 'OrderId' ] ) ;
@@ -1685,6 +1685,31 @@ describe('IgxQueryBuilder', () => {
16851685 ControlsFunction . verifyButtonIsDisabled ( parentCommitBtn as HTMLElement , false ) ;
16861686 } ) ) ;
16871687
1688+ it ( `'In' condition 'commit' button should be disabled if there are no return fields in the nested query.` , fakeAsync ( ( ) => {
1689+ queryBuilder . expressionTree = QueryBuilderFunctions . generateExpressionTree ( ) ;
1690+ fix . detectChanges ( ) ;
1691+ tick ( 100 ) ;
1692+ fix . detectChanges ( ) ;
1693+
1694+ // Double-click the parent chip 'Products' to enter edit mode.
1695+ QueryBuilderFunctions . clickQueryBuilderTreeExpressionChip ( fix , [ 0 ] , true ) ;
1696+ tick ( 50 ) ;
1697+ fix . detectChanges ( ) ;
1698+
1699+ let commitBtn = QueryBuilderFunctions . getQueryBuilderExpressionCommitButton ( fix ) ;
1700+ ControlsFunction . verifyButtonIsDisabled ( commitBtn as HTMLElement , false ) ;
1701+
1702+ // Deselect all fields
1703+ QueryBuilderFunctions . selectFieldsInEditModeExpression ( fix , [ 0 ] , 1 ) ;
1704+ commitBtn = QueryBuilderFunctions . getQueryBuilderExpressionCommitButton ( fix ) ;
1705+ ControlsFunction . verifyButtonIsDisabled ( commitBtn as HTMLElement ) ;
1706+
1707+ // Select all fields
1708+ QueryBuilderFunctions . selectFieldsInEditModeExpression ( fix , [ 0 ] , 1 ) ;
1709+ commitBtn = QueryBuilderFunctions . getQueryBuilderExpressionCommitButton ( fix ) ;
1710+ ControlsFunction . verifyButtonIsDisabled ( commitBtn as HTMLElement , false ) ;
1711+ } ) ) ;
1712+
16881713 it ( 'Should collapse nested query when it is committed.' , fakeAsync ( ( ) => {
16891714 // Click the initial 'Add Or Group' button.
16901715 QueryBuilderFunctions . clickQueryBuilderInitialAddGroupButton ( fix , 0 ) ;
@@ -1711,6 +1736,29 @@ describe('IgxQueryBuilder', () => {
17111736 expect ( fix . debugElement . query ( By . css ( `.${ QueryBuilderConstants . QUERY_BUILDER_TREE } --level-1` ) ) . nativeElement . checkVisibility ( ) ) . toBeFalse ( ) ;
17121737 } ) ) ;
17131738
1739+ it ( `Should discard the changes in the fields if 'close' button of nested query condition is clicked.` , fakeAsync ( ( ) => {
1740+ queryBuilder . expressionTree = QueryBuilderFunctions . generateExpressionTree ( ) ;
1741+ fix . detectChanges ( ) ;
1742+ tick ( 100 ) ;
1743+ fix . detectChanges ( ) ;
1744+ // Verify parent chip expression
1745+ QueryBuilderFunctions . verifyExpressionChipContent ( fix , [ 0 ] , 'OrderId' , 'In' , 'Products / Id' ) ;
1746+
1747+ // Double-click the parent chip 'Products' to enter edit mode.
1748+ QueryBuilderFunctions . clickQueryBuilderTreeExpressionChip ( fix , [ 0 ] , true ) ;
1749+ tick ( 50 ) ;
1750+ fix . detectChanges ( ) ;
1751+
1752+ // Select 'Product Name' fields
1753+ QueryBuilderFunctions . selectFieldsInEditModeExpression ( fix , [ 1 , 2 ] , 1 ) ;
1754+ const closeBtn = QueryBuilderFunctions . getQueryBuilderExpressionCloseButton ( fix ) ;
1755+ closeBtn . click ( ) ;
1756+ tick ( 50 ) ;
1757+ fix . detectChanges ( ) ;
1758+ // Verify parent chip expression is not changed
1759+ QueryBuilderFunctions . verifyExpressionChipContent ( fix , [ 0 ] , 'OrderId' , 'In' , 'Products / Id' ) ;
1760+ } ) ) ;
1761+
17141762 it ( `Should toggle the nested query on 'expand'/'collapse' button click.` , fakeAsync ( ( ) => {
17151763 queryBuilder . expressionTree = QueryBuilderFunctions . generateExpressionTree ( ) ;
17161764 fix . detectChanges ( ) ;
0 commit comments