React TestUtils SyntheticEventData extends browser Event (#9000)

* SyntheticEventData extends browser Event

From https://facebook.github.io/react/docs/events.html

Your event handlers will be passed instances of SyntheticEvent, a
cross-browser wrapper around the browser's native event. It has the same
interface as the browser's native event, including stopPropagation() and
preventDefault(), except the events work identically across all
browsers.

* make react synthetic event properties optional
This commit is contained in:
Nicholas Lydon
2016-04-27 04:56:38 +01:00
committed by Horiuchi_H
parent 768a395270
commit 08ed4e9f18
3 changed files with 20 additions and 5 deletions

View File

@@ -6,7 +6,22 @@
/// <reference path="react.d.ts" />
declare namespace __React {
interface SyntheticEventData {
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;
}
interface SyntheticEventData extends OptionalEventProperties {
altKey?: boolean;
button?: number;
buttons?: number;
@@ -41,8 +56,7 @@ declare namespace __React {
}
interface EventSimulator {
(element: Element, eventData?: SyntheticEventData): void;
(component: Component<any, any>, eventData?: SyntheticEventData): void;
(element: Element | Component<any, any>, eventData?: SyntheticEventData): void;
}
interface MockedComponentClass {

View File

@@ -418,9 +418,10 @@ React.createClass({
// TestUtils addon
// --------------------------------------------------------------------------
var node: Element;
React.addons.TestUtils.Simulate.click(node);
React.addons.TestUtils.Simulate.change(node);
React.addons.TestUtils.Simulate.keyDown(node, { key: "Enter" });
React.addons.TestUtils.Simulate.keyDown(node, { key: "Enter", cancelable: false });
var renderer: React.ShallowRenderer =
React.addons.TestUtils.createRenderer();

View File

@@ -553,7 +553,7 @@ var node: Element = TestUtils.renderIntoDocument(React.DOM.div());
TestUtils.Simulate.click(node);
TestUtils.Simulate.change(node);
TestUtils.Simulate.keyDown(node, { key: "Enter" });
TestUtils.Simulate.keyDown(node, { key: "Enter", cancelable: false });
var renderer: React.ShallowRenderer =
TestUtils.createRenderer();