MCPcopy
hub / github.com/DevCloudFE/ng-devui / headerDrag

Function headerDrag

devui/data-table/data-table-column.spec.ts:1476–1506  ·  view source on GitHub ↗
(fixture: ComponentFixture<TestDataTableColumnDragComponent>)

Source from the content-addressed store, hash-verified

1474});
1475
1476function headerDrag(fixture: ComponentFixture<TestDataTableColumnDragComponent>) {
1477 const debugEl = fixture.debugElement;
1478 let dHeaderCells = debugEl.queryAll(By.css('.devui-data-table table.devui-table thead tr th'));
1479 expect(dHeaderCells[1].nativeElement.textContent).toContain('First Name');
1480 expect(dHeaderCells[2].nativeElement.textContent).toContain('Last Name');
1481
1482 const columnFirstNameDragIcon = dHeaderCells[1].query(By.css('.drag-icon'));
1483 columnFirstNameDragIcon.nativeElement.style.visibility = 'visible';
1484
1485 const { x: fromX, y: fromY } = columnFirstNameDragIcon.nativeElement.getBoundingClientRect();
1486 const { x: moveToX, y: moveToY, width, height } = dHeaderCells[2].nativeElement.getBoundingClientRect();
1487 const mouseDownEvt = createMouseEvent('mousedown', fromX, fromY);
1488 const mouseMoveEvt = createMouseEvent('mousemove', moveToX + width, moveToY + height / 2);
1489 const mouseUpEvt = createMouseEvent('mouseup');
1490 columnFirstNameDragIcon.nativeElement.dispatchEvent(mouseDownEvt);
1491 tick(); // emit onTap, setTimeout: wait for mousemove & mouseup addEventListener
1492 document.documentElement.dispatchEvent(mouseMoveEvt); // emit handleMouseMove, add event listener to grab
1493 tick();
1494 document.documentElement.dispatchEvent(mouseDownEvt); // emit grab
1495 tick(); // add event listener mouse move
1496 document.documentElement.dispatchEvent(mouseMoveEvt); // emit startBecauseMouseMoved
1497 tick();
1498 document.documentElement.dispatchEvent(mouseMoveEvt); // emit drag
1499 tick();
1500 document.documentElement.dispatchEvent(mouseUpEvt); // emit release
1501 flush();
1502 fixture.detectChanges();
1503 dHeaderCells = debugEl.queryAll(By.css('.devui-data-table table.devui-table thead tr th'));
1504 expect(dHeaderCells[1].nativeElement.textContent).toContain('Last Name');
1505 expect(dHeaderCells[2].nativeElement.textContent).toContain('First Name');
1506}

Callers 1

Calls 4

createMouseEventFunction · 0.90
cssMethod · 0.80
getBoundingClientRectMethod · 0.80
dispatchEventMethod · 0.80

Tested by

no test coverage detected