@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,226 +0,0 @@
1
- import React from 'react';
2
- import { View, Text, TextInput } from 'react-native';
3
- import { render } from '../..';
4
- import {
5
- getHostChildren,
6
- getHostParent,
7
- getHostSelves,
8
- getHostSiblings,
9
- } from '../component-tree';
10
-
11
- function ZeroHostChildren() {
12
- return <></>;
13
- }
14
-
15
- function MultipleHostChildren() {
16
- return (
17
- <>
18
- <View testID="child1" />
19
- <View testID="child2" />
20
- <View testID="child3" />
21
- </>
22
- );
23
- }
24
-
25
- describe('getHostParent()', () => {
26
- it('returns host parent for host component', () => {
27
- const view = render(
28
- <View testID="grandparent">
29
- <View testID="parent">
30
- <View testID="subject" />
31
- <View testID="sibling" />
32
- </View>
33
- </View>
34
- );
35
-
36
- const hostParent = getHostParent(view.getByTestId('subject'));
37
- expect(hostParent).toBe(view.getByTestId('parent'));
38
-
39
- const hostGrandparent = getHostParent(hostParent);
40
- expect(hostGrandparent).toBe(view.getByTestId('grandparent'));
41
-
42
- expect(getHostParent(hostGrandparent)).toBe(null);
43
- });
44
-
45
- it('returns host parent for null', () => {
46
- expect(getHostParent(null)).toBe(null);
47
- });
48
-
49
- it('returns host parent for composite component', () => {
50
- const view = render(
51
- <View testID="parent">
52
- <MultipleHostChildren />
53
- <View testID="subject" />
54
- </View>
55
- );
56
-
57
- const compositeComponent = view.UNSAFE_getByType(MultipleHostChildren);
58
- const hostParent = getHostParent(compositeComponent);
59
- expect(hostParent).toBe(view.getByTestId('parent'));
60
- });
61
- });
62
-
63
- describe('getHostChildren()', () => {
64
- it('returns host children for host component', () => {
65
- const view = render(
66
- <View testID="grandparent">
67
- <View testID="parent">
68
- <View testID="subject" />
69
- <Text testID="sibling">Hello</Text>
70
- </View>
71
- </View>
72
- );
73
-
74
- const hostSubject = view.getByTestId('subject');
75
- expect(getHostChildren(hostSubject)).toEqual([]);
76
-
77
- const hostSibling = view.getByTestId('sibling');
78
- expect(getHostChildren(hostSibling)).toEqual([]);
79
-
80
- const hostParent = view.getByTestId('parent');
81
- expect(getHostChildren(hostParent)).toEqual([hostSubject, hostSibling]);
82
-
83
- const hostGrandparent = view.getByTestId('grandparent');
84
- expect(getHostChildren(hostGrandparent)).toEqual([hostParent]);
85
- });
86
-
87
- it('returns host children for composite component', () => {
88
- const view = render(
89
- <View testID="parent">
90
- <MultipleHostChildren />
91
- <View testID="subject" />
92
- <View testID="sibling" />
93
- </View>
94
- );
95
-
96
- expect(getHostChildren(view.getByTestId('parent'))).toEqual([
97
- view.getByTestId('child1'),
98
- view.getByTestId('child2'),
99
- view.getByTestId('child3'),
100
- view.getByTestId('subject'),
101
- view.getByTestId('sibling'),
102
- ]);
103
- });
104
- });
105
-
106
- describe('getHostSelves()', () => {
107
- it('returns passed element for host components', () => {
108
- const view = render(
109
- <View testID="grandparent">
110
- <View testID="parent">
111
- <View testID="subject" />
112
- <View testID="sibling" />
113
- </View>
114
- </View>
115
- );
116
-
117
- const hostSubject = view.getByTestId('subject');
118
- expect(getHostSelves(hostSubject)).toEqual([hostSubject]);
119
-
120
- const hostSibling = view.getByTestId('sibling');
121
- expect(getHostSelves(hostSibling)).toEqual([hostSibling]);
122
-
123
- const hostParent = view.getByTestId('parent');
124
- expect(getHostSelves(hostParent)).toEqual([hostParent]);
125
-
126
- const hostGrandparent = view.getByTestId('grandparent');
127
- expect(getHostSelves(hostGrandparent)).toEqual([hostGrandparent]);
128
- });
129
-
130
- test('returns single host element for React Native composite components', () => {
131
- const view = render(
132
- <View testID="parent">
133
- <Text testID="text">Text</Text>
134
- <TextInput
135
- testID="textInput"
136
- defaultValue="TextInputValue"
137
- placeholder="TextInputPlaceholder"
138
- />
139
- </View>
140
- );
141
-
142
- const compositeText = view.getByText('Text');
143
- const hostText = view.getByTestId('text');
144
- expect(getHostSelves(compositeText)).toEqual([hostText]);
145
-
146
- const compositeTextInputByValue = view.getByDisplayValue('TextInputValue');
147
- const compositeTextInputByPlaceholder = view.getByPlaceholderText(
148
- 'TextInputPlaceholder'
149
- );
150
-
151
- const hostTextInput = view.getByTestId('textInput');
152
- expect(getHostSelves(compositeTextInputByValue)).toEqual([hostTextInput]);
153
- expect(getHostSelves(compositeTextInputByPlaceholder)).toEqual([
154
- hostTextInput,
155
- ]);
156
- });
157
-
158
- test('returns host children for custom composite components', () => {
159
- const view = render(
160
- <View testID="parent">
161
- <ZeroHostChildren />
162
- <MultipleHostChildren />
163
- <View testID="sibling" />
164
- </View>
165
- );
166
-
167
- const zeroCompositeComponent = view.UNSAFE_getByType(ZeroHostChildren);
168
- expect(getHostSelves(zeroCompositeComponent)).toEqual([]);
169
-
170
- const multipleCompositeComponent =
171
- view.UNSAFE_getByType(MultipleHostChildren);
172
- const hostChild1 = view.getByTestId('child1');
173
- const hostChild2 = view.getByTestId('child2');
174
- const hostChild3 = view.getByTestId('child3');
175
- expect(getHostSelves(multipleCompositeComponent)).toEqual([
176
- hostChild1,
177
- hostChild2,
178
- hostChild3,
179
- ]);
180
- });
181
- });
182
-
183
- describe('getHostSiblings()', () => {
184
- it('returns host siblings for host component', () => {
185
- const view = render(
186
- <View testID="grandparent">
187
- <View testID="parent">
188
- <View testID="siblingBefore" />
189
- <View testID="subject" />
190
- <View testID="siblingAfter" />
191
- <MultipleHostChildren />
192
- </View>
193
- </View>
194
- );
195
-
196
- const hostSiblings = getHostSiblings(view.getByTestId('subject'));
197
- expect(hostSiblings).toEqual([
198
- view.getByTestId('siblingBefore'),
199
- view.getByTestId('siblingAfter'),
200
- view.getByTestId('child1'),
201
- view.getByTestId('child2'),
202
- view.getByTestId('child3'),
203
- ]);
204
- });
205
-
206
- it('returns host siblings for composite component', () => {
207
- const view = render(
208
- <View testID="grandparent">
209
- <View testID="parent">
210
- <View testID="siblingBefore" />
211
- <View testID="subject" />
212
- <View testID="siblingAfter" />
213
- <MultipleHostChildren />
214
- </View>
215
- </View>
216
- );
217
-
218
- const compositeComponent = view.UNSAFE_getByType(MultipleHostChildren);
219
- const hostSiblings = getHostSiblings(compositeComponent);
220
- expect(hostSiblings).toEqual([
221
- view.getByTestId('siblingBefore'),
222
- view.getByTestId('subject'),
223
- view.getByTestId('siblingAfter'),
224
- ]);
225
- });
226
- });
@@ -1,114 +0,0 @@
1
- import { ReactTestRendererJSON } from 'react-test-renderer';
2
- import { defaultMapProps } from '../format-default';
3
-
4
- const node: ReactTestRendererJSON = {
5
- type: 'View',
6
- props: {},
7
- children: null,
8
- };
9
-
10
- describe('mapPropsForQueryError', () => {
11
- test('preserves props that are helpful for debugging', () => {
12
- const props = {
13
- accessibilityElementsHidden: true,
14
- accessibilityViewIsModal: true,
15
- importantForAccessibility: 'yes',
16
- testID: 'TEST_ID',
17
- nativeID: 'NATIVE_ID',
18
- accessibilityLabel: 'LABEL',
19
- accessibilityLabelledBy: 'LABELLED_BY',
20
- accessibilityRole: 'ROLE',
21
- accessibilityHint: 'HINT',
22
- placeholder: 'PLACEHOLDER',
23
- value: 'VALUE',
24
- defaultValue: 'DEFAULT_VALUE',
25
- };
26
-
27
- const result = defaultMapProps(props, node);
28
-
29
- expect(result).toStrictEqual(props);
30
- });
31
-
32
- test('does not preserve less helpful props', () => {
33
- const result = defaultMapProps(
34
- {
35
- style: [{ flex: 1 }, { display: 'flex' }],
36
- onPress: () => null,
37
- key: 'foo',
38
- },
39
- node
40
- );
41
-
42
- expect(result).toStrictEqual({});
43
- });
44
-
45
- test('preserves "display: none" style but no other style', () => {
46
- const result = defaultMapProps(
47
- { style: [{ flex: 1 }, { display: 'none', flex: 2 }] },
48
- node
49
- );
50
-
51
- expect(result).toStrictEqual({
52
- style: { display: 'none' },
53
- });
54
- });
55
-
56
- test('removes undefined keys from accessibilityState', () => {
57
- const result = defaultMapProps(
58
- { accessibilityState: { checked: undefined, selected: false } },
59
- node
60
- );
61
-
62
- expect(result).toStrictEqual({
63
- accessibilityState: { selected: false },
64
- });
65
- });
66
-
67
- test('removes accessibilityState if all keys are undefined', () => {
68
- const result = defaultMapProps(
69
- { accessibilityState: { checked: undefined, selected: undefined } },
70
- node
71
- );
72
-
73
- expect(result).toStrictEqual({});
74
- });
75
-
76
- test('does not fail if accessibilityState is a string, passes through', () => {
77
- const result = defaultMapProps({ accessibilityState: 'foo' }, node);
78
- expect(result).toStrictEqual({ accessibilityState: 'foo' });
79
- });
80
-
81
- test('does not fail if accessibilityState is an array, passes through', () => {
82
- const result = defaultMapProps({ accessibilityState: [1] }, node);
83
- expect(result).toStrictEqual({ accessibilityState: [1] });
84
- });
85
-
86
- test('does not fail if accessibilityState is null, passes through', () => {
87
- const result = defaultMapProps({ accessibilityState: null }, node);
88
- expect(result).toStrictEqual({ accessibilityState: null });
89
- });
90
-
91
- test('does not fail if accessibilityState is nested object, passes through', () => {
92
- const accessibilityState = { 1: { 2: 3 }, 2: undefined };
93
- const result = defaultMapProps({ accessibilityState }, node);
94
- expect(result).toStrictEqual({ accessibilityState: { 1: { 2: 3 } } });
95
- });
96
-
97
- test('removes undefined keys from accessibilityValue', () => {
98
- const result = defaultMapProps(
99
- { accessibilityValue: { min: 1, max: undefined } },
100
- node
101
- );
102
-
103
- expect(result).toStrictEqual({ accessibilityValue: { min: 1 } });
104
- });
105
-
106
- test('removes accessibilityValue if all keys are undefined', () => {
107
- const result = defaultMapProps(
108
- { accessibilityValue: { min: undefined } },
109
- node
110
- );
111
-
112
- expect(result).toStrictEqual({});
113
- });
114
- });
@@ -1,49 +0,0 @@
1
- import * as React from 'react';
2
- import { Text } from 'react-native';
3
- import render from '../../render';
4
- import { getTextContent } from '../getTextContent';
5
-
6
- test('getTextContent with simple content', () => {
7
- const view = render(<Text>Hello world</Text>);
8
- expect(getTextContent(view.root)).toBe('Hello world');
9
- });
10
-
11
- test('getTextContent with null element', () => {
12
- expect(getTextContent(null)).toBe('');
13
- });
14
-
15
- test('getTextContent with single nested content', () => {
16
- const view = render(
17
- <Text>
18
- <Text>Hello world</Text>
19
- </Text>
20
- );
21
- expect(getTextContent(view.root)).toBe('Hello world');
22
- });
23
-
24
- test('getTextContent with multiple nested content', () => {
25
- const view = render(
26
- <Text>
27
- <Text>Hello</Text> <Text>world</Text>
28
- </Text>
29
- );
30
- expect(getTextContent(view.root)).toBe('Hello world');
31
- });
32
-
33
- test('getTextContent with multiple number content', () => {
34
- const view = render(
35
- <Text>
36
- <Text>Hello</Text> <Text>world</Text> <Text>{100}</Text>
37
- </Text>
38
- );
39
- expect(getTextContent(view.root)).toBe('Hello world 100');
40
- });
41
-
42
- test('getTextContent with multiple boolean content', () => {
43
- const view = render(
44
- <Text>
45
- <Text>Hello{false}</Text> <Text>{true}world</Text>
46
- </Text>
47
- );
48
- expect(getTextContent(view.root)).toBe('Hello world');
49
- });
@@ -1,39 +0,0 @@
1
- import React from 'react';
2
- import { View } from 'react-native';
3
- import { configure, render, screen } from '../..';
4
-
5
- test('includeHiddenElements query option takes priority over hidden option and global config', () => {
6
- configure({ defaultHidden: true, defaultIncludeHiddenElements: true });
7
- render(<View testID="view" style={{ display: 'none' }} />);
8
- expect(
9
- screen.queryByTestId('view', { includeHiddenElements: false, hidden: true })
10
- ).toBeFalsy();
11
- });
12
-
13
- test('hidden option takes priority over global config when includeHiddenElements is not defined', () => {
14
- configure({ defaultHidden: true, defaultIncludeHiddenElements: true });
15
- render(<View testID="view" style={{ display: 'none' }} />);
16
- expect(screen.queryByTestId('view', { hidden: false })).toBeFalsy();
17
- });
18
-
19
- test('global config defaultIncludeElements option takes priority over defaultHidden when set at the same time', () => {
20
- configure({ defaultHidden: false, defaultIncludeHiddenElements: true });
21
- render(<View testID="view" style={{ display: 'none' }} />);
22
- expect(screen.getByTestId('view')).toBeTruthy();
23
- });
24
-
25
- test('defaultHidden takes priority when it was set last', () => {
26
- // also simulates the case when defaultIncludeHiddenElements is true by default in the config
27
- configure({ defaultIncludeHiddenElements: true });
28
- configure({ defaultHidden: false });
29
- render(<View testID="view" style={{ display: 'none' }} />);
30
- expect(screen.queryByTestId('view')).toBeFalsy();
31
- });
32
-
33
- test('defaultIncludeHiddenElements takes priority when it was set last', () => {
34
- // also simulates the case when defaultHidden is true by default in the config
35
- configure({ defaultHidden: true });
36
- configure({ defaultIncludeHiddenElements: false });
37
- render(<View testID="view" style={{ display: 'none' }} />);
38
- expect(screen.queryByTestId('view')).toBeFalsy();
39
- });
@@ -1,10 +0,0 @@
1
- import { getQueryPrefix } from '../query-name';
2
-
3
- test('getQueryPrefix should return correct prefix', () => {
4
- expect(getQueryPrefix('getByRole')).toBe('get');
5
- expect(getQueryPrefix('getAllByText')).toEqual('getAll');
6
- expect(getQueryPrefix('queryByTestId')).toEqual('query');
7
- expect(getQueryPrefix('queryAllByPlaceholderText')).toEqual('queryAll');
8
- expect(getQueryPrefix('findByHintText')).toEqual('find');
9
- expect(getQueryPrefix('findAllByDisplayValue')).toEqual('findAll');
10
- });
@@ -1,8 +0,0 @@
1
- import { jestFakeTimersAreEnabled } from '../timers';
2
- describe('timers', () => {
3
- it('should not mock timers if RNTL_SKIP_AUTO_DETECT_FAKE_TIMERS is set', async () => {
4
- process.env.RNTL_SKIP_AUTO_DETECT_FAKE_TIMERS = 'true';
5
- jest.useFakeTimers();
6
- expect(jestFakeTimersAreEnabled()).toEqual(false);
7
- });
8
- });
@@ -1,108 +0,0 @@
1
- import {
2
- AccessibilityState,
3
- AccessibilityValue,
4
- StyleSheet,
5
- } from 'react-native';
6
- import { ReactTestInstance } from 'react-test-renderer';
7
- import { getHostSiblings } from './component-tree';
8
- import { getHostComponentNames } from './host-component-names';
9
-
10
- type IsInaccessibleOptions = {
11
- cache?: WeakMap<ReactTestInstance, boolean>;
12
- };
13
-
14
- export const accessibilityStateKeys: (keyof AccessibilityState)[] = [
15
- 'disabled',
16
- 'selected',
17
- 'checked',
18
- 'busy',
19
- 'expanded',
20
- ];
21
-
22
- export const accessiblityValueKeys: (keyof AccessibilityValue)[] = [
23
- 'min',
24
- 'max',
25
- 'now',
26
- 'text',
27
- ];
28
-
29
- export function isHiddenFromAccessibility(
30
- element: ReactTestInstance | null,
31
- { cache }: IsInaccessibleOptions = {}
32
- ): boolean {
33
- if (element == null) {
34
- return true;
35
- }
36
-
37
- let current: ReactTestInstance | null = element;
38
- while (current) {
39
- let isCurrentSubtreeInaccessible = cache?.get(current);
40
-
41
- if (isCurrentSubtreeInaccessible === undefined) {
42
- isCurrentSubtreeInaccessible = isSubtreeInaccessible(current);
43
- cache?.set(current, isCurrentSubtreeInaccessible);
44
- }
45
-
46
- if (isCurrentSubtreeInaccessible) {
47
- return true;
48
- }
49
-
50
- current = current.parent;
51
- }
52
-
53
- return false;
54
- }
55
-
56
- /** RTL-compatitibility alias for `isHiddenFromAccessibility` */
57
- export const isInaccessible = isHiddenFromAccessibility;
58
-
59
- function isSubtreeInaccessible(element: ReactTestInstance): boolean {
60
- // Null props can happen for React.Fragments
61
- if (element.props == null) {
62
- return false;
63
- }
64
-
65
- // iOS: accessibilityElementsHidden
66
- // See: https://reactnative.dev/docs/accessibility#accessibilityelementshidden-ios
67
- if (element.props.accessibilityElementsHidden) {
68
- return true;
69
- }
70
-
71
- // Android: importantForAccessibility
72
- // See: https://reactnative.dev/docs/accessibility#importantforaccessibility-android
73
- if (element.props.importantForAccessibility === 'no-hide-descendants') {
74
- return true;
75
- }
76
-
77
- // Note that `opacity: 0` is not treated as inaccessible on iOS
78
- const flatStyle = StyleSheet.flatten(element.props.style) ?? {};
79
- if (flatStyle.display === 'none') return true;
80
-
81
- // iOS: accessibilityViewIsModal
82
- // See: https://reactnative.dev/docs/accessibility#accessibilityviewismodal-ios
83
- const hostSiblings = getHostSiblings(element);
84
- if (hostSiblings.some((sibling) => sibling.props.accessibilityViewIsModal)) {
85
- return true;
86
- }
87
-
88
- return false;
89
- }
90
-
91
- export function isAccessibilityElement(
92
- element: ReactTestInstance | null
93
- ): boolean {
94
- if (element == null) {
95
- return false;
96
- }
97
-
98
- if (element.props.accessible !== undefined) {
99
- return element.props.accessible;
100
- }
101
-
102
- const hostComponentNames = getHostComponentNames();
103
- return (
104
- element?.type === hostComponentNames?.text ||
105
- element?.type === hostComponentNames?.textInput ||
106
- element?.type === hostComponentNames?.switch
107
- );
108
- }
@@ -1,94 +0,0 @@
1
- import { ReactTestInstance } from 'react-test-renderer';
2
-
3
- /**
4
- * ReactTestInstance referring to host element.
5
- */
6
- export type HostTestInstance = ReactTestInstance & { type: string };
7
-
8
- /**
9
- * Checks if the given element is a host element.
10
- * @param element The element to check.
11
- */
12
- export function isHostElement(
13
- element?: ReactTestInstance | null
14
- ): element is HostTestInstance {
15
- return typeof element?.type === 'string';
16
- }
17
-
18
- /**
19
- * Returns first host ancestor for given element.
20
- * @param element The element start traversing from.
21
- */
22
- export function getHostParent(
23
- element: ReactTestInstance | null
24
- ): HostTestInstance | null {
25
- if (element == null) {
26
- return null;
27
- }
28
-
29
- let current = element.parent;
30
- while (current) {
31
- if (isHostElement(current)) {
32
- return current;
33
- }
34
-
35
- current = current.parent;
36
- }
37
-
38
- return null;
39
- }
40
-
41
- /**
42
- * Returns host children for given element.
43
- * @param element The element start traversing from.
44
- */
45
- export function getHostChildren(
46
- element: ReactTestInstance | null
47
- ): HostTestInstance[] {
48
- if (element == null) {
49
- return [];
50
- }
51
-
52
- const hostChildren: HostTestInstance[] = [];
53
-
54
- element.children.forEach((child) => {
55
- if (typeof child !== 'object') {
56
- return;
57
- }
58
-
59
- if (isHostElement(child)) {
60
- hostChildren.push(child);
61
- } else {
62
- hostChildren.push(...getHostChildren(child));
63
- }
64
- });
65
-
66
- return hostChildren;
67
- }
68
-
69
- /**
70
- * Return the array of host elements that represent the passed element.
71
- *
72
- * @param element The element start traversing from.
73
- * @returns If the passed element is a host element, it will return an array containing only that element,
74
- * if the passed element is a composite element, it will return an array containing its host children (zero, one or many).
75
- */
76
- export function getHostSelves(
77
- element: ReactTestInstance | null
78
- ): HostTestInstance[] {
79
- return isHostElement(element) ? [element] : getHostChildren(element);
80
- }
81
-
82
- /**
83
- * Returns host siblings for given element.
84
- * @param element The element start traversing from.
85
- */
86
- export function getHostSiblings(
87
- element: ReactTestInstance | null
88
- ): HostTestInstance[] {
89
- const hostParent = getHostParent(element);
90
- const hostSelves = getHostSelves(element);
91
- return getHostChildren(hostParent).filter(
92
- (sibling) => !hostSelves.includes(sibling)
93
- );
94
- }
@@ -1,27 +0,0 @@
1
- import type { ReactTestRendererJSON } from 'react-test-renderer';
2
- import format, { FormatOptions } from './format';
3
-
4
- export type DebugOptions = {
5
- message?: string;
6
- } & FormatOptions;
7
-
8
- /**
9
- * Log pretty-printed deep test component instance
10
- */
11
- export default function debugDeep(
12
- instance: ReactTestRendererJSON | ReactTestRendererJSON[],
13
- options?: DebugOptions | string
14
- ) {
15
- const message = typeof options === 'string' ? options : options?.message;
16
-
17
- const formatOptions =
18
- typeof options === 'object' ? { mapProps: options?.mapProps } : undefined;
19
-
20
- if (message) {
21
- // eslint-disable-next-line no-console
22
- console.log(`${message}\n\n`, format(instance, formatOptions));
23
- } else {
24
- // eslint-disable-next-line no-console
25
- console.log(format(instance, formatOptions));
26
- }
27
- }