Skip to content

Commit 0324c25

Browse files
authored
TreeList - display items in the original order when search is applied for local data source - T1274434 (DevExpress#28971)
1 parent 3ed36b2 commit 0324c25

File tree

3 files changed

+90
-1
lines changed

3 files changed

+90
-1
lines changed
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
import TreeList from 'devextreme-testcafe-models/treeList';
2+
import url from '../../helpers/getPageUrl';
3+
import { createWidget } from '../../helpers/createWidget';
4+
5+
fixture`SearchPanel`
6+
.page(url(__dirname, '../container.html'));
7+
8+
test('Items are shown in the original order after search is applied - T1274434 - 1', async (t) => {
9+
const treeList = new TreeList('#container');
10+
await treeList.apiSearchByText('test');
11+
12+
await t
13+
.expect((await treeList.apiGetVisibleRows()).length)
14+
.eql(3);
15+
16+
await t
17+
.expect(treeList.apiGetCellValue(0, 0))
18+
.eql('parent1');
19+
20+
await t
21+
.expect(treeList.apiGetCellValue(1, 0))
22+
.eql('test2');
23+
24+
await t
25+
.expect(treeList.apiGetCellValue(2, 0))
26+
.eql('test1');
27+
}).before(async () => createWidget('dxTreeList', {
28+
showBorders: true,
29+
showRowLines: true,
30+
expandedRowKeys: [1],
31+
searchPanel: {
32+
visible: true,
33+
},
34+
columns: ['text'],
35+
dataSource: [
36+
{ id: 1, parentId: 0, text: 'parent1' },
37+
{ id: 2, parentId: 0, text: 'test1' },
38+
{ id: 3, parentId: 1, text: 'test2' },
39+
],
40+
}));
41+
42+
test('Items are shown in the original order after search is applied - T1274434 - 2', async (t) => {
43+
const treeList = new TreeList('#container');
44+
await treeList.apiSearchByText('test');
45+
46+
await t
47+
.expect((await treeList.apiGetVisibleRows()).length)
48+
.eql(3);
49+
50+
await t
51+
.expect(treeList.apiGetCellValue(0, 0))
52+
.eql('parent1');
53+
54+
await t
55+
.expect(treeList.apiGetCellValue(1, 0))
56+
.eql('test2');
57+
58+
await t
59+
.expect(treeList.apiGetCellValue(2, 0))
60+
.eql('test1');
61+
}).before(async () => createWidget('dxTreeList', {
62+
showBorders: true,
63+
showRowLines: true,
64+
expandedRowKeys: [1],
65+
searchPanel: {
66+
visible: true,
67+
},
68+
columns: ['text'],
69+
dataSource: [
70+
{ id: 1, parentId: 0, text: 'parent1' },
71+
{ id: 2, parentId: 0, text: 'test1' },
72+
{ id: 3, parentId: 1, text: 'test2' },
73+
{ id: 4, parentId: 0, text: 'parent2' },
74+
],
75+
}));

packages/devextreme/js/__internal/grids/tree_list/data_source_adapter/m_data_source_adapter.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -634,7 +634,7 @@ class DataSourceAdapterTreeList extends DataSourceAdapter {
634634
const expandedRowKeys = [];
635635

636636
if (parentIds && parentIds.length || this._isReload) {
637-
if (options.fullData && options.fullData.length > options.data.length) {
637+
if (options.fullData) {
638638
data = options.fullData;
639639
visibleItems = visibleItems || options.data;
640640
}

packages/testcafe-models/dataGrid/index.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -666,6 +666,20 @@ export default class DataGrid extends Widget {
666666
},
667667
)();
668668
}
669+
670+
apiSearchByText(text: string): Promise<void> {
671+
const { getInstance } = this;
672+
673+
return ClientFunction(
674+
() => (getInstance() as DataGridInstance).searchByText(text),
675+
{
676+
dependencies: {
677+
getInstance, text
678+
},
679+
},
680+
)();
681+
}
682+
669683
moveRow(rowIndex: number, x: number, y: number, isStart = false): Promise<void> {
670684
const { getInstance } = this;
671685

0 commit comments

Comments
 (0)