@@ -4,7 +4,7 @@ import { By } from '@angular/platform-browser';
44import { NoopAnimationsModule } from '@angular/platform-browser/animations' ;
55import { IgxGridComponent } from './grid.component' ;
66import { SampleTestData } from '../../test-utils/sample-test-data.spec' ;
7- import { ViewChild , Component } from '@angular/core' ;
7+ import { ViewChild , Component , DebugElement } from '@angular/core' ;
88import { IgxColumnLayoutComponent } from '../columns/column-layout.component' ;
99import { wait , UIInteractions } from '../../test-utils/ui-interactions.spec' ;
1010import { DefaultSortingStrategy , SortingDirection } from '../../data-operations/sorting-strategy' ;
@@ -30,6 +30,7 @@ interface ColGroupsType {
3030describe ( 'IgxGrid - multi-row-layout Integration #grid - ' , ( ) => {
3131 let fixture : ComponentFixture < FixtureType > ;
3232 let grid : IgxGridComponent ;
33+ const COLUMN_HEADER_CLASS = '.igx-grid-th' ;
3334 configureTestSuite ( ( ( ) => {
3435 return TestBed . configureTestingModule ( {
3536 imports : [
@@ -900,6 +901,30 @@ describe('IgxGrid - multi-row-layout Integration #grid - ', () => {
900901 expect ( ( grid . verticalScrollContainer . getScroll ( ) . children [ 0 ] as HTMLElement ) . offsetHeight -
901902 grid . verticalScrollContainer . getScroll ( ) . offsetHeight ) . toBeLessThanOrEqual ( 0 ) ;
902903 } ) ;
904+
905+ it ( 'should create only one ghost element when dragging a column' , async ( ) => {
906+ const headers : DebugElement [ ] = fixture . debugElement . queryAll ( By . css ( COLUMN_HEADER_CLASS ) ) ;
907+
908+ const header = headers [ 1 ] . nativeElement ;
909+ UIInteractions . simulatePointerEvent ( 'pointerdown' , header , 50 , 50 ) ;
910+ await wait ( ) ;
911+ fixture . detectChanges ( ) ;
912+
913+ UIInteractions . simulatePointerEvent ( 'pointermove' , header , 56 , 56 ) ;
914+ await wait ( 50 ) ;
915+ fixture . detectChanges ( ) ;
916+
917+ UIInteractions . simulatePointerEvent ( 'pointermove' , header , 230 , 30 ) ;
918+ await wait ( ) ;
919+ fixture . detectChanges ( ) ;
920+
921+ const ghost = fixture . debugElement . queryAll ( By . css ( '.igx-grid__drag-ghost-image' ) ) ;
922+ expect ( ghost . length ) . toEqual ( 1 ) ;
923+
924+ UIInteractions . simulatePointerEvent ( 'pointerup' , header , 230 , 30 ) ;
925+ await wait ( ) ;
926+ fixture . detectChanges ( ) ;
927+ } ) ;
903928 } ) ;
904929
905930 describe ( 'Resizing' , ( ) => {
@@ -1339,6 +1364,19 @@ export class ColumnLayoutGroupingTestComponent extends ColumnLayoutPinningTestCo
13391364 { field : 'Country' , rowStart : 2 , colStart : 2 , groupable : true } ,
13401365 { field : 'Address' , rowStart : 3 , colStart : 1 , colEnd : 3 }
13411366 ] ;
1367+
1368+ public override colGroups : ColGroupsType [ ] = [
1369+ {
1370+ group : 'group1' ,
1371+ pinned : true ,
1372+ columns : this . cols2
1373+ } ,
1374+ {
1375+ group : 'group2' ,
1376+ pinned : false ,
1377+ columns : this . cols1
1378+ }
1379+ ] ;
13421380}
13431381@Component ( {
13441382 template : `
0 commit comments