Skip to content
This repository was archived by the owner on Jul 30, 2020. It is now read-only.

Commit be20bb0

Browse files
committed
refactor: add more events to the eventMap
1 parent 7134f63 commit be20bb0

File tree

7 files changed

+120
-245
lines changed

7 files changed

+120
-245
lines changed

src/__tests__/events.js

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,28 +2,27 @@ import React from 'react';
22
import 'jest-native/extend-expect';
33
import { Button, Image, Text, TextInput, TouchableHighlight } from 'react-native';
44

5-
import { render, fireEvent, eventMap, NativeEvent, getEventHandlerName, wait } from '../';
5+
import { render, fireEvent, eventMap, NativeTestEvent, getEventHandlerName, wait } from '../';
66

77
Object.keys(eventMap).forEach(key => {
8-
const handlerName = getEventHandlerName(key);
9-
10-
describe(`${handlerName}`, () => {
8+
describe(`${key} events`, () => {
119
const config = eventMap[key];
1210

13-
config.validTargets.forEach(element => {
11+
config.forEach(event => {
1412
const spy = jest.fn();
13+
const handlerName = getEventHandlerName(event);
1514

1615
const {
1716
container: {
18-
children: [button],
17+
children: [target],
1918
},
2019
} = render(
21-
React.createElement(element, {
20+
React.createElement(key, {
2221
[handlerName]: spy,
2322
}),
2423
);
2524

26-
fireEvent[key](button);
25+
fireEvent[event](target);
2726

2827
expect(spy).toHaveBeenCalledTimes(1);
2928
});
@@ -82,7 +81,7 @@ test('calling `fireEvent` directly works too', () => {
8281
const handleEvent = jest.fn();
8382
const { container } = render(<Button onPress={handleEvent} title="test" />);
8483

85-
fireEvent(container.children[0], new NativeEvent('press'));
84+
fireEvent(container.children[0], new NativeTestEvent('press'));
8685
expect(handleEvent).toBeCalledTimes(1);
8786
});
8887

@@ -97,12 +96,9 @@ test('calling a custom event works as well', () => {
9796
},
9897
} = render(<MyComponent onMyEvent={onMyEvent} />);
9998

100-
fireEvent(input, new NativeEvent('myEvent', event));
99+
fireEvent(input, new NativeTestEvent('myEvent', event));
101100

102-
expect(onMyEvent).toHaveBeenCalledWith({
103-
nativeEvent: { value: 'testing' },
104-
type: 'CustomEvent',
105-
});
101+
expect(onMyEvent).toHaveBeenCalledWith({ nativeEvent: { value: 'testing' } });
106102
});
107103

108104
test('calling a handler when there is no valid target does not work', () => {

src/index.js

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,10 @@ import AppContainer from 'react-native/Libraries/ReactNative/AppContainer';
55
import {
66
fireEvent as rntlFireEvent,
77
getQueriesForElement,
8-
NativeEvent,
8+
NativeTestEvent,
99
prettyPrint,
1010
proxyUnsafeProperties as proxy,
1111
} from './lib';
12-
import './preset/serializer';
1312
import act from './act-compat';
1413

1514
function render(ui, { options = {}, wrapper: WrapperComponent, queries } = {}) {
@@ -54,15 +53,15 @@ function fireEvent(...args) {
5453
return returnValue;
5554
}
5655

57-
Object.keys(rntlFireEvent).forEach(key => {
58-
fireEvent[key] = (...args) => {
56+
Object.keys(rntlFireEvent).forEach(typeArg => {
57+
fireEvent[typeArg] = (...args) => {
5958
let returnValue;
6059
act(() => {
61-
returnValue = rntlFireEvent[key](...args);
60+
returnValue = rntlFireEvent[typeArg](...args);
6261
});
6362
return returnValue;
6463
};
6564
});
6665

6766
export * from './lib';
68-
export { act, fireEvent, render, NativeEvent };
67+
export { act, fireEvent, render, NativeTestEvent };

src/lib/__tests__/to-json.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,10 @@ test('it converts to json', () => {
3333
expect(prettyPrint(baseElement)).toMatchSnapshot();
3434
});
3535

36+
test('it handles an no argument', () => {
37+
expect(toJSON()).toBeNull();
38+
});
39+
3640
test('it handles hidden nodes', () => {
3741
expect(toJSON({ _fiber: { stateNode: { isHidden: true } } })).toBeNull();
3842
});

0 commit comments

Comments
 (0)