Skip to content

Commit

Permalink
TreeList - Expand/collapse mechanism breaks after dragging action in …
Browse files Browse the repository at this point in the history
…the space between the last row and the border (T1228650) (#27687)
  • Loading branch information
Raushen committed Jul 2, 2024
1 parent 220393b commit 4ba929c
Show file tree
Hide file tree
Showing 5 changed files with 87 additions and 4 deletions.
61 changes: 61 additions & 0 deletions e2e/testcafe-devextreme/tests/treeList/rowDragging.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
import TreeList from 'devextreme-testcafe-models/treeList';
import ExpandableCell from 'devextreme-testcafe-models/treeList/expandableCell';

import { createWidget } from '../../helpers/createWidget';
import url from '../../helpers/getPageUrl';

fixture`Row dragging`
.page(url(__dirname, '../container.html'));

const tasksT1228650 = [{
Task_ID: 1,
Task_Subject: 'Plans 2015',
Task_Parent_ID: 0,
}, {
Task_ID: 2,
Task_Subject: 'Health Insurance',
Task_Parent_ID: 1,
}, {
Task_ID: 3,
Task_Subject: 'Training',
Task_Parent_ID: 2,
}];

test('TreeList - Expand/collapse mechanism breaks after dragging action in the space between the last row and the border (T1228650)', async (t) => {
const treeList = new TreeList('#container');
const dataRow = treeList.getDataRow(0);
const expandButton = (dataRow.getDataCell(0) as ExpandableCell).getExpandButton();
const freeSpaceRow = treeList.getFreeSpaceRow();
await t
.dragToElement(freeSpaceRow, dataRow.element)
.click(expandButton)
.expect(treeList.getDataRow(1).element.exists)
.ok();
}).before(async () => {
await createWidget('dxTreeList', {
dataSource: tasksT1228650,
keyExpr: 'Task_ID',
parentIdExpr: 'Task_Parent_ID',
height: 200,
wordWrapEnabled: true,
showBorders: true,
columns: [
{
dataField: 'test',
dataType: 'boolean',
},
{
dataField: 'Task_Subject',
fixed: true,
fixedPosition: 'right',
},
],
showColumnLines: true,
rowDragging: {
allowDropInsideItem: true,
allowReordering: false,
showDragIcons: false,
group: 'none',
},
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -115,8 +115,10 @@ const rowsView = (Base: ModuleType<RowsView>) => class RowsViewRowDraggingExtend

rowDragging.onDragStart?.(e);
},
onDragEnter: () => {
togglePointerEventsStyle(true);
onDragEnter: (e) => {
if (e.fromComponent !== e.toComponent) {
togglePointerEventsStyle(true);
}
},
onDragLeave: () => {
togglePointerEventsStyle(false);
Expand Down
5 changes: 5 additions & 0 deletions packages/testcafe-models/dataGrid/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ export const CLASS = {
headerRow: 'dx-header-row',
footerRow: 'dx-footer-row',
groupFooterRow: 'group-footer',
freeSpaceRow: 'dx-freespace-row',

overlayContent: 'dx-overlay-content',
overlayWrapper: 'dx-overlay-wrapper',
Expand Down Expand Up @@ -244,6 +245,10 @@ export default class DataGrid extends Widget {
return this.element.find(`.${CLASS.dataGrid}-${CLASS.groupFooterRow}`);
}

getFreeSpaceRow(): Selector {
return this.element.find(`.${CLASS.freeSpaceRow}`);
}

getColumnChooser(): ColumnChooser {
return new ColumnChooser(this.body.find(`.${this.addWidgetPrefix(CLASS.columnChooser)}`));
}
Expand Down
15 changes: 15 additions & 0 deletions packages/testcafe-models/treeList/expandableCell.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import DataCell from "../dataGrid/data/cell";

const CLASS = {
expandButton: 'dx-treelist-icon-container',
};

export default class ExpandableCell extends DataCell {
constructor(dataRow: Selector, index: number, widgetName: string) {
super(dataRow, index, widgetName);
}

getExpandButton(): Selector {
return this.element.find(`.${CLASS.expandButton}`);
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import type { WidgetName } from './types';
import DataGrid from './dataGrid';
import type { WidgetName } from '../types';
import DataGrid from '../dataGrid';

export default class TreeList extends DataGrid {
// eslint-disable-next-line class-methods-use-this
Expand Down

0 comments on commit 4ba929c

Please sign in to comment.