@testing-library/react-native 12.2.1 → 12.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (302) hide show
  1. package/package.json +2 -3
  2. package/.DS_Store +0 -0
  3. package/.codecov.yml +0 -9
  4. package/.eslintcache +0 -1
  5. package/.eslintignore +0 -3
  6. package/.eslintrc +0 -19
  7. package/.flowconfig +0 -63
  8. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -38
  9. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -14
  10. package/.github/ISSUE_TEMPLATE/question.md +0 -9
  11. package/.github/PULL_REQUEST_TEMPLATE.md +0 -10
  12. package/.github/actions/setup-deps/action.yml +0 -22
  13. package/.github/actions/setup-website-deps/action.yml +0 -22
  14. package/.github/dependabot.yml +0 -10
  15. package/.github/workflows/deploy-website.yml +0 -36
  16. package/.github/workflows/example-apps.yml +0 -25
  17. package/.github/workflows/main.yml +0 -103
  18. package/.gitignore +0 -11
  19. package/.prettierrc.js +0 -5
  20. package/CODE_OF_CONDUCT.md +0 -73
  21. package/CONTRIBUTING.md +0 -64
  22. package/babel.config.js +0 -22
  23. package/examples/basic/.expo/README.md +0 -15
  24. package/examples/basic/.expo/packager-info.json +0 -4
  25. package/examples/basic/.expo/settings.json +0 -10
  26. package/examples/basic/.expo-shared/assets.json +0 -4
  27. package/examples/basic/.gitignore +0 -14
  28. package/examples/basic/App.tsx +0 -20
  29. package/examples/basic/README.md +0 -11
  30. package/examples/basic/__tests__/App.test.tsx +0 -137
  31. package/examples/basic/app.json +0 -31
  32. package/examples/basic/assets/adaptive-icon.png +0 -0
  33. package/examples/basic/assets/favicon.png +0 -0
  34. package/examples/basic/assets/icon.png +0 -0
  35. package/examples/basic/assets/splash.png +0 -0
  36. package/examples/basic/babel.config.js +0 -6
  37. package/examples/basic/components/Home.tsx +0 -28
  38. package/examples/basic/components/LoginForm.tsx +0 -138
  39. package/examples/basic/jest-setup.ts +0 -7
  40. package/examples/basic/jest.config.js +0 -5
  41. package/examples/basic/package.json +0 -30
  42. package/examples/basic/tsconfig.json +0 -7
  43. package/examples/basic/yarn.lock +0 -7499
  44. package/examples/react-navigation/README.md +0 -16
  45. package/examples/react-navigation/babel.config.js +0 -4
  46. package/examples/react-navigation/jest-setup.js +0 -11
  47. package/examples/react-navigation/jest.config.js +0 -10
  48. package/examples/react-navigation/package.json +0 -31
  49. package/examples/react-navigation/src/App.js +0 -21
  50. package/examples/react-navigation/src/DrawerNavigator.js +0 -15
  51. package/examples/react-navigation/src/DrawerNavigator.test.js +0 -42
  52. package/examples/react-navigation/src/NativeStackNavigator.js +0 -15
  53. package/examples/react-navigation/src/NativeStackNavigator.test.js +0 -34
  54. package/examples/react-navigation/src/StackNavigator.js +0 -15
  55. package/examples/react-navigation/src/StackNavigator.test.js +0 -34
  56. package/examples/react-navigation/src/TabNavigator.js +0 -15
  57. package/examples/react-navigation/src/TabNavigator.test.js +0 -21
  58. package/examples/react-navigation/src/screens/DetailsScreen.js +0 -43
  59. package/examples/react-navigation/src/screens/DetailsScreen.test.js +0 -27
  60. package/examples/react-navigation/src/screens/DrawerHomeScreen.js +0 -26
  61. package/examples/react-navigation/src/screens/HomeScreen.js +0 -48
  62. package/examples/react-navigation/src/screens/SettingsScreen.js +0 -20
  63. package/examples/react-navigation/src/test-utils.js +0 -12
  64. package/examples/react-navigation/yarn.lock +0 -5018
  65. package/examples/redux/App.js +0 -27
  66. package/examples/redux/README.md +0 -5
  67. package/examples/redux/actions/todoActions.js +0 -25
  68. package/examples/redux/babel.config.js +0 -6
  69. package/examples/redux/components/AddTodo.js +0 -73
  70. package/examples/redux/components/AddTodo.test.js +0 -27
  71. package/examples/redux/components/TodoElem.js +0 -25
  72. package/examples/redux/components/TodoList.js +0 -29
  73. package/examples/redux/components/TodoList.test.js +0 -34
  74. package/examples/redux/index.js +0 -8
  75. package/examples/redux/jest-setup.js +0 -2
  76. package/examples/redux/jest.config.js +0 -4
  77. package/examples/redux/package.json +0 -23
  78. package/examples/redux/reducers/index.js +0 -6
  79. package/examples/redux/reducers/todoReducer.js +0 -27
  80. package/examples/redux/store.js +0 -10
  81. package/examples/redux/test-utils.js +0 -11
  82. package/examples/redux/yarn.lock +0 -4819
  83. package/experiments-app/.expo/README.md +0 -15
  84. package/experiments-app/.expo/devices.json +0 -3
  85. package/experiments-app/.expo/packager-info.json +0 -9
  86. package/experiments-app/.expo/settings.json +0 -9
  87. package/experiments-app/.gitignore +0 -17
  88. package/experiments-app/.prettierrc.js +0 -5
  89. package/experiments-app/app.json +0 -30
  90. package/experiments-app/assets/adaptive-icon.png +0 -0
  91. package/experiments-app/assets/favicon.png +0 -0
  92. package/experiments-app/assets/icon.png +0 -0
  93. package/experiments-app/assets/splash.png +0 -0
  94. package/experiments-app/babel.config.js +0 -6
  95. package/experiments-app/index.js +0 -4
  96. package/experiments-app/package.json +0 -29
  97. package/experiments-app/src/App.tsx +0 -31
  98. package/experiments-app/src/MainScreen.tsx +0 -52
  99. package/experiments-app/src/experiments.ts +0 -35
  100. package/experiments-app/src/screens/FlatListEvents.tsx +0 -57
  101. package/experiments-app/src/screens/ScrollViewEvents.tsx +0 -65
  102. package/experiments-app/src/screens/SectionListEvents.tsx +0 -91
  103. package/experiments-app/src/screens/TextInputEventPropagation.tsx +0 -42
  104. package/experiments-app/src/screens/TextInputEvents.tsx +0 -48
  105. package/experiments-app/src/utils/helpers.ts +0 -18
  106. package/experiments-app/tsconfig.json +0 -6
  107. package/experiments-app/yarn.lock +0 -6709
  108. package/experiments-rtl/.babelrc +0 -8
  109. package/experiments-rtl/.eslintrc.json +0 -3
  110. package/experiments-rtl/.gitignore +0 -35
  111. package/experiments-rtl/README.md +0 -34
  112. package/experiments-rtl/jest-setup.js +0 -1
  113. package/experiments-rtl/jest.config.js +0 -4
  114. package/experiments-rtl/next.config.js +0 -4
  115. package/experiments-rtl/package.json +0 -38
  116. package/experiments-rtl/postcss.config.js +0 -6
  117. package/experiments-rtl/public/next.svg +0 -1
  118. package/experiments-rtl/public/vercel.svg +0 -1
  119. package/experiments-rtl/src/app/__tests__/click.test.tsx +0 -31
  120. package/experiments-rtl/src/app/__tests__/managed-text-input.test.tsx +0 -51
  121. package/experiments-rtl/src/app/globals.css +0 -27
  122. package/experiments-rtl/src/app/layout.tsx +0 -22
  123. package/experiments-rtl/src/app/page.tsx +0 -113
  124. package/experiments-rtl/tailwind.config.ts +0 -20
  125. package/experiments-rtl/tsconfig.json +0 -28
  126. package/experiments-rtl/yarn.lock +0 -5418
  127. package/flow-typed/npm/jest_v26.x.x.js +0 -1218
  128. package/flow-typed/npm/react-test-renderer_v16.x.x.js +0 -81
  129. package/jest-setup.ts +0 -10
  130. package/renovate.json +0 -19
  131. package/scripts/test_react_17 +0 -12
  132. package/src/__tests__/__snapshots__/render-debug.test.tsx.snap +0 -548
  133. package/src/__tests__/__snapshots__/render.test.tsx.snap +0 -39
  134. package/src/__tests__/act.test.tsx +0 -56
  135. package/src/__tests__/auto-cleanup-skip.test.tsx +0 -39
  136. package/src/__tests__/auto-cleanup.test.tsx +0 -50
  137. package/src/__tests__/cleanup.test.tsx +0 -26
  138. package/src/__tests__/config.test.ts +0 -55
  139. package/src/__tests__/fireEvent-textInput.test.tsx +0 -154
  140. package/src/__tests__/fireEvent.test.tsx +0 -485
  141. package/src/__tests__/host-component-names.test.tsx +0 -109
  142. package/src/__tests__/host-text-nesting.test.tsx +0 -90
  143. package/src/__tests__/jest-native.test.tsx +0 -84
  144. package/src/__tests__/questionsBoard.test.tsx +0 -62
  145. package/src/__tests__/react-native-api.test.tsx +0 -126
  146. package/src/__tests__/render-debug.test.tsx +0 -207
  147. package/src/__tests__/render-stringValidation.test.tsx +0 -157
  148. package/src/__tests__/render.test.tsx +0 -256
  149. package/src/__tests__/renderHook.test.tsx +0 -114
  150. package/src/__tests__/screen.test.tsx +0 -66
  151. package/src/__tests__/timerUtils.ts +0 -7
  152. package/src/__tests__/timers.test.ts +0 -27
  153. package/src/__tests__/waitFor.test.tsx +0 -327
  154. package/src/__tests__/waitForElementToBeRemoved.test.tsx +0 -151
  155. package/src/__tests__/within.test.tsx +0 -96
  156. package/src/act.ts +0 -86
  157. package/src/cleanup.ts +0 -15
  158. package/src/config.ts +0 -72
  159. package/src/fireEvent.ts +0 -159
  160. package/src/flush-micro-tasks.ts +0 -30
  161. package/src/helpers/__tests__/accessiblity.test.tsx +0 -373
  162. package/src/helpers/__tests__/component-tree.test.tsx +0 -226
  163. package/src/helpers/__tests__/format-default.tsx +0 -114
  164. package/src/helpers/__tests__/getTextContent.test.tsx +0 -49
  165. package/src/helpers/__tests__/includeHiddenElements.test.tsx +0 -39
  166. package/src/helpers/__tests__/query-name.test.ts +0 -10
  167. package/src/helpers/__tests__/timers.test.ts +0 -8
  168. package/src/helpers/accessiblity.ts +0 -108
  169. package/src/helpers/component-tree.ts +0 -94
  170. package/src/helpers/debugDeep.ts +0 -27
  171. package/src/helpers/debugShallow.ts +0 -22
  172. package/src/helpers/deprecation.ts +0 -53
  173. package/src/helpers/errors.ts +0 -66
  174. package/src/helpers/findAll.ts +0 -70
  175. package/src/helpers/format-default.ts +0 -72
  176. package/src/helpers/format.ts +0 -47
  177. package/src/helpers/getTextContent.ts +0 -20
  178. package/src/helpers/host-component-names.tsx +0 -88
  179. package/src/helpers/matchers/__tests__/matchArrayValue.test.ts +0 -34
  180. package/src/helpers/matchers/__tests__/matchObject.test.ts +0 -37
  181. package/src/helpers/matchers/__tests__/matchStringValue.test.ts +0 -15
  182. package/src/helpers/matchers/accessibilityState.ts +0 -48
  183. package/src/helpers/matchers/accessibilityValue.ts +0 -24
  184. package/src/helpers/matchers/matchArrayProp.ts +0 -21
  185. package/src/helpers/matchers/matchLabelText.ts +0 -50
  186. package/src/helpers/matchers/matchObjectProp.ts +0 -25
  187. package/src/helpers/matchers/matchStringProp.ts +0 -23
  188. package/src/helpers/matchers/matchTextContent.ts +0 -20
  189. package/src/helpers/pointer-events.ts +0 -27
  190. package/src/helpers/query-name.ts +0 -4
  191. package/src/helpers/stringValidation.ts +0 -36
  192. package/src/helpers/timers.ts +0 -98
  193. package/src/index.ts +0 -33
  194. package/src/matches.ts +0 -49
  195. package/src/pure.ts +0 -27
  196. package/src/queries/__tests__/a11yState.test.tsx +0 -439
  197. package/src/queries/__tests__/a11yValue.test.tsx +0 -309
  198. package/src/queries/__tests__/displayValue.test.tsx +0 -221
  199. package/src/queries/__tests__/hintText.test.tsx +0 -177
  200. package/src/queries/__tests__/labelText.test.tsx +0 -242
  201. package/src/queries/__tests__/makeQueries.test.tsx +0 -235
  202. package/src/queries/__tests__/placeholderText.test.tsx +0 -136
  203. package/src/queries/__tests__/role-value.test.tsx +0 -176
  204. package/src/queries/__tests__/role.test.tsx +0 -824
  205. package/src/queries/__tests__/testId.test.tsx +0 -200
  206. package/src/queries/__tests__/text.test.tsx +0 -556
  207. package/src/queries/a11yState.ts +0 -127
  208. package/src/queries/a11yValue.ts +0 -127
  209. package/src/queries/displayValue.ts +0 -71
  210. package/src/queries/hintText.ts +0 -107
  211. package/src/queries/labelText.ts +0 -57
  212. package/src/queries/makeQueries.ts +0 -255
  213. package/src/queries/options.ts +0 -14
  214. package/src/queries/placeholderText.ts +0 -72
  215. package/src/queries/role.ts +0 -131
  216. package/src/queries/testId.ts +0 -66
  217. package/src/queries/text.ts +0 -63
  218. package/src/queries/unsafeProps.ts +0 -76
  219. package/src/queries/unsafeType.ts +0 -73
  220. package/src/react-versions.ts +0 -11
  221. package/src/render-act.ts +0 -19
  222. package/src/render.tsx +0 -183
  223. package/src/renderHook.tsx +0 -56
  224. package/src/screen.ts +0 -123
  225. package/src/shallow.ts +0 -18
  226. package/src/test-utils/events.ts +0 -24
  227. package/src/test-utils/index.ts +0 -1
  228. package/src/user-event/__tests__/__snapshots__/clear.test.tsx.snap +0 -269
  229. package/src/user-event/__tests__/clear.test.tsx +0 -217
  230. package/src/user-event/clear.ts +0 -59
  231. package/src/user-event/event-builder/common.ts +0 -66
  232. package/src/user-event/event-builder/index.ts +0 -7
  233. package/src/user-event/event-builder/text-input.ts +0 -86
  234. package/src/user-event/index.ts +0 -18
  235. package/src/user-event/press/__tests__/longPress.real-timers.test.tsx +0 -117
  236. package/src/user-event/press/__tests__/longPress.test.tsx +0 -157
  237. package/src/user-event/press/__tests__/press.real-timers.test.tsx +0 -320
  238. package/src/user-event/press/__tests__/press.test.tsx +0 -457
  239. package/src/user-event/press/constants.ts +0 -7
  240. package/src/user-event/press/index.ts +0 -1
  241. package/src/user-event/press/press.ts +0 -163
  242. package/src/user-event/setup/index.ts +0 -2
  243. package/src/user-event/setup/setup.ts +0 -142
  244. package/src/user-event/type/__tests__/__snapshots__/type-managed.test.tsx.snap +0 -339
  245. package/src/user-event/type/__tests__/__snapshots__/type.test.tsx.snap +0 -668
  246. package/src/user-event/type/__tests__/parseKeys.test.ts +0 -23
  247. package/src/user-event/type/__tests__/type-managed.test.tsx +0 -120
  248. package/src/user-event/type/__tests__/type.test.tsx +0 -335
  249. package/src/user-event/type/index.ts +0 -1
  250. package/src/user-event/type/parseKeys.ts +0 -41
  251. package/src/user-event/type/type.ts +0 -138
  252. package/src/user-event/utils/__tests__/dispatch-event.test.tsx +0 -41
  253. package/src/user-event/utils/__tests__/wait.test.ts +0 -62
  254. package/src/user-event/utils/content-size.ts +0 -25
  255. package/src/user-event/utils/dispatch-event.ts +0 -38
  256. package/src/user-event/utils/host-components.ts +0 -6
  257. package/src/user-event/utils/index.ts +0 -6
  258. package/src/user-event/utils/text-range.ts +0 -4
  259. package/src/user-event/utils/wait.ts +0 -15
  260. package/src/user-event/utils/warn-about-real-timers.ts +0 -13
  261. package/src/waitFor.ts +0 -228
  262. package/src/waitForElementToBeRemoved.ts +0 -42
  263. package/src/within.ts +0 -30
  264. package/tsconfig.json +0 -17
  265. package/tsconfig.release.json +0 -8
  266. package/website/.gitignore +0 -20
  267. package/website/README.md +0 -33
  268. package/website/docker/.dockerignore +0 -3
  269. package/website/docker/Dockerfile +0 -9
  270. package/website/docker/docker-compose.yml +0 -11
  271. package/website/docs/API.md +0 -940
  272. package/website/docs/EslintPLluginTestingLibrary.md +0 -28
  273. package/website/docs/FAQ.md +0 -44
  274. package/website/docs/GettingStarted.md +0 -100
  275. package/website/docs/HowShouldIQuery.md +0 -21
  276. package/website/docs/MigrationV11.md +0 -64
  277. package/website/docs/MigrationV12.md +0 -67
  278. package/website/docs/MigrationV2.md +0 -126
  279. package/website/docs/MigrationV7.md +0 -119
  280. package/website/docs/MigrationV9.md +0 -67
  281. package/website/docs/Queries.md +0 -572
  282. package/website/docs/ReactNavigation.md +0 -371
  283. package/website/docs/ReduxIntegration.md +0 -137
  284. package/website/docs/TestingEnvironment.md +0 -154
  285. package/website/docs/Troubleshooting.md +0 -44
  286. package/website/docs/UnderstandingAct.md +0 -227
  287. package/website/docs/UserEvent.md +0 -191
  288. package/website/docusaurus.config.js +0 -114
  289. package/website/package.json +0 -31
  290. package/website/sidebars.js +0 -20
  291. package/website/src/components/Feature.js +0 -31
  292. package/website/src/css/custom.css +0 -13
  293. package/website/src/css/index.module.css +0 -77
  294. package/website/src/pages/index.js +0 -82
  295. package/website/static/.nojekyll +0 -0
  296. package/website/static/css/custom.css +0 -28
  297. package/website/static/img/hit.png +0 -0
  298. package/website/static/img/locomotive.png +0 -0
  299. package/website/static/img/owl.png +0 -0
  300. package/website/static/img/tools.png +0 -0
  301. package/website/yarn.lock +0 -7669
  302. package/yarn.lock +0 -7765
