ant-design-testing
TypeScript icon, indicating that this package has built-in type declarations

1.0.0-beta.2 • Public • Published
ant-design-testing

Easier testing for ant-design-based UI library

This library is based on Jest and React-Testing-Library

Usage

$ npm install ant-design-testing -D
#or
$ yarn add ant-design-testing -D
#or
$ pnpm add ant-design-testing -D

Then, modify the prefixCls if you need it, default prefixCls is ant

// setupTests.ts
import { provider } from 'ant-design-testing';

provider({ prefixCls: 'ant' });
// yourInput.test.tsx
import { input } from 'ant-design-testing';

describe("Test input's fire functions", () => {
    test('fireChange', () => {
        const fn = jest.fn();
        const { container } = render(<Input onChange={fn} />);
        input.fireChange(container, 'test');
        expect(fn).toBeCalled();
    });
});

Otherwise, you can use query to find ant-design element quickly, like this

// yourInput.test.tsx
import { input } from 'ant-design-testing';

test('query', () => {
    const { container } = render(<div>
        <Input />
        <Input id='test' />
    </div>);
    const el = input.query(container, 1)
    expect(el.id).toBe('test');
});

A simple example form demo, like this

// your form Component
const MyForm = ({ onSubmit }: any) => {
    const [form] = Form.useForm();
    return (
        <Form form={form}>
            <Form.Item name="username">
                <Input />
            </Form.Item>
            <Form.Item name="password">
                <Input type="password" />
            </Form.Item>
            <Form.Item name="role">
                <Select>
                    <Select.Option value="admin">管理员</Select.Option>
                </Select>
            </Form.Item>
            <Button
                htmlType="submit"
                onClick={() => {
                    onSubmit(form.getFieldsValue());
                }}
            >
                提交
            </Button>
        </Form>
    );
};
// your test file
import { select, input, button } from 'ant-design-testing';

it('test MyForm', () => {
    const fn = jest.fn();
    const { container } = render(
        <MyForm onSubmit={fn}/>
    );
    const userName = input.query(container)!;
    const password = input.query(container, 1)!;
    input.fireChange(userName, 'zhangsan')
    input.fireChange(password, '123456')

    select.fireOpen(container);
    select.fireSelect(document.body, 0)

    button.fireClick(container);

    expect(fn).toBeCalledWith({username: 'zhangsan', password: '123456', role: 'admin'});
});

Notice

Currently, only antd4. x is supported.

Package Sidebar

Install

npm i ant-design-testing

Weekly Downloads

20

Version

1.0.0-beta.2

License

MIT

Unpacked Size

320 kB

Total Files

174

Last publish

Collaborators

  • liuxy0551
  • wxh_jialan
  • shuangxu
  • mortalyoung
  • hayden9653
  • mumiao
  • ziv