@testing-library/react-native 12.1.1 → 12.1.3

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 (372) hide show
  1. package/.DS_Store +0 -0
  2. package/.codecov.yml +9 -0
  3. package/.eslintcache +1 -0
  4. package/.eslintignore +2 -0
  5. package/.eslintrc +19 -0
  6. package/.flowconfig +63 -0
  7. package/.github/ISSUE_TEMPLATE/bug_report.md +38 -0
  8. package/.github/ISSUE_TEMPLATE/feature_request.md +14 -0
  9. package/.github/ISSUE_TEMPLATE/question.md +9 -0
  10. package/.github/PULL_REQUEST_TEMPLATE.md +10 -0
  11. package/.github/actions/setup-deps/action.yml +22 -0
  12. package/.github/actions/setup-website-deps/action.yml +22 -0
  13. package/.github/dependabot.yml +10 -0
  14. package/.github/workflows/deploy-website.yml +36 -0
  15. package/.github/workflows/example-apps.yml +25 -0
  16. package/.github/workflows/main.yml +103 -0
  17. package/.gitignore +11 -0
  18. package/.prettierrc.js +5 -0
  19. package/CODE_OF_CONDUCT.md +73 -0
  20. package/CONTRIBUTING.md +64 -0
  21. package/README.md +8 -7
  22. package/babel.config.js +22 -0
  23. package/build/act.js.map +1 -1
  24. package/build/cleanup.js.map +1 -1
  25. package/build/config.d.ts +1 -0
  26. package/build/config.js.map +1 -1
  27. package/build/fireEvent.d.ts +13 -5
  28. package/build/fireEvent.js +57 -48
  29. package/build/fireEvent.js.map +1 -1
  30. package/build/flush-micro-tasks.d.ts +19 -0
  31. package/build/flush-micro-tasks.js +36 -0
  32. package/build/flush-micro-tasks.js.map +1 -0
  33. package/build/helpers/accessiblity.js +3 -1
  34. package/build/helpers/accessiblity.js.map +1 -1
  35. package/build/helpers/component-tree.d.ts +0 -15
  36. package/build/helpers/component-tree.js +0 -45
  37. package/build/helpers/component-tree.js.map +1 -1
  38. package/build/helpers/deprecation.d.ts +1 -0
  39. package/build/helpers/deprecation.js +16 -0
  40. package/build/helpers/deprecation.js.map +1 -1
  41. package/build/helpers/errors.d.ts +0 -4
  42. package/build/helpers/errors.js +1 -25
  43. package/build/helpers/errors.js.map +1 -1
  44. package/build/helpers/findAll.js.map +1 -1
  45. package/build/helpers/format-default.js.map +1 -1
  46. package/build/helpers/format.js.map +1 -1
  47. package/build/helpers/host-component-names.js +4 -1
  48. package/build/helpers/host-component-names.js.map +1 -1
  49. package/build/helpers/matchers/matchLabelText.js.map +1 -1
  50. package/build/helpers/pointer-events.d.ts +9 -0
  51. package/build/helpers/pointer-events.js +25 -0
  52. package/build/helpers/pointer-events.js.map +1 -0
  53. package/build/helpers/stringValidation.js.map +1 -1
  54. package/build/helpers/timers.js.map +1 -1
  55. package/build/index.js +2 -2
  56. package/build/index.js.map +1 -1
  57. package/build/matches.js.map +1 -1
  58. package/build/pure.d.ts +1 -1
  59. package/build/pure.js.map +1 -1
  60. package/build/queries/a11yState.js.map +1 -1
  61. package/build/queries/a11yValue.js.map +1 -1
  62. package/build/queries/displayValue.js.map +1 -1
  63. package/build/queries/hintText.js.map +1 -1
  64. package/build/queries/labelText.js.map +1 -1
  65. package/build/queries/makeQueries.js.map +1 -1
  66. package/build/queries/placeholderText.js.map +1 -1
  67. package/build/queries/role.js.map +1 -1
  68. package/build/queries/testId.js.map +1 -1
  69. package/build/queries/text.js.map +1 -1
  70. package/build/queries/unsafeProps.js.map +1 -1
  71. package/build/render.d.ts +171 -12
  72. package/build/render.js +11 -4
  73. package/build/render.js.map +1 -1
  74. package/build/renderHook.d.ts +3 -6
  75. package/build/renderHook.js +4 -3
  76. package/build/renderHook.js.map +1 -1
  77. package/build/shallow.js.map +1 -1
  78. package/build/test-utils/events.d.ts +10 -0
  79. package/build/test-utils/events.js +27 -0
  80. package/build/test-utils/events.js.map +1 -0
  81. package/build/test-utils/index.d.ts +1 -0
  82. package/build/test-utils/index.js +17 -0
  83. package/build/test-utils/index.js.map +1 -0
  84. package/build/user-event/event-builder/common.d.ts +45 -0
  85. package/build/user-event/event-builder/common.js +58 -0
  86. package/build/user-event/event-builder/common.js.map +1 -0
  87. package/build/user-event/event-builder/index.d.ts +32 -0
  88. package/build/user-event/event-builder/index.js +12 -0
  89. package/build/user-event/event-builder/index.js.map +1 -0
  90. package/build/user-event/index.d.ts +9 -0
  91. package/build/user-event/index.js +16 -0
  92. package/build/user-event/index.js.map +1 -0
  93. package/build/user-event/press/constants.d.ts +2 -0
  94. package/build/user-event/press/constants.js +16 -0
  95. package/build/user-event/press/constants.js.map +1 -0
  96. package/build/user-event/press/index.d.ts +1 -0
  97. package/build/user-event/press/index.js +19 -0
  98. package/build/user-event/press/index.js.map +1 -0
  99. package/build/user-event/press/press.d.ts +7 -0
  100. package/build/user-event/press/press.js +106 -0
  101. package/build/user-event/press/press.js.map +1 -0
  102. package/build/user-event/press/utils/warnAboutRealTimers.d.ts +1 -0
  103. package/build/user-event/press/utils/warnAboutRealTimers.js +14 -0
  104. package/build/user-event/press/utils/warnAboutRealTimers.js.map +1 -0
  105. package/build/user-event/setup/index.d.ts +2 -0
  106. package/build/user-event/setup/index.js +13 -0
  107. package/build/user-event/setup/index.js.map +1 -0
  108. package/build/user-event/setup/setup.d.ts +39 -0
  109. package/build/user-event/setup/setup.js +56 -0
  110. package/build/user-event/setup/setup.js.map +1 -0
  111. package/build/user-event/type/index.d.ts +1 -0
  112. package/build/user-event/type/index.js +13 -0
  113. package/build/user-event/type/index.js.map +1 -0
  114. package/build/user-event/type/type.d.ts +3 -0
  115. package/build/user-event/type/type.js +18 -0
  116. package/build/user-event/type/type.js.map +1 -0
  117. package/build/user-event/utils/events.d.ts +9 -0
  118. package/build/user-event/utils/events.js +44 -0
  119. package/build/user-event/utils/events.js.map +1 -0
  120. package/build/user-event/utils/index.d.ts +2 -0
  121. package/build/user-event/utils/index.js +28 -0
  122. package/build/user-event/utils/index.js.map +1 -0
  123. package/build/user-event/utils/wait.d.ts +2 -0
  124. package/build/user-event/utils/wait.js +14 -0
  125. package/build/user-event/utils/wait.js.map +1 -0
  126. package/build/waitFor.js +3 -3
  127. package/build/waitFor.js.map +1 -1
  128. package/build/waitForElementToBeRemoved.js.map +1 -1
  129. package/examples/basic/.expo-shared/assets.json +4 -0
  130. package/examples/basic/.gitignore +14 -0
  131. package/examples/basic/App.tsx +20 -0
  132. package/examples/basic/README.md +11 -0
  133. package/examples/basic/__tests__/App.test.tsx +119 -0
  134. package/examples/basic/app.json +31 -0
  135. package/examples/basic/assets/adaptive-icon.png +0 -0
  136. package/examples/basic/assets/favicon.png +0 -0
  137. package/examples/basic/assets/icon.png +0 -0
  138. package/examples/basic/assets/splash.png +0 -0
  139. package/examples/basic/babel.config.js +6 -0
  140. package/examples/basic/components/Home.tsx +28 -0
  141. package/examples/basic/components/LoginForm.tsx +138 -0
  142. package/examples/basic/jest-setup.ts +7 -0
  143. package/examples/basic/jest.config.js +5 -0
  144. package/examples/basic/package.json +30 -0
  145. package/examples/basic/tsconfig.json +7 -0
  146. package/examples/react-navigation/README.md +14 -0
  147. package/examples/react-navigation/babel.config.js +4 -0
  148. package/examples/react-navigation/jest-setup.js +11 -0
  149. package/examples/react-navigation/jest.config.js +10 -0
  150. package/examples/react-navigation/package.json +31 -0
  151. package/examples/react-navigation/src/App.js +21 -0
  152. package/examples/react-navigation/src/DrawerNavigator.js +15 -0
  153. package/examples/react-navigation/src/DrawerNavigator.test.js +42 -0
  154. package/examples/react-navigation/src/NativeStackNavigator.js +15 -0
  155. package/examples/react-navigation/src/NativeStackNavigator.test.js +34 -0
  156. package/examples/react-navigation/src/StackNavigator.js +15 -0
  157. package/examples/react-navigation/src/StackNavigator.test.js +34 -0
  158. package/examples/react-navigation/src/TabNavigator.js +15 -0
  159. package/examples/react-navigation/src/TabNavigator.test.js +21 -0
  160. package/examples/react-navigation/src/screens/DetailsScreen.js +43 -0
  161. package/examples/react-navigation/src/screens/DetailsScreen.test.js +27 -0
  162. package/examples/react-navigation/src/screens/DrawerHomeScreen.js +26 -0
  163. package/examples/react-navigation/src/screens/HomeScreen.js +48 -0
  164. package/examples/react-navigation/src/screens/SettingsScreen.js +20 -0
  165. package/examples/react-navigation/src/test-utils.js +12 -0
  166. package/examples/redux/App.js +27 -0
  167. package/examples/redux/actions/todoActions.js +25 -0
  168. package/examples/redux/babel.config.js +6 -0
  169. package/examples/redux/components/AddTodo.js +73 -0
  170. package/examples/redux/components/AddTodo.test.js +27 -0
  171. package/examples/redux/components/TodoElem.js +25 -0
  172. package/examples/redux/components/TodoList.js +29 -0
  173. package/examples/redux/components/TodoList.test.js +34 -0
  174. package/examples/redux/index.js +8 -0
  175. package/examples/redux/jest-setup.js +2 -0
  176. package/examples/redux/jest.config.js +4 -0
  177. package/examples/redux/package.json +23 -0
  178. package/examples/redux/reducers/index.js +6 -0
  179. package/examples/redux/reducers/todoReducer.js +27 -0
  180. package/examples/redux/store.js +10 -0
  181. package/examples/redux/test-utils.js +11 -0
  182. package/experiments-app/.expo/README.md +15 -0
  183. package/experiments-app/.expo/devices.json +3 -0
  184. package/experiments-app/.expo/packager-info.json +9 -0
  185. package/experiments-app/.expo/settings.json +9 -0
  186. package/experiments-app/.gitignore +17 -0
  187. package/experiments-app/.prettierrc.js +5 -0
  188. package/experiments-app/app.json +30 -0
  189. package/experiments-app/assets/adaptive-icon.png +0 -0
  190. package/experiments-app/assets/favicon.png +0 -0
  191. package/experiments-app/assets/icon.png +0 -0
  192. package/experiments-app/assets/splash.png +0 -0
  193. package/experiments-app/babel.config.js +6 -0
  194. package/experiments-app/index.js +4 -0
  195. package/experiments-app/package.json +31 -0
  196. package/experiments-app/src/App.tsx +31 -0
  197. package/experiments-app/src/MainScreen.tsx +51 -0
  198. package/experiments-app/src/experiments.ts +17 -0
  199. package/experiments-app/src/screens/TextInputEventPropagation.tsx +54 -0
  200. package/experiments-app/src/screens/TextInputEvents.tsx +50 -0
  201. package/experiments-app/src/utils/helpers.ts +8 -0
  202. package/experiments-app/tsconfig.json +6 -0
  203. package/experiments-app/yarn.lock +6913 -0
  204. package/flow-typed/npm/jest_v26.x.x.js +1218 -0
  205. package/flow-typed/npm/react-test-renderer_v16.x.x.js +81 -0
  206. package/jest-setup.ts +10 -0
  207. package/package.json +6 -6
  208. package/renovate.json +19 -0
  209. package/scripts/test_react_17 +12 -0
  210. package/src/__tests__/__snapshots__/render-debug.test.tsx.snap +548 -0
  211. package/src/__tests__/__snapshots__/render.test.tsx.snap +39 -0
  212. package/src/__tests__/act.test.tsx +52 -0
  213. package/src/__tests__/auto-cleanup-skip.test.tsx +39 -0
  214. package/src/__tests__/auto-cleanup.test.tsx +50 -0
  215. package/src/__tests__/cleanup.test.tsx +26 -0
  216. package/src/__tests__/config.test.ts +55 -0
  217. package/src/__tests__/fireEvent-textInput.test.tsx +154 -0
  218. package/src/__tests__/fireEvent.test.tsx +485 -0
  219. package/src/__tests__/host-component-names.test.tsx +109 -0
  220. package/src/__tests__/host-text-nesting.test.tsx +90 -0
  221. package/src/__tests__/jest-native.test.tsx +84 -0
  222. package/src/__tests__/questionsBoard.test.tsx +62 -0
  223. package/src/__tests__/react-native-api.test.tsx +126 -0
  224. package/src/__tests__/render-debug.test.tsx +207 -0
  225. package/src/__tests__/render-stringValidation.test.tsx +157 -0
  226. package/src/__tests__/render.test.tsx +256 -0
  227. package/src/__tests__/renderHook.test.tsx +114 -0
  228. package/src/__tests__/screen.test.tsx +66 -0
  229. package/src/__tests__/timerUtils.ts +7 -0
  230. package/src/__tests__/timers.test.ts +27 -0
  231. package/src/__tests__/waitFor.test.tsx +327 -0
  232. package/src/__tests__/waitForElementToBeRemoved.test.tsx +151 -0
  233. package/src/__tests__/within.test.tsx +96 -0
  234. package/src/act.ts +86 -0
  235. package/src/cleanup.ts +15 -0
  236. package/src/config.ts +72 -0
  237. package/src/fireEvent.ts +163 -0
  238. package/src/flush-micro-tasks.ts +30 -0
  239. package/src/helpers/__tests__/accessiblity.test.tsx +373 -0
  240. package/src/helpers/__tests__/component-tree.test.tsx +226 -0
  241. package/src/helpers/__tests__/format-default.tsx +114 -0
  242. package/src/helpers/__tests__/getTextContent.test.tsx +49 -0
  243. package/src/helpers/__tests__/includeHiddenElements.test.tsx +39 -0
  244. package/src/helpers/__tests__/query-name.test.ts +10 -0
  245. package/src/helpers/__tests__/timers.test.ts +8 -0
  246. package/src/helpers/accessiblity.ts +108 -0
  247. package/src/helpers/component-tree.ts +89 -0
  248. package/src/helpers/debugDeep.ts +27 -0
  249. package/src/helpers/debugShallow.ts +22 -0
  250. package/src/helpers/deprecation.ts +53 -0
  251. package/src/helpers/errors.ts +66 -0
  252. package/src/helpers/filterNodeByType.ts +7 -0
  253. package/src/helpers/findAll.ts +68 -0
  254. package/src/helpers/format-default.ts +72 -0
  255. package/src/helpers/format.ts +47 -0
  256. package/src/helpers/getTextContent.ts +20 -0
  257. package/src/helpers/host-component-names.tsx +67 -0
  258. package/src/helpers/matchers/__tests__/matchArrayValue.test.ts +34 -0
  259. package/src/helpers/matchers/__tests__/matchObject.test.ts +37 -0
  260. package/src/helpers/matchers/__tests__/matchStringValue.test.ts +15 -0
  261. package/src/helpers/matchers/accessibilityState.ts +48 -0
  262. package/src/helpers/matchers/accessibilityValue.ts +24 -0
  263. package/src/helpers/matchers/matchArrayProp.ts +21 -0
  264. package/src/helpers/matchers/matchLabelText.ts +51 -0
  265. package/src/helpers/matchers/matchObjectProp.ts +25 -0
  266. package/src/helpers/matchers/matchStringProp.ts +23 -0
  267. package/src/helpers/matchers/matchTextContent.ts +20 -0
  268. package/src/helpers/pointer-events.ts +27 -0
  269. package/src/helpers/query-name.ts +4 -0
  270. package/src/helpers/stringValidation.ts +36 -0
  271. package/src/helpers/timers.ts +98 -0
  272. package/src/index.ts +33 -0
  273. package/src/matches.ts +49 -0
  274. package/src/pure.ts +25 -0
  275. package/src/queries/__tests__/a11yState.test.tsx +439 -0
  276. package/src/queries/__tests__/a11yValue.test.tsx +309 -0
  277. package/src/queries/__tests__/displayValue.test.tsx +221 -0
  278. package/src/queries/__tests__/hintText.test.tsx +177 -0
  279. package/src/queries/__tests__/labelText.test.tsx +242 -0
  280. package/src/queries/__tests__/makeQueries.test.tsx +235 -0
  281. package/src/queries/__tests__/placeholderText.test.tsx +136 -0
  282. package/src/queries/__tests__/role-value.test.tsx +176 -0
  283. package/src/queries/__tests__/role.test.tsx +824 -0
  284. package/src/queries/__tests__/testId.test.tsx +200 -0
  285. package/src/queries/__tests__/text.test.tsx +556 -0
  286. package/src/queries/a11yState.ts +131 -0
  287. package/src/queries/a11yValue.ts +131 -0
  288. package/src/queries/displayValue.ts +78 -0
  289. package/src/queries/hintText.ts +112 -0
  290. package/src/queries/labelText.ts +59 -0
  291. package/src/queries/makeQueries.ts +255 -0
  292. package/src/queries/options.ts +14 -0
  293. package/src/queries/placeholderText.ts +79 -0
  294. package/src/queries/role.ts +132 -0
  295. package/src/queries/testId.ts +71 -0
  296. package/src/queries/text.ts +66 -0
  297. package/src/queries/unsafeProps.ts +76 -0
  298. package/src/queries/unsafeType.ts +73 -0
  299. package/src/react-versions.ts +11 -0
  300. package/src/render-act.ts +19 -0
  301. package/src/render.tsx +183 -0
  302. package/src/renderHook.tsx +56 -0
  303. package/src/screen.ts +123 -0
  304. package/src/shallow.ts +18 -0
  305. package/src/test-utils/events.ts +24 -0
  306. package/src/test-utils/index.ts +1 -0
  307. package/src/user-event/event-builder/common.ts +50 -0
  308. package/src/user-event/event-builder/index.ts +5 -0
  309. package/src/user-event/index.ts +14 -0
  310. package/src/user-event/press/__tests__/longPress.real-timers.test.tsx +115 -0
  311. package/src/user-event/press/__tests__/longPress.test.tsx +157 -0
  312. package/src/user-event/press/__tests__/press.real-timers.test.tsx +318 -0
  313. package/src/user-event/press/__tests__/press.test.tsx +422 -0
  314. package/src/user-event/press/constants.ts +7 -0
  315. package/src/user-event/press/index.ts +1 -0
  316. package/src/user-event/press/press.ts +134 -0
  317. package/src/user-event/press/utils/warnAboutRealTimers.ts +6 -0
  318. package/src/user-event/setup/index.ts +2 -0
  319. package/src/user-event/setup/setup.ts +93 -0
  320. package/src/user-event/type/__tests__/__snapshots__/type.test.tsx.snap +26 -0
  321. package/src/user-event/type/__tests__/type.test.tsx +63 -0
  322. package/src/user-event/type/index.ts +1 -0
  323. package/src/user-event/type/type.ts +20 -0
  324. package/src/user-event/utils/__tests__/wait.test.ts +63 -0
  325. package/src/user-event/utils/events.ts +54 -0
  326. package/src/user-event/utils/index.ts +2 -0
  327. package/src/user-event/utils/wait.ts +15 -0
  328. package/src/waitFor.ts +228 -0
  329. package/src/waitForElementToBeRemoved.ts +42 -0
  330. package/src/within.ts +30 -0
  331. package/tsconfig.json +17 -0
  332. package/tsconfig.release.json +8 -0
  333. package/website/.gitignore +20 -0
  334. package/website/README.md +33 -0
  335. package/website/docker/.dockerignore +3 -0
  336. package/website/docker/Dockerfile +9 -0
  337. package/website/docker/docker-compose.yml +11 -0
  338. package/website/docs/API.md +946 -0
  339. package/website/docs/EslintPLluginTestingLibrary.md +28 -0
  340. package/website/docs/FAQ.md +44 -0
  341. package/website/docs/GettingStarted.md +100 -0
  342. package/website/docs/HowShouldIQuery.md +21 -0
  343. package/website/docs/MigrationV11.md +64 -0
  344. package/website/docs/MigrationV12.md +67 -0
  345. package/website/docs/MigrationV2.md +126 -0
  346. package/website/docs/MigrationV7.md +119 -0
  347. package/website/docs/MigrationV9.md +67 -0
  348. package/website/docs/Queries.md +567 -0
  349. package/website/docs/ReactNavigation.md +371 -0
  350. package/website/docs/ReduxIntegration.md +137 -0
  351. package/website/docs/TestingEnvironment.md +154 -0
  352. package/website/docs/Troubleshooting.md +44 -0
  353. package/website/docs/UnderstandingAct.md +227 -0
  354. package/website/docs/UserEvent.md +66 -0
  355. package/website/docusaurus.config.js +114 -0
  356. package/website/package.json +31 -0
  357. package/website/sidebars.js +20 -0
  358. package/website/src/components/Feature.js +31 -0
  359. package/website/src/css/custom.css +13 -0
  360. package/website/src/css/index.module.css +77 -0
  361. package/website/src/pages/index.js +82 -0
  362. package/website/static/.nojekyll +0 -0
  363. package/website/static/css/custom.css +28 -0
  364. package/website/static/img/hit.png +0 -0
  365. package/website/static/img/locomotive.png +0 -0
  366. package/website/static/img/owl.png +0 -0
  367. package/website/static/img/tools.png +0 -0
  368. package/website/yarn.lock +7669 -0
  369. package/yarn.lock +7765 -0
  370. package/build/flushMicroTasks.d.ts +0 -5
  371. package/build/flushMicroTasks.js +0 -17
  372. package/build/flushMicroTasks.js.map +0 -1
