@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,127 +0,0 @@
1
- import type { ReactTestInstance } from 'react-test-renderer';
2
- import { accessiblityValueKeys } from '../helpers/accessiblity';
3
- import { deprecateQueries } from '../helpers/deprecation';
4
- import { findAll } from '../helpers/findAll';
5
- import {
6
- AccessibilityValueMatcher,
7
- matchAccessibilityValue,
8
- } from '../helpers/matchers/accessibilityValue';
9
- import { makeQueries } from './makeQueries';
10
- import type {
11
- FindAllByQuery,
12
- FindByQuery,
13
- GetAllByQuery,
14
- GetByQuery,
15
- QueryAllByQuery,
16
- QueryByQuery,
17
- } from './makeQueries';
18
- import { CommonQueryOptions } from './options';
19
-
20
- const queryAllByA11yValue = (
21
- instance: ReactTestInstance
22
- ): QueryAllByQuery<AccessibilityValueMatcher, CommonQueryOptions> =>
23
- function queryAllByA11yValueFn(value, queryOptions) {
24
- return findAll(
25
- instance,
26
- (node) => matchAccessibilityValue(node, value),
27
- queryOptions
28
- );
29
- };
30
-
31
- const formatQueryParams = (matcher: AccessibilityValueMatcher) => {
32
- const params: string[] = [];
33
-
34
- accessiblityValueKeys.forEach((valueKey) => {
35
- if (matcher[valueKey] !== undefined) {
36
- params.push(`${valueKey} value: ${matcher[valueKey]}`);
37
- }
38
- });
39
-
40
- return params.join(', ');
41
- };
42
-
43
- const getMultipleError = (matcher: AccessibilityValueMatcher) =>
44
- `Found multiple elements with ${formatQueryParams(matcher)}`;
45
-
46
- const getMissingError = (matcher: AccessibilityValueMatcher) =>
47
- `Unable to find an element with ${formatQueryParams(matcher)}`;
48
-
49
- const { getBy, getAllBy, queryBy, queryAllBy, findBy, findAllBy } = makeQueries(
50
- queryAllByA11yValue,
51
- getMissingError,
52
- getMultipleError
53
- );
54
-
55
- export type ByA11yValueQueries = {
56
- getByA11yValue: GetByQuery<AccessibilityValueMatcher, CommonQueryOptions>;
57
- getAllByA11yValue: GetAllByQuery<
58
- AccessibilityValueMatcher,
59
- CommonQueryOptions
60
- >;
61
- queryByA11yValue: QueryByQuery<AccessibilityValueMatcher, CommonQueryOptions>;
62
- queryAllByA11yValue: QueryAllByQuery<
63
- AccessibilityValueMatcher,
64
- CommonQueryOptions
65
- >;
66
- findByA11yValue: FindByQuery<AccessibilityValueMatcher, CommonQueryOptions>;
67
- findAllByA11yValue: FindAllByQuery<
68
- AccessibilityValueMatcher,
69
- CommonQueryOptions
70
- >;
71
-
72
- getByAccessibilityValue: GetByQuery<
73
- AccessibilityValueMatcher,
74
- CommonQueryOptions
75
- >;
76
- getAllByAccessibilityValue: GetAllByQuery<
77
- AccessibilityValueMatcher,
78
- CommonQueryOptions
79
- >;
80
- queryByAccessibilityValue: QueryByQuery<
81
- AccessibilityValueMatcher,
82
- CommonQueryOptions
83
- >;
84
- queryAllByAccessibilityValue: QueryAllByQuery<
85
- AccessibilityValueMatcher,
86
- CommonQueryOptions
87
- >;
88
- findByAccessibilityValue: FindByQuery<
89
- AccessibilityValueMatcher,
90
- CommonQueryOptions
91
- >;
92
- findAllByAccessibilityValue: FindAllByQuery<
93
- AccessibilityValueMatcher,
94
- CommonQueryOptions
95
- >;
96
- };
97
-
98
- export const bindByA11yValueQueries = (
99
- instance: ReactTestInstance
100
- ): ByA11yValueQueries => {
101
- const getByA11yValue = getBy(instance);
102
- const getAllByA11yValue = getAllBy(instance);
103
- const queryByA11yValue = queryBy(instance);
104
- const queryAllByA11yValue = queryAllBy(instance);
105
- const findByA11yValue = findBy(instance);
106
- const findAllByA11yValue = findAllBy(instance);
107
-
108
- return {
109
- ...deprecateQueries(
110
- {
111
- getByA11yValue,
112
- getAllByA11yValue,
113
- queryByA11yValue,
114
- queryAllByA11yValue,
115
- findByA11yValue,
116
- findAllByA11yValue,
117
- getByAccessibilityValue: getByA11yValue,
118
- getAllByAccessibilityValue: getAllByA11yValue,
119
- queryByAccessibilityValue: queryByA11yValue,
120
- queryAllByAccessibilityValue: queryAllByA11yValue,
121
- findByAccessibilityValue: findByA11yValue,
122
- findAllByAccessibilityValue: findAllByA11yValue,
123
- },
124
- 'Use expect(...).toHaveAccessibilityValue(...) matcher from "@testing-library/jest-native" package or {queryPrefix}ByRole(role, { value: ... }) query instead.'
125
- ),
126
- };
127
- };
@@ -1,71 +0,0 @@
1
- import type { ReactTestInstance } from 'react-test-renderer';
2
- import { findAll } from '../helpers/findAll';
3
- import { isHostTextInput } from '../helpers/host-component-names';
4
- import { matches, TextMatch, TextMatchOptions } from '../matches';
5
- import { makeQueries } from './makeQueries';
6
- import type {
7
- FindAllByQuery,
8
- FindByQuery,
9
- GetAllByQuery,
10
- GetByQuery,
11
- QueryAllByQuery,
12
- QueryByQuery,
13
- } from './makeQueries';
14
- import type { CommonQueryOptions } from './options';
15
-
16
- type ByDisplayValueOptions = CommonQueryOptions & TextMatchOptions;
17
-
18
- const matchDisplayValue = (
19
- node: ReactTestInstance,
20
- value: TextMatch,
21
- options: TextMatchOptions = {}
22
- ) => {
23
- const { exact, normalizer } = options;
24
- const nodeValue = node.props.value ?? node.props.defaultValue;
25
-
26
- return matches(value, nodeValue, normalizer, exact);
27
- };
28
-
29
- const queryAllByDisplayValue = (
30
- instance: ReactTestInstance
31
- ): QueryAllByQuery<TextMatch, ByDisplayValueOptions> =>
32
- function queryAllByDisplayValueFn(displayValue, queryOptions) {
33
- return findAll(
34
- instance,
35
- (node) =>
36
- isHostTextInput(node) &&
37
- matchDisplayValue(node, displayValue, queryOptions),
38
- queryOptions
39
- );
40
- };
41
-
42
- const getMultipleError = (displayValue: TextMatch) =>
43
- `Found multiple elements with display value: ${String(displayValue)} `;
44
- const getMissingError = (displayValue: TextMatch) =>
45
- `Unable to find an element with displayValue: ${String(displayValue)}`;
46
-
47
- const { getBy, getAllBy, queryBy, queryAllBy, findBy, findAllBy } = makeQueries(
48
- queryAllByDisplayValue,
49
- getMissingError,
50
- getMultipleError
51
- );
52
-
53
- export type ByDisplayValueQueries = {
54
- getByDisplayValue: GetByQuery<TextMatch, ByDisplayValueOptions>;
55
- getAllByDisplayValue: GetAllByQuery<TextMatch, ByDisplayValueOptions>;
56
- queryByDisplayValue: QueryByQuery<TextMatch, ByDisplayValueOptions>;
57
- queryAllByDisplayValue: QueryAllByQuery<TextMatch, ByDisplayValueOptions>;
58
- findByDisplayValue: FindByQuery<TextMatch, ByDisplayValueOptions>;
59
- findAllByDisplayValue: FindAllByQuery<TextMatch, ByDisplayValueOptions>;
60
- };
61
-
62
- export const bindByDisplayValueQueries = (
63
- instance: ReactTestInstance
64
- ): ByDisplayValueQueries => ({
65
- getByDisplayValue: getBy(instance),
66
- getAllByDisplayValue: getAllBy(instance),
67
- queryByDisplayValue: queryBy(instance),
68
- queryAllByDisplayValue: queryAllBy(instance),
69
- findByDisplayValue: findBy(instance),
70
- findAllByDisplayValue: findAllBy(instance),
71
- });
@@ -1,107 +0,0 @@
1
- import type { ReactTestInstance } from 'react-test-renderer';
2
- import { findAll } from '../helpers/findAll';
3
- import { matches, TextMatch, TextMatchOptions } from '../matches';
4
- import { makeQueries } from './makeQueries';
5
- import type {
6
- FindAllByQuery,
7
- FindByQuery,
8
- GetAllByQuery,
9
- GetByQuery,
10
- QueryAllByQuery,
11
- QueryByQuery,
12
- } from './makeQueries';
13
- import { CommonQueryOptions } from './options';
14
-
15
- type ByHintTextOptions = CommonQueryOptions & TextMatchOptions;
16
-
17
- const getNodeByHintText = (
18
- node: ReactTestInstance,
19
- text: TextMatch,
20
- options: TextMatchOptions = {}
21
- ) => {
22
- const { exact, normalizer } = options;
23
- return matches(text, node.props.accessibilityHint, normalizer, exact);
24
- };
25
-
26
- const queryAllByHintText = (
27
- instance: ReactTestInstance
28
- ): QueryAllByQuery<TextMatch, ByHintTextOptions> =>
29
- function queryAllByA11yHintFn(hint, queryOptions) {
30
- return findAll(
31
- instance,
32
- (node) => getNodeByHintText(node, hint, queryOptions),
33
- queryOptions
34
- );
35
- };
36
-
37
- const getMultipleError = (hint: TextMatch) =>
38
- `Found multiple elements with accessibilityHint: ${String(hint)} `;
39
- const getMissingError = (hint: TextMatch) =>
40
- `Unable to find an element with accessibilityHint: ${String(hint)}`;
41
-
42
- const { getBy, getAllBy, queryBy, queryAllBy, findBy, findAllBy } = makeQueries(
43
- queryAllByHintText,
44
- getMissingError,
45
- getMultipleError
46
- );
47
-
48
- export type ByHintTextQueries = {
49
- getByHintText: GetByQuery<TextMatch, ByHintTextOptions>;
50
- getAllByHintText: GetAllByQuery<TextMatch, ByHintTextOptions>;
51
- queryByHintText: QueryByQuery<TextMatch, ByHintTextOptions>;
52
- queryAllByHintText: QueryAllByQuery<TextMatch, ByHintTextOptions>;
53
- findByHintText: FindByQuery<TextMatch, ByHintTextOptions>;
54
- findAllByHintText: FindAllByQuery<TextMatch, ByHintTextOptions>;
55
-
56
- // a11yHint aliases
57
- getByA11yHint: GetByQuery<TextMatch, ByHintTextOptions>;
58
- getAllByA11yHint: GetAllByQuery<TextMatch, ByHintTextOptions>;
59
- queryByA11yHint: QueryByQuery<TextMatch, ByHintTextOptions>;
60
- queryAllByA11yHint: QueryAllByQuery<TextMatch, ByHintTextOptions>;
61
- findByA11yHint: FindByQuery<TextMatch, ByHintTextOptions>;
62
- findAllByA11yHint: FindAllByQuery<TextMatch, ByHintTextOptions>;
63
-
64
- // accessibilityHint aliases
65
- getByAccessibilityHint: GetByQuery<TextMatch, ByHintTextOptions>;
66
- getAllByAccessibilityHint: GetAllByQuery<TextMatch, ByHintTextOptions>;
67
- queryByAccessibilityHint: QueryByQuery<TextMatch, ByHintTextOptions>;
68
- queryAllByAccessibilityHint: QueryAllByQuery<TextMatch, ByHintTextOptions>;
69
- findByAccessibilityHint: FindByQuery<TextMatch, ByHintTextOptions>;
70
- findAllByAccessibilityHint: FindAllByQuery<TextMatch, ByHintTextOptions>;
71
- };
72
-
73
- export const bindByHintTextQueries = (
74
- instance: ReactTestInstance
75
- ): ByHintTextQueries => {
76
- const getByHintText = getBy(instance);
77
- const getAllByHintText = getAllBy(instance);
78
- const queryByHintText = queryBy(instance);
79
- const queryAllByHintText = queryAllBy(instance);
80
- const findByHintText = findBy(instance);
81
- const findAllByHintText = findAllBy(instance);
82
-
83
- return {
84
- getByHintText,
85
- getAllByHintText,
86
- queryByHintText,
87
- queryAllByHintText,
88
- findByHintText,
89
- findAllByHintText,
90
-
91
- // a11yHint aliases
92
- getByA11yHint: getByHintText,
93
- getAllByA11yHint: getAllByHintText,
94
- queryByA11yHint: queryByHintText,
95
- queryAllByA11yHint: queryAllByHintText,
96
- findByA11yHint: findByHintText,
97
- findAllByA11yHint: findAllByHintText,
98
-
99
- // accessibilityHint aliases
100
- getByAccessibilityHint: getByHintText,
101
- getAllByAccessibilityHint: getAllByHintText,
102
- queryByAccessibilityHint: queryByHintText,
103
- queryAllByAccessibilityHint: queryAllByHintText,
104
- findByAccessibilityHint: findByHintText,
105
- findAllByAccessibilityHint: findAllByHintText,
106
- };
107
- };
@@ -1,57 +0,0 @@
1
- import type { ReactTestInstance } from 'react-test-renderer';
2
- import { findAll } from '../helpers/findAll';
3
- import { TextMatch, TextMatchOptions } from '../matches';
4
- import { matchLabelText } from '../helpers/matchers/matchLabelText';
5
- import { makeQueries } from './makeQueries';
6
- import type {
7
- FindAllByQuery,
8
- FindByQuery,
9
- GetAllByQuery,
10
- GetByQuery,
11
- QueryAllByQuery,
12
- QueryByQuery,
13
- } from './makeQueries';
14
- import { CommonQueryOptions } from './options';
15
-
16
- type ByLabelTextOptions = CommonQueryOptions & TextMatchOptions;
17
-
18
- function queryAllByLabelText(instance: ReactTestInstance) {
19
- return (text: TextMatch, queryOptions?: ByLabelTextOptions) => {
20
- return findAll(
21
- instance,
22
- (node) => matchLabelText(instance, node, text, queryOptions),
23
- queryOptions
24
- );
25
- };
26
- }
27
-
28
- const getMultipleError = (labelText: TextMatch) =>
29
- `Found multiple elements with accessibilityLabel: ${String(labelText)} `;
30
- const getMissingError = (labelText: TextMatch) =>
31
- `Unable to find an element with accessibilityLabel: ${String(labelText)}`;
32
-
33
- const { getBy, getAllBy, queryBy, queryAllBy, findBy, findAllBy } = makeQueries(
34
- queryAllByLabelText,
35
- getMissingError,
36
- getMultipleError
37
- );
38
-
39
- export type ByLabelTextQueries = {
40
- getByLabelText: GetByQuery<TextMatch, ByLabelTextOptions>;
41
- getAllByLabelText: GetAllByQuery<TextMatch, ByLabelTextOptions>;
42
- queryByLabelText: QueryByQuery<TextMatch, ByLabelTextOptions>;
43
- queryAllByLabelText: QueryAllByQuery<TextMatch, ByLabelTextOptions>;
44
- findByLabelText: FindByQuery<TextMatch, ByLabelTextOptions>;
45
- findAllByLabelText: FindAllByQuery<TextMatch, ByLabelTextOptions>;
46
- };
47
-
48
- export const bindByLabelTextQueries = (
49
- instance: ReactTestInstance
50
- ): ByLabelTextQueries => ({
51
- getByLabelText: getBy(instance),
52
- getAllByLabelText: getAllBy(instance),
53
- queryByLabelText: queryBy(instance),
54
- queryAllByLabelText: queryAllBy(instance),
55
- findByLabelText: findBy(instance),
56
- findAllByLabelText: findAllBy(instance),
57
- });
@@ -1,255 +0,0 @@
1
- import type { ReactTestInstance } from 'react-test-renderer';
2
- import { ErrorWithStack } from '../helpers/errors';
3
- import waitFor from '../waitFor';
4
- import type { WaitForOptions } from '../waitFor';
5
- import format from '../helpers/format';
6
- import { screen } from '../screen';
7
- import { defaultMapProps } from '../helpers/format-default';
8
-
9
- export type GetByQuery<Predicate, Options = void> = (
10
- predicate: Predicate,
11
- options?: Options
12
- ) => ReactTestInstance;
13
-
14
- export type GetAllByQuery<Predicate, Options = void> = (
15
- predicate: Predicate,
16
- options?: Options
17
- ) => ReactTestInstance[];
18
-
19
- export type QueryByQuery<Predicate, Options = void> = (
20
- predicate: Predicate,
21
- options?: Options
22
- ) => ReactTestInstance | null;
23
-
24
- export type QueryAllByQuery<Predicate, Options = void> = (
25
- predicate: Predicate,
26
- options?: Options
27
- ) => ReactTestInstance[];
28
-
29
- export type FindByQuery<Predicate, Options = void> = (
30
- predicate: Predicate,
31
- // Remove `& WaitForOptions` when all queries have been migrated to support 2nd arg query options.
32
- options?: Options & WaitForOptions,
33
- waitForOptions?: WaitForOptions
34
- ) => Promise<ReactTestInstance>;
35
-
36
- export type FindAllByQuery<Predicate, Options = void> = (
37
- predicate: Predicate,
38
- // Remove `& WaitForOptions` when all queries have been migrated to support 2nd arg query options.
39
- options?: Options & WaitForOptions,
40
- waitForOptions?: WaitForOptions
41
- ) => Promise<ReactTestInstance[]>;
42
-
43
- type UnboundQuery<Query> = (instance: ReactTestInstance) => Query;
44
-
45
- export type UnboundQueries<Predicate, Options> = {
46
- getBy: UnboundQuery<GetByQuery<Predicate, Options>>;
47
- getAllBy: UnboundQuery<GetAllByQuery<Predicate, Options>>;
48
- queryBy: UnboundQuery<QueryByQuery<Predicate, Options>>;
49
- queryAllBy: UnboundQuery<QueryAllByQuery<Predicate, Options>>;
50
- findBy: UnboundQuery<FindByQuery<Predicate, Options>>;
51
- findAllBy: UnboundQuery<FindAllByQuery<Predicate, Options>>;
52
- };
53
-
54
- const deprecatedKeys: (keyof WaitForOptions)[] = [
55
- 'timeout',
56
- 'interval',
57
- 'stackTraceError',
58
- ];
59
-
60
- // The WaitForOptions has been moved to the second option param of findBy* methods with the adding of TextMatchOptions
61
- // To make the migration easier and avoid a breaking change, keep reading this options from the first param but warn
62
- function extractDeprecatedWaitForOptions(options?: WaitForOptions) {
63
- if (!options) {
64
- return undefined;
65
- }
66
-
67
- const waitForOptions: WaitForOptions = {
68
- timeout: options.timeout,
69
- interval: options.interval,
70
- stackTraceError: options.stackTraceError,
71
- };
72
-
73
- deprecatedKeys.forEach((key) => {
74
- const option = options[key];
75
- if (option) {
76
- // eslint-disable-next-line no-console
77
- console.warn(
78
- `Use of option "${key}" in a findBy* query options (2nd parameter) is deprecated. Please pass this option in the waitForOptions (3rd parameter).
79
- Example:
80
-
81
- findByText(text, {}, { ${key}: ${option.toString()} })`
82
- );
83
- }
84
- });
85
-
86
- return waitForOptions;
87
- }
88
-
89
- function formatErrorMessage(message: string, printElementTree: boolean) {
90
- if (!printElementTree) {
91
- return message;
92
- }
93
-
94
- const json = screen.toJSON();
95
- if (!json) {
96
- return message;
97
- }
98
-
99
- return `${message}\n\n${format(json, {
100
- mapProps: defaultMapProps,
101
- })}`;
102
- }
103
-
104
- function appendElementTreeToError(error: Error) {
105
- const oldMessage = error.message;
106
- error.message = formatErrorMessage(oldMessage, true);
107
-
108
- // Required to make Jest print the element tree on error
109
- error.stack = error.stack?.replace(oldMessage, error.message);
110
-
111
- return error;
112
- }
113
-
114
- export function makeQueries<Predicate, Options>(
115
- queryAllByQuery: UnboundQuery<QueryAllByQuery<Predicate, Options>>,
116
- getMissingError: (predicate: Predicate, options?: Options) => string,
117
- getMultipleError: (predicate: Predicate, options?: Options) => string
118
- ): UnboundQueries<Predicate, Options> {
119
- function getAllByQuery(
120
- instance: ReactTestInstance,
121
- { printElementTree = true } = {}
122
- ) {
123
- return function getAllFn(predicate: Predicate, options?: Options) {
124
- const results = queryAllByQuery(instance)(predicate, options);
125
-
126
- if (results.length === 0) {
127
- const errorMessage = formatErrorMessage(
128
- getMissingError(predicate, options),
129
- printElementTree
130
- );
131
- throw new ErrorWithStack(errorMessage, getAllFn);
132
- }
133
-
134
- return results;
135
- };
136
- }
137
-
138
- function queryByQuery(
139
- instance: ReactTestInstance,
140
- { printElementTree = true } = {}
141
- ) {
142
- return function singleQueryFn(predicate: Predicate, options?: Options) {
143
- const results = queryAllByQuery(instance)(predicate, options);
144
-
145
- if (results.length > 1) {
146
- throw new ErrorWithStack(
147
- formatErrorMessage(
148
- getMultipleError(predicate, options),
149
- printElementTree
150
- ),
151
- singleQueryFn
152
- );
153
- }
154
-
155
- if (results.length === 0) {
156
- return null;
157
- }
158
-
159
- return results[0];
160
- };
161
- }
162
-
163
- function getByQuery(
164
- instance: ReactTestInstance,
165
- { printElementTree = true } = {}
166
- ) {
167
- return function getFn(predicate: Predicate, options?: Options) {
168
- const results = queryAllByQuery(instance)(predicate, options);
169
-
170
- if (results.length > 1) {
171
- throw new ErrorWithStack(getMultipleError(predicate, options), getFn);
172
- }
173
-
174
- if (results.length === 0) {
175
- const errorMessage = formatErrorMessage(
176
- getMissingError(predicate, options),
177
- printElementTree
178
- );
179
- throw new ErrorWithStack(errorMessage, getFn);
180
- }
181
-
182
- return results[0];
183
- };
184
- }
185
-
186
- function findAllByQuery(instance: ReactTestInstance) {
187
- return function findAllFn(
188
- predicate: Predicate,
189
- queryOptions?: Options & WaitForOptions,
190
- {
191
- onTimeout = (error) => appendElementTreeToError(error),
192
- ...waitForOptions
193
- }: WaitForOptions = {}
194
- ) {
195
- const stackTraceError = new ErrorWithStack(
196
- 'STACK_TRACE_ERROR',
197
- findAllFn
198
- );
199
- const deprecatedWaitForOptions =
200
- extractDeprecatedWaitForOptions(queryOptions);
201
-
202
- return waitFor(
203
- () =>
204
- getAllByQuery(instance, { printElementTree: false })(
205
- predicate,
206
- queryOptions
207
- ),
208
- {
209
- ...deprecatedWaitForOptions,
210
- ...waitForOptions,
211
- stackTraceError,
212
- onTimeout,
213
- }
214
- );
215
- };
216
- }
217
-
218
- function findByQuery(instance: ReactTestInstance) {
219
- return function findFn(
220
- predicate: Predicate,
221
- queryOptions?: Options & WaitForOptions,
222
- {
223
- onTimeout = (error) => appendElementTreeToError(error),
224
- ...waitForOptions
225
- }: WaitForOptions = {}
226
- ) {
227
- const stackTraceError = new ErrorWithStack('STACK_TRACE_ERROR', findFn);
228
- const deprecatedWaitForOptions =
229
- extractDeprecatedWaitForOptions(queryOptions);
230
-
231
- return waitFor(
232
- () =>
233
- getByQuery(instance, { printElementTree: false })(
234
- predicate,
235
- queryOptions
236
- ),
237
- {
238
- ...deprecatedWaitForOptions,
239
- ...waitForOptions,
240
- stackTraceError,
241
- onTimeout,
242
- }
243
- );
244
- };
245
- }
246
-
247
- return {
248
- getBy: getByQuery,
249
- getAllBy: getAllByQuery,
250
- queryBy: queryByQuery,
251
- queryAllBy: queryAllByQuery,
252
- findBy: findByQuery,
253
- findAllBy: findAllByQuery,
254
- };
255
- }
@@ -1,14 +0,0 @@
1
- import { NormalizerFn } from '../matches';
2
-
3
- export type CommonQueryOptions = {
4
- /** Should query include elements hidden from accessibility. */
5
- includeHiddenElements?: boolean;
6
-
7
- /** RTL-compatibile alias to `includeHiddenElements`. */
8
- hidden?: boolean;
9
- };
10
-
11
- export type TextMatchOptions = {
12
- exact?: boolean;
13
- normalizer?: NormalizerFn;
14
- };
@@ -1,72 +0,0 @@
1
- import type { ReactTestInstance } from 'react-test-renderer';
2
- import { findAll } from '../helpers/findAll';
3
- import { matches, TextMatch, TextMatchOptions } from '../matches';
4
- import { isHostTextInput } from '../helpers/host-component-names';
5
- import { makeQueries } from './makeQueries';
6
- import type {
7
- FindAllByQuery,
8
- FindByQuery,
9
- GetAllByQuery,
10
- GetByQuery,
11
- QueryAllByQuery,
12
- QueryByQuery,
13
- } from './makeQueries';
14
- import type { CommonQueryOptions } from './options';
15
-
16
- type ByPlaceholderTextOptions = CommonQueryOptions & TextMatchOptions;
17
-
18
- const matchPlaceholderText = (
19
- node: ReactTestInstance,
20
- placeholder: TextMatch,
21
- options: TextMatchOptions = {}
22
- ) => {
23
- const { exact, normalizer } = options;
24
- return matches(placeholder, node.props.placeholder, normalizer, exact);
25
- };
26
-
27
- const queryAllByPlaceholderText = (
28
- instance: ReactTestInstance
29
- ): QueryAllByQuery<TextMatch, ByPlaceholderTextOptions> =>
30
- function queryAllByPlaceholderFn(placeholder, queryOptions) {
31
- return findAll(
32
- instance,
33
- (node) =>
34
- isHostTextInput(node) &&
35
- matchPlaceholderText(node, placeholder, queryOptions),
36
- queryOptions
37
- );
38
- };
39
-
40
- const getMultipleError = (placeholder: TextMatch) =>
41
- `Found multiple elements with placeholder: ${String(placeholder)} `;
42
- const getMissingError = (placeholder: TextMatch) =>
43
- `Unable to find an element with placeholder: ${String(placeholder)}`;
44
-
45
- const { getBy, getAllBy, queryBy, queryAllBy, findBy, findAllBy } = makeQueries(
46
- queryAllByPlaceholderText,
47
- getMissingError,
48
- getMultipleError
49
- );
50
-
51
- export type ByPlaceholderTextQueries = {
52
- getByPlaceholderText: GetByQuery<TextMatch, ByPlaceholderTextOptions>;
53
- getAllByPlaceholderText: GetAllByQuery<TextMatch, ByPlaceholderTextOptions>;
54
- queryByPlaceholderText: QueryByQuery<TextMatch, ByPlaceholderTextOptions>;
55
- queryAllByPlaceholderText: QueryAllByQuery<
56
- TextMatch,
57
- ByPlaceholderTextOptions
58
- >;
59
- findByPlaceholderText: FindByQuery<TextMatch, ByPlaceholderTextOptions>;
60
- findAllByPlaceholderText: FindAllByQuery<TextMatch, ByPlaceholderTextOptions>;
61
- };
62
-
63
- export const bindByPlaceholderTextQueries = (
64
- instance: ReactTestInstance
65
- ): ByPlaceholderTextQueries => ({
66
- getByPlaceholderText: getBy(instance),
67
- getAllByPlaceholderText: getAllBy(instance),
68
- queryByPlaceholderText: queryBy(instance),
69
- queryAllByPlaceholderText: queryAllBy(instance),
70
- findByPlaceholderText: findBy(instance),
71
- findAllByPlaceholderText: findAllBy(instance),
72
- });