@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,242 +0,0 @@
1
- import * as React from 'react';
2
- import { View, Text, TextInput, TouchableOpacity } from 'react-native';
3
- import { render } from '../..';
4
-
5
- const BUTTON_LABEL = 'cool button';
6
- const BUTTON_HINT = 'click this button';
7
- const TEXT_LABEL = 'cool text';
8
- const TEXT_HINT = 'static text';
9
- // Little hack to make all the methods happy with type
10
- const NO_MATCHES_TEXT: any = 'not-existent-element';
11
-
12
- const getMultipleInstancesFoundMessage = (value: string) => {
13
- return `Found multiple elements with accessibilityLabel: ${value}`;
14
- };
15
-
16
- const getNoInstancesFoundMessage = (value: string) => {
17
- return `Unable to find an element with accessibilityLabel: ${value}`;
18
- };
19
-
20
- const Typography = ({ children, ...rest }: any) => {
21
- return <Text {...rest}>{children}</Text>;
22
- };
23
-
24
- const Button = ({ children }: { children: React.ReactNode }) => (
25
- <TouchableOpacity
26
- accessibilityHint={BUTTON_HINT}
27
- accessibilityLabel={BUTTON_LABEL}
28
- >
29
- <Typography accessibilityHint={TEXT_HINT} accessibilityLabel={TEXT_LABEL}>
30
- {children}
31
- </Typography>
32
- </TouchableOpacity>
33
- );
34
-
35
- const Section = () => (
36
- <>
37
- <Typography accessibilityHint={TEXT_HINT} accessibilityLabel={TEXT_LABEL}>
38
- Title
39
- </Typography>
40
- <Button>{TEXT_LABEL}</Button>
41
- </>
42
- );
43
-
44
- test('getByLabelText, queryByLabelText, findByLabelText', async () => {
45
- const { getByLabelText, queryByLabelText, findByLabelText } = render(
46
- <Section />
47
- );
48
-
49
- expect(getByLabelText(BUTTON_LABEL).props.accessibilityLabel).toEqual(
50
- BUTTON_LABEL
51
- );
52
- const button = queryByLabelText(/button/g);
53
- expect(button?.props.accessibilityLabel).toEqual(BUTTON_LABEL);
54
-
55
- expect(() => getByLabelText(NO_MATCHES_TEXT)).toThrow(
56
- getNoInstancesFoundMessage(NO_MATCHES_TEXT)
57
- );
58
- expect(queryByLabelText(NO_MATCHES_TEXT)).toBeNull();
59
-
60
- expect(() => getByLabelText(TEXT_LABEL)).toThrow(
61
- getMultipleInstancesFoundMessage(TEXT_LABEL)
62
- );
63
- expect(() => queryByLabelText(TEXT_LABEL)).toThrow(
64
- getMultipleInstancesFoundMessage(TEXT_LABEL)
65
- );
66
-
67
- const asyncButton = await findByLabelText(BUTTON_LABEL);
68
- expect(asyncButton.props.accessibilityLabel).toEqual(BUTTON_LABEL);
69
- await expect(findByLabelText(NO_MATCHES_TEXT)).rejects.toThrow(
70
- getNoInstancesFoundMessage(NO_MATCHES_TEXT)
71
- );
72
-
73
- await expect(findByLabelText(TEXT_LABEL)).rejects.toThrow(
74
- getMultipleInstancesFoundMessage(TEXT_LABEL)
75
- );
76
- });
77
-
78
- test('getAllByLabelText, queryAllByLabelText, findAllByLabelText', async () => {
79
- const { getAllByLabelText, queryAllByLabelText, findAllByLabelText } = render(
80
- <Section />
81
- );
82
-
83
- expect(getAllByLabelText(TEXT_LABEL)).toHaveLength(2);
84
- expect(queryAllByLabelText(/cool/g)).toHaveLength(3);
85
-
86
- expect(() => getAllByLabelText(NO_MATCHES_TEXT)).toThrow(
87
- getNoInstancesFoundMessage(NO_MATCHES_TEXT)
88
- );
89
- expect(queryAllByLabelText(NO_MATCHES_TEXT)).toEqual([]);
90
-
91
- await expect(findAllByLabelText(TEXT_LABEL)).resolves.toHaveLength(2);
92
- await expect(findAllByLabelText(NO_MATCHES_TEXT)).rejects.toThrow(
93
- getNoInstancesFoundMessage(NO_MATCHES_TEXT)
94
- );
95
- });
96
-
97
- test('getAllByLabelText, queryAllByLabelText, findAllByLabelText with exact as false', async () => {
98
- const { getAllByLabelText, queryAllByLabelText, findAllByLabelText } = render(
99
- <Section />
100
- );
101
-
102
- expect(getAllByLabelText(TEXT_LABEL, { exact: false })).toHaveLength(2);
103
- expect(queryAllByLabelText(/cool/g, { exact: false })).toHaveLength(3);
104
-
105
- expect(() => getAllByLabelText(NO_MATCHES_TEXT, { exact: false })).toThrow(
106
- getNoInstancesFoundMessage(NO_MATCHES_TEXT)
107
- );
108
- expect(queryAllByLabelText(NO_MATCHES_TEXT, { exact: false })).toEqual([]);
109
-
110
- await expect(
111
- findAllByLabelText(TEXT_LABEL, { exact: false })
112
- ).resolves.toHaveLength(2);
113
- await expect(
114
- findAllByLabelText(NO_MATCHES_TEXT, { exact: false })
115
- ).rejects.toThrow(getNoInstancesFoundMessage(NO_MATCHES_TEXT));
116
- });
117
-
118
- describe('findBy options deprecations', () => {
119
- let warnSpy: jest.SpyInstance;
120
- beforeEach(() => {
121
- warnSpy = jest.spyOn(console, 'warn').mockImplementation(() => {});
122
- });
123
- afterEach(() => {
124
- warnSpy.mockRestore();
125
- });
126
-
127
- test('findByText queries warn on deprecated use of WaitForOptions', async () => {
128
- const options = { timeout: 10 };
129
- // mock implementation to avoid warning in the test suite
130
- const view = render(<View />);
131
- await expect(
132
- view.findByLabelText('Some Text', options)
133
- ).rejects.toBeTruthy();
134
-
135
- setTimeout(
136
- () => view.rerender(<View accessibilityLabel="Some Text" />),
137
- 20
138
- );
139
- await expect(view.findByLabelText('Some Text')).resolves.toBeTruthy();
140
-
141
- expect(warnSpy).toHaveBeenCalledWith(
142
- expect.stringContaining('Use of option "timeout"')
143
- );
144
- }, 20000);
145
- });
146
-
147
- test('byLabelText queries support hidden option', () => {
148
- const { getByLabelText, queryByLabelText } = render(
149
- <Text accessibilityLabel="hidden" style={{ display: 'none' }}>
150
- Hidden from accessibility
151
- </Text>
152
- );
153
-
154
- expect(
155
- getByLabelText('hidden', { includeHiddenElements: true })
156
- ).toBeTruthy();
157
-
158
- expect(queryByLabelText('hidden')).toBeFalsy();
159
- expect(
160
- queryByLabelText('hidden', { includeHiddenElements: false })
161
- ).toBeFalsy();
162
- expect(() => getByLabelText('hidden', { includeHiddenElements: false }))
163
- .toThrowErrorMatchingInlineSnapshot(`
164
- "Unable to find an element with accessibilityLabel: hidden
165
-
166
- <Text
167
- accessibilityLabel="hidden"
168
- style={
169
- {
170
- "display": "none",
171
- }
172
- }
173
- >
174
- Hidden from accessibility
175
- </Text>"
176
- `);
177
- });
178
-
179
- test('getByLabelText supports accessibilityLabelledBy', async () => {
180
- const { getByLabelText, getByTestId } = render(
181
- <>
182
- <Text nativeID="label">Label for input</Text>
183
- <TextInput testID="textInput" accessibilityLabelledBy="label" />
184
- </>
185
- );
186
-
187
- expect(getByLabelText('Label for input')).toBe(getByTestId('textInput'));
188
- expect(getByLabelText(/input/)).toBe(getByTestId('textInput'));
189
- });
190
-
191
- test('getByLabelText supports nested accessibilityLabelledBy', async () => {
192
- const { getByLabelText, getByTestId } = render(
193
- <>
194
- <View nativeID="label">
195
- <Text>Label for input</Text>
196
- </View>
197
- <TextInput testID="textInput" accessibilityLabelledBy="label" />
198
- </>
199
- );
200
-
201
- expect(getByLabelText('Label for input')).toBe(getByTestId('textInput'));
202
- expect(getByLabelText(/input/)).toBe(getByTestId('textInput'));
203
- });
204
-
205
- test('error message renders the element tree, preserving only helpful props', async () => {
206
- const view = render(<TouchableOpacity accessibilityLabel="LABEL" key="3" />);
207
-
208
- expect(() => view.getByLabelText('FOO')).toThrowErrorMatchingInlineSnapshot(`
209
- "Unable to find an element with accessibilityLabel: FOO
210
-
211
- <View
212
- accessibilityLabel="LABEL"
213
- />"
214
- `);
215
-
216
- expect(() => view.getAllByLabelText('FOO'))
217
- .toThrowErrorMatchingInlineSnapshot(`
218
- "Unable to find an element with accessibilityLabel: FOO
219
-
220
- <View
221
- accessibilityLabel="LABEL"
222
- />"
223
- `);
224
-
225
- await expect(view.findByLabelText('FOO')).rejects
226
- .toThrowErrorMatchingInlineSnapshot(`
227
- "Unable to find an element with accessibilityLabel: FOO
228
-
229
- <View
230
- accessibilityLabel="LABEL"
231
- />"
232
- `);
233
-
234
- await expect(view.findAllByLabelText('FOO')).rejects
235
- .toThrowErrorMatchingInlineSnapshot(`
236
- "Unable to find an element with accessibilityLabel: FOO
237
-
238
- <View
239
- accessibilityLabel="LABEL"
240
- />"
241
- `);
242
- });
@@ -1,235 +0,0 @@
1
- import * as React from 'react';
2
- import { Text, TextInput, View } from 'react-native';
3
- import { render, screen } from '../..';
4
-
5
- describe('printing element tree', () => {
6
- test('includes element tree on error with less-helpful props stripped', async () => {
7
- const { getByText } = render(<Text onPress={() => null}>Some text</Text>);
8
-
9
- expect(() => getByText(/foo/)).toThrowErrorMatchingInlineSnapshot(`
10
- "Unable to find an element with text: /foo/
11
-
12
- <Text>
13
- Some text
14
- </Text>"
15
- `);
16
- });
17
-
18
- test('prints helpful props but not others', async () => {
19
- const { getByText } = render(
20
- <View
21
- accessibilityElementsHidden
22
- accessibilityViewIsModal
23
- importantForAccessibility="yes"
24
- testID="TEST_ID"
25
- nativeID="NATIVE_ID"
26
- accessibilityLabel="LABEL"
27
- accessibilityLabelledBy="LABELLED_BY"
28
- accessibilityRole="summary"
29
- accessibilityHint="HINT"
30
- key="this is filtered"
31
- >
32
- <TextInput
33
- placeholder="PLACEHOLDER"
34
- value="VALUE"
35
- defaultValue="DEFAULT_VALUE"
36
- />
37
- <Text>Some Text</Text>
38
- </View>
39
- );
40
-
41
- expect(() => getByText(/foo/)).toThrowErrorMatchingInlineSnapshot(`
42
- "Unable to find an element with text: /foo/
43
-
44
- <View
45
- accessibilityElementsHidden={true}
46
- accessibilityHint="HINT"
47
- accessibilityLabel="LABEL"
48
- accessibilityLabelledBy="LABELLED_BY"
49
- accessibilityRole="summary"
50
- accessibilityViewIsModal={true}
51
- importantForAccessibility="yes"
52
- nativeID="NATIVE_ID"
53
- testID="TEST_ID"
54
- >
55
- <TextInput
56
- defaultValue="DEFAULT_VALUE"
57
- placeholder="PLACEHOLDER"
58
- value="VALUE"
59
- />
60
- <Text>
61
- Some Text
62
- </Text>
63
- </View>"
64
- `);
65
- });
66
-
67
- test('prints tree and filters props with getBy, getAllBy, findBy, findAllBy', async () => {
68
- const view = render(
69
- <View accessibilityViewIsModal key="this is filtered" />
70
- );
71
-
72
- expect(() => view.getByText(/foo/)).toThrowErrorMatchingInlineSnapshot(`
73
- "Unable to find an element with text: /foo/
74
-
75
- <View
76
- accessibilityViewIsModal={true}
77
- />"
78
- `);
79
-
80
- expect(() => view.getAllByText(/foo/)).toThrowErrorMatchingInlineSnapshot(`
81
- "Unable to find an element with text: /foo/
82
-
83
- <View
84
- accessibilityViewIsModal={true}
85
- />"
86
- `);
87
-
88
- await expect(view.findByText(/foo/)).rejects
89
- .toThrowErrorMatchingInlineSnapshot(`
90
- "Unable to find an element with text: /foo/
91
-
92
- <View
93
- accessibilityViewIsModal={true}
94
- />"
95
- `);
96
-
97
- await expect(view.findAllByText(/foo/)).rejects
98
- .toThrowErrorMatchingInlineSnapshot(`
99
- "Unable to find an element with text: /foo/
100
-
101
- <View
102
- accessibilityViewIsModal={true}
103
- />"
104
- `);
105
- });
106
-
107
- test('only appends element tree on last failure with findBy', async () => {
108
- const { findByText } = render(
109
- <View accessibilityViewIsModal key="this is filtered" />
110
- );
111
-
112
- jest.spyOn(screen, 'toJSON');
113
-
114
- await expect(findByText(/foo/)).rejects.toThrow();
115
-
116
- expect(screen.toJSON).toHaveBeenCalledTimes(1);
117
- });
118
-
119
- test('onTimeout with findBy receives error without element tree', async () => {
120
- const { findByText } = render(<View />);
121
-
122
- const onTimeout = jest.fn((_: Error) => new Error('Replacement error'));
123
-
124
- await expect(() =>
125
- findByText(/foo/, undefined, { onTimeout })
126
- ).rejects.toThrowErrorMatchingInlineSnapshot(`"Replacement error"`);
127
-
128
- expect(onTimeout).toHaveBeenCalledTimes(1);
129
- expect(onTimeout.mock.calls[0][0].message).not.toMatch(/View/);
130
- expect(onTimeout.mock.calls[0][0].message).toMatchInlineSnapshot(
131
- `"Unable to find an element with text: /foo/"`
132
- );
133
- });
134
-
135
- test('onTimeout with findAllBy receives error without element tree', async () => {
136
- const { findAllByText } = render(<View />);
137
-
138
- const onTimeout = jest.fn((_: Error) => new Error('Replacement error'));
139
-
140
- await expect(() =>
141
- findAllByText(/foo/, undefined, { onTimeout })
142
- ).rejects.toThrowErrorMatchingInlineSnapshot(`"Replacement error"`);
143
-
144
- expect(onTimeout).toHaveBeenCalledTimes(1);
145
- expect(onTimeout.mock.calls[0][0].message).not.toMatch(/View/);
146
- expect(onTimeout.mock.calls[0][0].message).toMatchInlineSnapshot(
147
- `"Unable to find an element with text: /foo/"`
148
- );
149
- });
150
-
151
- test('does not strip display: none from "style" prop, but does strip other styles', () => {
152
- const { getByText } = render(
153
- <View style={{ display: 'flex', position: 'absolute' }}>
154
- <Text
155
- style={[
156
- { display: 'flex', position: 'relative' },
157
- { display: 'none', flex: 1 },
158
- ]}
159
- >
160
- Some text
161
- </Text>
162
- </View>
163
- );
164
-
165
- expect(() => getByText(/foo/)).toThrowErrorMatchingInlineSnapshot(`
166
- "Unable to find an element with text: /foo/
167
-
168
- <View>
169
- <Text
170
- style={
171
- {
172
- "display": "none",
173
- }
174
- }
175
- >
176
- Some text
177
- </Text>
178
- </View>"
179
- `);
180
- });
181
-
182
- test('strips undefined values from accessibilityState', () => {
183
- const { getByText } = render(
184
- <View accessibilityState={{ checked: true, busy: false }}>
185
- <View accessibilityState={{ checked: undefined }} />
186
- </View>
187
- );
188
-
189
- expect(() => getByText(/foo/)).toThrowErrorMatchingInlineSnapshot(`
190
- "Unable to find an element with text: /foo/
191
-
192
- <View
193
- accessibilityState={
194
- {
195
- "busy": false,
196
- "checked": true,
197
- }
198
- }
199
- >
200
- <View />
201
- </View>"
202
- `);
203
- });
204
-
205
- test('strips undefined values from accessibilityValue', () => {
206
- const { getByText } = render(
207
- <View accessibilityValue={{ min: 1 }}>
208
- <View accessibilityState={{}} />
209
- </View>
210
- );
211
-
212
- expect(() => getByText(/foo/)).toThrowErrorMatchingInlineSnapshot(`
213
- "Unable to find an element with text: /foo/
214
-
215
- <View
216
- accessibilityValue={
217
- {
218
- "min": 1,
219
- }
220
- }
221
- >
222
- <View />
223
- </View>"
224
- `);
225
- });
226
-
227
- test('does not render element tree when toJSON() returns null', () => {
228
- const view = render(<View />);
229
-
230
- jest.spyOn(screen, 'toJSON').mockImplementation(() => null);
231
- expect(() => view.getByText(/foo/)).toThrowErrorMatchingInlineSnapshot(
232
- `"Unable to find an element with text: /foo/"`
233
- );
234
- });
235
- });
@@ -1,136 +0,0 @@
1
- import * as React from 'react';
2
- import { View, TextInput } from 'react-native';
3
- import { render } from '../..';
4
-
5
- const PLACEHOLDER_FRESHNESS = 'Add custom freshness';
6
- const PLACEHOLDER_CHEF = 'Who inspected freshness?';
7
- const INPUT_FRESHNESS = 'Custom Freshie';
8
- const INPUT_CHEF = 'I inspected freshie';
9
- const DEFAULT_INPUT_CHEF = 'What did you inspect?';
10
-
11
- const Banana = () => (
12
- <View>
13
- <TextInput
14
- testID="bananaCustomFreshness"
15
- placeholder={PLACEHOLDER_FRESHNESS}
16
- value={INPUT_FRESHNESS}
17
- />
18
- <TextInput
19
- testID="bananaChef"
20
- placeholder={PLACEHOLDER_CHEF}
21
- value={INPUT_CHEF}
22
- defaultValue={DEFAULT_INPUT_CHEF}
23
- />
24
- </View>
25
- );
26
-
27
- test('getByPlaceholderText, queryByPlaceholderText', () => {
28
- const { getByPlaceholderText, queryByPlaceholderText } = render(<Banana />);
29
- const input = getByPlaceholderText(/custom/i);
30
-
31
- expect(input.props.placeholder).toBe(PLACEHOLDER_FRESHNESS);
32
-
33
- const sameInput = getByPlaceholderText(PLACEHOLDER_FRESHNESS);
34
-
35
- expect(sameInput.props.placeholder).toBe(PLACEHOLDER_FRESHNESS);
36
- expect(() => getByPlaceholderText('no placeholder')).toThrow(
37
- 'Unable to find an element with placeholder: no placeholder'
38
- );
39
-
40
- expect(queryByPlaceholderText(/add/i)).toBe(input);
41
- expect(queryByPlaceholderText('no placeholder')).toBeNull();
42
- expect(() => queryByPlaceholderText(/fresh/)).toThrow(
43
- 'Found multiple elements with placeholder: /fresh/ '
44
- );
45
- });
46
-
47
- test('getAllByPlaceholderText, queryAllByPlaceholderText', () => {
48
- const { getAllByPlaceholderText, queryAllByPlaceholderText } = render(
49
- <Banana />
50
- );
51
- const inputs = getAllByPlaceholderText(/fresh/i);
52
-
53
- expect(inputs).toHaveLength(2);
54
- expect(() => getAllByPlaceholderText('no placeholder')).toThrow(
55
- 'Unable to find an element with placeholder: no placeholder'
56
- );
57
-
58
- expect(queryAllByPlaceholderText(/fresh/i)).toEqual(inputs);
59
- expect(queryAllByPlaceholderText('no placeholder')).toHaveLength(0);
60
- });
61
-
62
- test('byPlaceholderText queries support hidden option', () => {
63
- const { getByPlaceholderText, queryByPlaceholderText } = render(
64
- <TextInput placeholder="hidden" style={{ display: 'none' }} />
65
- );
66
-
67
- expect(
68
- getByPlaceholderText('hidden', { includeHiddenElements: true })
69
- ).toBeTruthy();
70
-
71
- expect(queryByPlaceholderText('hidden')).toBeFalsy();
72
- expect(
73
- queryByPlaceholderText('hidden', { includeHiddenElements: false })
74
- ).toBeFalsy();
75
- expect(() => getByPlaceholderText('hidden', { includeHiddenElements: false }))
76
- .toThrowErrorMatchingInlineSnapshot(`
77
- "Unable to find an element with placeholder: hidden
78
-
79
- <TextInput
80
- placeholder="hidden"
81
- style={
82
- {
83
- "display": "none",
84
- }
85
- }
86
- />"
87
- `);
88
- });
89
-
90
- test('byPlaceHolderText should return host component', () => {
91
- const { getByPlaceholderText } = render(
92
- <TextInput placeholder="placeholder" />
93
- );
94
-
95
- expect(getByPlaceholderText('placeholder').type).toBe('TextInput');
96
- });
97
-
98
- test('error message renders the element tree, preserving only helpful props', async () => {
99
- const view = render(<TextInput placeholder="PLACEHOLDER" key="3" />);
100
-
101
- expect(() => view.getByPlaceholderText('FOO'))
102
- .toThrowErrorMatchingInlineSnapshot(`
103
- "Unable to find an element with placeholder: FOO
104
-
105
- <TextInput
106
- placeholder="PLACEHOLDER"
107
- />"
108
- `);
109
-
110
- expect(() => view.getAllByPlaceholderText('FOO'))
111
- .toThrowErrorMatchingInlineSnapshot(`
112
- "Unable to find an element with placeholder: FOO
113
-
114
- <TextInput
115
- placeholder="PLACEHOLDER"
116
- />"
117
- `);
118
-
119
- await expect(view.findByPlaceholderText('FOO')).rejects
120
- .toThrowErrorMatchingInlineSnapshot(`
121
- "Unable to find an element with placeholder: FOO
122
-
123
- <TextInput
124
- placeholder="PLACEHOLDER"
125
- />"
126
- `);
127
-
128
- await expect(view.findAllByPlaceholderText('FOO')).rejects
129
- .toThrowErrorMatchingInlineSnapshot(`
130
- "Unable to find an element with placeholder: FOO
131
-
132
- <TextInput
133
- placeholder="PLACEHOLDER"
134
- />"
135
- `);
136
- });