@@ -0,0 +1,81 @@
1
+ // flow-typed signature: b6bb53397d83d2d821e258cc73818d1b
2
+ // flow-typed version: 9c71eca8ef/react-test-renderer_v16.x.x/flow_>=v0.47.x
3
+
4
+ // Type definitions for react-test-renderer 16.x.x
5
+ // Ported from: https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/react-test-renderer
6
+
7
+ type ReactComponentInstance = React$Component<any>;
8
+
9
+ type ReactTestRendererJSON = {
10
+ type: string,
11
+ props: { [propName: string]: any },
12
+ children: null | ReactTestRendererJSON[],
13
+ };
14
+
15
+ type ReactTestRendererTree = ReactTestRendererJSON & {
16
+ nodeType: 'component' | 'host',
17
+ instance: ?ReactComponentInstance,
18
+ rendered: null | ReactTestRendererTree,
19
+ };
20
+
21
+ type ReactTestInstance = {
22
+ instance: ?ReactComponentInstance,
23
+ type: string,
24
+ props: { [propName: string]: any },
25
+ parent: null | ReactTestInstance,
26
+ children: Array<ReactTestInstance | string>,
27
+
28
+ find(predicate: (node: ReactTestInstance) => boolean): ReactTestInstance,
29
+ findByType(type: React$ElementType): ReactTestInstance,
30
+ findByProps(props: { [propName: string]: any }): ReactTestInstance,
31
+
32
+ findAll(
33
+ predicate: (node: ReactTestInstance) => boolean,
34
+ options?: { deep: boolean }
35
+ ): ReactTestInstance[],
36
+ findAllByType(
37
+ type: React$ElementType,
38
+ options?: { deep: boolean }
39
+ ): ReactTestInstance[],
40
+ findAllByProps(
41
+ props: { [propName: string]: any },
42
+ options?: { deep: boolean }
43
+ ): ReactTestInstance[],
44
+ };
45
+
46
+ type TestRendererOptions = {
47
+ createNodeMock(element: React$Element<any>): any,
48
+ };
49
+
50
+ declare module 'react-test-renderer' {
51
+ declare export type ReactTestRenderer = {
52
+ toJSON(): null | ReactTestRendererJSON,
53
+ toTree(): null | ReactTestRendererTree,
54
+ unmount(nextElement?: React$Element<any>): void,
55
+ update(nextElement: React$Element<any>): void,
56
+ getInstance(): ?ReactComponentInstance,
57
+ root: ReactTestInstance,
58
+ };
59
+
60
+ declare type Thenable = {
61
+ then(resolve: () => mixed, reject?: () => mixed): mixed,
62
+ };
63
+
64
+ declare function create(
65
+ nextElement: React$Element<any>,
66
+ options?: TestRendererOptions
67
+ ): ReactTestRenderer;
68
+
69
+ declare function act(callback: () => void): Thenable;
70
+ }
71
+
72
+ declare module 'react-test-renderer/shallow' {
73
+ declare export default class ShallowRenderer {
74
+ static createRenderer(): ShallowRenderer;
75
+ getMountedInstance(): ReactTestInstance;
76
+ getRenderOutput<E: React$Element<any>>(): E;
77
+ getRenderOutput(): React$Element<any>;
78
+ render(element: React$Element<any>, context?: any): void;
79
+ unmount(): void;
80
+ }
81
+ }
package/jest-setup.ts ADDED
@@ -0,0 +1,10 @@
1
+ import { resetToDefaults } from './src/pure';
2
+
3
+ jest.mock('react-native/Libraries/Animated/NativeAnimatedHelper');
4
+
5
+ beforeEach(() => {
6
+ resetToDefaults();
7
+ });
8
+
9
+ // Disable colors in our local tests in order to generate clear snapshots
10
+ process.env.COLORS = 'false';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@testing-library/react-native",
3
- "version": "12.1.1",
3
+ "version": "12.1.3",
4
4
  "description": "Simple and complete React Native testing utilities that encourage good testing practices.",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",
