import * as React from 'react'; import { ReactTestInstance } from 'react-test-renderer'; import { render, fireEvent, shallow, flushMicrotasksQueue, debug, waitForElement, } from '../..'; const View = props => props.children; const Text = props => props.children; const TestComponent = () => ( Test component ); const tree = render(); // getByAPI tests const getByNameString: ReactTestInstance = tree.getByName('View'); const getByNameContructor: ReactTestInstance = tree.getByName(View); const getByTextString: ReactTestInstance = tree.getByText(''); const getByTextRegExp: ReactTestInstance = tree.getByText(/View/g); const getByProps: ReactTestInstance = tree.getByProps({ value: 2 }); const getByTestId: ReactTestInstance = tree.getByTestId('test-id'); const getAllByNameString: Array = tree.getAllByName('View'); const getAllByNameConstructor: Array = tree.getAllByName( View ); const getAllByTextString: Array = tree.getAllByText( '' ); const getAllByTextRegExp: Array = tree.getAllByText(/Text/g); const getAllByProps: Array = tree.getAllByProps({ value: 2, }); // queuryByAPI tests const queryByNameString: ReactTestInstance | null = tree.queryByName('View'); const queryByNameConstructor: ReactTestInstance | null = tree.queryByName(View); const queryByTextString: ReactTestInstance | null = tree.queryByText( '' ); const queryByTextRegExp: ReactTestInstance | null = tree.queryByText(/View/g); const queryByProps: ReactTestInstance | null = tree.queryByProps({ value: 2 }); const queryByTestId: ReactTestInstance | null = tree.queryByTestId('test-id'); const queryAllByNameString: Array = tree.getAllByName( 'View' ); const queryAllByNameConstructor: Array = tree.getAllByName( View ); const queryAllByTextString: Array = tree.queryAllByText( 'View' ); const queryAllByTextRegExp: Array = tree.queryAllByText( /View/g ); const queryAllByProps: Array = tree.getAllByProps({ value: 2, }); tree.update(); tree.unmount(); // fireEvent API tests fireEvent(getByNameString, 'press'); fireEvent(getByNameString, 'press', 'data'); fireEvent.press(getByNameString); fireEvent.changeText(getByNameString, 'string'); fireEvent.scroll(getByNameString, 'eventData'); // shallow API const shallowTree: { output: React.ReactElement } = shallow( ); const waitForFlush: Promise = flushMicrotasksQueue(); debug(); debug(getByNameString); const waitBy: Promise = waitForElement( () => tree.getByName('View') ); const waitByAll: Promise> = waitForElement< Array >(() => tree.getAllByName('View'), 1000, 50);