@testing-library/react-native 12.2.1 → 12.3.0

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 (395) hide show
  1. package/build/config.d.ts +1 -0
  2. package/build/config.js.map +1 -1
  3. package/build/fireEvent.js +2 -1
  4. package/build/fireEvent.js.map +1 -1
  5. package/build/helpers/accessiblity.d.ts +7 -0
  6. package/build/helpers/accessiblity.js +73 -2
  7. package/build/helpers/accessiblity.js.map +1 -1
  8. package/build/helpers/component-tree.d.ts +7 -0
  9. package/build/helpers/component-tree.js +18 -0
  10. package/build/helpers/component-tree.js.map +1 -1
  11. package/build/helpers/format-default.d.ts +1 -2
  12. package/build/helpers/format-default.js +22 -13
  13. package/build/helpers/format-default.js.map +1 -1
  14. package/build/helpers/format.js +1 -4
  15. package/build/helpers/format.js.map +1 -1
  16. package/build/helpers/host-component-names.d.ts +5 -0
  17. package/build/helpers/host-component-names.js +13 -1
  18. package/build/helpers/host-component-names.js.map +1 -1
  19. package/build/helpers/matchers/accessibilityState.js +3 -3
  20. package/build/helpers/matchers/accessibilityState.js.map +1 -1
  21. package/build/helpers/matchers/accessibilityValue.js +3 -2
  22. package/build/helpers/matchers/accessibilityValue.js.map +1 -1
  23. package/build/helpers/matchers/matchLabelText.d.ts +1 -1
  24. package/build/helpers/matchers/matchLabelText.js +5 -8
  25. package/build/helpers/matchers/matchLabelText.js.map +1 -1
  26. package/build/helpers/matchers/matchTextContent.js +2 -2
  27. package/build/helpers/matchers/matchTextContent.js.map +1 -1
  28. package/build/helpers/{getTextContent.js → text-content.js} +1 -1
  29. package/build/helpers/text-content.js.map +1 -0
  30. package/build/helpers/text-input.d.ts +3 -0
  31. package/build/helpers/text-input.js +21 -0
  32. package/build/helpers/text-input.js.map +1 -0
  33. package/build/matchers/extend-expect.d.js +2 -0
  34. package/build/matchers/extend-expect.d.js.map +1 -0
  35. package/build/matchers/extend-expect.d.ts +2 -0
  36. package/build/matchers/extend-expect.js +26 -0
  37. package/build/matchers/extend-expect.js.map +1 -0
  38. package/build/matchers/index.d.ts +9 -0
  39. package/build/matchers/index.js +75 -0
  40. package/build/matchers/index.js.map +1 -0
  41. package/build/matchers/to-be-checked.d.ts +6 -0
  42. package/build/matchers/to-be-checked.js +31 -0
  43. package/build/matchers/to-be-checked.js.map +1 -0
  44. package/build/matchers/to-be-disabled.d.ts +10 -0
  45. package/build/matchers/to-be-disabled.js +52 -0
  46. package/build/matchers/to-be-disabled.js.map +1 -0
  47. package/build/matchers/to-be-empty-element.d.ts +6 -0
  48. package/build/matchers/to-be-empty-element.js +20 -0
  49. package/build/matchers/to-be-empty-element.js.map +1 -0
  50. package/build/matchers/to-be-on-the-screen.d.ts +6 -0
  51. package/build/matchers/to-be-on-the-screen.js +29 -0
  52. package/build/matchers/to-be-on-the-screen.js.map +1 -0
  53. package/build/matchers/to-be-partially-checked.d.ts +6 -0
  54. package/build/matchers/to-be-partially-checked.js +28 -0
  55. package/build/matchers/to-be-partially-checked.js.map +1 -0
  56. package/build/matchers/to-be-visible.d.ts +6 -0
  57. package/build/matchers/to-be-visible.js +56 -0
  58. package/build/matchers/to-be-visible.js.map +1 -0
  59. package/build/matchers/to-have-display-value.d.ts +7 -0
  60. package/build/matchers/to-have-display-value.js +26 -0
  61. package/build/matchers/to-have-display-value.js.map +1 -0
  62. package/build/matchers/to-have-prop.d.ts +6 -0
  63. package/build/matchers/to-have-prop.js +35 -0
  64. package/build/matchers/to-have-prop.js.map +1 -0
  65. package/build/matchers/to-have-text-content.d.ts +7 -0
  66. package/build/matchers/to-have-text-content.js +21 -0
  67. package/build/matchers/to-have-text-content.js.map +1 -0
  68. package/build/matchers/utils.d.ts +18 -0
  69. package/build/matchers/utils.js +90 -0
  70. package/build/matchers/utils.js.map +1 -0
  71. package/build/matches.d.ts +1 -1
  72. package/build/matches.js.map +1 -1
  73. package/build/queries/displayValue.js +4 -3
  74. package/build/queries/displayValue.js.map +1 -1
  75. package/build/queries/labelText.js +2 -2
  76. package/build/queries/labelText.js.map +1 -1
  77. package/build/queries/role.js +1 -1
  78. package/build/queries/role.js.map +1 -1
  79. package/build/render.d.ts +12 -48
  80. package/build/user-event/clear.js +2 -1
  81. package/build/user-event/clear.js.map +1 -1
  82. package/build/user-event/press/press.js +2 -1
  83. package/build/user-event/press/press.js.map +1 -1
  84. package/build/user-event/type/type.js +2 -1
  85. package/build/user-event/type/type.js.map +1 -1
  86. package/build/user-event/utils/index.d.ts +0 -1
  87. package/build/user-event/utils/index.js +0 -11
  88. package/build/user-event/utils/index.js.map +1 -1
  89. package/package.json +6 -23
  90. package/.DS_Store +0 -0
  91. package/.codecov.yml +0 -9
  92. package/.eslintcache +0 -1
  93. package/.eslintignore +0 -3
  94. package/.eslintrc +0 -19
  95. package/.flowconfig +0 -63
  96. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -38
  97. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -14
  98. package/.github/ISSUE_TEMPLATE/question.md +0 -9
  99. package/.github/PULL_REQUEST_TEMPLATE.md +0 -10
  100. package/.github/actions/setup-deps/action.yml +0 -22
  101. package/.github/actions/setup-website-deps/action.yml +0 -22
  102. package/.github/dependabot.yml +0 -10
  103. package/.github/workflows/deploy-website.yml +0 -36
  104. package/.github/workflows/example-apps.yml +0 -25
  105. package/.github/workflows/main.yml +0 -103
  106. package/.gitignore +0 -11
  107. package/.prettierrc.js +0 -5
  108. package/CODE_OF_CONDUCT.md +0 -73
  109. package/CONTRIBUTING.md +0 -64
  110. package/babel.config.js +0 -22
  111. package/build/helpers/getTextContent.js.map +0 -1
  112. package/build/user-event/utils/host-components.d.ts +0 -2
  113. package/build/user-event/utils/host-components.js +0 -11
  114. package/build/user-event/utils/host-components.js.map +0 -1
  115. package/examples/basic/.expo/README.md +0 -15
  116. package/examples/basic/.expo/packager-info.json +0 -4
  117. package/examples/basic/.expo/settings.json +0 -10
  118. package/examples/basic/.expo-shared/assets.json +0 -4
  119. package/examples/basic/.gitignore +0 -14
  120. package/examples/basic/App.tsx +0 -20
  121. package/examples/basic/README.md +0 -11
  122. package/examples/basic/__tests__/App.test.tsx +0 -137
  123. package/examples/basic/app.json +0 -31
  124. package/examples/basic/assets/adaptive-icon.png +0 -0
  125. package/examples/basic/assets/favicon.png +0 -0
  126. package/examples/basic/assets/icon.png +0 -0
  127. package/examples/basic/assets/splash.png +0 -0
  128. package/examples/basic/babel.config.js +0 -6
  129. package/examples/basic/components/Home.tsx +0 -28
  130. package/examples/basic/components/LoginForm.tsx +0 -138
  131. package/examples/basic/jest-setup.ts +0 -7
  132. package/examples/basic/jest.config.js +0 -5
  133. package/examples/basic/package.json +0 -30
  134. package/examples/basic/tsconfig.json +0 -7
  135. package/examples/basic/yarn.lock +0 -7499
  136. package/examples/react-navigation/README.md +0 -16
  137. package/examples/react-navigation/babel.config.js +0 -4
  138. package/examples/react-navigation/jest-setup.js +0 -11
  139. package/examples/react-navigation/jest.config.js +0 -10
  140. package/examples/react-navigation/package.json +0 -31
  141. package/examples/react-navigation/src/App.js +0 -21
  142. package/examples/react-navigation/src/DrawerNavigator.js +0 -15
  143. package/examples/react-navigation/src/DrawerNavigator.test.js +0 -42
  144. package/examples/react-navigation/src/NativeStackNavigator.js +0 -15
  145. package/examples/react-navigation/src/NativeStackNavigator.test.js +0 -34
  146. package/examples/react-navigation/src/StackNavigator.js +0 -15
  147. package/examples/react-navigation/src/StackNavigator.test.js +0 -34
  148. package/examples/react-navigation/src/TabNavigator.js +0 -15
  149. package/examples/react-navigation/src/TabNavigator.test.js +0 -21
  150. package/examples/react-navigation/src/screens/DetailsScreen.js +0 -43
  151. package/examples/react-navigation/src/screens/DetailsScreen.test.js +0 -27
  152. package/examples/react-navigation/src/screens/DrawerHomeScreen.js +0 -26
  153. package/examples/react-navigation/src/screens/HomeScreen.js +0 -48
  154. package/examples/react-navigation/src/screens/SettingsScreen.js +0 -20
  155. package/examples/react-navigation/src/test-utils.js +0 -12
  156. package/examples/react-navigation/yarn.lock +0 -5018
  157. package/examples/redux/App.js +0 -27
  158. package/examples/redux/README.md +0 -5
  159. package/examples/redux/actions/todoActions.js +0 -25
  160. package/examples/redux/babel.config.js +0 -6
  161. package/examples/redux/components/AddTodo.js +0 -73
  162. package/examples/redux/components/AddTodo.test.js +0 -27
  163. package/examples/redux/components/TodoElem.js +0 -25
  164. package/examples/redux/components/TodoList.js +0 -29
  165. package/examples/redux/components/TodoList.test.js +0 -34
  166. package/examples/redux/index.js +0 -8
  167. package/examples/redux/jest-setup.js +0 -2
  168. package/examples/redux/jest.config.js +0 -4
  169. package/examples/redux/package.json +0 -23
  170. package/examples/redux/reducers/index.js +0 -6
  171. package/examples/redux/reducers/todoReducer.js +0 -27
  172. package/examples/redux/store.js +0 -10
  173. package/examples/redux/test-utils.js +0 -11
  174. package/examples/redux/yarn.lock +0 -4819
  175. package/experiments-app/.expo/README.md +0 -15
  176. package/experiments-app/.expo/devices.json +0 -3
  177. package/experiments-app/.expo/packager-info.json +0 -9
  178. package/experiments-app/.expo/settings.json +0 -9
  179. package/experiments-app/.gitignore +0 -17
  180. package/experiments-app/.prettierrc.js +0 -5
  181. package/experiments-app/app.json +0 -30
  182. package/experiments-app/assets/adaptive-icon.png +0 -0
  183. package/experiments-app/assets/favicon.png +0 -0
  184. package/experiments-app/assets/icon.png +0 -0
  185. package/experiments-app/assets/splash.png +0 -0
  186. package/experiments-app/babel.config.js +0 -6
  187. package/experiments-app/index.js +0 -4
  188. package/experiments-app/package.json +0 -29
  189. package/experiments-app/src/App.tsx +0 -31
  190. package/experiments-app/src/MainScreen.tsx +0 -52
  191. package/experiments-app/src/experiments.ts +0 -35
  192. package/experiments-app/src/screens/FlatListEvents.tsx +0 -57
  193. package/experiments-app/src/screens/ScrollViewEvents.tsx +0 -65
  194. package/experiments-app/src/screens/SectionListEvents.tsx +0 -91
  195. package/experiments-app/src/screens/TextInputEventPropagation.tsx +0 -42
  196. package/experiments-app/src/screens/TextInputEvents.tsx +0 -48
  197. package/experiments-app/src/utils/helpers.ts +0 -18
  198. package/experiments-app/tsconfig.json +0 -6
  199. package/experiments-app/yarn.lock +0 -6709
  200. package/experiments-rtl/.babelrc +0 -8
  201. package/experiments-rtl/.eslintrc.json +0 -3
  202. package/experiments-rtl/.gitignore +0 -35
  203. package/experiments-rtl/README.md +0 -34
  204. package/experiments-rtl/jest-setup.js +0 -1
  205. package/experiments-rtl/jest.config.js +0 -4
  206. package/experiments-rtl/next.config.js +0 -4
  207. package/experiments-rtl/package.json +0 -38
  208. package/experiments-rtl/postcss.config.js +0 -6
  209. package/experiments-rtl/public/next.svg +0 -1
  210. package/experiments-rtl/public/vercel.svg +0 -1
  211. package/experiments-rtl/src/app/__tests__/click.test.tsx +0 -31
  212. package/experiments-rtl/src/app/__tests__/managed-text-input.test.tsx +0 -51
  213. package/experiments-rtl/src/app/globals.css +0 -27
  214. package/experiments-rtl/src/app/layout.tsx +0 -22
  215. package/experiments-rtl/src/app/page.tsx +0 -113
  216. package/experiments-rtl/tailwind.config.ts +0 -20
  217. package/experiments-rtl/tsconfig.json +0 -28
  218. package/experiments-rtl/yarn.lock +0 -5418
  219. package/flow-typed/npm/jest_v26.x.x.js +0 -1218
  220. package/flow-typed/npm/react-test-renderer_v16.x.x.js +0 -81
  221. package/jest-setup.ts +0 -10
  222. package/renovate.json +0 -19
  223. package/scripts/test_react_17 +0 -12
  224. package/src/__tests__/__snapshots__/render-debug.test.tsx.snap +0 -548
  225. package/src/__tests__/__snapshots__/render.test.tsx.snap +0 -39
  226. package/src/__tests__/act.test.tsx +0 -56
  227. package/src/__tests__/auto-cleanup-skip.test.tsx +0 -39
  228. package/src/__tests__/auto-cleanup.test.tsx +0 -50
  229. package/src/__tests__/cleanup.test.tsx +0 -26
  230. package/src/__tests__/config.test.ts +0 -55
  231. package/src/__tests__/fireEvent-textInput.test.tsx +0 -154
  232. package/src/__tests__/fireEvent.test.tsx +0 -485
  233. package/src/__tests__/host-component-names.test.tsx +0 -109
  234. package/src/__tests__/host-text-nesting.test.tsx +0 -90
  235. package/src/__tests__/jest-native.test.tsx +0 -84
  236. package/src/__tests__/questionsBoard.test.tsx +0 -62
  237. package/src/__tests__/react-native-api.test.tsx +0 -126
  238. package/src/__tests__/render-debug.test.tsx +0 -207
  239. package/src/__tests__/render-stringValidation.test.tsx +0 -157
  240. package/src/__tests__/render.test.tsx +0 -256
  241. package/src/__tests__/renderHook.test.tsx +0 -114
  242. package/src/__tests__/screen.test.tsx +0 -66
  243. package/src/__tests__/timerUtils.ts +0 -7
  244. package/src/__tests__/timers.test.ts +0 -27
  245. package/src/__tests__/waitFor.test.tsx +0 -327
  246. package/src/__tests__/waitForElementToBeRemoved.test.tsx +0 -151
  247. package/src/__tests__/within.test.tsx +0 -96
  248. package/src/act.ts +0 -86
  249. package/src/cleanup.ts +0 -15
  250. package/src/config.ts +0 -72
  251. package/src/fireEvent.ts +0 -159
  252. package/src/flush-micro-tasks.ts +0 -30
  253. package/src/helpers/__tests__/accessiblity.test.tsx +0 -373
  254. package/src/helpers/__tests__/component-tree.test.tsx +0 -226
  255. package/src/helpers/__tests__/format-default.tsx +0 -114
  256. package/src/helpers/__tests__/getTextContent.test.tsx +0 -49
  257. package/src/helpers/__tests__/includeHiddenElements.test.tsx +0 -39
  258. package/src/helpers/__tests__/query-name.test.ts +0 -10
  259. package/src/helpers/__tests__/timers.test.ts +0 -8
  260. package/src/helpers/accessiblity.ts +0 -108
  261. package/src/helpers/component-tree.ts +0 -94
  262. package/src/helpers/debugDeep.ts +0 -27
  263. package/src/helpers/debugShallow.ts +0 -22
  264. package/src/helpers/deprecation.ts +0 -53
  265. package/src/helpers/errors.ts +0 -66
  266. package/src/helpers/findAll.ts +0 -70
  267. package/src/helpers/format-default.ts +0 -72
  268. package/src/helpers/format.ts +0 -47
  269. package/src/helpers/getTextContent.ts +0 -20
  270. package/src/helpers/host-component-names.tsx +0 -88
  271. package/src/helpers/matchers/__tests__/matchArrayValue.test.ts +0 -34
  272. package/src/helpers/matchers/__tests__/matchObject.test.ts +0 -37
  273. package/src/helpers/matchers/__tests__/matchStringValue.test.ts +0 -15
  274. package/src/helpers/matchers/accessibilityState.ts +0 -48
  275. package/src/helpers/matchers/accessibilityValue.ts +0 -24
  276. package/src/helpers/matchers/matchArrayProp.ts +0 -21
  277. package/src/helpers/matchers/matchLabelText.ts +0 -50
  278. package/src/helpers/matchers/matchObjectProp.ts +0 -25
  279. package/src/helpers/matchers/matchStringProp.ts +0 -23
  280. package/src/helpers/matchers/matchTextContent.ts +0 -20
  281. package/src/helpers/pointer-events.ts +0 -27
  282. package/src/helpers/query-name.ts +0 -4
  283. package/src/helpers/stringValidation.ts +0 -36
  284. package/src/helpers/timers.ts +0 -98
  285. package/src/index.ts +0 -33
  286. package/src/matches.ts +0 -49
  287. package/src/pure.ts +0 -27
  288. package/src/queries/__tests__/a11yState.test.tsx +0 -439
  289. package/src/queries/__tests__/a11yValue.test.tsx +0 -309
  290. package/src/queries/__tests__/displayValue.test.tsx +0 -221
  291. package/src/queries/__tests__/hintText.test.tsx +0 -177
  292. package/src/queries/__tests__/labelText.test.tsx +0 -242
  293. package/src/queries/__tests__/makeQueries.test.tsx +0 -235
  294. package/src/queries/__tests__/placeholderText.test.tsx +0 -136
  295. package/src/queries/__tests__/role-value.test.tsx +0 -176
  296. package/src/queries/__tests__/role.test.tsx +0 -824
  297. package/src/queries/__tests__/testId.test.tsx +0 -200
  298. package/src/queries/__tests__/text.test.tsx +0 -556
  299. package/src/queries/a11yState.ts +0 -127
  300. package/src/queries/a11yValue.ts +0 -127
  301. package/src/queries/displayValue.ts +0 -71
  302. package/src/queries/hintText.ts +0 -107
  303. package/src/queries/labelText.ts +0 -57
  304. package/src/queries/makeQueries.ts +0 -255
  305. package/src/queries/options.ts +0 -14
  306. package/src/queries/placeholderText.ts +0 -72
  307. package/src/queries/role.ts +0 -131
  308. package/src/queries/testId.ts +0 -66
  309. package/src/queries/text.ts +0 -63
  310. package/src/queries/unsafeProps.ts +0 -76
  311. package/src/queries/unsafeType.ts +0 -73
  312. package/src/react-versions.ts +0 -11
  313. package/src/render-act.ts +0 -19
  314. package/src/render.tsx +0 -183
  315. package/src/renderHook.tsx +0 -56
  316. package/src/screen.ts +0 -123
  317. package/src/shallow.ts +0 -18
  318. package/src/test-utils/events.ts +0 -24
  319. package/src/test-utils/index.ts +0 -1
  320. package/src/user-event/__tests__/__snapshots__/clear.test.tsx.snap +0 -269
  321. package/src/user-event/__tests__/clear.test.tsx +0 -217
  322. package/src/user-event/clear.ts +0 -59
  323. package/src/user-event/event-builder/common.ts +0 -66
  324. package/src/user-event/event-builder/index.ts +0 -7
  325. package/src/user-event/event-builder/text-input.ts +0 -86
  326. package/src/user-event/index.ts +0 -18
  327. package/src/user-event/press/__tests__/longPress.real-timers.test.tsx +0 -117
  328. package/src/user-event/press/__tests__/longPress.test.tsx +0 -157
  329. package/src/user-event/press/__tests__/press.real-timers.test.tsx +0 -320
  330. package/src/user-event/press/__tests__/press.test.tsx +0 -457
  331. package/src/user-event/press/constants.ts +0 -7
  332. package/src/user-event/press/index.ts +0 -1
  333. package/src/user-event/press/press.ts +0 -163
  334. package/src/user-event/setup/index.ts +0 -2
  335. package/src/user-event/setup/setup.ts +0 -142
  336. package/src/user-event/type/__tests__/__snapshots__/type-managed.test.tsx.snap +0 -339
  337. package/src/user-event/type/__tests__/__snapshots__/type.test.tsx.snap +0 -668
  338. package/src/user-event/type/__tests__/parseKeys.test.ts +0 -23
  339. package/src/user-event/type/__tests__/type-managed.test.tsx +0 -120
  340. package/src/user-event/type/__tests__/type.test.tsx +0 -335
  341. package/src/user-event/type/index.ts +0 -1
  342. package/src/user-event/type/parseKeys.ts +0 -41
  343. package/src/user-event/type/type.ts +0 -138
  344. package/src/user-event/utils/__tests__/dispatch-event.test.tsx +0 -41
  345. package/src/user-event/utils/__tests__/wait.test.ts +0 -62
  346. package/src/user-event/utils/content-size.ts +0 -25
  347. package/src/user-event/utils/dispatch-event.ts +0 -38
  348. package/src/user-event/utils/host-components.ts +0 -6
  349. package/src/user-event/utils/index.ts +0 -6
  350. package/src/user-event/utils/text-range.ts +0 -4
  351. package/src/user-event/utils/wait.ts +0 -15
  352. package/src/user-event/utils/warn-about-real-timers.ts +0 -13
  353. package/src/waitFor.ts +0 -228
  354. package/src/waitForElementToBeRemoved.ts +0 -42
  355. package/src/within.ts +0 -30
  356. package/tsconfig.json +0 -17
  357. package/tsconfig.release.json +0 -8
  358. package/website/.gitignore +0 -20
  359. package/website/README.md +0 -33
  360. package/website/docker/.dockerignore +0 -3
  361. package/website/docker/Dockerfile +0 -9
  362. package/website/docker/docker-compose.yml +0 -11
  363. package/website/docs/API.md +0 -940
  364. package/website/docs/EslintPLluginTestingLibrary.md +0 -28
  365. package/website/docs/FAQ.md +0 -44
  366. package/website/docs/GettingStarted.md +0 -100
  367. package/website/docs/HowShouldIQuery.md +0 -21
  368. package/website/docs/MigrationV11.md +0 -64
  369. package/website/docs/MigrationV12.md +0 -67
  370. package/website/docs/MigrationV2.md +0 -126
  371. package/website/docs/MigrationV7.md +0 -119
  372. package/website/docs/MigrationV9.md +0 -67
  373. package/website/docs/Queries.md +0 -572
  374. package/website/docs/ReactNavigation.md +0 -371
  375. package/website/docs/ReduxIntegration.md +0 -137
  376. package/website/docs/TestingEnvironment.md +0 -154
  377. package/website/docs/Troubleshooting.md +0 -44
  378. package/website/docs/UnderstandingAct.md +0 -227
  379. package/website/docs/UserEvent.md +0 -191
  380. package/website/docusaurus.config.js +0 -114
  381. package/website/package.json +0 -31
  382. package/website/sidebars.js +0 -20
  383. package/website/src/components/Feature.js +0 -31
  384. package/website/src/css/custom.css +0 -13
  385. package/website/src/css/index.module.css +0 -77
  386. package/website/src/pages/index.js +0 -82
  387. package/website/static/.nojekyll +0 -0
  388. package/website/static/css/custom.css +0 -28
  389. package/website/static/img/hit.png +0 -0
  390. package/website/static/img/locomotive.png +0 -0
  391. package/website/static/img/owl.png +0 -0
  392. package/website/static/img/tools.png +0 -0
  393. package/website/yarn.lock +0 -7669
  394. package/yarn.lock +0 -7765
  395. /package/build/helpers/{getTextContent.d.ts → text-content.d.ts} +0 -0
