// Type definitions for React (react-addons-test-utils) 0.14 // Project: http://facebook.github.io/react/ // Definitions by: Asana , AssureSign , Microsoft // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.8 import { AbstractView, Component, ComponentClass, ReactElement, ReactInstance, ClassType, DOMElement, SFCElement, CElement, ReactHTMLElement, DOMAttributes, SFC } from 'react'; export = TestUtils; declare namespace TestUtils { export interface OptionalEventProperties { bubbles?: boolean; cancelable?: boolean; currentTarget?: EventTarget; defaultPrevented?: boolean; eventPhase?: number; isTrusted?: boolean; nativeEvent?: Event; preventDefault?(): void; stopPropagation?(): void; target?: EventTarget; timeStamp?: Date; type?: string; } export interface SyntheticEventData extends OptionalEventProperties { altKey?: boolean; button?: number; buttons?: number; clientX?: number; clientY?: number; changedTouches?: TouchList; charCode?: boolean; clipboardData?: DataTransfer; ctrlKey?: boolean; deltaMode?: number; deltaX?: number; deltaY?: number; deltaZ?: number; detail?: number; getModifierState?(key: string): boolean; key?: string; keyCode?: number; locale?: string; location?: number; metaKey?: boolean; pageX?: number; pageY?: number; relatedTarget?: EventTarget; repeat?: boolean; screenX?: number; screenY?: number; shiftKey?: boolean; targetTouches?: TouchList; touches?: TouchList; view?: AbstractView; which?: number; } export interface EventSimulator { (element: Element | Component, eventData?: SyntheticEventData): void; } export interface MockedComponentClass { new(): any; } export interface ShallowRenderer { getRenderOutput(): E; render(element: ReactElement, context?: any): void; unmount(): void; } export namespace Simulate { export var blur: EventSimulator; export var change: EventSimulator; export var click: EventSimulator; export var contextMenu: EventSimulator; export var copy: EventSimulator; export var cut: EventSimulator; export var doubleClick: EventSimulator; export var drag: EventSimulator; export var dragEnd: EventSimulator; export var dragEnter: EventSimulator; export var dragExit: EventSimulator; export var dragLeave: EventSimulator; export var dragOver: EventSimulator; export var dragStart: EventSimulator; export var drop: EventSimulator; export var error: EventSimulator; export var focus: EventSimulator; export var input: EventSimulator; export var keyDown: EventSimulator; export var keyPress: EventSimulator; export var keyUp: EventSimulator; export var load: EventSimulator; export var mouseDown: EventSimulator; export var mouseEnter: EventSimulator; export var mouseLeave: EventSimulator; export var mouseMove: EventSimulator; export var mouseOut: EventSimulator; export var mouseOver: EventSimulator; export var mouseUp: EventSimulator; export var paste: EventSimulator; export var scroll: EventSimulator; export var submit: EventSimulator; export var touchCancel: EventSimulator; export var touchEnd: EventSimulator; export var touchMove: EventSimulator; export var touchStart: EventSimulator; export var wheel: EventSimulator; } export function renderIntoDocument( element: DOMElement): T; export function renderIntoDocument( element: SFCElement): void; export function renderIntoDocument>( element: CElement): T; export function renderIntoDocument

( element: ReactElement

): Component

| Element | void; export function mockComponent( mocked: MockedComponentClass, mockTagName?: string): typeof TestUtils; export function isElementOfType( element: ReactElement, type: string): element is ReactHTMLElement; export function isElementOfType

, T extends Element>( element: ReactElement, type: string): element is DOMElement; export function isElementOfType

( element: ReactElement, type: SFC

): element is SFCElement

; export function isElementOfType, C extends ComponentClass

>( element: ReactElement, type: ClassType): element is CElement; export function isDOMComponent(instance: ReactInstance): instance is Element; export function isCompositeComponent(instance: ReactInstance): instance is Component; export function isCompositeComponentWithType, C extends ComponentClass>( instance: ReactInstance, type: ClassType): T; export function findAllInRenderedTree( root: Component, fn: (i: ReactInstance) => boolean): ReactInstance[]; export function scryRenderedDOMComponentsWithClass( root: Component, className: string): Element[]; export function findRenderedDOMComponentWithClass( root: Component, className: string): Element; export function scryRenderedDOMComponentsWithTag( root: Component, tagName: string): Element[]; export function findRenderedDOMComponentWithTag( root: Component, tagName: string): Element; export function scryRenderedComponentsWithType, C extends ComponentClass>( root: Component, type: ClassType): T[]; export function findRenderedComponentWithType, C extends ComponentClass>( root: Component, type: ClassType): T; export function createRenderer(): ShallowRenderer; }