Skip to content

Commit 7f3c93b

Browse files
committed
[test](SqlManagementException): Add unit test case
1 parent 113a474 commit 7f3c93b

File tree

20 files changed

+11272
-3
lines changed

20 files changed

+11272
-3
lines changed

packages/sqle/src/page/SqlManagementException/Common/Form/__tests__/__snapshots__/index.test.tsx.snap

Lines changed: 1589 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
import {
2+
renderWithReduxAndTheme,
3+
renderHooksWithTheme
4+
} from '@actiontech/shared/lib/testUtil/customRender';
5+
import { Form } from 'antd';
6+
import SqlManagementExceptionForm from '../index';
7+
import { SqlManagementExceptionFormFieldType } from '../../../index.type';
8+
import instance from '../../../../../testUtils/mockApi/instance';
9+
import { mockUseDbServiceDriver } from '@actiontech/shared/lib/testUtil/mockHook/mockUseDbServiceDriver';
10+
import { cleanup, act, screen, fireEvent } from '@testing-library/react';
11+
import { getBySelector } from '@actiontech/shared/lib/testUtil/customQuery';
12+
13+
describe('sqle/SqlManagementException/SqlManagementExceptionForm', () => {
14+
let getInstanceTipListSpy: jest.SpyInstance;
15+
beforeEach(() => {
16+
jest.useFakeTimers();
17+
mockUseDbServiceDriver();
18+
getInstanceTipListSpy = instance.getInstanceTipList();
19+
});
20+
21+
afterEach(() => {
22+
jest.useRealTimers();
23+
cleanup();
24+
});
25+
26+
const customRender = () => {
27+
const { result } = renderHooksWithTheme(() =>
28+
Form.useForm<SqlManagementExceptionFormFieldType>()
29+
);
30+
return renderWithReduxAndTheme(
31+
<SqlManagementExceptionForm form={result.current[0]} />
32+
);
33+
};
34+
35+
it('should match snapshot', () => {
36+
const { baseElement } = customRender();
37+
expect(baseElement).toMatchSnapshot();
38+
expect(getInstanceTipListSpy).toHaveBeenCalledTimes(1);
39+
expect(screen.getByLabelText('字符串')).toBeChecked();
40+
expect(screen.getByLabelText('SQL语句')).toBeInTheDocument();
41+
});
42+
43+
it('render switch match type ', async () => {
44+
const { baseElement } = customRender();
45+
await act(async () => jest.advanceTimersByTime(3000));
46+
47+
expect(screen.getByLabelText('字符串')).toBeChecked();
48+
expect(screen.getByLabelText('SQL语句')).toBeInTheDocument();
49+
50+
fireEvent.click(screen.getByText('SQL指纹'));
51+
await act(async () => jest.advanceTimersByTime(0));
52+
expect(screen.getByLabelText('SQL指纹')).toBeChecked();
53+
expect(screen.getByLabelText('SQL语句')).toBeInTheDocument();
54+
expect(baseElement).toMatchSnapshot();
55+
56+
fireEvent.click(screen.getByText('IP'));
57+
await act(async () => jest.advanceTimersByTime(0));
58+
expect(getBySelector('#ip')).toBeInTheDocument();
59+
expect(baseElement).toMatchSnapshot();
60+
61+
fireEvent.click(screen.getByText('网段'));
62+
await act(async () => jest.advanceTimersByTime(0));
63+
expect(getBySelector('#cidr')).toBeInTheDocument();
64+
expect(baseElement).toMatchSnapshot();
65+
66+
fireEvent.click(screen.getByText('主机名'));
67+
await act(async () => jest.advanceTimersByTime(0));
68+
expect(getBySelector('#host')).toBeInTheDocument();
69+
expect(baseElement).toMatchSnapshot();
70+
71+
fireEvent.click(screen.getByText('数据源'));
72+
await act(async () => jest.advanceTimersByTime(0));
73+
expect(getBySelector('#instance')).toBeInTheDocument();
74+
expect(baseElement).toMatchSnapshot();
75+
});
76+
});

packages/sqle/src/page/SqlManagementException/Common/Form/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,13 +69,13 @@ const SqlManagementExceptionForm: React.FC<SqlManagementExceptionFormProps> = ({
6969
},
7070
...whiteSpaceSql()
7171
]}
72+
initialValue="/* input your sql */"
7273
>
7374
<MonacoEditor
7475
width="100%"
7576
height="500px"
7677
language="sql"
7778
onMount={editorDidMount}
78-
defaultValue="/* input your sql */"
7979
/>
8080
</Form.Item>
8181
</EmptyBox>

0 commit comments

Comments
 (0)