@@ -1,457 +0,0 @@
1
- import * as React from 'react';
2
- import {
3
- Pressable,
4
- Text,
5
- TextInput,
6
- TouchableHighlight,
7
- TouchableOpacity,
8
- View,
9
- } from 'react-native';
10
- import { createEventLogger, getEventsName } from '../../../test-utils';
11
- import { render, screen } from '../../..';
12
- import { userEvent } from '../..';
13
-
14
- describe('userEvent.press with fake timers', () => {
15
- beforeEach(() => {
16
- jest.useFakeTimers();
17
- jest.setSystemTime(0);
18
- });
19
-
20
- test('calls onPressIn, onPress and onPressOut prop of touchable', async () => {
21
- const { events, logEvent } = createEventLogger();
22
- const user = userEvent.setup();
23
-
24
- render(
25
- <Pressable
26
- onPress={logEvent('press')}
27
- onPressIn={logEvent('pressIn')}
28
- onPressOut={logEvent('pressOut')}
29
- onLongPress={logEvent('longPress')}
30
- testID="pressable"
31
- />
32
- );
33
- await user.press(screen.getByTestId('pressable'));
34
-
35
- expect(events).toMatchInlineSnapshot(`
36
- [
37
- {
38
- "name": "pressIn",
39
- "payload": {
40
- "currentTarget": {
41
- "measure": [MockFunction] {
42
- "calls": [
43
- [
44
- [Function],
45
- ],
46
- [
47
- [Function],
48
- ],
49
- ],
50
- "results": [
51
- {
52
- "type": "return",
53
- "value": undefined,
54
- },
55
- {
56
- "type": "return",
57
- "value": undefined,
58
- },
59
- ],
60
- },
61
- },
62
- "dispatchConfig": {
63
- "registrationName": "onResponderGrant",
64
- },
65
- "nativeEvent": {
66
- "changedTouches": [],
67
- "identifier": 0,
68
- "locationX": 0,
69
- "locationY": 0,
70
- "pageX": 0,
71
- "pageY": 0,
72
- "target": 0,
73
- "timestamp": 0,
74
- "touches": [],
75
- },
76
- "persist": [MockFunction] {
77
- "calls": [
78
- [],
79
- ],
80
- "results": [
81
- {
82
- "type": "return",
83
- "value": undefined,
84
- },
85
- ],
86
- },
87
- },
88
- },
89
- {
90
- "name": "press",
91
- "payload": {
92
- "currentTarget": {
93
- "measure": [MockFunction],
94
- },
95
- "dispatchConfig": {
96
- "registrationName": "onResponderRelease",
97
- },
98
- "nativeEvent": {
99
- "changedTouches": [],
100
- "identifier": 0,
101
- "locationX": 0,
102
- "locationY": 0,
103
- "pageX": 0,
104
- "pageY": 0,
105
- "target": 0,
106
- "timestamp": 0,
107
- "touches": [],
108
- },
109
- "persist": [MockFunction] {
110
- "calls": [
111
- [],
112
- ],
113
- "results": [
114
- {
115
- "type": "return",
116
- "value": undefined,
117
- },
118
- ],
119
- },
120
- },
121
- },
122
- {
123
- "name": "pressOut",
124
- "payload": {
125
- "currentTarget": {
126
- "measure": [MockFunction],
127
- },
128
- "dispatchConfig": {
129
- "registrationName": "onResponderRelease",
130
- },
131
- "nativeEvent": {
132
- "changedTouches": [],
133
- "identifier": 0,
134
- "locationX": 0,
135
- "locationY": 0,
136
- "pageX": 0,
137
- "pageY": 0,
138
- "target": 0,
139
- "timestamp": 0,
140
- "touches": [],
141
- },
142
- "persist": [MockFunction] {
143
- "calls": [
144
- [],
145
- ],
146
- "results": [
147
- {
148
- "type": "return",
149
- "value": undefined,
150
- },
151
- ],
152
- },
153
- },
154
- },
155
- ]
156
- `);
157
- });
158
-
159
- test('does not trigger event when pressable is disabled', async () => {
160
- const { events, logEvent } = createEventLogger();
161
- const user = userEvent.setup();
162
-
163
- render(
164
- <Pressable
165
- disabled
166
- onPress={logEvent('press')}
167
- onPressIn={logEvent('pressIn')}
168
- onPressOut={logEvent('pressOut')}
169
- onLongPress={logEvent('longPress')}
170
- testID="pressable"
171
- />
172
- );
173
- await user.press(screen.getByTestId('pressable'));
174
-
175
- expect(events).toEqual([]);
176
- });
177
-
178
- test('does not call press when pointer events is none', async () => {
179
- const { events, logEvent } = createEventLogger();
180
- const user = userEvent.setup();
181
-
182
- render(
183
- <Pressable
184
- onPress={logEvent('press')}
185
- onPressIn={logEvent('pressIn')}
186
- onPressOut={logEvent('pressOut')}
187
- onLongPress={logEvent('longPress')}
188
- testID="pressable"
189
- pointerEvents="none"
190
- />
191
- );
192
- await user.press(screen.getByTestId('pressable'));
193
-
194
- expect(events).toEqual([]);
195
- });
196
-
197
- test('does not call press when pointer events is box-none', async () => {
198
- const { events, logEvent } = createEventLogger();
199
- const user = userEvent.setup();
200
-
201
- render(
202
- <Pressable
203
- onPress={logEvent('press')}
204
- onPressIn={logEvent('pressIn')}
205
- onPressOut={logEvent('pressOut')}
206
- onLongPress={logEvent('longPress')}
207
- testID="pressable"
208
- pointerEvents="box-none"
209
- />
210
- );
211
- await user.press(screen.getByTestId('pressable'));
212
-
213
- expect(events).toEqual([]);
214
- });
215
-
216
- test('does not call press when parent has pointer events box-only', async () => {
217
- const { events, logEvent } = createEventLogger();
218
- const user = userEvent.setup();
219
-
220
- render(
221
- <View pointerEvents="box-only">
222
- <Pressable
223
- onPress={logEvent('press')}
224
- onPressIn={logEvent('pressIn')}
225
- onPressOut={logEvent('pressOut')}
226
- onLongPress={logEvent('longPress')}
227
- testID="pressable"
228
- />
229
- </View>
230
- );
231
- await user.press(screen.getByTestId('pressable'));
232
-
233
- expect(events).toEqual([]);
234
- });
235
-
236
- test('calls press when pressable has pointer events box-only', async () => {
237
- const { events, logEvent } = createEventLogger();
238
- const user = userEvent.setup();
239
-
240
- render(
241
- <Pressable
242
- onPress={logEvent('press')}
243
- onPressIn={logEvent('pressIn')}
244
- onPressOut={logEvent('pressOut')}
245
- onLongPress={logEvent('longPress')}
246
- testID="pressable"
247
- pointerEvents="box-only"
248
- />
249
- );
250
- await user.press(screen.getByTestId('pressable'));
251
-
252
- expect(getEventsName(events)).toEqual(['pressIn', 'press', 'pressOut']);
253
- });
254
-
255
- test('crawls up in the tree to find an element that responds to touch events', async () => {
256
- const mockOnPress = jest.fn();
257
-
258
- render(
259
- <Pressable onPress={mockOnPress}>
260
- <Text>press me</Text>
261
- </Pressable>
262
- );
263
- await userEvent.press(screen.getByText('press me'));
264
-
265
- expect(mockOnPress).toHaveBeenCalled();
266
- });
267
-
268
- test('does not call onLongPress', async () => {
269
- const mockOnLongPress = jest.fn();
270
-
271
- render(
272
- <Pressable onLongPress={mockOnLongPress}>
273
- <Text>press me</Text>
274
- </Pressable>
275
- );
276
- await userEvent.press(screen.getByText('press me'));
277
-
278
- expect(mockOnLongPress).not.toHaveBeenCalled();
279
- });
280
-
281
- test('works on TouchableOpacity', async () => {
282
- const mockOnPress = jest.fn();
283
-
284
- render(
285
- <TouchableOpacity onPress={mockOnPress}>
286
- <Text>press me</Text>
287
- </TouchableOpacity>
288
- );
289
- await userEvent.press(screen.getByText('press me'));
290
-
291
- expect(mockOnPress).toHaveBeenCalled();
292
- });
293
-
294
- test('works on TouchableHighlight', async () => {
295
- const mockOnPress = jest.fn();
296
-
297
- render(
298
- <TouchableHighlight onPress={mockOnPress}>
299
- <Text>press me</Text>
300
- </TouchableHighlight>
301
- );
302
- await userEvent.press(screen.getByText('press me'));
303
-
304
- expect(mockOnPress).toHaveBeenCalled();
305
- });
306
-
307
- test('press works on Text', async () => {
308
- const { events, logEvent } = createEventLogger();
309
-
310
- render(
311
- <Text
312
- onPress={logEvent('press')}
313
- onPressIn={logEvent('pressIn')}
314
- onPressOut={logEvent('pressOut')}
315
- onLongPress={logEvent('longPress')}
316
- >
317
- press me
318
- </Text>
319
- );
320
-
321
- await userEvent.press(screen.getByText('press me'));
322
- expect(getEventsName(events)).toEqual(['pressIn', 'press', 'pressOut']);
323
- });
324
-
325
- test('longPress works Text', async () => {
326
- const { events, logEvent } = createEventLogger();
327
-
328
- render(
329
- <Text
330
- onPress={logEvent('press')}
331
- onPressIn={logEvent('pressIn')}
332
- onPressOut={logEvent('pressOut')}
333
- onLongPress={logEvent('longPress')}
334
- >
335
- press me
336
- </Text>
337
- );
338
-
339
- await userEvent.longPress(screen.getByText('press me'));
340
- expect(getEventsName(events)).toEqual(['pressIn', 'longPress', 'pressOut']);
341
- });
342
-
343
- test('doesnt trigger on disabled Text', async () => {
344
- const { events, logEvent } = createEventLogger();
345
-
346
- render(
347
- <Text
348
- onPress={logEvent('press')}
349
- onPressIn={logEvent('pressIn')}
350
- onPressOut={logEvent('pressOut')}
351
- onLongPress={logEvent('longPress')}
352
- disabled
353
- >
354
- press me
355
- </Text>
356
- );
357
- await userEvent.press(screen.getByText('press me'));
358
-
359
- expect(events).toEqual([]);
360
- });
361
-
362
- test('doesnt trigger on Text with disabled pointer events', async () => {
363
- const { events, logEvent } = createEventLogger();
364
-
365
- render(
366
- <View pointerEvents="box-only">
367
- <Text
368
- onPress={logEvent('press')}
369
- onPressIn={logEvent('pressIn')}
370
- onPressOut={logEvent('pressOut')}
371
- onLongPress={logEvent('longPress')}
372
- >
373
- press me
374
- </Text>
375
- </View>
376
- );
377
- await userEvent.press(screen.getByText('press me'));
378
-
379
- expect(events).toEqual([]);
380
- });
381
-
382
- test('press works on TextInput', async () => {
383
- const { events, logEvent } = createEventLogger();
384
-
385
- render(
386
- <TextInput
387
- placeholder="email"
388
- onPressIn={logEvent('pressIn')}
389
- onPressOut={logEvent('pressOut')}
390
- />
391
- );
392
-
393
- await userEvent.press(screen.getByPlaceholderText('email'));
394
- expect(getEventsName(events)).toEqual(['pressIn', 'pressOut']);
395
- });
396
-
397
- test('longPress works on TextInput', async () => {
398
- const { events, logEvent } = createEventLogger();
399
-
400
- render(
401
- <TextInput
402
- placeholder="email"
403
- onPressIn={logEvent('pressIn')}
404
- onPressOut={logEvent('pressOut')}
405
- />
406
- );
407
-
408
- await userEvent.longPress(screen.getByPlaceholderText('email'));
409
- expect(getEventsName(events)).toEqual(['pressIn', 'pressOut']);
410
- });
411
-
412
- test('does not call onPressIn and onPressOut on non editable TextInput', async () => {
413
- const { events, logEvent } = createEventLogger();
414
-
415
- render(
416
- <TextInput
417
- placeholder="email"
418
- editable={false}
419
- onPressIn={logEvent('pressIn')}
420
- onPressOut={logEvent('pressOut')}
421
- />
422
- );
423
-
424
- await userEvent.press(screen.getByPlaceholderText('email'));
425
- expect(events).toEqual([]);
426
- });
427
-
428
- test('does not call onPressIn and onPressOut on TextInput with pointer events disabled', async () => {
429
- const { events, logEvent } = createEventLogger();
430
-
431
- render(
432
- <TextInput
433
- placeholder="email"
434
- pointerEvents="box-none"
435
- onPressIn={logEvent('pressIn')}
436
- onPressOut={logEvent('pressOut')}
437
- />
438
- );
439
-
440
- await userEvent.press(screen.getByPlaceholderText('email'));
441
- expect(events).toEqual([]);
442
- });
443
-
444
- test('press is accessible directly in userEvent', async () => {
445
- const mockOnPress = jest.fn();
446
-
447
- render(
448
- <Pressable onPress={mockOnPress}>
449
- <Text>press me</Text>
450
- </Pressable>
451
- );
452
-
453
- await userEvent.press(screen.getByText('press me'));
454
-
455
- expect(mockOnPress).toHaveBeenCalled();
456
- });
457
- });
@@ -1,7 +0,0 @@
1
- // These are constants defined in the React Native repo
2
-
3
- // Used to define the delay before calling onPressOut after a press
4
- export const DEFAULT_MIN_PRESS_DURATION = 130;
5
-
6
- // Default minimum press duration to trigger a long press
7
- export const DEFAULT_LONG_PRESS_DELAY_MS = 500;
@@ -1 +0,0 @@
1
- export { PressOptions, press, longPress } from './press';
@@ -1,163 +0,0 @@
1
- import { ReactTestInstance } from 'react-test-renderer';
2
- import act from '../../act';
3
- import { getHostParent } from '../../helpers/component-tree';
4
- import { isPointerEventEnabled } from '../../helpers/pointer-events';
5
- import { isHostText } from '../../helpers/host-component-names';
6
- import { EventBuilder } from '../event-builder';
7
- import { UserEventConfig, UserEventInstance } from '../setup';
8
- import {
9
- dispatchEvent,
10
- isEditableTextInput,
11
- wait,
12
- warnAboutRealTimersIfNeeded,
13
- } from '../utils';
14
- import { DEFAULT_MIN_PRESS_DURATION } from './constants';
15
-
16
- export interface PressOptions {
17
- duration?: number;
18
- }
19
-
20
- export async function press(
21
- this: UserEventInstance,
22
- element: ReactTestInstance
23
- ): Promise<void> {
24
- await basePress(this.config, element, {
25
- type: 'press',
26
- duration: 0,
27
- });
28
- }
29
-
30
- export async function longPress(
31
- this: UserEventInstance,
32
- element: ReactTestInstance,
33
- options?: PressOptions
34
- ): Promise<void> {
35
- await basePress(this.config, element, {
36
- type: 'longPress',
37
- duration: options?.duration ?? 500,
38
- });
39
- }
40
-
41
- interface BasePressOptions {
42
- type: 'press' | 'longPress';
43
- duration: number;
44
- }
45
-
46
- const basePress = async (
47
- config: UserEventConfig,
48
- element: ReactTestInstance,
49
- options: BasePressOptions
50
- ): Promise<void> => {
51
- if (isPressableText(element)) {
52
- await emitTextPressEvents(config, element, options);
53
- return;
54
- }
55
-
56
- if (isEditableTextInput(element) && isPointerEventEnabled(element)) {
57
- await emitTextInputPressEvents(config, element, options);
58
- return;
59
- }
60
-
61
- if (isEnabledTouchResponder(element)) {
62
- await emitPressablePressEvents(config, element, options);
63
- return;
64
- }
65
-
66
- const hostParentElement = getHostParent(element);
67
- if (!hostParentElement) {
68
- return;
69
- }
70
-
71
- await basePress(config, hostParentElement, options);
72
- };
73
-
74
- const emitPressablePressEvents = async (
75
- config: UserEventConfig,
76
- element: ReactTestInstance,
77
- options: BasePressOptions
78
- ) => {
79
- warnAboutRealTimersIfNeeded();
80
-
81
- await wait(config);
82
-
83
- await act(async () => {
84
- dispatchEvent(
85
- element,
86
- 'responderGrant',
87
- EventBuilder.Common.responderGrant()
88
- );
89
-
90
- await wait(config, options.duration);
91
-
92
- dispatchEvent(
93
- element,
94
- 'responderRelease',
95
- EventBuilder.Common.responderRelease()
96
- );
97
-
98
- // React Native will wait for minimal delay of DEFAULT_MIN_PRESS_DURATION
99
- // before emitting the `pressOut` event. We need to wait here, so that
100
- // `press()` function does not return before that.
101
- if (DEFAULT_MIN_PRESS_DURATION - options.duration > 0) {
102
- await wait(config, DEFAULT_MIN_PRESS_DURATION - options.duration);
103
- }
104
- });
105
- };
106
-
107
- const isEnabledTouchResponder = (element: ReactTestInstance) => {
108
- return (
109
- isPointerEventEnabled(element) &&
110
- element.props.onStartShouldSetResponder?.()
111
- );
112
- };
113
-
114
- const isPressableText = (element: ReactTestInstance) => {
115
- const hasPressEventHandler = Boolean(
116
- element.props.onPress ||
117
- element.props.onLongPress ||
118
- element.props.onPressIn ||
119
- element.props.onPressOut
120
- );
121
-
122
- return (
123
- isHostText(element) &&
124
- isPointerEventEnabled(element) &&
125
- !element.props.disabled &&
126
- hasPressEventHandler
127
- );
128
- };
129
-
130
- /**
131
- * Dispatches a press event sequence for Text.
132
- */
133
- async function emitTextPressEvents(
134
- config: UserEventConfig,
135
- element: ReactTestInstance,
136
- options: BasePressOptions
137
- ) {
138
- await wait(config);
139
- dispatchEvent(element, 'pressIn', EventBuilder.Common.touch());
140
-
141
- // Emit either `press` or `longPress`.
142
- dispatchEvent(element, options.type, EventBuilder.Common.touch());
143
-
144
- await wait(config, options.duration);
145
- dispatchEvent(element, 'pressOut', EventBuilder.Common.touch());
146
- }
147
-
148
- /**
149
- * Dispatches a press event sequence for TextInput.
150
- */
151
- async function emitTextInputPressEvents(
152
- config: UserEventConfig,
153
- element: ReactTestInstance,
154
- options: BasePressOptions
155
- ) {
156
- await wait(config);
157
- dispatchEvent(element, 'pressIn', EventBuilder.Common.touch());
158
-
159
- // Note: TextInput does not have `onPress`/`onLongPress` props.
160
-
161
- await wait(config, options.duration);
162
- dispatchEvent(element, 'pressOut', EventBuilder.Common.touch());
163
- }
@@ -1,2 +0,0 @@
1
- export type { UserEventConfig, UserEventInstance } from './setup';
2
- export { setup } from './setup';