@cainiaofe/cn-ui-m
Version:
72 lines (71 loc) • 2.24 kB
TypeScript
import '@testing-library/jest-dom';
import { render, RenderOptions, RenderResult } from '@testing-library/react';
import * as React from 'react';
type UI = Parameters<typeof render>[0];
declare const AllTheProviders: ({ children }: {
children: React.ReactElement;
}) => React.ReactElement<any, string | React.JSXElementConstructor<any>>;
export interface TestOptions extends Omit<RenderOptions, 'wrapper'> {
/**
* optional additional wrapper, e.g. Context
*
* @example
* ```ts
* // single wrapper
* render(<MyConponent />, {
* wrapper: MyContext
* });
*
* // multiple wrapper
* render(<MyConponent />, {
* wrapper: ({ children }) => (
* <ContextA>
* <ContextB>
* {children}
* <ContextB />
* <ContextA />
* )
* });
*
* ```
*/
wrapper?: typeof AllTheProviders;
}
/**
* Custom render for @testing-library/react
*
* @see https://testing-library.com/docs/react-testing-library/setup#custom-render
* @param component the component under test
* @param options customized test options
*/
export declare const customRender: (ui: UI, { wrapper: Wrapper, ...options }?: TestOptions) => RenderResult;
export * from '@testing-library/react';
export { default as userEvent } from '@testing-library/user-event';
export { customRender as render };
/**
* Validates against common a11y mistakes.
*
* Wrapper for jest-axe
*
* @example
* ```jsx
* it('passes a11y test', async () => {
* await testA11Y(<MyComponent />, options);
* });
*
* // sometimes we need to perform interactions first to render conditional UI
* it('passes a11y test when open', async () => {
* const { container } = render(<MyComponent />, options);
*
* fireEvent.click(screen.getByRole('button'));
*
* await testA11Y(container, options);
* });
* ```
*
* @see https://github.com/nickcolley/jest-axe#testing-react-with-react-testing-library
*/
export declare const testA11y: (ui: UI | Element) => Promise<void>;
export declare const sleep: (time: number) => Promise<void>;
export declare const actSleep: (time: number) => Promise<undefined>;
export declare const mockDrag: (el: Element, options: any[]) => void;