Skip to content

Commit 9e9d72d

Browse files
authored
DataGrid: Fix autoscroll when reordering columns using the keyboard when native scrolling is enabled (#30006)
Co-authored-by: Alyar <>
1 parent 7d139e6 commit 9e9d72d

21 files changed

+261
-226
lines changed
58 Bytes
Loading

e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/columnReordering.visual.ts

Lines changed: 134 additions & 133 deletions
Original file line numberDiff line numberDiff line change
@@ -1474,162 +1474,163 @@ test('reorder column to left when adaptability is enabled and there are hidden c
14741474
});
14751475

14761476
// Autoscroll
1477-
test('Auto scroll to the right when column reordering via keyboard', async (t) => {
1478-
const { takeScreenshot, compareResults } = createScreenshotsComparer(t);
1479-
const dataGrid = new DataGrid(DATA_GRID_SELECTOR);
1480-
const firstHeaderCell = dataGrid.getHeaders().getHeaderRow(0).getHeaderCell(0);
1477+
[true, false].forEach((useNative) => {
1478+
test(`${useNative ? 'Native' : 'Simulated'} scrolling: Auto scroll to the right when column reordering via keyboard`, async (t) => {
1479+
const { takeScreenshot, compareResults } = createScreenshotsComparer(t);
1480+
const dataGrid = new DataGrid(DATA_GRID_SELECTOR);
1481+
const firstHeaderCell = dataGrid.getHeaders().getHeaderRow(0).getHeaderCell(0);
14811482

1482-
await t
1483-
.click(firstHeaderCell.element)
1484-
.pressKey('ctrl+right')
1485-
.pressKey('ctrl+right')
1486-
.pressKey('ctrl+right')
1487-
.pressKey('ctrl+right');
1483+
await t
1484+
.click(firstHeaderCell.element)
1485+
.pressKey('ctrl+right')
1486+
.pressKey('ctrl+right')
1487+
.pressKey('ctrl+right')
1488+
.pressKey('ctrl+right');
14881489

1489-
await takeScreenshot(
1490-
'auto_scroll_to_right_when_column_reordering',
1491-
dataGrid.element,
1492-
);
1490+
await takeScreenshot(
1491+
`${useNative ? 'native' : 'simulated'}_scrolling_-_auto_scroll_to_right_when_column_reordering`,
1492+
dataGrid.element,
1493+
);
14931494

1494-
await t.expect(compareResults.isValid())
1495-
.ok(compareResults.errorMessages());
1496-
}).before(async () => {
1497-
await createWidget('dxDataGrid', {
1498-
allowColumnReordering: true,
1499-
columnWidth: 200,
1500-
width: 800,
1501-
dataSource: [{
1502-
field1: 'test1',
1503-
field2: 'test2',
1504-
field3: 'test3',
1505-
field4: 'test4',
1506-
field5: 'test5',
1507-
field6: 'test6',
1508-
field7: 'test7',
1509-
field8: 'test8',
1510-
field9: 'test9',
1511-
field10: 'test10',
1512-
}],
1513-
scrolling: {
1514-
useNative: false,
1515-
},
1495+
await t.expect(compareResults.isValid())
1496+
.ok(compareResults.errorMessages());
1497+
}).before(async () => {
1498+
await createWidget('dxDataGrid', {
1499+
allowColumnReordering: true,
1500+
columnWidth: 200,
1501+
width: 800,
1502+
dataSource: [{
1503+
field1: 'test1',
1504+
field2: 'test2',
1505+
field3: 'test3',
1506+
field4: 'test4',
1507+
field5: 'test5',
1508+
field6: 'test6',
1509+
field7: 'test7',
1510+
field8: 'test8',
1511+
field9: 'test9',
1512+
field10: 'test10',
1513+
}],
1514+
scrolling: {
1515+
useNative,
1516+
},
1517+
});
15161518
});
1517-
});
15181519

1519-
test('Auto scroll to the left when column reordering via keyboard', async (t) => {
1520-
const { takeScreenshot, compareResults } = createScreenshotsComparer(t);
1521-
const dataGrid = new DataGrid(DATA_GRID_SELECTOR);
1522-
const lastHeaderCell = dataGrid.getHeaders().getHeaderRow(0).getHeaderCell(9);
1520+
test(`${useNative ? 'Native' : 'Simulated'} scrolling: Auto scroll to the left when column reordering via keyboard`, async (t) => {
1521+
const { takeScreenshot, compareResults } = createScreenshotsComparer(t);
1522+
const dataGrid = new DataGrid(DATA_GRID_SELECTOR);
1523+
const lastHeaderCell = dataGrid.getHeaders().getHeaderRow(0).getHeaderCell(9);
15231524

1524-
await dataGrid.scrollTo(t, { x: 1200 });
1525+
await dataGrid.scrollTo(t, { x: 1200 });
15251526

1526-
await t
1527-
.expect(dataGrid.getScrollLeft())
1528-
.eql(1200);
1527+
await t
1528+
.expect(dataGrid.getScrollLeft())
1529+
.eql(1200);
15291530

1530-
await t
1531-
.click(lastHeaderCell.element)
1532-
.pressKey('ctrl+left')
1533-
.pressKey('ctrl+left')
1534-
.pressKey('ctrl+left')
1535-
.pressKey('ctrl+left');
1531+
await t
1532+
.click(lastHeaderCell.element)
1533+
.pressKey('ctrl+left')
1534+
.pressKey('ctrl+left')
1535+
.pressKey('ctrl+left')
1536+
.pressKey('ctrl+left');
15361537

1537-
await takeScreenshot(
1538-
'auto_scroll_to_left_when_column_reordering',
1539-
dataGrid.element,
1540-
);
1538+
await takeScreenshot(
1539+
`${useNative ? 'native' : 'simulated'}_scrolling_-_auto_scroll_to_left_when_column_reordering`,
1540+
dataGrid.element,
1541+
);
15411542

1542-
await t.expect(compareResults.isValid())
1543-
.ok(compareResults.errorMessages());
1544-
}).before(async () => {
1545-
await createWidget('dxDataGrid', {
1546-
allowColumnReordering: true,
1547-
columnWidth: 200,
1548-
width: 800,
1549-
dataSource: [{
1550-
field1: 'test1',
1551-
field2: 'test2',
1552-
field3: 'test3',
1553-
field4: 'test4',
1554-
field5: 'test5',
1555-
field6: 'test6',
1556-
field7: 'test7',
1557-
field8: 'test8',
1558-
field9: 'test9',
1559-
field10: 'test10',
1560-
}],
1561-
scrolling: {
1562-
useNative: false,
1563-
},
1543+
await t.expect(compareResults.isValid())
1544+
.ok(compareResults.errorMessages());
1545+
}).before(async () => {
1546+
await createWidget('dxDataGrid', {
1547+
allowColumnReordering: true,
1548+
columnWidth: 200,
1549+
width: 800,
1550+
dataSource: [{
1551+
field1: 'test1',
1552+
field2: 'test2',
1553+
field3: 'test3',
1554+
field4: 'test4',
1555+
field5: 'test5',
1556+
field6: 'test6',
1557+
field7: 'test7',
1558+
field8: 'test8',
1559+
field9: 'test9',
1560+
field10: 'test10',
1561+
}],
1562+
scrolling: {
1563+
useNative,
1564+
},
1565+
});
15641566
});
1565-
});
15661567

1567-
test('Auto scroll to the right when column reordering via keyboard when virtual columns are enabled', async (t) => {
1568-
const { takeScreenshot, compareResults } = createScreenshotsComparer(t);
1569-
const dataGrid = new DataGrid(DATA_GRID_SELECTOR);
1570-
const firstHeaderCell = dataGrid.getHeaders().getHeaderRow(0).getHeaderCell(0);
1568+
test(`${useNative ? 'Native' : 'Simulated'} scrolling: Auto scroll to the right when column reordering via keyboard when virtual columns are enabled`, async (t) => {
1569+
const { takeScreenshot, compareResults } = createScreenshotsComparer(t);
1570+
const dataGrid = new DataGrid(DATA_GRID_SELECTOR);
1571+
const firstHeaderCell = dataGrid.getHeaders().getHeaderRow(0).getHeaderCell(0);
15711572

1572-
await t
1573-
.click(firstHeaderCell.element);
1573+
await t.click(firstHeaderCell.element);
15741574

1575-
for (let i = 0; i < 30; i += 1) {
1576-
await t.pressKey('ctrl+right');
1577-
}
1575+
for (let i = 0; i < 30; i += 1) {
1576+
await t.pressKey('ctrl+right');
1577+
}
15781578

1579-
await takeScreenshot(
1580-
'auto_scroll_to_right_when_column_reordering_when_virtual_columns_are_enabled',
1581-
dataGrid.element,
1582-
);
1579+
await takeScreenshot(
1580+
`${useNative ? 'native' : 'simulated'}_scrolling_-_auto_scroll_to_right_when_virtual_columns_are_enabled`,
1581+
dataGrid.element,
1582+
);
15831583

1584-
await t.expect(compareResults.isValid())
1585-
.ok(compareResults.errorMessages());
1586-
}).before(async () => {
1587-
await createWidget('dxDataGrid', {
1588-
allowColumnReordering: true,
1589-
columnWidth: 100,
1590-
width: 800,
1591-
dataSource: getData(1, 30),
1592-
scrolling: {
1593-
useNative: false,
1594-
columnRenderingMode: 'virtual',
1595-
},
1584+
await t.expect(compareResults.isValid())
1585+
.ok(compareResults.errorMessages());
1586+
}).before(async () => {
1587+
await createWidget('dxDataGrid', {
1588+
allowColumnReordering: true,
1589+
columnWidth: 100,
1590+
width: 800,
1591+
dataSource: getData(1, 30),
1592+
scrolling: {
1593+
useNative,
1594+
columnRenderingMode: 'virtual',
1595+
},
1596+
});
15961597
});
1597-
});
15981598

1599-
test('Auto scroll to the left when column reordering via keyboard when virtual columns are enabled', async (t) => {
1600-
const { takeScreenshot, compareResults } = createScreenshotsComparer(t);
1601-
const dataGrid = new DataGrid(DATA_GRID_SELECTOR);
1602-
const lastHeaderCell = dataGrid.getHeaders().getHeaderRow(0).getHeaderCell(29);
1599+
test(`${useNative ? 'Native' : 'Simulated'} scrolling: Auto scroll to the left when column reordering via keyboard when virtual columns are enabled`, async (t) => {
1600+
const { takeScreenshot, compareResults } = createScreenshotsComparer(t);
1601+
const dataGrid = new DataGrid(DATA_GRID_SELECTOR);
1602+
const lastHeaderCell = dataGrid.getHeaders().getHeaderRow(0).getHeaderCell(29);
16031603

1604-
await dataGrid.scrollTo(t, { x: 2200 });
1604+
await dataGrid.scrollTo(t, { x: 2200 });
16051605

1606-
await t
1607-
.expect(dataGrid.getScrollLeft())
1608-
.eql(2200);
1606+
await t
1607+
.expect(dataGrid.getScrollLeft())
1608+
.eql(2200);
16091609

1610-
await t
1611-
.click(lastHeaderCell.element);
1610+
await t
1611+
.click(lastHeaderCell.element);
16121612

1613-
for (let i = 0; i < 30; i += 1) {
1614-
await t.pressKey('ctrl+left');
1615-
}
1613+
for (let i = 0; i < 30; i += 1) {
1614+
await t.pressKey('ctrl+left');
1615+
}
16161616

1617-
await takeScreenshot(
1618-
'auto_scroll_to_left_when_column_reordering_when_virtual_columns_are_enabled',
1619-
dataGrid.element,
1620-
);
1617+
await takeScreenshot(
1618+
`${useNative ? 'native' : 'simulated'}_scrolling_-_auto_scroll_to_left_when_virtual_columns_are_enabled`,
1619+
dataGrid.element,
1620+
);
16211621

1622-
await t.expect(compareResults.isValid())
1623-
.ok(compareResults.errorMessages());
1624-
}).before(async () => {
1625-
await createWidget('dxDataGrid', {
1626-
allowColumnReordering: true,
1627-
columnWidth: 100,
1628-
width: 800,
1629-
dataSource: getData(1, 30),
1630-
scrolling: {
1631-
useNative: false,
1632-
columnRenderingMode: 'virtual',
1633-
},
1622+
await t.expect(compareResults.isValid())
1623+
.ok(compareResults.errorMessages());
1624+
}).before(async () => {
1625+
await createWidget('dxDataGrid', {
1626+
allowColumnReordering: true,
1627+
columnWidth: 100,
1628+
width: 800,
1629+
dataSource: getData(1, 30),
1630+
scrolling: {
1631+
useNative,
1632+
columnRenderingMode: 'virtual',
1633+
},
1634+
});
16341635
});
16351636
});
Loading
Loading
Loading
Loading

e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/auto_scroll_to_left_when_column_reordering.png renamed to e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/simulated_scrolling_-_auto_scroll_to_left_when_column_reordering.png

File renamed without changes.

e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/auto_scroll_to_left_when_column_reordering_when_virtual_columns_are_enabled.png renamed to e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/simulated_scrolling_-_auto_scroll_to_left_when_virtual_columns_are_enabled.png

File renamed without changes.

e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/auto_scroll_to_right_when_column_reordering.png renamed to e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/simulated_scrolling_-_auto_scroll_to_right_when_column_reordering.png

File renamed without changes.

e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/auto_scroll_to_right_when_column_reordering_when_virtual_columns_are_enabled.png renamed to e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/simulated_scrolling_-_auto_scroll_to_right_when_virtual_columns_are_enabled.png

File renamed without changes.

0 commit comments

Comments
 (0)