import * as React from 'react'; import { AccessibilityState, // @ts-ignore AccessibilityStates was deprecated in RN0.62 https://reactnative.dev/blog/2020/03/26/version-0.62#breaking-changes AccessibilityStates, AccessibilityRole, } from 'react-native'; import { ReactTestInstance, ReactTestRendererJSON } from 'react-test-renderer'; type GetReturn = ReactTestInstance; type GetAllReturn = Array; type QueryReturn = ReactTestInstance | null; type QueryAllReturn = Array | []; type FindReturn = Promise; type FindAllReturn = Promise; interface GetByAPI { getByText: (text: string | RegExp) => ReactTestInstance; getByPlaceholder: (placeholder: string | RegExp) => ReactTestInstance; getByDisplayValue: (value: string | RegExp) => ReactTestInstance; getByTestId: (testID: string) => ReactTestInstance; getAllByTestId: (testID: string) => Array; getAllByText: (text: string | RegExp) => Array; getAllByPlaceholder: ( placeholder: string | RegExp ) => Array; getAllByDisplayValue: (value: string | RegExp) => Array; // Unsafe aliases UNSAFE_getByType:

(type: React.ComponentType

) => ReactTestInstance; UNSAFE_getAllByType:

( type: React.ComponentType

) => Array; UNSAFE_getByProps: (props: Record) => ReactTestInstance; UNSAFE_getAllByProps: ( props: Record ) => Array; // Removed /** * @deprecated This function has been removed. Please use other queries. */ getByName: (name: React.ReactType | string) => ReactTestInstance; /** * @deprecated This function has been renamed to `UNSAFE_getByType`. */ getByType:

(type: React.ComponentType

) => ReactTestInstance; /** * @deprecated This function has been renamed to `UNSAFE_getByProps`. */ getByProps: (props: Record) => ReactTestInstance; /** * @deprecated This function has been removed. Please use other queries. */ getAllByName: (name: React.ReactType | string) => Array; /** * @deprecated This function has been renamed to `UNSAFE_getAllByType`. */ getAllByType:

(type: React.ComponentType

) => Array; /** * @deprecated This function has been renamed to `UNSAFE_getAllByProps`. */ getAllByProps: (props: Record) => Array; } interface QueryByAPI { queryByText: (name: string | RegExp) => ReactTestInstance | null; queryByPlaceholder: ( placeholder: string | RegExp ) => ReactTestInstance | null; queryByDisplayValue: (value: string | RegExp) => ReactTestInstance | null; queryByTestId: (testID: string) => ReactTestInstance | null; queryAllByTestId: (testID: string) => Array | null; queryAllByText: (text: string | RegExp) => Array | []; queryAllByPlaceholder: ( placeholder: string | RegExp ) => Array | []; queryAllByDisplayValue: ( value: string | RegExp ) => Array | []; // Unsafe aliases UNSAFE_queryByType:

( type: React.ComponentType

) => ReactTestInstance | null; UNSAFE_queryAllByType:

( type: React.ComponentType

) => Array | []; UNSAFE_queryByProps: (props: Record) => ReactTestInstance | null; UNSAFE_queryAllByProps: ( props: Record ) => Array | []; // Removed /** * @deprecated This function has been removed. Please use other queries. */ queryByName: (name: React.ReactType | string) => ReactTestInstance | null; /** * @deprecated This function has been renamed to `UNSAFE_queryByType`. */ queryByType:

(type: React.ComponentType

) => ReactTestInstance | null; /** * @deprecated This function has been renamed to `UNSAFE_queryByProps`. */ queryByProps: (props: Record) => ReactTestInstance | null; /** * @deprecated This function has been removed. Please use other queries. */ queryAllByName: ( name: React.ReactType | string ) => Array | []; /** * @deprecated This function has been renamed to `UNSAFE_queryAllByType`. */ queryAllByType:

( type: React.ComponentType

) => Array | []; /** * @deprecated This function has been renamed to `UNSAFE_queryAllByProps`. */ queryAllByProps: ( props: Record ) => Array | []; } interface FindByAPI { findByText: ( text: string | RegExp, waitForOptions?: WaitForOptions ) => FindReturn; findByPlaceholder: ( placeholder: string | RegExp, waitForOptions?: WaitForOptions ) => FindReturn; findByDisplayValue: ( value: string | RegExp, waitForOptions?: WaitForOptions ) => FindReturn; findByTestId: (testID: string, waitForOptions?: WaitForOptions) => FindReturn; findAllByText: ( text: string | RegExp, waitForOptions?: WaitForOptions ) => FindAllReturn; findAllByPlaceholder: ( placeholder: string | RegExp, waitForOptions?: WaitForOptions ) => FindAllReturn; findAllByDisplayValue: ( value: string | RegExp, waitForOptions?: WaitForOptions ) => FindAllReturn; findAllByTestId: ( testID: string, waitForOptions?: WaitForOptions ) => FindAllReturn; } // Not yet available in DefinitelyTyped export type A11yValue = { min?: number; max?: number; now?: number; text?: string; }; type A11yAPI = { // Label getByA11yLabel: (matcher: string | RegExp) => GetReturn; getByLabelText: (matcher: string | RegExp) => GetReturn; getAllByA11yLabel: (matcher: string | RegExp) => GetAllReturn; getAllByLabelText: (matcher: string | RegExp) => GetAllReturn; queryByA11yLabel: (matcher: string | RegExp) => QueryReturn; queryByLabelText: (matcher: string | RegExp) => QueryReturn; queryAllByA11yLabel: (matcher: string | RegExp) => QueryAllReturn; queryAllByLabelText: (matcher: string | RegExp) => QueryAllReturn; findByA11yLabel: ( matcher: string | RegExp, waitForOptions?: WaitForOptions ) => FindReturn; findByLabelText: ( matcher: string | RegExp, waitForOptions?: WaitForOptions ) => FindReturn; findAllByA11yLabel: ( matcher: string | RegExp, waitForOptions?: WaitForOptions ) => FindAllReturn; findAllByLabelText: ( matcher: string | RegExp, waitForOptions?: WaitForOptions ) => FindAllReturn; // Hint getByA11yHint: (matcher: string | RegExp) => GetReturn; getByHintText: (matcher: string | RegExp) => GetReturn; getAllByA11yHint: (matcher: string | RegExp) => GetAllReturn; getAllByHintText: (matcher: string | RegExp) => GetAllReturn; queryByA11yHint: (matcher: string | RegExp) => QueryReturn; queryByHintText: (matcher: string | RegExp) => QueryReturn; queryAllByA11yHint: (matcher: string | RegExp) => QueryAllReturn; queryAllByHintText: (matcher: string | RegExp) => QueryAllReturn; findByA11yHint: ( matcher: string | RegExp, waitForOptions?: WaitForOptions ) => FindReturn; findByHintText: ( matcher: string | RegExp, waitForOptions?: WaitForOptions ) => FindReturn; findAllByA11yHint: ( matcher: string | RegExp, waitForOptions?: WaitForOptions ) => FindAllReturn; findAllByHintText: ( matcher: string | RegExp, waitForOptions?: WaitForOptions ) => FindAllReturn; // Role getByA11yRole: (matcher: AccessibilityRole | RegExp) => GetReturn; getByRole: (matcher: AccessibilityRole | RegExp) => GetReturn; getAllByA11yRole: (matcher: AccessibilityRole | RegExp) => GetAllReturn; getAllByRole: (matcher: AccessibilityRole | RegExp) => GetAllReturn; queryByA11yRole: (matcher: AccessibilityRole | RegExp) => QueryReturn; queryByRole: (matcher: AccessibilityRole | RegExp) => QueryReturn; queryAllByA11yRole: (matcher: AccessibilityRole | RegExp) => QueryAllReturn; queryAllByRole: (matcher: AccessibilityRole | RegExp) => QueryAllReturn; findByA11yRole: ( matcher: AccessibilityRole | RegExp, waitForOptions?: WaitForOptions ) => FindReturn; findByRole: ( matcher: AccessibilityRole | RegExp, waitForOptions?: WaitForOptions ) => FindReturn; findAllByA11yRole: ( matcher: AccessibilityRole | RegExp, waitForOptions?: WaitForOptions ) => FindAllReturn; findAllByRole: ( matcher: AccessibilityRole | RegExp, waitForOptions?: WaitForOptions ) => FindAllReturn; // States getByA11yStates: ( matcher: AccessibilityStates | Array ) => GetReturn; getAllByA11yStates: ( matcher: AccessibilityStates | Array ) => GetAllReturn; queryByA11yStates: ( matcher: AccessibilityStates | Array ) => QueryReturn; queryAllByA11yStates: ( matcher: AccessibilityStates | Array ) => QueryAllReturn; // State getByA11yState: (matcher: AccessibilityState) => GetReturn; getAllByA11yState: (matcher: AccessibilityState) => GetAllReturn; queryByA11yState: (matcher: AccessibilityState) => QueryReturn; queryAllByA11yState: (matcher: AccessibilityState) => QueryAllReturn; findByA11yState: ( matcher: AccessibilityState, waitForOptions?: WaitForOptions ) => FindReturn; findAllByA11yState: ( matcher: AccessibilityState, waitForOptions?: WaitForOptions ) => FindAllReturn; // Value getByA11yValue: (matcher: A11yValue) => GetReturn; getAllByA11yValue: (matcher: A11yValue) => GetAllReturn; queryByA11yValue: (matcher: A11yValue) => QueryReturn; queryAllByA11yValue: (matcher: A11yValue) => QueryAllReturn; findByA11yValue: ( matcher: A11yValue, waitForOptions?: WaitForOptions ) => FindReturn; findAllByA11yValue: ( matcher: A11yValue, waitForOptions?: WaitForOptions ) => FindAllReturn; }; export interface Thenable { then: (resolve: () => any, reject?: () => any) => any; } export interface RenderOptions { wrapper?: React.ComponentType; createNodeMock?: (element: React.ReactElement) => any; } type Queries = GetByAPI & QueryByAPI & FindByAPI & A11yAPI; export interface RenderAPI extends Queries { update(nextElement: React.ReactElement): void; rerender(nextElement: React.ReactElement): void; unmount(nextElement?: React.ReactElement): void; toJSON(): ReactTestRendererJSON | null; debug(message?: string): void; } export type FireEventFunction = ( element: ReactTestInstance, eventName: string, ...data: Array ) => any; export type FireEventAPI = FireEventFunction & { press: (element: ReactTestInstance) => any; changeText: (element: ReactTestInstance, ...data: Array) => any; scroll: (element: ReactTestInstance, ...data: Array) => any; }; export declare const render: ( component: React.ReactElement, options?: RenderOptions ) => RenderAPI; export declare const cleanup: () => void; export declare const fireEvent: FireEventAPI; type WaitForOptions = { timeout?: number; interval?: number; }; export type WaitForFunction = ( expectation: () => T, options?: WaitForOptions ) => Promise; export declare const waitFor: WaitForFunction; export type WaitForElementToBeRemovedFunction = ( expectation: () => T, options?: WaitForOptions ) => Promise; export declare const waitForElementToBeRemoved: WaitForElementToBeRemovedFunction; export declare const act: (callback: () => void) => Thenable; export declare const within: (instance: ReactTestInstance) => Queries; /** * @deprecated This function has been removed. Please use `waitFor` function. */ export declare const waitForElement: WaitForFunction; /** * @deprecated This function has been deprecated and will be removed in the next release. */ export declare const flushMicrotasksQueue: () => Promise; /** * @deprecated This function has been removed. */ export declare const shallow:

( instance: ReactTestInstance | React.ReactElement

) => { output: React.ReactElement

};