@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,256 +0,0 @@
1
- /* eslint-disable no-console */
2
- import * as React from 'react';
3
- import { View, Text, TextInput, Pressable } from 'react-native';
4
- import { getConfig, resetToDefaults } from '../config';
5
- import { render, screen, fireEvent, RenderAPI } from '..';
6
-
7
- const PLACEHOLDER_FRESHNESS = 'Add custom freshness';
8
- const PLACEHOLDER_CHEF = 'Who inspected freshness?';
9
- const INPUT_FRESHNESS = 'Custom Freshie';
10
- const INPUT_CHEF = 'I inspected freshie';
11
- const DEFAULT_INPUT_CHEF = 'What did you inspect?';
12
- const DEFAULT_INPUT_CUSTOMER = 'What banana?';
13
-
14
- class MyButton extends React.Component<any> {
15
- render() {
16
- return (
17
- <Pressable onPress={this.props.onPress}>
18
- <Text>{this.props.children}</Text>
19
- </Pressable>
20
- );
21
- }
22
- }
23
-
24
- class Banana extends React.Component<any, { fresh: boolean }> {
25
- state = {
26
- fresh: false,
27
- };
28
-
29
- componentDidUpdate() {
30
- if (this.props.onUpdate) {
31
- this.props.onUpdate();
32
- }
33
- }
34
-
35
- componentWillUnmount() {
36
- if (this.props.onUnmount) {
37
- this.props.onUnmount();
38
- }
39
- }
40
-
41
- changeFresh = () => {
42
- this.setState((state) => ({
43
- fresh: !state.fresh,
44
- }));
45
- };
46
-
47
- render() {
48
- const test = 0;
49
- return (
50
- <View>
51
- <Text>Is the banana fresh?</Text>
52
- <Text testID="bananaFresh">
53
- {this.state.fresh ? 'fresh' : 'not fresh'}
54
- </Text>
55
- <TextInput
56
- testID="bananaCustomFreshness"
57
- placeholder={PLACEHOLDER_FRESHNESS}
58
- value={INPUT_FRESHNESS}
59
- />
60
- <TextInput
61
- testID="bananaChef"
62
- placeholder={PLACEHOLDER_CHEF}
63
- value={INPUT_CHEF}
64
- defaultValue={DEFAULT_INPUT_CHEF}
65
- />
66
- <TextInput defaultValue={DEFAULT_INPUT_CUSTOMER} />
67
- <TextInput defaultValue={'hello'} value="" />
68
- <MyButton onPress={this.changeFresh} type="primary">
69
- Change freshness!
70
- </MyButton>
71
- <Text testID="duplicateText">First Text</Text>
72
- <Text testID="duplicateText">Second Text</Text>
73
- <Text>{test}</Text>
74
- </View>
75
- );
76
- }
77
- }
78
-
79
- test('UNSAFE_getAllByType, UNSAFE_queryAllByType', () => {
80
- const { UNSAFE_getAllByType, UNSAFE_queryAllByType } = render(<Banana />);
81
- const [text, status, button] = UNSAFE_getAllByType(Text);
82
- const InExistent = () => null;
83
-
84
- expect(text.props.children).toBe('Is the banana fresh?');
85
- expect(status.props.children).toBe('not fresh');
86
- expect(button.props.children).toBe('Change freshness!');
87
- expect(() => UNSAFE_getAllByType(InExistent)).toThrow('No instances found');
88
-
89
- expect(UNSAFE_queryAllByType(Text)[1]).toBe(status);
90
- expect(UNSAFE_queryAllByType(InExistent)).toHaveLength(0);
91
- });
92
-
93
- test('UNSAFE_getByProps, UNSAFE_queryByProps', () => {
94
- const { UNSAFE_getByProps, UNSAFE_queryByProps } = render(<Banana />);
95
- const primaryType = UNSAFE_getByProps({ type: 'primary' });
96
-
97
- expect(primaryType.props.children).toBe('Change freshness!');
98
- expect(() => UNSAFE_getByProps({ type: 'inexistent' })).toThrow(
99
- 'No instances found'
100
- );
101
-
102
- expect(UNSAFE_queryByProps({ type: 'primary' })).toBe(primaryType);
103
- expect(UNSAFE_queryByProps({ type: 'inexistent' })).toBeNull();
104
- });
105
-
106
- test('UNSAFE_getAllByProp, UNSAFE_queryAllByProps', () => {
107
- const { UNSAFE_getAllByProps, UNSAFE_queryAllByProps } = render(<Banana />);
108
- const primaryTypes = UNSAFE_getAllByProps({ type: 'primary' });
109
-
110
- expect(primaryTypes).toHaveLength(1);
111
- expect(() => UNSAFE_getAllByProps({ type: 'inexistent' })).toThrow(
112
- 'No instances found'
113
- );
114
-
115
- expect(UNSAFE_queryAllByProps({ type: 'primary' })).toEqual(primaryTypes);
116
- expect(UNSAFE_queryAllByProps({ type: 'inexistent' })).toHaveLength(0);
117
- });
118
-
119
- test('update', () => {
120
- const fn = jest.fn();
121
- const { getByText, update, rerender } = render(<Banana onUpdate={fn} />);
122
-
123
- fireEvent.press(getByText('Change freshness!'));
124
-
125
- update(<Banana onUpdate={fn} />);
126
- rerender(<Banana onUpdate={fn} />);
127
-
128
- expect(fn).toHaveBeenCalledTimes(3);
129
- });
130
-
131
- test('unmount', () => {
132
- const fn = jest.fn();
133
- const { unmount } = render(<Banana onUnmount={fn} />);
134
- unmount();
135
- expect(fn).toHaveBeenCalled();
136
- });
137
-
138
- test('unmount should handle cleanup functions', () => {
139
- const cleanup = jest.fn();
140
- const Component = () => {
141
- React.useEffect(() => cleanup);
142
- return null;
143
- };
144
-
145
- const { unmount } = render(<Component />);
146
-
147
- unmount();
148
-
149
- expect(cleanup).toHaveBeenCalledTimes(1);
150
- });
151
-
152
- test('toJSON renders host output', () => {
153
- const { toJSON } = render(<MyButton>press me</MyButton>);
154
- expect(toJSON()).toMatchSnapshot();
155
- });
156
-
157
- test('renders options.wrapper around node', () => {
158
- type WrapperComponentProps = { children: React.ReactNode };
159
- const WrapperComponent = ({ children }: WrapperComponentProps) => (
160
- <View testID="wrapper">{children}</View>
161
- );
162
-
163
- const { toJSON, getByTestId } = render(<View testID="inner" />, {
164
- wrapper: WrapperComponent,
165
- });
166
-
167
- expect(getByTestId('wrapper')).toBeTruthy();
168
- expect(toJSON()).toMatchInlineSnapshot(`
169
- <View
170
- testID="wrapper"
171
- >
172
- <View
173
- testID="inner"
174
- />
175
- </View>
176
- `);
177
- });
178
-
179
- test('renders options.wrapper around updated node', () => {
180
- type WrapperComponentProps = { children: React.ReactNode };
181
- const WrapperComponent = ({ children }: WrapperComponentProps) => (
182
- <View testID="wrapper">{children}</View>
183
- );
184
-
185
- const { toJSON, getByTestId, rerender } = render(<View testID="inner" />, {
186
- wrapper: WrapperComponent,
187
- });
188
-
189
- rerender(
190
- <View testID="inner" accessibilityLabel="test" accessibilityHint="test" />
191
- );
192
-
193
- expect(getByTestId('wrapper')).toBeTruthy();
194
- expect(toJSON()).toMatchInlineSnapshot(`
195
- <View
196
- testID="wrapper"
197
- >
198
- <View
199
- accessibilityHint="test"
200
- accessibilityLabel="test"
201
- testID="inner"
202
- />
203
- </View>
204
- `);
205
- });
206
-
207
- test('returns host root', () => {
208
- const { root } = render(<View testID="inner" />);
209
-
210
- expect(root).toBeDefined();
211
- expect(root.type).toBe('View');
212
- expect(root.props.testID).toBe('inner');
213
- });
214
-
215
- test('returns composite UNSAFE_root', () => {
216
- const { UNSAFE_root } = render(<View testID="inner" />);
217
-
218
- expect(UNSAFE_root).toBeDefined();
219
- expect(UNSAFE_root.type).toBe(View);
220
- expect(UNSAFE_root.props.testID).toBe('inner');
221
- });
222
-
223
- test('container displays deprecation', () => {
224
- const view = render(<View testID="inner" />);
225
-
226
- expect(() => (view as any).container).toThrowErrorMatchingInlineSnapshot(`
227
- "'container' property has been renamed to 'UNSAFE_root'.
228
-
229
- Consider using 'root' property which returns root host element."
230
- `);
231
- expect(() => (screen as any).container).toThrowErrorMatchingInlineSnapshot(`
232
- "'container' property has been renamed to 'UNSAFE_root'.
233
-
234
- Consider using 'root' property which returns root host element."
235
- `);
236
- });
237
-
238
- test('RenderAPI type', () => {
239
- render(<Banana />) as RenderAPI;
240
- expect(true).toBeTruthy();
241
- });
242
-
243
- test('returned output can be spread using rest operator', () => {
244
- // Next line should not throw
245
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
246
- const { rerender, ...rest } = render(<View testID="test" />);
247
- expect(rest).toBeTruthy();
248
- });
249
-
250
- test('render calls detects host component names', () => {
251
- resetToDefaults();
252
- expect(getConfig().hostComponentNames).toBeUndefined();
253
-
254
- render(<View testID="test" />);
255
- expect(getConfig().hostComponentNames).not.toBeUndefined();
256
- });
@@ -1,114 +0,0 @@
1
- import React, { ReactNode } from 'react';
2
- import TestRenderer from 'react-test-renderer';
3
- import { renderHook } from '../pure';
4
-
5
- test('gives comitted result', () => {
6
- const { result } = renderHook(() => {
7
- const [state, setState] = React.useState(1);
8
-
9
- React.useEffect(() => {
10
- setState(2);
11
- }, []);
12
-
13
- return [state, setState];
14
- });
15
-
16
- expect(result.current).toEqual([2, expect.any(Function)]);
17
- });
18
-
19
- test('allows rerendering', () => {
20
- const { result, rerender } = renderHook(
21
- (props: { branch: 'left' | 'right' }) => {
22
- const [left, setLeft] = React.useState('left');
23
- const [right, setRight] = React.useState('right');
24
-
25
- // eslint-disable-next-line jest/no-if
26
- switch (props.branch) {
27
- case 'left':
28
- return [left, setLeft];
29
- case 'right':
30
- return [right, setRight];
31
-
32
- default:
33
- throw new Error(
34
- 'No Props passed. This is a bug in the implementation'
35
- );
36
- }
37
- },
38
- { initialProps: { branch: 'left' } }
39
- );
40
-
41
- expect(result.current).toEqual(['left', expect.any(Function)]);
42
-
43
- rerender({ branch: 'right' });
44
-
45
- expect(result.current).toEqual(['right', expect.any(Function)]);
46
- });
47
-
48
- test('allows wrapper components', async () => {
49
- const Context = React.createContext('default');
50
- function Wrapper({ children }: { children: ReactNode }) {
51
- return <Context.Provider value="provided">{children}</Context.Provider>;
52
- }
53
- const { result } = renderHook(
54
- () => {
55
- return React.useContext(Context);
56
- },
57
- {
58
- wrapper: Wrapper,
59
- }
60
- );
61
-
62
- expect(result.current).toEqual('provided');
63
- });
64
-
65
- const useMyHook = (param: number | undefined) => {
66
- return param;
67
- };
68
-
69
- test('props type is infered correctly when initial props is defined', () => {
70
- const { result, rerender } = renderHook(
71
- (num: number | undefined) => useMyHook(num),
72
- {
73
- initialProps: 5,
74
- }
75
- );
76
-
77
- expect(result.current).toBe(5);
78
-
79
- rerender(6);
80
-
81
- expect(result.current).toBe(6);
82
- });
83
-
84
- test('props type is inferred correctly when initial props is explicitly undefined', () => {
85
- const { result, rerender } = renderHook(
86
- (num: number | undefined) => useMyHook(num),
87
- {
88
- initialProps: undefined,
89
- }
90
- );
91
-
92
- expect(result.current).toBeUndefined();
93
-
94
- rerender(6);
95
-
96
- expect(result.current).toBe(6);
97
- });
98
-
99
- /**
100
- * This test makes sure that calling renderHook does
101
- * not try to detect host component names in any form.
102
- * But since there are numerous methods that could trigger that
103
- * we check the count of renders using React Test Renderers.
104
- */
105
- test('does render only once', () => {
106
- jest.spyOn(TestRenderer, 'create');
107
-
108
- renderHook(() => {
109
- const [state, setState] = React.useState(1);
110
- return [state, setState];
111
- });
112
-
113
- expect(TestRenderer.create).toHaveBeenCalledTimes(1);
114
- });
@@ -1,66 +0,0 @@
1
- import * as React from 'react';
2
- import { View, Text } from 'react-native';
3
- import { render, screen } from '..';
4
-
5
- test('screen has the same queries as render result', () => {
6
- const result = render(<Text>Mt. Everest</Text>);
7
- expect(screen).toBe(result);
8
-
9
- expect(screen.getByText('Mt. Everest')).toBeTruthy();
10
- expect(screen.queryByText('Mt. Everest')).toBeTruthy();
11
- expect(screen.getAllByText('Mt. Everest')).toHaveLength(1);
12
- expect(screen.queryAllByText('Mt. Everest')).toHaveLength(1);
13
- });
14
-
15
- test('screen holds last render result', () => {
16
- render(<Text>Mt. Everest</Text>);
17
- render(<Text>Mt. Blanc</Text>);
18
- const finalResult = render(<Text>Śnieżka</Text>);
19
- expect(screen).toBe(finalResult);
20
-
21
- expect(screen.getByText('Śnieżka')).toBeTruthy();
22
- expect(screen.queryByText('Mt. Everest')).toBeFalsy();
23
- expect(screen.queryByText('Mt. Blanc')).toBeFalsy();
24
- });
25
-
26
- test('screen works with updating rerender', () => {
27
- const result = render(<Text>Mt. Everest</Text>);
28
- expect(screen).toBe(result);
29
-
30
- screen.rerender(<Text>Śnieżka</Text>);
31
- expect(screen).toBe(result);
32
- expect(screen.getByText('Śnieżka')).toBeTruthy();
33
- });
34
-
35
- test('screen works with nested re-mounting rerender', () => {
36
- const result = render(
37
- <View>
38
- <Text>Mt. Everest</Text>
39
- </View>
40
- );
41
- expect(screen).toBe(result);
42
-
43
- screen.rerender(
44
- <View>
45
- <View>
46
- <Text>Śnieżka</Text>
47
- </View>
48
- </View>
49
- );
50
- expect(screen).toBe(result);
51
- expect(screen.getByText('Śnieżka')).toBeTruthy();
52
- });
53
-
54
- test('screen throws without render', () => {
55
- expect(() => screen.root).toThrow('`render` method has not been called');
56
- expect(() => screen.UNSAFE_root).toThrow(
57
- '`render` method has not been called'
58
- );
59
- expect(() => screen.debug()).toThrow('`render` method has not been called');
60
- expect(() => screen.debug.shallow()).toThrow(
61
- '`render` method has not been called'
62
- );
63
- expect(() => screen.getByText('Mt. Everest')).toThrow(
64
- '`render` method has not been called'
65
- );
66
- });
@@ -1,7 +0,0 @@
1
- import { setTimeout } from '../helpers/timers';
2
-
3
- async function sleep(ms: number): Promise<void> {
4
- return new Promise((resolve) => setTimeout(resolve, ms));
5
- }
6
-
7
- export { sleep };
@@ -1,27 +0,0 @@
1
- import waitFor from '../waitFor';
2
-
3
- describe.each([false, true])(
4
- 'fake timers tests (legacyFakeTimers = %s)',
5
- (legacyFakeTimers) => {
6
- beforeEach(() => {
7
- jest.useFakeTimers({ legacyFakeTimers });
8
- });
9
-
10
- test('it successfully runs tests', () => {
11
- expect(true).toBeTruthy();
12
- });
13
-
14
- test('it successfully uses waitFor', async () => {
15
- await waitFor(() => {
16
- expect(true).toBeTruthy();
17
- });
18
- });
19
-
20
- test('it successfully uses waitFor with real timers', async () => {
21
- jest.useRealTimers();
22
- await waitFor(() => {
23
- expect(true).toBeTruthy();
24
- });
25
- });
26
- }
27
- );