1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 | import { AbstractView, Component, ComponentClass,
|
8 | ReactElement, ReactInstance, ClassType,
|
9 | DOMElement, SFCElement, CElement,
|
10 | ReactHTMLElement, DOMAttributes, SFC } from 'react';
|
11 |
|
12 | export = TestUtils;
|
13 |
|
14 | declare namespace TestUtils {
|
15 | export interface OptionalEventProperties {
|
16 | bubbles?: boolean | undefined;
|
17 | cancelable?: boolean | undefined;
|
18 | currentTarget?: EventTarget | undefined;
|
19 | defaultPrevented?: boolean | undefined;
|
20 | eventPhase?: number | undefined;
|
21 | isTrusted?: boolean | undefined;
|
22 | nativeEvent?: Event | undefined;
|
23 | preventDefault?(): void;
|
24 | stopPropagation?(): void;
|
25 | target?: EventTarget | undefined;
|
26 | timeStamp?: Date | undefined;
|
27 | type?: string | undefined;
|
28 | }
|
29 |
|
30 | export interface SyntheticEventData extends OptionalEventProperties {
|
31 | altKey?: boolean | undefined;
|
32 | button?: number | undefined;
|
33 | buttons?: number | undefined;
|
34 | clientX?: number | undefined;
|
35 | clientY?: number | undefined;
|
36 | changedTouches?: TouchList | undefined;
|
37 | charCode?: boolean | undefined;
|
38 | clipboardData?: DataTransfer | undefined;
|
39 | ctrlKey?: boolean | undefined;
|
40 | deltaMode?: number | undefined;
|
41 | deltaX?: number | undefined;
|
42 | deltaY?: number | undefined;
|
43 | deltaZ?: number | undefined;
|
44 | detail?: number | undefined;
|
45 | getModifierState?(key: string): boolean;
|
46 | key?: string | undefined;
|
47 | keyCode?: number | undefined;
|
48 | locale?: string | undefined;
|
49 | location?: number | undefined;
|
50 | metaKey?: boolean | undefined;
|
51 | pageX?: number | undefined;
|
52 | pageY?: number | undefined;
|
53 | relatedTarget?: EventTarget | undefined;
|
54 | repeat?: boolean | undefined;
|
55 | screenX?: number | undefined;
|
56 | screenY?: number | undefined;
|
57 | shiftKey?: boolean | undefined;
|
58 | targetTouches?: TouchList | undefined;
|
59 | touches?: TouchList | undefined;
|
60 | view?: AbstractView | undefined;
|
61 | which?: number | undefined;
|
62 | }
|
63 |
|
64 | export interface EventSimulator {
|
65 | (element: Element | Component<any>, eventData?: SyntheticEventData): void;
|
66 | }
|
67 |
|
68 | export interface MockedComponentClass {
|
69 | new(): any;
|
70 | }
|
71 |
|
72 | export interface ShallowRenderer {
|
73 | getRenderOutput<E extends ReactElement>(): E;
|
74 | render(element: ReactElement, context?: any): void;
|
75 | unmount(): void;
|
76 | }
|
77 |
|
78 | export namespace Simulate {
|
79 | export var blur: EventSimulator;
|
80 | export var change: EventSimulator;
|
81 | export var click: EventSimulator;
|
82 | export var contextMenu: EventSimulator;
|
83 | export var copy: EventSimulator;
|
84 | export var cut: EventSimulator;
|
85 | export var doubleClick: EventSimulator;
|
86 | export var drag: EventSimulator;
|
87 | export var dragEnd: EventSimulator;
|
88 | export var dragEnter: EventSimulator;
|
89 | export var dragExit: EventSimulator;
|
90 | export var dragLeave: EventSimulator;
|
91 | export var dragOver: EventSimulator;
|
92 | export var dragStart: EventSimulator;
|
93 | export var drop: EventSimulator;
|
94 | export var error: EventSimulator;
|
95 | export var focus: EventSimulator;
|
96 | export var input: EventSimulator;
|
97 | export var keyDown: EventSimulator;
|
98 | export var keyPress: EventSimulator;
|
99 | export var keyUp: EventSimulator;
|
100 | export var load: EventSimulator;
|
101 | export var mouseDown: EventSimulator;
|
102 | export var mouseEnter: EventSimulator;
|
103 | export var mouseLeave: EventSimulator;
|
104 | export var mouseMove: EventSimulator;
|
105 | export var mouseOut: EventSimulator;
|
106 | export var mouseOver: EventSimulator;
|
107 | export var mouseUp: EventSimulator;
|
108 | export var paste: EventSimulator;
|
109 | export var scroll: EventSimulator;
|
110 | export var submit: EventSimulator;
|
111 | export var touchCancel: EventSimulator;
|
112 | export var touchEnd: EventSimulator;
|
113 | export var touchMove: EventSimulator;
|
114 | export var touchStart: EventSimulator;
|
115 | export var wheel: EventSimulator;
|
116 | }
|
117 |
|
118 | export function renderIntoDocument<T extends Element>(
|
119 | element: DOMElement<any, T>): T;
|
120 | export function renderIntoDocument(
|
121 | element: SFCElement<any>): void;
|
122 | export function renderIntoDocument<T extends Component<any>>(
|
123 | element: CElement<any, T>): T;
|
124 | export function renderIntoDocument<P>(
|
125 | element: ReactElement<P>): Component<P> | Element | void;
|
126 |
|
127 | export function mockComponent(
|
128 | mocked: MockedComponentClass, mockTagName?: string): typeof TestUtils;
|
129 |
|
130 | export function isElementOfType<T extends HTMLElement>(
|
131 | element: ReactElement, type: string): element is ReactHTMLElement<T>;
|
132 | export function isElementOfType<P extends DOMAttributes<{}>, T extends Element>(
|
133 | element: ReactElement, type: string): element is DOMElement<P, T>;
|
134 | export function isElementOfType<P>(
|
135 | element: ReactElement, type: SFC<P>): element is SFCElement<P>;
|
136 | export function isElementOfType<P, T extends Component<P>, C extends ComponentClass<P>>(
|
137 | element: ReactElement, type: ClassType<P, T, C>): element is CElement<P, T>;
|
138 |
|
139 | export function isDOMComponent(instance: ReactInstance): instance is Element;
|
140 | export function isCompositeComponent(instance: ReactInstance): instance is Component<any>;
|
141 | export function isCompositeComponentWithType<T extends Component<any>, C extends ComponentClass<any>>(
|
142 | instance: ReactInstance, type: ClassType<any, T, C>): T;
|
143 |
|
144 | export function findAllInRenderedTree(
|
145 | root: Component<any>,
|
146 | fn: (i: ReactInstance) => boolean): ReactInstance[];
|
147 |
|
148 | export function scryRenderedDOMComponentsWithClass(
|
149 | root: Component<any>,
|
150 | className: string): Element[];
|
151 | export function findRenderedDOMComponentWithClass(
|
152 | root: Component<any>,
|
153 | className: string): Element;
|
154 |
|
155 | export function scryRenderedDOMComponentsWithTag(
|
156 | root: Component<any>,
|
157 | tagName: string): Element[];
|
158 | export function findRenderedDOMComponentWithTag(
|
159 | root: Component<any>,
|
160 | tagName: string): Element;
|
161 |
|
162 | export function scryRenderedComponentsWithType<T extends Component<any>, C extends ComponentClass<any>>(
|
163 | root: Component<any>,
|
164 | type: ClassType<any, T, C>): T[];
|
165 |
|
166 | export function findRenderedComponentWithType<T extends Component<any>, C extends ComponentClass<any>>(
|
167 | root: Component<any>,
|
168 | type: ClassType<any, T, C>): T;
|
169 |
|
170 | export function createRenderer(): ShallowRenderer;
|
171 | }
|