Skip to content

Commit e6822f7

Browse files
committed
test: test driven
1 parent 48076ee commit e6822f7

File tree

1 file changed

+57
-0
lines changed

1 file changed

+57
-0
lines changed

tests/Select.loadData.spec.tsx

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
/* eslint-disable no-undef, react/no-multi-comp, no-console */
2+
import Tree, { TreeNode } from 'rc-tree';
3+
import React from 'react';
4+
import { render, fireEvent, act } from '@testing-library/react';
5+
6+
import TreeSelect, { SHOW_ALL, SHOW_CHILD, SHOW_PARENT, TreeNode as SelectNode } from '../src';
7+
import { selectNode } from './util';
8+
9+
describe('TreeSelect.loadData', () => {
10+
it('keep sync', async () => {
11+
let renderTimes = 0;
12+
let calledLastId: number | null = null;
13+
14+
const Demo = () => {
15+
const [treeData, setTreeData] = React.useState([
16+
{
17+
title: '0',
18+
value: 0,
19+
isLeaf: false,
20+
},
21+
]);
22+
23+
renderTimes += 1;
24+
const renderId = renderTimes;
25+
26+
const loadData = async () => {
27+
calledLastId = renderId;
28+
setTreeData([
29+
...treeData,
30+
{
31+
title: `${renderId}`,
32+
value: renderId,
33+
isLeaf: true,
34+
},
35+
]);
36+
};
37+
38+
return <TreeSelect open treeData={treeData} loadData={loadData} />;
39+
};
40+
41+
render(<Demo />);
42+
43+
console.log(document.body.innerHTML);
44+
45+
fireEvent.click(document.querySelector('.rc-tree-select-tree-switcher_close'));
46+
await act(async () => {
47+
await Promise.resolve();
48+
});
49+
expect(calledLastId).toBe(renderTimes);
50+
51+
fireEvent.click(document.querySelector('.rc-tree-select-tree-switcher_close'));
52+
await act(async () => {
53+
await Promise.resolve();
54+
});
55+
expect(calledLastId).toBe(renderTimes);
56+
});
57+
});

0 commit comments

Comments
 (0)