@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,309 +0,0 @@
1
- /* eslint-disable no-console */
2
- import * as React from 'react';
3
- import { View, Text, TouchableOpacity } from 'react-native';
4
- import { render } from '../..';
5
-
6
- type ConsoleLogMock = jest.Mock<typeof console.log>;
7
-
8
- beforeEach(() => {
9
- jest.spyOn(console, 'warn').mockImplementation(() => {});
10
- });
11
-
12
- const TEXT_LABEL = 'cool text';
13
-
14
- const Typography = ({ children, ...rest }: any) => {
15
- return <Text {...rest}>{children}</Text>;
16
- };
17
-
18
- const Button = ({ children }: { children: React.ReactNode }) => (
19
- <TouchableOpacity>
20
- <Typography accessibilityValue={{ min: 40, max: 60 }}>
21
- {children}
22
- </Typography>
23
- </TouchableOpacity>
24
- );
25
-
26
- const Section = () => (
27
- <>
28
- <Typography accessibilityValue={{ max: 60 }}>Title</Typography>
29
- <Button>{TEXT_LABEL}</Button>
30
- </>
31
- );
32
-
33
- test('getByA11yValue, queryByA11yValue, findByA11yValue', async () => {
34
- const { getByA11yValue, queryByA11yValue, findByA11yValue } = render(
35
- <Section />
36
- );
37
-
38
- expect(getByA11yValue({ min: 40 }).props.accessibilityValue).toEqual({
39
- min: 40,
40
- max: 60,
41
- });
42
- expect(queryByA11yValue({ min: 40 })?.props.accessibilityValue).toEqual({
43
- min: 40,
44
- max: 60,
45
- });
46
-
47
- expect(() => getByA11yValue({ min: 50 })).toThrow(
48
- 'Unable to find an element with min value: 50'
49
- );
50
- expect(queryByA11yValue({ min: 50 })).toEqual(null);
51
-
52
- expect(() => getByA11yValue({ max: 60 })).toThrow(
53
- 'Found multiple elements with max value: 60'
54
- );
55
- expect(() => queryByA11yValue({ max: 60 })).toThrow(
56
- 'Found multiple elements with max value: 60'
57
- );
58
-
59
- const asyncElement = await findByA11yValue({ min: 40 });
60
- expect(asyncElement.props.accessibilityValue).toEqual({
61
- min: 40,
62
- max: 60,
63
- });
64
- await expect(findByA11yValue({ min: 50 })).rejects.toThrow(
65
- 'Unable to find an element with min value: 50'
66
- );
67
- await expect(findByA11yValue({ max: 60 })).rejects.toThrow(
68
- 'Found multiple elements with max value: 60'
69
- );
70
- });
71
-
72
- test('getAllByA11yValue, queryAllByA11yValue, findAllByA11yValue', async () => {
73
- const { getAllByA11yValue, queryAllByA11yValue, findAllByA11yValue } = render(
74
- <Section />
75
- );
76
-
77
- expect(getAllByA11yValue({ min: 40 })).toHaveLength(1);
78
- expect(queryAllByA11yValue({ min: 40 })).toHaveLength(1);
79
-
80
- expect(() => getAllByA11yValue({ min: 50 })).toThrow(
81
- 'Unable to find an element with min value: 50'
82
- );
83
- expect(queryAllByA11yValue({ min: 50 })).toEqual([]);
84
-
85
- expect(queryAllByA11yValue({ max: 60 })).toHaveLength(2);
86
- expect(getAllByA11yValue({ max: 60 })).toHaveLength(2);
87
-
88
- await expect(findAllByA11yValue({ min: 40 })).resolves.toHaveLength(1);
89
- await expect(findAllByA11yValue({ min: 50 })).rejects.toThrow(
90
- 'Unable to find an element with min value: 50'
91
- );
92
- await expect(findAllByA11yValue({ max: 60 })).resolves.toHaveLength(2);
93
- });
94
-
95
- test('byA11yValue queries support hidden option', () => {
96
- const { getByA11yValue, queryByA11yValue } = render(
97
- <Text accessibilityValue={{ max: 10 }} style={{ display: 'none' }}>
98
- Hidden from accessibility
99
- </Text>
100
- );
101
-
102
- expect(
103
- getByA11yValue({ max: 10 }, { includeHiddenElements: true })
104
- ).toBeTruthy();
105
-
106
- expect(queryByA11yValue({ max: 10 })).toBeFalsy();
107
- expect(
108
- queryByA11yValue({ max: 10 }, { includeHiddenElements: false })
109
- ).toBeFalsy();
110
- expect(() => getByA11yValue({ max: 10 }, { includeHiddenElements: false }))
111
- .toThrowErrorMatchingInlineSnapshot(`
112
- "Unable to find an element with max value: 10
113
-
114
- <Text
115
- accessibilityValue={
116
- {
117
- "max": 10,
118
- }
119
- }
120
- style={
121
- {
122
- "display": "none",
123
- }
124
- }
125
- >
126
- Hidden from accessibility
127
- </Text>"
128
- `);
129
- });
130
-
131
- test('byA11yValue error messages', () => {
132
- const { getByA11yValue } = render(<View />);
133
- expect(() => getByA11yValue({ min: 10, max: 10 }))
134
- .toThrowErrorMatchingInlineSnapshot(`
135
- "Unable to find an element with min value: 10, max value: 10
136
-
137
- <View />"
138
- `);
139
- expect(() => getByA11yValue({ max: 20, now: 5 }))
140
- .toThrowErrorMatchingInlineSnapshot(`
141
- "Unable to find an element with max value: 20, now value: 5
142
-
143
- <View />"
144
- `);
145
- expect(() => getByA11yValue({ min: 1, max: 2, now: 3 }))
146
- .toThrowErrorMatchingInlineSnapshot(`
147
- "Unable to find an element with min value: 1, max value: 2, now value: 3
148
-
149
- <View />"
150
- `);
151
- expect(() => getByA11yValue({ min: 1, max: 2, now: 3, text: /foo/i }))
152
- .toThrowErrorMatchingInlineSnapshot(`
153
- "Unable to find an element with min value: 1, max value: 2, now value: 3, text value: /foo/i
154
-
155
- <View />"
156
- `);
157
- });
158
-
159
- test('*ByA11yValue deprecation warnings', () => {
160
- const mockCalls = (console.warn as ConsoleLogMock).mock.calls;
161
- const view = render(<View accessibilityValue={{ min: 10 }} />);
162
-
163
- view.getByA11yValue({ min: 10 });
164
- expect(mockCalls[0][0]).toMatchInlineSnapshot(`
165
- "getByA11yValue(...) is deprecated and will be removed in the future.
166
-
167
- Use expect(...).toHaveAccessibilityValue(...) matcher from "@testing-library/jest-native" package or getByRole(role, { value: ... }) query instead."
168
- `);
169
-
170
- view.getAllByA11yValue({ min: 10 });
171
- expect(mockCalls[1][0]).toMatchInlineSnapshot(`
172
- "getAllByA11yValue(...) is deprecated and will be removed in the future.
173
-
174
- Use expect(...).toHaveAccessibilityValue(...) matcher from "@testing-library/jest-native" package or getAllByRole(role, { value: ... }) query instead."
175
- `);
176
-
177
- view.queryByA11yValue({ min: 10 });
178
- expect(mockCalls[2][0]).toMatchInlineSnapshot(`
179
- "queryByA11yValue(...) is deprecated and will be removed in the future.
180
-
181
- Use expect(...).toHaveAccessibilityValue(...) matcher from "@testing-library/jest-native" package or queryByRole(role, { value: ... }) query instead."
182
- `);
183
-
184
- view.queryAllByA11yValue({ min: 10 });
185
- expect(mockCalls[3][0]).toMatchInlineSnapshot(`
186
- "queryAllByA11yValue(...) is deprecated and will be removed in the future.
187
-
188
- Use expect(...).toHaveAccessibilityValue(...) matcher from "@testing-library/jest-native" package or queryAllByRole(role, { value: ... }) query instead."
189
- `);
190
-
191
- view.findByA11yValue({ min: 10 });
192
- expect(mockCalls[4][0]).toMatchInlineSnapshot(`
193
- "findByA11yValue(...) is deprecated and will be removed in the future.
194
-
195
- Use expect(...).toHaveAccessibilityValue(...) matcher from "@testing-library/jest-native" package or findByRole(role, { value: ... }) query instead."
196
- `);
197
-
198
- view.findAllByA11yValue({ min: 10 });
199
- expect(mockCalls[5][0]).toMatchInlineSnapshot(`
200
- "findAllByA11yValue(...) is deprecated and will be removed in the future.
201
-
202
- Use expect(...).toHaveAccessibilityValue(...) matcher from "@testing-library/jest-native" package or findAllByRole(role, { value: ... }) query instead."
203
- `);
204
- });
205
-
206
- test('*ByAccessibilityValue deprecation warnings', () => {
207
- const mockCalls = (console.warn as ConsoleLogMock).mock.calls;
208
- const view = render(<View accessibilityValue={{ min: 10 }} />);
209
-
210
- view.getByAccessibilityValue({ min: 10 });
211
- expect(mockCalls[0][0]).toMatchInlineSnapshot(`
212
- "getByAccessibilityValue(...) is deprecated and will be removed in the future.
213
-
214
- Use expect(...).toHaveAccessibilityValue(...) matcher from "@testing-library/jest-native" package or getByRole(role, { value: ... }) query instead."
215
- `);
216
-
217
- view.getAllByAccessibilityValue({ min: 10 });
218
- expect(mockCalls[1][0]).toMatchInlineSnapshot(`
219
- "getAllByAccessibilityValue(...) is deprecated and will be removed in the future.
220
-
221
- Use expect(...).toHaveAccessibilityValue(...) matcher from "@testing-library/jest-native" package or getAllByRole(role, { value: ... }) query instead."
222
- `);
223
-
224
- view.queryByAccessibilityValue({ min: 10 });
225
- expect(mockCalls[2][0]).toMatchInlineSnapshot(`
226
- "queryByAccessibilityValue(...) is deprecated and will be removed in the future.
227
-
228
- Use expect(...).toHaveAccessibilityValue(...) matcher from "@testing-library/jest-native" package or queryByRole(role, { value: ... }) query instead."
229
- `);
230
-
231
- view.queryAllByAccessibilityValue({ min: 10 });
232
- expect(mockCalls[3][0]).toMatchInlineSnapshot(`
233
- "queryAllByAccessibilityValue(...) is deprecated and will be removed in the future.
234
-
235
- Use expect(...).toHaveAccessibilityValue(...) matcher from "@testing-library/jest-native" package or queryAllByRole(role, { value: ... }) query instead."
236
- `);
237
-
238
- view.findByAccessibilityValue({ min: 10 });
239
- expect(mockCalls[4][0]).toMatchInlineSnapshot(`
240
- "findByAccessibilityValue(...) is deprecated and will be removed in the future.
241
-
242
- Use expect(...).toHaveAccessibilityValue(...) matcher from "@testing-library/jest-native" package or findByRole(role, { value: ... }) query instead."
243
- `);
244
-
245
- view.findAllByAccessibilityValue({ min: 10 });
246
- expect(mockCalls[5][0]).toMatchInlineSnapshot(`
247
- "findAllByAccessibilityValue(...) is deprecated and will be removed in the future.
248
-
249
- Use expect(...).toHaveAccessibilityValue(...) matcher from "@testing-library/jest-native" package or findAllByRole(role, { value: ... }) query instead."
250
- `);
251
- });
252
-
253
- test('error message renders the element tree, preserving only helpful props', async () => {
254
- const view = render(
255
- <View accessibilityValue={{ min: 2 }} key="NOT_RELEVANT" />
256
- );
257
-
258
- expect(() => view.getByA11yValue({ min: 1 }))
259
- .toThrowErrorMatchingInlineSnapshot(`
260
- "Unable to find an element with min value: 1
261
-
262
- <View
263
- accessibilityValue={
264
- {
265
- "min": 2,
266
- }
267
- }
268
- />"
269
- `);
270
-
271
- expect(() => view.getAllByA11yValue({ min: 1 }))
272
- .toThrowErrorMatchingInlineSnapshot(`
273
- "Unable to find an element with min value: 1
274
-
275
- <View
276
- accessibilityValue={
277
- {
278
- "min": 2,
279
- }
280
- }
281
- />"
282
- `);
283
-
284
- await expect(view.findByA11yValue({ min: 1 })).rejects
285
- .toThrowErrorMatchingInlineSnapshot(`
286
- "Unable to find an element with min value: 1
287
-
288
- <View
289
- accessibilityValue={
290
- {
291
- "min": 2,
292
- }
293
- }
294
- />"
295
- `);
296
-
297
- await expect(view.findAllByA11yValue({ min: 1 })).rejects
298
- .toThrowErrorMatchingInlineSnapshot(`
299
- "Unable to find an element with min value: 1
300
-
301
- <View
302
- accessibilityValue={
303
- {
304
- "min": 2,
305
- }
306
- }
307
- />"
308
- `);
309
- });
@@ -1,221 +0,0 @@
1
- import * as React from 'react';
2
- import { TextInput, View } from 'react-native';
3
-
4
- import { render } from '../..';
5
-
6
- const PLACEHOLDER_FRESHNESS = 'Add custom freshness';
7
- const PLACEHOLDER_CHEF = 'Who inspected freshness?';
8
- const INPUT_FRESHNESS = 'Custom Freshie';
9
- const INPUT_CHEF = 'I inspected freshie';
10
- const DEFAULT_INPUT_CHEF = 'What did you inspect?';
11
- const DEFAULT_INPUT_CUSTOMER = 'What banana?';
12
-
13
- const Banana = () => (
14
- <View>
15
- <TextInput
16
- testID="bananaCustomFreshness"
17
- placeholder={PLACEHOLDER_FRESHNESS}
18
- value={INPUT_FRESHNESS}
19
- />
20
- <TextInput
21
- testID="bananaChef"
22
- placeholder={PLACEHOLDER_CHEF}
23
- value={INPUT_CHEF}
24
- defaultValue={DEFAULT_INPUT_CHEF}
25
- />
26
- <TextInput defaultValue={DEFAULT_INPUT_CUSTOMER} />
27
- <TextInput defaultValue={'hello'} value="" />
28
- </View>
29
- );
30
-
31
- test('getByDisplayValue, queryByDisplayValue', () => {
32
- const { getByDisplayValue, queryByDisplayValue } = render(<Banana />);
33
- const input = getByDisplayValue(/custom/i);
34
-
35
- expect(input.props.value).toBe(INPUT_FRESHNESS);
36
-
37
- const sameInput = getByDisplayValue(INPUT_FRESHNESS);
38
-
39
- expect(sameInput.props.value).toBe(INPUT_FRESHNESS);
40
- expect(() => getByDisplayValue('no value')).toThrow(
41
- 'Unable to find an element with displayValue: no value'
42
- );
43
-
44
- expect(queryByDisplayValue(/custom/i)).toBe(input);
45
- expect(queryByDisplayValue('no value')).toBeNull();
46
- expect(() => queryByDisplayValue(/fresh/i)).toThrow(
47
- 'Found multiple elements with display value: /fresh/i'
48
- );
49
- });
50
-
51
- test('getByDisplayValue, queryByDisplayValue get element by default value only when value is undefined', () => {
52
- const { getByDisplayValue, queryByDisplayValue } = render(<Banana />);
53
- expect(() => getByDisplayValue(DEFAULT_INPUT_CHEF))
54
- .toThrowErrorMatchingInlineSnapshot(`
55
- "Unable to find an element with displayValue: What did you inspect?
56
-
57
- <View>
58
- <TextInput
59
- placeholder="Add custom freshness"
60
- testID="bananaCustomFreshness"
61
- value="Custom Freshie"
62
- />
63
- <TextInput
64
- defaultValue="What did you inspect?"
65
- placeholder="Who inspected freshness?"
66
- testID="bananaChef"
67
- value="I inspected freshie"
68
- />
69
- <TextInput
70
- defaultValue="What banana?"
71
- />
72
- <TextInput
73
- defaultValue="hello"
74
- value=""
75
- />
76
- </View>"
77
- `);
78
- expect(queryByDisplayValue(DEFAULT_INPUT_CHEF)).toBeNull();
79
-
80
- expect(() => getByDisplayValue('hello')).toThrowErrorMatchingInlineSnapshot(`
81
- "Unable to find an element with displayValue: hello
82
-
83
- <View>
84
- <TextInput
85
- placeholder="Add custom freshness"
86
- testID="bananaCustomFreshness"
87
- value="Custom Freshie"
88
- />
89
- <TextInput
90
- defaultValue="What did you inspect?"
91
- placeholder="Who inspected freshness?"
92
- testID="bananaChef"
93
- value="I inspected freshie"
94
- />
95
- <TextInput
96
- defaultValue="What banana?"
97
- />
98
- <TextInput
99
- defaultValue="hello"
100
- value=""
101
- />
102
- </View>"
103
- `);
104
- expect(queryByDisplayValue('hello')).toBeNull();
105
-
106
- expect(getByDisplayValue(DEFAULT_INPUT_CUSTOMER)).toBeTruthy();
107
- expect(queryByDisplayValue(DEFAULT_INPUT_CUSTOMER)).toBeTruthy();
108
- });
109
-
110
- test('getAllByDisplayValue, queryAllByDisplayValue', () => {
111
- const { getAllByDisplayValue, queryAllByDisplayValue } = render(<Banana />);
112
- const inputs = getAllByDisplayValue(/fresh/i);
113
-
114
- expect(inputs).toHaveLength(2);
115
- expect(() => getAllByDisplayValue('no value')).toThrow(
116
- 'Unable to find an element with displayValue: no value'
117
- );
118
-
119
- expect(queryAllByDisplayValue(/fresh/i)).toEqual(inputs);
120
- expect(queryAllByDisplayValue('no value')).toHaveLength(0);
121
- });
122
-
123
- test('findBy queries work asynchronously', async () => {
124
- const options = { timeout: 10 }; // Short timeout so that this test runs quickly
125
- const { rerender, findByDisplayValue, findAllByDisplayValue } = render(
126
- <View />
127
- );
128
-
129
- await expect(
130
- findByDisplayValue('Display Value', {}, options)
131
- ).rejects.toBeTruthy();
132
- await expect(
133
- findAllByDisplayValue('Display Value', {}, options)
134
- ).rejects.toBeTruthy();
135
-
136
- setTimeout(
137
- () =>
138
- rerender(
139
- <View>
140
- <TextInput value="Display Value" />
141
- </View>
142
- ),
143
- 20
144
- );
145
-
146
- await expect(findByDisplayValue('Display Value')).resolves.toBeTruthy();
147
- await expect(findAllByDisplayValue('Display Value')).resolves.toHaveLength(1);
148
- }, 20000);
149
-
150
- test('byDisplayValue queries support hidden option', () => {
151
- const { getByDisplayValue, queryByDisplayValue } = render(
152
- <TextInput value="hidden" style={{ display: 'none' }} />
153
- );
154
-
155
- expect(
156
- getByDisplayValue('hidden', { includeHiddenElements: true })
157
- ).toBeTruthy();
158
-
159
- expect(queryByDisplayValue('hidden')).toBeFalsy();
160
- expect(
161
- queryByDisplayValue('hidden', { includeHiddenElements: false })
162
- ).toBeFalsy();
163
- expect(() => getByDisplayValue('hidden', { includeHiddenElements: false }))
164
- .toThrowErrorMatchingInlineSnapshot(`
165
- "Unable to find an element with displayValue: hidden
166
-
167
- <TextInput
168
- style={
169
- {
170
- "display": "none",
171
- }
172
- }
173
- value="hidden"
174
- />"
175
- `);
176
- });
177
-
178
- test('byDisplayValue should return host component', () => {
179
- const { getByDisplayValue } = render(<TextInput value="value" />);
180
-
181
- expect(getByDisplayValue('value').type).toBe('TextInput');
182
- });
183
-
184
- test('error message renders the element tree, preserving only helpful props', async () => {
185
- const view = render(<TextInput value="1" key="3" />);
186
-
187
- expect(() => view.getByDisplayValue('2')).toThrowErrorMatchingInlineSnapshot(`
188
- "Unable to find an element with displayValue: 2
189
-
190
- <TextInput
191
- value="1"
192
- />"
193
- `);
194
-
195
- expect(() => view.getAllByDisplayValue('2'))
196
- .toThrowErrorMatchingInlineSnapshot(`
197
- "Unable to find an element with displayValue: 2
198
-
199
- <TextInput
200
- value="1"
201
- />"
202
- `);
203
-
204
- await expect(view.findByDisplayValue('2')).rejects
205
- .toThrowErrorMatchingInlineSnapshot(`
206
- "Unable to find an element with displayValue: 2
207
-
208
- <TextInput
209
- value="1"
210
- />"
211
- `);
212
-
213
- await expect(view.findAllByDisplayValue('2')).rejects
214
- .toThrowErrorMatchingInlineSnapshot(`
215
- "Unable to find an element with displayValue: 2
216
-
217
- <TextInput
218
- value="1"
219
- />"
220
- `);
221
- });
@@ -1,177 +0,0 @@
1
- import * as React from 'react';
2
- import { TouchableOpacity, Text, View } from 'react-native';
3
- import { render } from '../..';
4
-
5
- const BUTTON_HINT = 'click this button';
6
- const TEXT_HINT = 'static text';
7
- // Little hack to make all the methods happy with type
8
- const NO_MATCHES_TEXT: any = 'not-existent-element';
9
-
10
- const getMultipleInstancesFoundMessage = (value: string) => {
11
- return `Found multiple elements with accessibilityHint: ${value}`;
12
- };
13
-
14
- const getNoInstancesFoundMessage = (value: string) => {
15
- return `Unable to find an element with accessibilityHint: ${value}`;
16
- };
17
-
18
- const Typography = ({ children, ...rest }: any) => {
19
- return <Text {...rest}>{children}</Text>;
20
- };
21
-
22
- const Button = ({ children }: { children: React.ReactNode }) => (
23
- <TouchableOpacity accessibilityHint={BUTTON_HINT}>
24
- <Typography accessibilityHint={TEXT_HINT}>{children}</Typography>
25
- </TouchableOpacity>
26
- );
27
-
28
- const Section = () => (
29
- <>
30
- <Typography accessibilityHint={TEXT_HINT}>Title</Typography>
31
- <Button>Hello</Button>
32
- </>
33
- );
34
-
35
- test('getByA11yHint, queryByA11yHint, findByA11yHint', async () => {
36
- const { getByA11yHint, queryByA11yHint, findByA11yHint } = render(
37
- <Section />
38
- );
39
-
40
- expect(getByA11yHint(BUTTON_HINT).props.accessibilityHint).toEqual(
41
- BUTTON_HINT
42
- );
43
- const button = queryByA11yHint(BUTTON_HINT);
44
- expect(button?.props.accessibilityHint).toEqual(BUTTON_HINT);
45
-
46
- expect(() => getByA11yHint(NO_MATCHES_TEXT)).toThrow(
47
- getNoInstancesFoundMessage(NO_MATCHES_TEXT)
48
- );
49
- expect(queryByA11yHint(NO_MATCHES_TEXT)).toBeNull();
50
-
51
- expect(() => getByA11yHint(TEXT_HINT)).toThrow(
52
- getMultipleInstancesFoundMessage(TEXT_HINT)
53
- );
54
- expect(() => queryByA11yHint(TEXT_HINT)).toThrow(
55
- getMultipleInstancesFoundMessage(TEXT_HINT)
56
- );
57
-
58
- const asyncButton = await findByA11yHint(BUTTON_HINT);
59
- expect(asyncButton.props.accessibilityHint).toEqual(BUTTON_HINT);
60
- await expect(findByA11yHint(NO_MATCHES_TEXT)).rejects.toThrow(
61
- getNoInstancesFoundMessage(NO_MATCHES_TEXT)
62
- );
63
-
64
- await expect(findByA11yHint(TEXT_HINT)).rejects.toThrow(
65
- getMultipleInstancesFoundMessage(TEXT_HINT)
66
- );
67
- });
68
-
69
- test('getAllByA11yHint, queryAllByA11yHint, findAllByA11yHint', async () => {
70
- const { getAllByA11yHint, queryAllByA11yHint, findAllByA11yHint } = render(
71
- <Section />
72
- );
73
-
74
- expect(getAllByA11yHint(TEXT_HINT)).toHaveLength(2);
75
- expect(queryAllByA11yHint(TEXT_HINT)).toHaveLength(2);
76
-
77
- expect(() => getAllByA11yHint(NO_MATCHES_TEXT)).toThrow(
78
- getNoInstancesFoundMessage(NO_MATCHES_TEXT)
79
- );
80
- expect(queryAllByA11yHint(NO_MATCHES_TEXT)).toEqual([]);
81
-
82
- await expect(findAllByA11yHint(TEXT_HINT)).resolves.toHaveLength(2);
83
- await expect(findAllByA11yHint(NO_MATCHES_TEXT)).rejects.toThrow(
84
- getNoInstancesFoundMessage(NO_MATCHES_TEXT)
85
- );
86
- });
87
-
88
- test('getByHintText, getByHintText', () => {
89
- const { getByHintText, getAllByHintText } = render(
90
- <View>
91
- <View accessibilityHint="test" />
92
- <View accessibilityHint="tests id" />
93
- </View>
94
- );
95
- expect(getByHintText('id', { exact: false })).toBeTruthy();
96
- expect(getAllByHintText('test', { exact: false })).toHaveLength(2);
97
- });
98
-
99
- test('getByHintText, getByHintText and exact = true', () => {
100
- const { queryByHintText, getAllByHintText } = render(
101
- <View>
102
- <View accessibilityHint="test" />
103
- <View accessibilityHint="tests id" />
104
- </View>
105
- );
106
- expect(queryByHintText('id', { exact: true })).toBeNull();
107
- expect(getAllByHintText('test', { exact: true })).toHaveLength(1);
108
- });
109
-
110
- test('byHintText queries support hidden option', () => {
111
- const { getByHintText, queryByHintText } = render(
112
- <Text accessibilityHint="hidden" style={{ display: 'none' }}>
113
- Hidden from accessiblity
114
- </Text>
115
- );
116
-
117
- expect(getByHintText('hidden', { includeHiddenElements: true })).toBeTruthy();
118
-
119
- expect(queryByHintText('hidden')).toBeFalsy();
120
- expect(
121
- queryByHintText('hidden', { includeHiddenElements: false })
122
- ).toBeFalsy();
123
- expect(() => getByHintText('hidden', { includeHiddenElements: false }))
124
- .toThrowErrorMatchingInlineSnapshot(`
125
- "Unable to find an element with accessibilityHint: hidden
126
-
127
- <Text
128
- accessibilityHint="hidden"
129
- style={
130
- {
131
- "display": "none",
132
- }
133
- }
134
- >
135
- Hidden from accessiblity
136
- </Text>"
137
- `);
138
- });
139
-
140
- test('error message renders the element tree, preserving only helpful props', async () => {
141
- const view = render(<TouchableOpacity accessibilityHint="HINT" key="3" />);
142
-
143
- expect(() => view.getByHintText('FOO')).toThrowErrorMatchingInlineSnapshot(`
144
- "Unable to find an element with accessibilityHint: FOO
145
-
146
- <View
147
- accessibilityHint="HINT"
148
- />"
149
- `);
150
-
151
- expect(() => view.getAllByHintText('FOO'))
152
- .toThrowErrorMatchingInlineSnapshot(`
153
- "Unable to find an element with accessibilityHint: FOO
154
-
155
- <View
156
- accessibilityHint="HINT"
157
- />"
158
- `);
159
-
160
- await expect(view.findByHintText('FOO')).rejects
161
- .toThrowErrorMatchingInlineSnapshot(`
162
- "Unable to find an element with accessibilityHint: FOO
163
-
164
- <View
165
- accessibilityHint="HINT"
166
- />"
167
- `);
168
-
169
- await expect(view.findAllByHintText('FOO')).rejects
170
- .toThrowErrorMatchingInlineSnapshot(`
171
- "Unable to find an element with accessibilityHint: FOO
172
-
173
- <View
174
- accessibilityHint="HINT"
175
- />"
176
- `);
177
- });