@@ -1,56 +0,0 @@
1
- import * as React from 'react';
2
- import { Text } from 'react-native';
3
- import act from '../act';
4
- import render from '../render';
5
- import fireEvent from '../fireEvent';
6
-
7
- type UseEffectProps = { callback(): void };
8
- const UseEffect = ({ callback }: UseEffectProps) => {
9
- React.useEffect(callback);
10
- return null;
11
- };
12
-
13
- const Counter = () => {
14
- const [count, setCount] = React.useState(0);
15
-
16
- const text = `Total count: ${count}`;
17
- return <Text onPress={() => setCount(count + 1)}>{text}</Text>;
18
- };
19
-
20
- test('render should trigger useEffect', () => {
21
- const effectCallback = jest.fn();
22
- render(<UseEffect callback={effectCallback} />);
23
-
24
- expect(effectCallback).toHaveBeenCalledTimes(1);
25
- });
26
-
27
- test('update should trigger useEffect', () => {
28
- const effectCallback = jest.fn();
29
- const { update } = render(<UseEffect callback={effectCallback} />);
30
- update(<UseEffect callback={effectCallback} />);
31
-
32
- expect(effectCallback).toHaveBeenCalledTimes(2);
33
- });
34
-
35
- test('fireEvent should trigger useState', () => {
36
- const { getByText } = render(<Counter />);
37
- const counter = getByText(/Total count/i);
38
-
39
- expect(counter.props.children).toEqual('Total count: 0');
40
- fireEvent.press(counter);
41
- expect(counter.props.children).toEqual('Total count: 1');
42
- });
43
-
44
- test('should be able to not await act', async () => {
45
- const result = act(() => {});
46
- expect(result).toHaveProperty('then');
47
- });
48
-
49
- test('should be able to await act', async () => {
50
- const result = await act(async () => {});
51
- expect(result).toBe(undefined);
52
- });
53
-
54
- test('should be able to await act when promise rejects', async () => {
55
- await expect(act(async () => Promise.reject('error'))).rejects.toBe('error');
56
- });
@@ -1,39 +0,0 @@
1
- import * as React from 'react';
2
- import { View } from 'react-native';
3
-
4
- let render: (element: React.ReactElement) => void;
5
- beforeAll(() => {
6
- process.env.RNTL_SKIP_AUTO_CLEANUP = 'true';
7
- const rntl = require('..');
8
- render = rntl.render;
9
- });
10
-
11
- let isMounted = false;
12
-
13
- class Test extends React.Component<{ onUnmount?(): void }> {
14
- componentDidMount() {
15
- isMounted = true;
16
- }
17
-
18
- componentWillUnmount() {
19
- isMounted = false;
20
- if (this.props.onUnmount) {
21
- this.props.onUnmount();
22
- }
23
- }
24
- render() {
25
- return <View />;
26
- }
27
- }
28
-
29
- // This just verifies that by importing RNTL in pure mode in an environment which supports
30
- // afterEach (like jest) we won't get automatic cleanup between tests.
31
- test('component is mounted, but not umounted before test ends', () => {
32
- const fn = jest.fn();
33
- render(<Test onUnmount={fn} />);
34
- expect(fn).not.toHaveBeenCalled();
35
- });
36
-
37
- test('component is NOT automatically umounted after first test ends', () => {
38
- expect(isMounted).toEqual(true);
39
- });
@@ -1,50 +0,0 @@
1
- import * as React from 'react';
2
- import { View } from 'react-native';
3
- import { render } from '..';
4
-
5
- let isMounted = false;
6
-
7
- class Test extends React.Component<{ onUnmount?(): void }> {
8
- componentDidMount() {
9
- isMounted = true;
10
- }
11
-
12
- componentWillUnmount() {
13
- isMounted = false;
14
- if (this.props.onUnmount) {
15
- this.props.onUnmount();
16
- }
17
- }
18
- render() {
19
- return <View />;
20
- }
21
- }
22
-
23
- afterEach(() => {
24
- jest.useRealTimers();
25
- });
26
-
27
- // This just verifies that by importing RNTL in an environment which supports afterEach (like jest)
28
- // we'll get automatic cleanup between tests.
29
- test('component is mounted, but not umounted before test ends', () => {
30
- const fn = jest.fn();
31
- render(<Test onUnmount={fn} />);
32
- expect(isMounted).toEqual(true);
33
- expect(fn).not.toHaveBeenCalled();
34
- });
35
-
36
- test('component is automatically umounted after first test ends', () => {
37
- expect(isMounted).toEqual(false);
38
- });
39
-
40
- test('does not time out with legacy fake timers', () => {
41
- jest.useFakeTimers({ legacyFakeTimers: true });
42
- render(<Test />);
43
- expect(isMounted).toEqual(true);
44
- });
45
-
46
- test('does not time out with fake timers', () => {
47
- jest.useFakeTimers();
48
- render(<Test />);
49
- expect(isMounted).toEqual(true);
50
- });
@@ -1,26 +0,0 @@
1
- /* eslint-disable react/no-multi-comp */
2
- import * as React from 'react';
3
- import { View } from 'react-native';
4
- import { cleanup, render } from '../pure';
5
-
6
- class Test extends React.Component<{ onUnmount: () => void }> {
7
- componentWillUnmount() {
8
- if (this.props.onUnmount) {
9
- this.props.onUnmount();
10
- }
11
- }
12
- render() {
13
- return <View />;
14
- }
15
- }
16
-
17
- test('cleanup', () => {
18
- const fn = jest.fn();
19
-
20
- render(<Test onUnmount={fn} />);
21
- render(<Test onUnmount={fn} />);
22
- expect(fn).not.toHaveBeenCalled();
23
-
24
- cleanup();
25
- expect(fn).toHaveBeenCalledTimes(2);
26
- });
@@ -1,55 +0,0 @@
1
- import {
2
- getConfig,
3
- configure,
4
- resetToDefaults,
5
- configureInternal,
6
- } from '../config';
7
-
8
- test('getConfig() returns existing configuration', () => {
9
- expect(getConfig().asyncUtilTimeout).toEqual(1000);
10
- expect(getConfig().defaultIncludeHiddenElements).toEqual(false);
11
- });
12
-
13
- test('configure() overrides existing config values', () => {
14
- configure({ asyncUtilTimeout: 5000 });
15
- configure({ defaultDebugOptions: { message: 'debug message' } });
16
- expect(getConfig()).toEqual({
17
- asyncUtilTimeout: 5000,
18
- defaultDebugOptions: { message: 'debug message' },
19
- defaultIncludeHiddenElements: false,
20
- });
21
- });
22
-
23
- test('resetToDefaults() resets config to defaults', () => {
24
- configure({
25
- asyncUtilTimeout: 5000,
26
- defaultIncludeHiddenElements: true,
27
- });
28
- expect(getConfig().asyncUtilTimeout).toEqual(5000);
29
- expect(getConfig().defaultIncludeHiddenElements).toEqual(true);
30
-
31
- resetToDefaults();
32
- expect(getConfig().asyncUtilTimeout).toEqual(1000);
33
- expect(getConfig().defaultIncludeHiddenElements).toEqual(false);
34
- });
35
-
36
- test('resetToDefaults() resets internal config to defaults', () => {
37
- configureInternal({
38
- hostComponentNames: { text: 'A', textInput: 'A', switch: 'A' },
39
- });
40
- expect(getConfig().hostComponentNames).toEqual({
41
- text: 'A',
42
- textInput: 'A',
43
- switch: 'A',
44
- });
45
-
46
- resetToDefaults();
47
- expect(getConfig().hostComponentNames).toBe(undefined);
48
- });
49
-
50
- test('configure handles alias option defaultHidden', () => {
51
- expect(getConfig().defaultIncludeHiddenElements).toEqual(false);
52
-
53
- configure({ defaultHidden: true });
54
- expect(getConfig().defaultIncludeHiddenElements).toEqual(true);
55
- });
@@ -1,154 +0,0 @@
1
- import React from 'react';
2
- import { Text, TextInput, TextInputProps } from 'react-native';
3
- import { render, fireEvent } from '..';
4
-
5
- function WrappedTextInput(props: TextInputProps) {
6
- return <TextInput {...props} />;
7
- }
8
-
9
- function DoubleWrappedTextInput(props: TextInputProps) {
10
- return <WrappedTextInput {...props} />;
11
- }
12
-
13
- const layoutEvent = { nativeEvent: { layout: { width: 100, height: 100 } } };
14
-
15
- test('should fire only non-touch-related events on non-editable TextInput', () => {
16
- const onFocus = jest.fn();
17
- const onChangeText = jest.fn();
18
- const onSubmitEditing = jest.fn();
19
- const onLayout = jest.fn();
20
-
21
- const view = render(
22
- <TextInput
23
- editable={false}
24
- testID="subject"
25
- onFocus={onFocus}
26
- onChangeText={onChangeText}
27
- onSubmitEditing={onSubmitEditing}
28
- onLayout={onLayout}
29
- />
30
- );
31
-
32
- const subject = view.getByTestId('subject');
33
- fireEvent(subject, 'focus');
34
- fireEvent.changeText(subject, 'Text');
35
- fireEvent(subject, 'submitEditing', { nativeEvent: { text: 'Text' } });
36
- fireEvent(subject, 'layout', layoutEvent);
37
-
38
- expect(onFocus).not.toHaveBeenCalled();
39
- expect(onChangeText).not.toHaveBeenCalled();
40
- expect(onSubmitEditing).not.toHaveBeenCalled();
41
- expect(onLayout).toHaveBeenCalledWith(layoutEvent);
42
- });
43
-
44
- test('should fire only non-touch-related events on non-editable TextInput with nested Text', () => {
45
- const onFocus = jest.fn();
46
- const onChangeText = jest.fn();
47
- const onSubmitEditing = jest.fn();
48
- const onLayout = jest.fn();
49
-
50
- const view = render(
51
- <TextInput
52
- editable={false}
53
- testID="subject"
54
- onFocus={onFocus}
55
- onChangeText={onChangeText}
56
- onSubmitEditing={onSubmitEditing}
57
- onLayout={onLayout}
58
- >
59
- <Text>Nested Text</Text>
60
- </TextInput>
61
- );
62
-
63
- const subject = view.getByText('Nested Text');
64
- fireEvent(subject, 'focus');
65
- fireEvent(subject, 'onFocus');
66
- fireEvent.changeText(subject, 'Text');
67
- fireEvent(subject, 'submitEditing', { nativeEvent: { text: 'Text' } });
68
- fireEvent(subject, 'onSubmitEditing', { nativeEvent: { text: 'Text' } });
69
- fireEvent(subject, 'layout', layoutEvent);
70
- fireEvent(subject, 'onLayout', layoutEvent);
71
-
72
- expect(onFocus).not.toHaveBeenCalled();
73
- expect(onChangeText).not.toHaveBeenCalled();
74
- expect(onSubmitEditing).not.toHaveBeenCalled();
75
- expect(onLayout).toHaveBeenCalledTimes(2);
76
- expect(onLayout).toHaveBeenCalledWith(layoutEvent);
77
- });
78
-
79
- /**
80
- * Historically there were problems with custom TextInput wrappers, as they
81
- * could creat a hierarchy of three or more composite text input views with
82
- * very similar event props.
83
- *
84
- * Typical hierarchy would be:
85
- * - User composite TextInput
86
- * - UI library composite TextInput
87
- * - RN composite TextInput
88
- * - RN host TextInput
89
- *
90
- * Previous implementation of fireEvent only checked `editable` prop for
91
- * RN TextInputs, both host & composite but did not check on the UI library or
92
- * user composite TextInput level, hence invoking the event handlers that
93
- * should be blocked by `editable={false}` prop.
94
- */
95
- test('should fire only non-touch-related events on non-editable wrapped TextInput', () => {
96
- const onFocus = jest.fn();
97
- const onChangeText = jest.fn();
98
- const onSubmitEditing = jest.fn();
99
- const onLayout = jest.fn();
100
-
101
- const view = render(
102
- <WrappedTextInput
103
- editable={false}
104
- testID="subject"
105
- onFocus={onFocus}
106
- onChangeText={onChangeText}
107
- onSubmitEditing={onSubmitEditing}
108
- onLayout={onLayout}
109
- />
110
- );
111
-
112
- const subject = view.getByTestId('subject');
113
- fireEvent(subject, 'focus');
114
- fireEvent.changeText(subject, 'Text');
115
- fireEvent(subject, 'submitEditing', { nativeEvent: { text: 'Text' } });
116
- fireEvent(subject, 'layout', layoutEvent);
117
-
118
- expect(onFocus).not.toHaveBeenCalled();
119
- expect(onChangeText).not.toHaveBeenCalled();
120
- expect(onSubmitEditing).not.toHaveBeenCalled();
121
- expect(onLayout).toHaveBeenCalledWith(layoutEvent);
122
- });
123
-
124
- /**
125
- * Ditto testing for even deeper hierarchy of TextInput wrappers.
126
- */
127
- test('should fire only non-touch-related events on non-editable double wrapped TextInput', () => {
128
- const onFocus = jest.fn();
129
- const onChangeText = jest.fn();
130
- const onSubmitEditing = jest.fn();
131
- const onLayout = jest.fn();
132
-
133
- const view = render(
134
- <DoubleWrappedTextInput
135
- editable={false}
136
- testID="subject"
137
- onFocus={onFocus}
138
- onChangeText={onChangeText}
139
- onSubmitEditing={onSubmitEditing}
140
- onLayout={onLayout}
141
- />
142
- );
143
-
144
- const subject = view.getByTestId('subject');
145
- fireEvent(subject, 'focus');
146
- fireEvent.changeText(subject, 'Text');
147
- fireEvent(subject, 'submitEditing', { nativeEvent: { text: 'Text' } });
148
- fireEvent(subject, 'layout', layoutEvent);
149
-
150
- expect(onFocus).not.toHaveBeenCalled();
151
- expect(onChangeText).not.toHaveBeenCalled();
152
- expect(onSubmitEditing).not.toHaveBeenCalled();
153
- expect(onLayout).toHaveBeenCalledWith(layoutEvent);
154
- });