@@ -29,7 +29,8 @@
29
29
  "jest-preset/",
30
30
  "typings/index.flow.js",
31
31
  "pure.js",
32
- "dont-cleanup-after-each.js"
32
+ "dont-cleanup-after-each.js",
33
+ "!**/test-utils"
33
34
  ],
34
35
  "devDependencies": {
35
36
  "@babel/cli": "^7.19.3",
@@ -43,11 +44,10 @@
43
44
  "@callstack/eslint-config": "^13.0.1",
44
45
  "@testing-library/jest-native": "^5.4.0",
45
46
  "@types/jest": "^29.2.3",
46
- "@types/react": "~18.0.26",
47
- "@types/react-test-renderer": "~18.0.0",
47
+ "@types/react": "^18.2.15",
48
+ "@types/react-test-renderer": "^18.0.0",
48
49
  "babel-jest": "^29.4.0",
49
- "conventional-changelog-cli": "^2.2.2",
50
- "dedent": "^0.7.0",
50
+ "dedent": "^1.1.0",
51
51
  "del-cli": "^5.0.0",
52
52
  "eslint": "^8.21.0",
53
53
  "flow-bin": "~0.170.0",
package/renovate.json ADDED
@@ -0,0 +1,19 @@
1
+ {
2
+ "$schema": "https://docs.renovatebot.com/renovate-schema.json",
3
+ "extends": ["config:base"],
4
+ "enabled": false,
5
+ "schedule": ["every weekend"],
6
+ "ignoreDeps": ["flow-bin"],
7
+ "packageRules": [
8
+ {
9
+ "groupName": "React / React Native packages",
10
+ "matchPackageNames": ["react", "react-native", "react-test-renderer"]
11
+ },
12
+ {
13
+ "groupName": "all minor & patch deps",
14
+ "groupSlug": "all-minor-patch",
15
+ "matchPackagePatterns": ["*"],
16
+ "matchUpdateTypes": ["minor", "patch"]
17
+ }
18
+ ]
19
+ }
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env bash
2
+
3
+ cp yarn.lock yarn.lock.backup
4
+ cp package.json package.json.backup
5
+
6
+ yarn add -D react@17.0.2 react-test-renderer@17.0.2 react-native@0.68.3 --ignore-scripts
7
+ yarn test:ci --collectCoverage=false
8
+
9
+ mv package.json.backup package.json
10
+ mv yarn.lock.backup yarn.lock
11
+
12
+ yarn --ignore-scripts
@@ -0,0 +1,548 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`debug 1`] = `
4
+ "<View>
5
+ <Text>
6
+ Is the banana fresh?
7
+ </Text>
8
+ <Text
9
+ testID="bananaFresh"
10
+ >
11
+ not fresh
12
+ </Text>
13
+ <TextInput
14
+ placeholder="Add custom freshness"
15
+ testID="bananaCustomFreshness"
16
+ value="Custom Freshie"
17
+ />
18
+ <TextInput
19
+ defaultValue="What did you inspect?"
20
+ placeholder="Who inspected freshness?"
21
+ testID="bananaChef"
22
+ value="I inspected freshie"
23
+ />
24
+ <TextInput
25
+ defaultValue="What banana?"
26
+ />
27
+ <TextInput
28
+ defaultValue="hello"
29
+ value=""
30
+ />
31
+ <View
32
+ accessibilityState={
33
+ {
34
+ "busy": undefined,
35
+ "checked": undefined,
36
+ "disabled": undefined,
37
+ "expanded": undefined,
38
+ "selected": undefined,
39
+ }
40
+ }
41
+ accessibilityValue={
42
+ {
43
+ "max": undefined,
44
+ "min": undefined,
45
+ "now": undefined,
46
+ "text": undefined,
47
+ }
48
+ }
49
+ accessible={true}
50
+ collapsable={false}
51
+ focusable={true}
52
+ onBlur={[Function onBlur]}
53
+ onClick={[Function onClick]}
54
+ onFocus={[Function onFocus]}
55
+ onResponderGrant={[Function onResponderGrant]}
56
+ onResponderMove={[Function onResponderMove]}
57
+ onResponderRelease={[Function onResponderRelease]}
58
+ onResponderTerminate={[Function onResponderTerminate]}
59
+ onResponderTerminationRequest={[Function onResponderTerminationRequest]}
60
+ onStartShouldSetResponder={[Function onStartShouldSetResponder]}
61
+ >
62
+ <Text>
63
+ Change freshness!
64
+ </Text>
65
+ </View>
66
+ <Text
67
+ testID="duplicateText"
68
+ >
69
+ First Text
70
+ </Text>
71
+ <Text
72
+ testID="duplicateText"
73
+ >
74
+ Second Text
75
+ </Text>
76
+ <Text>
77
+ 0
78
+ </Text>
79
+ </View>"
80
+ `;
81
+
82
+ exports[`debug changing component: bananaFresh button message should now be "fresh" 1`] = `
83
+ "<View>
84
+ <Text>
85
+ Is the banana fresh?
86
+ </Text>
87
+ <Text
88
+ testID="bananaFresh"
89
+ >
90
+ fresh
91
+ </Text>
92
+ <TextInput
93
+ placeholder="Add custom freshness"
94
+ testID="bananaCustomFreshness"
95
+ value="Custom Freshie"
96
+ />
97
+ <TextInput
98
+ defaultValue="What did you inspect?"
99
+ placeholder="Who inspected freshness?"
100
+ testID="bananaChef"
101
+ value="I inspected freshie"
102
+ />
103
+ <TextInput
104
+ defaultValue="What banana?"
105
+ />
106
+ <TextInput
107
+ defaultValue="hello"
108
+ value=""
109
+ />
110
+ <View
111
+ accessibilityState={
112
+ {
113
+ "busy": undefined,
114
+ "checked": undefined,
115
+ "disabled": undefined,
116
+ "expanded": undefined,
117
+ "selected": undefined,
118
+ }
119
+ }
120
+ accessibilityValue={
121
+ {
122
+ "max": undefined,
123
+ "min": undefined,
124
+ "now": undefined,
125
+ "text": undefined,
126
+ }
127
+ }
128
+ accessible={true}
129
+ collapsable={false}
130
+ focusable={true}
131
+ onBlur={[Function onBlur]}
132
+ onClick={[Function onClick]}
133
+ onFocus={[Function onFocus]}
134
+ onResponderGrant={[Function onResponderGrant]}
135
+ onResponderMove={[Function onResponderMove]}
136
+ onResponderRelease={[Function onResponderRelease]}
137
+ onResponderTerminate={[Function onResponderTerminate]}
138
+ onResponderTerminationRequest={[Function onResponderTerminationRequest]}
139
+ onStartShouldSetResponder={[Function onStartShouldSetResponder]}
140
+ >
141
+ <Text>
142
+ Change freshness!
143
+ </Text>
144
+ </View>
145
+ <Text
146
+ testID="duplicateText"
147
+ >
148
+ First Text
149
+ </Text>
150
+ <Text
151
+ testID="duplicateText"
152
+ >
153
+ Second Text
154
+ </Text>
155
+ <Text>
156
+ 0
157
+ </Text>
158
+ </View>"
159
+ `;
160
+
161
+ exports[`debug should use debugOptions from config when no option is specified 1`] = `
162
+ "<View>
163
+ <Text>
164
+ hello
165
+ </Text>
166
+ </View>"
167
+ `;
168
+
169
+ exports[`debug should use given options over config debugOptions 1`] = `
170
+ "<View
171
+ style={
172
+ {
173
+ "backgroundColor": "red",
174
+ }
175
+ }
176
+ >
177
+ <Text>
178
+ hello
179
+ </Text>
180
+ </View>"
181
+ `;
182
+
183
+ exports[`debug with only children prop 1`] = `
184
+ "<View>
185
+ <Text>
186
+ Is the banana fresh?
187
+ </Text>
188
+ <Text>
189
+ not fresh
190
+ </Text>
191
+ <TextInput />
192
+ <TextInput />
193
+ <TextInput />
194
+ <TextInput />
195
+ <View>
196
+ <Text>
197
+ Change freshness!
198
+ </Text>
199
+ </View>
200
+ <Text>
201
+ First Text
202
+ </Text>
203
+ <Text>
204
+ Second Text
205
+ </Text>
206
+ <Text>
207
+ 0
208
+ </Text>
209
+ </View>"
210
+ `;
211
+
212
+ exports[`debug with only prop whose value is bananaChef 1`] = `
213
+ "<View>
214
+ <Text>
215
+ Is the banana fresh?
216
+ </Text>
217
+ <Text>
218
+ not fresh
219
+ </Text>
220
+ <TextInput />
221
+ <TextInput
222
+ testID="bananaChef"
223
+ />
224
+ <TextInput />
225
+ <TextInput />
226
+ <View>
227
+ <Text>
228
+ Change freshness!
229
+ </Text>
230
+ </View>
231
+ <Text>
232
+ First Text
233
+ </Text>
234
+ <Text>
235
+ Second Text
236
+ </Text>
237
+ <Text>
238
+ 0
239
+ </Text>
240
+ </View>"
241
+ `;
242
+
243
+ exports[`debug with only props from TextInput components 1`] = `
244
+ "<View>
245
+ <Text>
246
+ Is the banana fresh?
247
+ </Text>
248
+ <Text>
249
+ not fresh
250
+ </Text>
251
+ <TextInput
252
+ placeholder="Add custom freshness"
253
+ testID="bananaCustomFreshness"
254
+ value="Custom Freshie"
255
+ />
256
+ <TextInput
257
+ defaultValue="What did you inspect?"
258
+ placeholder="Who inspected freshness?"
259
+ testID="bananaChef"
260
+ value="I inspected freshie"
261
+ />
262
+ <TextInput
263
+ defaultValue="What banana?"
264
+ />
265
+ <TextInput
266
+ defaultValue="hello"
267
+ value=""
268
+ />
269
+ <View>
270
+ <Text>
271
+ Change freshness!
272
+ </Text>
273
+ </View>
274
+ <Text>
275
+ First Text
276
+ </Text>
277
+ <Text>
278
+ Second Text
279
+ </Text>
280
+ <Text>
281
+ 0
282
+ </Text>
283
+ </View>"
284
+ `;
285
+
286
+ exports[`debug: another custom message 1`] = `
287
+ "another custom message
288
+
289
+ <View>
290
+ <Text>
291
+ Is the banana fresh?
292
+ </Text>
293
+ <Text
294
+ testID="bananaFresh"
295
+ >
296
+ not fresh
297
+ </Text>
298
+ <TextInput
299
+ placeholder="Add custom freshness"
300
+ testID="bananaCustomFreshness"
301
+ value="Custom Freshie"
302
+ />
303
+ <TextInput
304
+ defaultValue="What did you inspect?"
305
+ placeholder="Who inspected freshness?"
306
+ testID="bananaChef"
307
+ value="I inspected freshie"
308
+ />
309
+ <TextInput
310
+ defaultValue="What banana?"
311
+ />
312
+ <TextInput
313
+ defaultValue="hello"
314
+ value=""
315
+ />
316
+ <View
317
+ accessibilityState={
318
+ {
319
+ "busy": undefined,
320
+ "checked": undefined,
321
+ "disabled": undefined,
322
+ "expanded": undefined,
323
+ "selected": undefined,
324
+ }
325
+ }
326
+ accessibilityValue={
327
+ {
328
+ "max": undefined,
329
+ "min": undefined,
330
+ "now": undefined,
331
+ "text": undefined,
332
+ }
333
+ }
334
+ accessible={true}
335
+ collapsable={false}
336
+ focusable={true}
337
+ onBlur={[Function onBlur]}
338
+ onClick={[Function onClick]}
339
+ onFocus={[Function onFocus]}
340
+ onResponderGrant={[Function onResponderGrant]}
341
+ onResponderMove={[Function onResponderMove]}
342
+ onResponderRelease={[Function onResponderRelease]}
343
+ onResponderTerminate={[Function onResponderTerminate]}
344
+ onResponderTerminationRequest={[Function onResponderTerminationRequest]}
345
+ onStartShouldSetResponder={[Function onStartShouldSetResponder]}
346
+ >
347
+ <Text>
348
+ Change freshness!
349
+ </Text>
350
+ </View>
351
+ <Text
352
+ testID="duplicateText"
353
+ >
354
+ First Text
355
+ </Text>
356
+ <Text
357
+ testID="duplicateText"
358
+ >
359
+ Second Text
360
+ </Text>
361
+ <Text>
362
+ 0
363
+ </Text>
364
+ </View>"
365
+ `;
366
+
367
+ exports[`debug: shallow 1`] = `
368
+ "<View>
369
+ <Text>
370
+ Is the banana fresh?
371
+ </Text>
372
+ <Text
373
+ testID="bananaFresh"
374
+ >
375
+ not fresh
376
+ </Text>
377
+ <TextInput
378
+ placeholder="Add custom freshness"
379
+ testID="bananaCustomFreshness"
380
+ value="Custom Freshie"
381
+ />
382
+ <TextInput
383
+ defaultValue="What did you inspect?"
384
+ placeholder="Who inspected freshness?"
385
+ testID="bananaChef"
386
+ value="I inspected freshie"
387
+ />
388
+ <TextInput
389
+ defaultValue="What banana?"
390
+ />
391
+ <TextInput
392
+ defaultValue="hello"
393
+ value=""
394
+ />
395
+ <MyButton
396
+ onPress={[Function anonymous]}
397
+ type="primary"
398
+ >
399
+ Change freshness!
400
+ </MyButton>
401
+ <Text
402
+ testID="duplicateText"
403
+ >
404
+ First Text
405
+ </Text>
406
+ <Text
407
+ testID="duplicateText"
408
+ >
409
+ Second Text
410
+ </Text>
411
+ <Text>
412
+ 0
413
+ </Text>
414
+ </View>"
415
+ `;
416
+
417
+ exports[`debug: shallow with message 1`] = `
418
+ "my other custom message
419
+
420
+ <View>
421
+ <Text>
422
+ Is the banana fresh?
423
+ </Text>
424
+ <Text
425
+ testID="bananaFresh"
426
+ >
427
+ not fresh
428
+ </Text>
429
+ <TextInput
430
+ placeholder="Add custom freshness"
431
+ testID="bananaCustomFreshness"
432
+ value="Custom Freshie"
433
+ />
434
+ <TextInput
435
+ defaultValue="What did you inspect?"
436
+ placeholder="Who inspected freshness?"
437
+ testID="bananaChef"
438
+ value="I inspected freshie"
439
+ />
440
+ <TextInput
441
+ defaultValue="What banana?"
442
+ />
443
+ <TextInput
444
+ defaultValue="hello"
445
+ value=""
446
+ />
447
+ <MyButton
448
+ onPress={[Function anonymous]}
449
+ type="primary"
450
+ >
451
+ Change freshness!
452
+ </MyButton>
453
+ <Text
454
+ testID="duplicateText"
455
+ >
456
+ First Text
457
+ </Text>
458
+ <Text
459
+ testID="duplicateText"
460
+ >
461
+ Second Text
462
+ </Text>
463
+ <Text>
464
+ 0
465
+ </Text>
466
+ </View>"
467
+ `;
468
+
469
+ exports[`debug: with message 1`] = `
470
+ "my custom message
471
+
472
+ <View>
473
+ <Text>
474
+ Is the banana fresh?
475
+ </Text>
476
+ <Text
477
+ testID="bananaFresh"
478
+ >
479
+ not fresh
480
+ </Text>
481
+ <TextInput
482
+ placeholder="Add custom freshness"
483
+ testID="bananaCustomFreshness"
484
+ value="Custom Freshie"
485
+ />
486
+ <TextInput
487
+ defaultValue="What did you inspect?"
488
+ placeholder="Who inspected freshness?"
489
+ testID="bananaChef"
490
+ value="I inspected freshie"
491
+ />
492
+ <TextInput
493
+ defaultValue="What banana?"
494
+ />
495
+ <TextInput
496
+ defaultValue="hello"
497
+ value=""
498
+ />
499
+ <View
500
+ accessibilityState={
501
+ {
502
+ "busy": undefined,
503
+ "checked": undefined,
504
+ "disabled": undefined,
505
+ "expanded": undefined,
506
+ "selected": undefined,
507
+ }
508
+ }
509
+ accessibilityValue={
510
+ {
511
+ "max": undefined,
512
+ "min": undefined,
513
+ "now": undefined,
514
+ "text": undefined,
515
+ }
516
+ }
517
+ accessible={true}
518
+ collapsable={false}
519
+ focusable={true}
520
+ onBlur={[Function onBlur]}
521
+ onClick={[Function onClick]}
522
+ onFocus={[Function onFocus]}
523
+ onResponderGrant={[Function onResponderGrant]}
524
+ onResponderMove={[Function onResponderMove]}
525
+ onResponderRelease={[Function onResponderRelease]}
526
+ onResponderTerminate={[Function onResponderTerminate]}
527
+ onResponderTerminationRequest={[Function onResponderTerminationRequest]}
528
+ onStartShouldSetResponder={[Function onStartShouldSetResponder]}
529
+ >
530
+ <Text>
531
+ Change freshness!
532
+ </Text>
533
+ </View>
534
+ <Text
535
+ testID="duplicateText"
536
+ >
537
+ First Text
538
+ </Text>
539
+ <Text
540
+ testID="duplicateText"
541
+ >
542
+ Second Text
543
+ </Text>
544
+ <Text>
545
+ 0
546
+ </Text>
547
+ </View>"
548
+ `;