Skip to content

Commit 198ea49

Browse files
author
donglei
committed
test(uploader): 添加 openFileDialogOnClick 属性的单元测试
1 parent cb7e45d commit 198ea49

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed

tests/uploader.spec.tsx

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1187,6 +1187,53 @@ describe('uploader', () => {
11871187
});
11881188
});
11891189

1190+
describe('openFileDialogOnClick', () => {
1191+
it('should block click when set to false', () => {
1192+
const onClick = jest.fn();
1193+
const { container } = render(<Upload openFileDialogOnClick={false} onClick={onClick} />);
1194+
fireEvent.click(container.querySelector('.rc-upload')!);
1195+
expect(onClick).not.toHaveBeenCalled();
1196+
});
1197+
1198+
it('should allow click when set to true', () => {
1199+
const onClick = jest.fn();
1200+
const { container } = render(<Upload openFileDialogOnClick={true} onClick={onClick} />);
1201+
fireEvent.click(container.querySelector('.rc-upload')!);
1202+
expect(onClick).toHaveBeenCalled();
1203+
});
1204+
1205+
it('should block click when function returns false', () => {
1206+
const onClick = jest.fn();
1207+
const { container } = render(<Upload openFileDialogOnClick={() => false} onClick={onClick} />);
1208+
fireEvent.click(container.querySelector('.rc-upload')!);
1209+
expect(onClick).not.toHaveBeenCalled();
1210+
});
1211+
1212+
it('should allow click when function returns true', () => {
1213+
const onClick = jest.fn();
1214+
const { container } = render(<Upload openFileDialogOnClick={() => true} onClick={onClick} />);
1215+
fireEvent.click(container.querySelector('.rc-upload')!);
1216+
expect(onClick).toHaveBeenCalled();
1217+
});
1218+
1219+
it('should support dynamic function return value', () => {
1220+
let shouldOpen = false;
1221+
const onClick = jest.fn();
1222+
const { container, rerender } = render(<Upload openFileDialogOnClick={() => shouldOpen} onClick={onClick} />);
1223+
1224+
// first click (shouldOpen = false)
1225+
fireEvent.click(container.querySelector('.rc-upload')!);
1226+
expect(onClick).not.toHaveBeenCalled();
1227+
1228+
shouldOpen = true;
1229+
rerender(<Upload openFileDialogOnClick={() => shouldOpen} onClick={onClick} />);
1230+
1231+
// second click (shouldOpen = true)
1232+
fireEvent.click(container.querySelector('.rc-upload')!);
1233+
expect(onClick).toHaveBeenCalled();
1234+
});
1235+
});
1236+
11901237
it('dynamic change action in beforeUpload should work', async () => {
11911238
const Test = () => {
11921239
const [action, setAction] = React.useState('light');

0 commit comments

Comments
 (0)