@@ -444,6 +444,56 @@ describe('IgxQueryBuilder', () => {
444444 expect ( ( dropdownItems [ 4 ] as HTMLElement ) . innerText ) . toBe ( 'Released' ) ;
445445 } ) ) ;
446446
447+ it ( 'ReturnFields should be properly calculated on entity change.' , fakeAsync ( ( ) => {
448+ queryBuilder . expressionTree = QueryBuilderFunctions . generateExpressionTree ( ) ;
449+ queryBuilder . showEntityChangeDialog = false ;
450+ fix . detectChanges ( ) ;
451+
452+ // Verify the returnFields
453+ let exprTreeReturnFields = JSON . stringify ( fix . componentInstance . queryBuilder . expressionTree . returnFields ) ;
454+ expect ( exprTreeReturnFields ) . toBe ( `["*"]` ) ;
455+
456+ // Change the selected return fields
457+ QueryBuilderFunctions . selectFieldsInEditModeExpression ( fix , [ 1 ] ) ;
458+ tick ( 100 ) ;
459+ fix . detectChanges ( ) ;
460+
461+ // Verify the returnFields
462+ exprTreeReturnFields = JSON . stringify ( fix . componentInstance . queryBuilder . expressionTree . returnFields ) ;
463+ expect ( exprTreeReturnFields ) . toBe ( `["OrderId"]` ) ;
464+
465+ // Change the entity
466+ QueryBuilderFunctions . selectEntityAndClickInitialAddCondition ( fix , 0 ) ;
467+
468+ // Verify the returnFields
469+ exprTreeReturnFields = JSON . stringify ( fix . componentInstance . queryBuilder . expressionTree . returnFields ) ;
470+ expect ( exprTreeReturnFields ) . toBe ( `["*"]` ) ;
471+ } ) ) ;
472+
473+ it ( 'ReturnFields should be properly calculated on selectAll click.' , fakeAsync ( ( ) => {
474+ queryBuilder . expressionTree = QueryBuilderFunctions . generateExpressionTree ( ) ;
475+ queryBuilder . showEntityChangeDialog = false ;
476+ fix . detectChanges ( ) ;
477+
478+ // Click selectAll button in order to deselect all fields
479+ QueryBuilderFunctions . selectFieldsInEditModeExpression ( fix , [ 0 ] ) ;
480+ tick ( 100 ) ;
481+ fix . detectChanges ( ) ;
482+
483+ // Verify the returnFields
484+ let exprTreeReturnFields = JSON . stringify ( fix . componentInstance . queryBuilder . expressionTree . returnFields ) ;
485+ expect ( exprTreeReturnFields ) . toBe ( `[]` ) ;
486+
487+ // Click selectAll button in order to select all fields
488+ QueryBuilderFunctions . selectFieldsInEditModeExpression ( fix , [ 0 ] ) ;
489+ tick ( 100 ) ;
490+ fix . detectChanges ( ) ;
491+
492+ // Verify the returnFields
493+ exprTreeReturnFields = JSON . stringify ( fix . componentInstance . queryBuilder . expressionTree . returnFields ) ;
494+ expect ( exprTreeReturnFields ) . toBe ( `["*"]` ) ;
495+ } ) ) ;
496+
447497 it ( 'Column dropdown should contain proper fields based on the entity.' , fakeAsync ( ( ) => {
448498 const queryBuilderElement : HTMLElement = fix . debugElement . queryAll ( By . css ( `.${ QueryBuilderSelectors . QUERY_BUILDER_TREE } ` ) ) [ 0 ] . nativeElement ;
449499
0 commit comments