@testing-library/react-native 12.2.0 → 12.2.2

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 (486) hide show
  1. package/build/fireEvent.js +1 -1
  2. package/build/fireEvent.js.map +1 -1
  3. package/build/helpers/component-tree.d.ts +11 -5
  4. package/build/helpers/component-tree.js +5 -1
  5. package/build/helpers/component-tree.js.map +1 -1
  6. package/build/helpers/findAll.d.ts +2 -1
  7. package/build/helpers/findAll.js +2 -1
  8. package/build/helpers/findAll.js.map +1 -1
  9. package/build/helpers/host-component-names.d.ts +11 -2
  10. package/build/helpers/host-component-names.js +10 -0
  11. package/build/helpers/host-component-names.js.map +1 -1
  12. package/build/helpers/matchers/matchLabelText.js +1 -1
  13. package/build/helpers/matchers/matchLabelText.js.map +1 -1
  14. package/build/queries/a11yState.js +1 -1
  15. package/build/queries/a11yState.js.map +1 -1
  16. package/build/queries/a11yValue.js +1 -1
  17. package/build/queries/a11yValue.js.map +1 -1
  18. package/build/queries/displayValue.js +5 -6
  19. package/build/queries/displayValue.js.map +1 -1
  20. package/build/queries/hintText.js +1 -1
  21. package/build/queries/hintText.js.map +1 -1
  22. package/build/queries/labelText.js +1 -1
  23. package/build/queries/labelText.js.map +1 -1
  24. package/build/queries/placeholderText.js +3 -4
  25. package/build/queries/placeholderText.js.map +1 -1
  26. package/build/queries/role.js +1 -1
  27. package/build/queries/role.js.map +1 -1
  28. package/build/queries/testId.js +3 -3
  29. package/build/queries/testId.js.map +1 -1
  30. package/build/queries/text.js +1 -2
  31. package/build/queries/text.js.map +1 -1
  32. package/build/render.js.map +1 -1
  33. package/build/user-event/clear.d.ts +3 -0
  34. package/build/user-event/clear.js +41 -0
  35. package/build/user-event/clear.js.map +1 -0
  36. package/build/user-event/index.d.ts +1 -0
  37. package/build/user-event/index.js +2 -1
  38. package/build/user-event/index.js.map +1 -1
  39. package/build/user-event/press/press.js +1 -4
  40. package/build/user-event/press/press.js.map +1 -1
  41. package/build/user-event/setup/setup.d.ts +14 -2
  42. package/build/user-event/setup/setup.js +3 -1
  43. package/build/user-event/setup/setup.js.map +1 -1
  44. package/build/user-event/type/type.d.ts +2 -1
  45. package/build/user-event/type/type.js +8 -4
  46. package/build/user-event/type/type.js.map +1 -1
  47. package/build/user-event/utils/host-components.d.ts +2 -0
  48. package/build/user-event/utils/host-components.js +11 -0
  49. package/build/user-event/utils/host-components.js.map +1 -0
  50. package/build/user-event/utils/index.d.ts +1 -0
  51. package/build/user-event/utils/index.js +11 -0
  52. package/build/user-event/utils/index.js.map +1 -1
  53. package/build/user-event/utils/text-range.d.ts +0 -1
  54. package/build/user-event/utils/text-range.js +0 -11
  55. package/build/user-event/utils/text-range.js.map +1 -1
  56. package/package.json +5 -4
  57. package/.DS_Store +0 -0
  58. package/.codecov.yml +0 -9
  59. package/.eslintcache +0 -1
  60. package/.eslintignore +0 -2
  61. package/.eslintrc +0 -19
  62. package/.flowconfig +0 -63
  63. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -38
  64. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -14
  65. package/.github/ISSUE_TEMPLATE/question.md +0 -9
  66. package/.github/PULL_REQUEST_TEMPLATE.md +0 -10
  67. package/.github/actions/setup-deps/action.yml +0 -22
  68. package/.github/actions/setup-website-deps/action.yml +0 -22
  69. package/.github/dependabot.yml +0 -10
  70. package/.github/workflows/deploy-website.yml +0 -36
  71. package/.github/workflows/example-apps.yml +0 -25
  72. package/.github/workflows/main.yml +0 -103
  73. package/.gitignore +0 -11
  74. package/.prettierrc.js +0 -5
  75. package/CODE_OF_CONDUCT.md +0 -73
  76. package/CONTRIBUTING.md +0 -64
  77. package/babel.config.js +0 -22
  78. package/build/helpers/filterNodeByType.d.ts +0 -3
  79. package/build/helpers/filterNodeByType.js +0 -9
  80. package/build/helpers/filterNodeByType.js.map +0 -1
  81. package/coverage/clover.xml +0 -1176
  82. package/coverage/coverage-final.json +0 -70
  83. package/coverage/lcov-report/base.css +0 -224
  84. package/coverage/lcov-report/block-navigation.js +0 -87
  85. package/coverage/lcov-report/favicon.png +0 -0
  86. package/coverage/lcov-report/index.html +0 -266
  87. package/coverage/lcov-report/prettify.css +0 -1
  88. package/coverage/lcov-report/prettify.js +0 -2
  89. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  90. package/coverage/lcov-report/sorter.js +0 -196
  91. package/coverage/lcov-report/src/act.ts.html +0 -343
  92. package/coverage/lcov-report/src/cleanup.ts.html +0 -130
  93. package/coverage/lcov-report/src/config.ts.html +0 -301
  94. package/coverage/lcov-report/src/fireEvent.ts.html +0 -559
  95. package/coverage/lcov-report/src/flushMicroTasks.ts.html +0 -124
  96. package/coverage/lcov-report/src/helpers/accessiblity.ts.html +0 -412
  97. package/coverage/lcov-report/src/helpers/component-tree.ts.html +0 -352
  98. package/coverage/lcov-report/src/helpers/debugDeep.ts.html +0 -166
  99. package/coverage/lcov-report/src/helpers/debugShallow.ts.html +0 -151
  100. package/coverage/lcov-report/src/helpers/deprecation.ts.html +0 -244
  101. package/coverage/lcov-report/src/helpers/errors.ts.html +0 -283
  102. package/coverage/lcov-report/src/helpers/filterNodeByType.ts.html +0 -106
  103. package/coverage/lcov-report/src/helpers/findAll.ts.html +0 -289
  104. package/coverage/lcov-report/src/helpers/format-default.ts.html +0 -301
  105. package/coverage/lcov-report/src/helpers/format.ts.html +0 -226
  106. package/coverage/lcov-report/src/helpers/getTextContent.ts.html +0 -145
  107. package/coverage/lcov-report/src/helpers/host-component-names.tsx.html +0 -286
  108. package/coverage/lcov-report/src/helpers/index.html +0 -326
  109. package/coverage/lcov-report/src/helpers/matchers/accessibilityState.ts.html +0 -229
  110. package/coverage/lcov-report/src/helpers/matchers/accessibilityValue.ts.html +0 -157
  111. package/coverage/lcov-report/src/helpers/matchers/index.html +0 -206
  112. package/coverage/lcov-report/src/helpers/matchers/matchArrayProp.ts.html +0 -148
  113. package/coverage/lcov-report/src/helpers/matchers/matchLabelText.ts.html +0 -238
  114. package/coverage/lcov-report/src/helpers/matchers/matchObjectProp.ts.html +0 -160
  115. package/coverage/lcov-report/src/helpers/matchers/matchStringProp.ts.html +0 -154
  116. package/coverage/lcov-report/src/helpers/matchers/matchTextContent.ts.html +0 -145
  117. package/coverage/lcov-report/src/helpers/query-name.ts.html +0 -97
  118. package/coverage/lcov-report/src/helpers/stringValidation.ts.html +0 -193
  119. package/coverage/lcov-report/src/helpers/timers.ts.html +0 -382
  120. package/coverage/lcov-report/src/index.html +0 -356
  121. package/coverage/lcov-report/src/index.ts.html +0 -184
  122. package/coverage/lcov-report/src/matches.ts.html +0 -232
  123. package/coverage/lcov-report/src/pure.ts.html +0 -157
  124. package/coverage/lcov-report/src/queries/a11yState.ts.html +0 -478
  125. package/coverage/lcov-report/src/queries/a11yValue.ts.html +0 -478
  126. package/coverage/lcov-report/src/queries/displayValue.ts.html +0 -319
  127. package/coverage/lcov-report/src/queries/hintText.ts.html +0 -421
  128. package/coverage/lcov-report/src/queries/index.html +0 -281
  129. package/coverage/lcov-report/src/queries/labelText.ts.html +0 -262
  130. package/coverage/lcov-report/src/queries/makeQueries.ts.html +0 -850
  131. package/coverage/lcov-report/src/queries/placeholderText.ts.html +0 -322
  132. package/coverage/lcov-report/src/queries/role.ts.html +0 -481
  133. package/coverage/lcov-report/src/queries/testId.ts.html +0 -298
  134. package/coverage/lcov-report/src/queries/text.ts.html +0 -283
  135. package/coverage/lcov-report/src/queries/unsafeProps.ts.html +0 -313
  136. package/coverage/lcov-report/src/queries/unsafeType.ts.html +0 -304
  137. package/coverage/lcov-report/src/react-versions.ts.html +0 -118
  138. package/coverage/lcov-report/src/render-act.ts.html +0 -142
  139. package/coverage/lcov-report/src/render.tsx.html +0 -592
  140. package/coverage/lcov-report/src/renderHook.tsx.html +0 -262
  141. package/coverage/lcov-report/src/screen.ts.html +0 -454
  142. package/coverage/lcov-report/src/shallow.ts.html +0 -139
  143. package/coverage/lcov-report/src/test-utils/events.ts.html +0 -145
  144. package/coverage/lcov-report/src/test-utils/index.html +0 -131
  145. package/coverage/lcov-report/src/test-utils/index.ts.html +0 -88
  146. package/coverage/lcov-report/src/user-event/event-builder/common.ts.html +0 -229
  147. package/coverage/lcov-report/src/user-event/event-builder/index.html +0 -146
  148. package/coverage/lcov-report/src/user-event/event-builder/index.ts.html +0 -106
  149. package/coverage/lcov-report/src/user-event/event-builder/test-input.ts.html +0 -343
  150. package/coverage/lcov-report/src/user-event/event-builder/text-input.ts.html +0 -343
  151. package/coverage/lcov-report/src/user-event/index.html +0 -116
  152. package/coverage/lcov-report/src/user-event/index.ts.html +0 -121
  153. package/coverage/lcov-report/src/user-event/press/index.html +0 -131
  154. package/coverage/lcov-report/src/user-event/press/index.ts.html +0 -88
  155. package/coverage/lcov-report/src/user-event/press/press.ts.html +0 -133
  156. package/coverage/lcov-report/src/user-event/setup/index.html +0 -131
  157. package/coverage/lcov-report/src/user-event/setup/index.ts.html +0 -91
  158. package/coverage/lcov-report/src/user-event/setup/setup.ts.html +0 -358
  159. package/coverage/lcov-report/src/user-event/type/index.html +0 -146
  160. package/coverage/lcov-report/src/user-event/type/index.ts.html +0 -88
  161. package/coverage/lcov-report/src/user-event/type/parseKeys.ts.html +0 -208
  162. package/coverage/lcov-report/src/user-event/type/type.ts.html +0 -484
  163. package/coverage/lcov-report/src/user-event/utils/content-size.ts.html +0 -160
  164. package/coverage/lcov-report/src/user-event/utils/dispatch-event.ts.html +0 -367
  165. package/coverage/lcov-report/src/user-event/utils/events.ts.html +0 -247
  166. package/coverage/lcov-report/src/user-event/utils/index.html +0 -176
  167. package/coverage/lcov-report/src/user-event/utils/index.ts.html +0 -97
  168. package/coverage/lcov-report/src/user-event/utils/text-range.ts.html +0 -118
  169. package/coverage/lcov-report/src/user-event/utils/wait.ts.html +0 -130
  170. package/coverage/lcov-report/src/waitFor.ts.html +0 -772
  171. package/coverage/lcov-report/src/waitForElementToBeRemoved.ts.html +0 -211
  172. package/coverage/lcov-report/src/within.ts.html +0 -175
  173. package/coverage/lcov.info +0 -2614
  174. package/examples/.DS_Store +0 -0
  175. package/examples/basic/.expo/README.md +0 -17
  176. package/examples/basic/.expo/devices.json +0 -3
  177. package/examples/basic/.expo/packager-info.json +0 -4
  178. package/examples/basic/.expo/settings.json +0 -8
  179. package/examples/basic/.expo-shared/assets.json +0 -4
  180. package/examples/basic/.gitignore +0 -14
  181. package/examples/basic/App.tsx +0 -20
  182. package/examples/basic/README.md +0 -11
  183. package/examples/basic/__tests__/App.test.tsx +0 -119
  184. package/examples/basic/app.json +0 -31
  185. package/examples/basic/assets/adaptive-icon.png +0 -0
  186. package/examples/basic/assets/favicon.png +0 -0
  187. package/examples/basic/assets/icon.png +0 -0
  188. package/examples/basic/assets/splash.png +0 -0
  189. package/examples/basic/babel.config.js +0 -6
  190. package/examples/basic/components/Home.tsx +0 -28
  191. package/examples/basic/components/LoginForm.tsx +0 -138
  192. package/examples/basic/jest-setup.ts +0 -7
  193. package/examples/basic/jest.config.js +0 -5
  194. package/examples/basic/package.json +0 -30
  195. package/examples/basic/tsconfig.json +0 -7
  196. package/examples/basic/yarn-error.log +0 -8083
  197. package/examples/basic/yarn.lock +0 -8878
  198. package/examples/react-navigation/README.md +0 -16
  199. package/examples/react-navigation/babel.config.js +0 -4
  200. package/examples/react-navigation/jest-setup.js +0 -11
  201. package/examples/react-navigation/jest.config.js +0 -10
  202. package/examples/react-navigation/package.json +0 -31
  203. package/examples/react-navigation/src/App.js +0 -21
  204. package/examples/react-navigation/src/DrawerNavigator.js +0 -15
  205. package/examples/react-navigation/src/DrawerNavigator.test.js +0 -42
  206. package/examples/react-navigation/src/NativeStackNavigator.js +0 -15
  207. package/examples/react-navigation/src/NativeStackNavigator.test.js +0 -34
  208. package/examples/react-navigation/src/StackNavigator.js +0 -15
  209. package/examples/react-navigation/src/StackNavigator.test.js +0 -34
  210. package/examples/react-navigation/src/TabNavigator.js +0 -15
  211. package/examples/react-navigation/src/TabNavigator.test.js +0 -21
  212. package/examples/react-navigation/src/screens/DetailsScreen.js +0 -43
  213. package/examples/react-navigation/src/screens/DetailsScreen.test.js +0 -27
  214. package/examples/react-navigation/src/screens/DrawerHomeScreen.js +0 -26
  215. package/examples/react-navigation/src/screens/HomeScreen.js +0 -48
  216. package/examples/react-navigation/src/screens/SettingsScreen.js +0 -20
  217. package/examples/react-navigation/src/test-utils.js +0 -12
  218. package/examples/react-navigation/yarn.lock +0 -5610
  219. package/examples/redux/App.js +0 -27
  220. package/examples/redux/README.md +0 -5
  221. package/examples/redux/actions/todoActions.js +0 -25
  222. package/examples/redux/babel.config.js +0 -6
  223. package/examples/redux/components/AddTodo.js +0 -73
  224. package/examples/redux/components/AddTodo.test.js +0 -27
  225. package/examples/redux/components/TodoElem.js +0 -25
  226. package/examples/redux/components/TodoList.js +0 -29
  227. package/examples/redux/components/TodoList.test.js +0 -34
  228. package/examples/redux/index.js +0 -8
  229. package/examples/redux/jest-setup.js +0 -2
  230. package/examples/redux/jest.config.js +0 -4
  231. package/examples/redux/package.json +0 -23
  232. package/examples/redux/reducers/index.js +0 -6
  233. package/examples/redux/reducers/todoReducer.js +0 -27
  234. package/examples/redux/store.js +0 -10
  235. package/examples/redux/test-utils.js +0 -11
  236. package/examples/redux/yarn-error.log +0 -8083
  237. package/examples/redux/yarn.lock +0 -8423
  238. package/experiments-app/.expo/README.md +0 -15
  239. package/experiments-app/.expo/devices.json +0 -3
  240. package/experiments-app/.expo/settings.json +0 -10
  241. package/experiments-app/.gitignore +0 -17
  242. package/experiments-app/.prettierrc.js +0 -5
  243. package/experiments-app/app.json +0 -30
  244. package/experiments-app/assets/adaptive-icon.png +0 -0
  245. package/experiments-app/assets/favicon.png +0 -0
  246. package/experiments-app/assets/icon.png +0 -0
  247. package/experiments-app/assets/splash.png +0 -0
  248. package/experiments-app/babel.config.js +0 -6
  249. package/experiments-app/index.js +0 -4
  250. package/experiments-app/package.json +0 -31
  251. package/experiments-app/src/App.tsx +0 -31
  252. package/experiments-app/src/MainScreen.tsx +0 -51
  253. package/experiments-app/src/experiments.ts +0 -17
  254. package/experiments-app/src/screens/TextInputEventPropagation.tsx +0 -54
  255. package/experiments-app/src/screens/TextInputEvents.tsx +0 -60
  256. package/experiments-app/src/utils/helpers.ts +0 -8
  257. package/experiments-app/tsconfig.json +0 -6
  258. package/experiments-app/yarn.lock +0 -6913
  259. package/flow-typed/npm/jest_v26.x.x.js +0 -1218
  260. package/flow-typed/npm/react-test-renderer_v16.x.x.js +0 -81
  261. package/jest-setup.ts +0 -10
  262. package/renovate.json +0 -19
  263. package/scripts/test_react_17 +0 -12
  264. package/src/.DS_Store +0 -0
  265. package/src/__tests__/.DS_Store +0 -0
  266. package/src/__tests__/__snapshots__/render-debug.test.tsx.snap +0 -548
  267. package/src/__tests__/__snapshots__/render.test.tsx.snap +0 -39
  268. package/src/__tests__/act.test.tsx +0 -56
  269. package/src/__tests__/auto-cleanup-skip.test.tsx +0 -39
  270. package/src/__tests__/auto-cleanup.test.tsx +0 -50
  271. package/src/__tests__/cleanup.test.tsx +0 -26
  272. package/src/__tests__/config.test.ts +0 -55
  273. package/src/__tests__/fireEvent-textInput.test.tsx +0 -154
  274. package/src/__tests__/fireEvent.test.tsx +0 -485
  275. package/src/__tests__/host-component-names.test.tsx +0 -109
  276. package/src/__tests__/host-text-nesting.test.tsx +0 -90
  277. package/src/__tests__/jest-native.test.tsx +0 -84
  278. package/src/__tests__/questionsBoard.test.tsx +0 -62
  279. package/src/__tests__/react-native-api.test.tsx +0 -126
  280. package/src/__tests__/render-debug.test.tsx +0 -207
  281. package/src/__tests__/render-stringValidation.test.tsx +0 -157
  282. package/src/__tests__/render.test.tsx +0 -256
  283. package/src/__tests__/renderHook.test.tsx +0 -114
  284. package/src/__tests__/screen.test.tsx +0 -66
  285. package/src/__tests__/timerUtils.ts +0 -7
  286. package/src/__tests__/timers.test.ts +0 -27
  287. package/src/__tests__/waitFor.test.tsx +0 -327
  288. package/src/__tests__/waitForElementToBeRemoved.test.tsx +0 -151
  289. package/src/__tests__/within.test.tsx +0 -96
  290. package/src/act.ts +0 -86
  291. package/src/cleanup.ts +0 -15
  292. package/src/config.ts +0 -72
  293. package/src/fireEvent.ts +0 -159
  294. package/src/flush-micro-tasks.ts +0 -30
  295. package/src/helpers/__tests__/accessiblity.test.tsx +0 -373
  296. package/src/helpers/__tests__/component-tree.test.tsx +0 -226
  297. package/src/helpers/__tests__/format-default.tsx +0 -114
  298. package/src/helpers/__tests__/getTextContent.test.tsx +0 -49
  299. package/src/helpers/__tests__/includeHiddenElements.test.tsx +0 -39
  300. package/src/helpers/__tests__/query-name.test.ts +0 -10
  301. package/src/helpers/__tests__/timers.test.ts +0 -8
  302. package/src/helpers/accessiblity.ts +0 -108
  303. package/src/helpers/component-tree.ts +0 -89
  304. package/src/helpers/debugDeep.ts +0 -27
  305. package/src/helpers/debugShallow.ts +0 -22
  306. package/src/helpers/deprecation.ts +0 -53
  307. package/src/helpers/errors.ts +0 -66
  308. package/src/helpers/filterNodeByType.ts +0 -7
  309. package/src/helpers/findAll.ts +0 -68
  310. package/src/helpers/format-default.ts +0 -72
  311. package/src/helpers/format.ts +0 -47
  312. package/src/helpers/getTextContent.ts +0 -20
  313. package/src/helpers/host-component-names.tsx +0 -75
  314. package/src/helpers/matchers/__tests__/matchArrayValue.test.ts +0 -34
  315. package/src/helpers/matchers/__tests__/matchObject.test.ts +0 -37
  316. package/src/helpers/matchers/__tests__/matchStringValue.test.ts +0 -15
  317. package/src/helpers/matchers/accessibilityState.ts +0 -48
  318. package/src/helpers/matchers/accessibilityValue.ts +0 -24
  319. package/src/helpers/matchers/matchArrayProp.ts +0 -21
  320. package/src/helpers/matchers/matchLabelText.ts +0 -51
  321. package/src/helpers/matchers/matchObjectProp.ts +0 -25
  322. package/src/helpers/matchers/matchStringProp.ts +0 -23
  323. package/src/helpers/matchers/matchTextContent.ts +0 -20
  324. package/src/helpers/pointer-events.ts +0 -27
  325. package/src/helpers/query-name.ts +0 -4
  326. package/src/helpers/stringValidation.ts +0 -36
  327. package/src/helpers/timers.ts +0 -98
  328. package/src/index.ts +0 -33
  329. package/src/matches.ts +0 -49
  330. package/src/pure.ts +0 -27
  331. package/src/queries/__tests__/a11yState.test.tsx +0 -439
  332. package/src/queries/__tests__/a11yValue.test.tsx +0 -309
  333. package/src/queries/__tests__/displayValue.test.tsx +0 -221
  334. package/src/queries/__tests__/hintText.test.tsx +0 -177
  335. package/src/queries/__tests__/labelText.test.tsx +0 -242
  336. package/src/queries/__tests__/makeQueries.test.tsx +0 -235
  337. package/src/queries/__tests__/placeholderText.test.tsx +0 -136
  338. package/src/queries/__tests__/role-value.test.tsx +0 -176
  339. package/src/queries/__tests__/role.test.tsx +0 -824
  340. package/src/queries/__tests__/testId.test.tsx +0 -200
  341. package/src/queries/__tests__/text.test.tsx +0 -556
  342. package/src/queries/a11yState.ts +0 -131
  343. package/src/queries/a11yValue.ts +0 -131
  344. package/src/queries/displayValue.ts +0 -78
  345. package/src/queries/hintText.ts +0 -112
  346. package/src/queries/labelText.ts +0 -59
  347. package/src/queries/makeQueries.ts +0 -255
  348. package/src/queries/options.ts +0 -14
  349. package/src/queries/placeholderText.ts +0 -79
  350. package/src/queries/role.ts +0 -132
  351. package/src/queries/testId.ts +0 -71
  352. package/src/queries/text.ts +0 -66
  353. package/src/queries/unsafeProps.ts +0 -76
  354. package/src/queries/unsafeType.ts +0 -73
  355. package/src/react-versions.ts +0 -11
  356. package/src/render-act.ts +0 -19
  357. package/src/render.tsx +0 -183
  358. package/src/renderHook.tsx +0 -56
  359. package/src/screen.ts +0 -123
  360. package/src/shallow.ts +0 -18
  361. package/src/test-utils/events.ts +0 -24
  362. package/src/test-utils/index.ts +0 -1
  363. package/src/user-event/event-builder/common.ts +0 -66
  364. package/src/user-event/event-builder/index.ts +0 -7
  365. package/src/user-event/event-builder/text-input.ts +0 -86
  366. package/src/user-event/index.ts +0 -17
  367. package/src/user-event/press/__tests__/longPress.real-timers.test.tsx +0 -117
  368. package/src/user-event/press/__tests__/longPress.test.tsx +0 -157
  369. package/src/user-event/press/__tests__/press.real-timers.test.tsx +0 -320
  370. package/src/user-event/press/__tests__/press.test.tsx +0 -457
  371. package/src/user-event/press/constants.ts +0 -7
  372. package/src/user-event/press/index.ts +0 -1
  373. package/src/user-event/press/press.ts +0 -169
  374. package/src/user-event/setup/index.ts +0 -2
  375. package/src/user-event/setup/setup.ts +0 -127
  376. package/src/user-event/type/__tests__/__snapshots__/type-managed.test.tsx.snap +0 -339
  377. package/src/user-event/type/__tests__/__snapshots__/type.test.tsx.snap +0 -668
  378. package/src/user-event/type/__tests__/parseKeys.test.ts +0 -23
  379. package/src/user-event/type/__tests__/type-managed.test.tsx +0 -121
  380. package/src/user-event/type/__tests__/type.test.tsx +0 -336
  381. package/src/user-event/type/index.ts +0 -1
  382. package/src/user-event/type/parseKeys.ts +0 -41
  383. package/src/user-event/type/type.ts +0 -135
  384. package/src/user-event/utils/__tests__/dispatch-event.test.tsx +0 -41
  385. package/src/user-event/utils/__tests__/wait.test.ts +0 -63
  386. package/src/user-event/utils/content-size.ts +0 -25
  387. package/src/user-event/utils/dispatch-event.ts +0 -38
  388. package/src/user-event/utils/index.ts +0 -5
  389. package/src/user-event/utils/text-range.ts +0 -11
  390. package/src/user-event/utils/wait.ts +0 -15
  391. package/src/user-event/utils/warn-about-real-timers.ts +0 -13
  392. package/src/waitFor.ts +0 -228
  393. package/src/waitForElementToBeRemoved.ts +0 -42
  394. package/src/within.ts +0 -30
  395. package/tsconfig.json +0 -17
  396. package/tsconfig.release.json +0 -8
  397. package/website/.DS_Store +0 -0
  398. package/website/.docusaurus/DONT-EDIT-THIS-FOLDER +0 -5
  399. package/website/.docusaurus/client-modules.js +0 -6
  400. package/website/.docusaurus/codeTranslations.json +0 -1
  401. package/website/.docusaurus/docusaurus-plugin-content-blog/default/blog-post-list-prop-default.json +0 -4
  402. package/website/.docusaurus/docusaurus-plugin-content-blog/default/plugin-route-context-module-100.json +0 -4
  403. package/website/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json +0 -4
  404. package/website/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-api-md-c82.json +0 -27
  405. package/website/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-eslint-p-llugin-testing-library-md-d24.json +0 -27
  406. package/website/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-faq-md-ad8.json +0 -27
  407. package/website/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-getting-started-md-8a6.json +0 -23
  408. package/website/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-how-should-i-query-md-f2d.json +0 -27
  409. package/website/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-migration-v-11-md-add.json +0 -27
  410. package/website/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-migration-v-12-md-14f.json +0 -27
  411. package/website/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-migration-v-2-md-698.json +0 -27
  412. package/website/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-migration-v-7-md-6bb.json +0 -27
  413. package/website/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-migration-v-9-md-f69.json +0 -27
  414. package/website/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-queries-md-7ad.json +0 -27
  415. package/website/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-react-navigation-md-1bd.json +0 -27
  416. package/website/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-redux-integration-md-77b.json +0 -23
  417. package/website/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-testing-environment-md-1c6.json +0 -27
  418. package/website/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-troubleshooting-md-01d.json +0 -27
  419. package/website/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-understanding-act-md-aa9.json +0 -27
  420. package/website/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-user-event-md-501.json +0 -27
  421. package/website/.docusaurus/docusaurus-plugin-content-docs/default/version-current-metadata-prop-751.json +0 -268
  422. package/website/.docusaurus/docusaurus-plugin-content-docs/react-native-testing-library-docs-route-96e.json +0 -115
  423. package/website/.docusaurus/docusaurus-plugin-content-docs/site-docs-api-md-c82.json +0 -19
  424. package/website/.docusaurus/docusaurus-plugin-content-docs/site-docs-eslint-p-llugin-testing-library-md-d24.json +0 -19
  425. package/website/.docusaurus/docusaurus-plugin-content-docs/site-docs-faq-md-ad8.json +0 -19
  426. package/website/.docusaurus/docusaurus-plugin-content-docs/site-docs-getting-started-md-8a6.json +0 -15
  427. package/website/.docusaurus/docusaurus-plugin-content-docs/site-docs-how-should-i-query-md-f2d.json +0 -19
  428. package/website/.docusaurus/docusaurus-plugin-content-docs/site-docs-migration-v-11-md-add.json +0 -19
  429. package/website/.docusaurus/docusaurus-plugin-content-docs/site-docs-migration-v-2-md-698.json +0 -19
  430. package/website/.docusaurus/docusaurus-plugin-content-docs/site-docs-migration-v-7-md-6bb.json +0 -19
  431. package/website/.docusaurus/docusaurus-plugin-content-docs/site-docs-migration-v-9-md-f69.json +0 -19
  432. package/website/.docusaurus/docusaurus-plugin-content-docs/site-docs-queries-md-7ad.json +0 -19
  433. package/website/.docusaurus/docusaurus-plugin-content-docs/site-docs-react-navigation-md-1bd.json +0 -19
  434. package/website/.docusaurus/docusaurus-plugin-content-docs/site-docs-redux-integration-md-77b.json +0 -15
  435. package/website/.docusaurus/docusaurus-plugin-content-docs/site-docs-troubleshooting-md-01d.json +0 -19
  436. package/website/.docusaurus/docusaurus-plugin-content-docs/site-docs-understanding-act-md-aa9.json +0 -19
  437. package/website/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json +0 -4
  438. package/website/.docusaurus/docusaurus-plugin-debug/default/docusaurus-debug-all-content-673.json +0 -623
  439. package/website/.docusaurus/docusaurus-plugin-debug/default/plugin-route-context-module-100.json +0 -4
  440. package/website/.docusaurus/docusaurus-theme-search-algolia/default/plugin-route-context-module-100.json +0 -4
  441. package/website/.docusaurus/docusaurus.config.js +0 -267
  442. package/website/.docusaurus/docusaurus.config.mjs +0 -365
  443. package/website/.docusaurus/globalData.json +0 -113
  444. package/website/.docusaurus/i18n.json +0 -17
  445. package/website/.docusaurus/registry.js +0 -35
  446. package/website/.docusaurus/routes.js +0 -162
  447. package/website/.docusaurus/routesChunkNames.json +0 -133
  448. package/website/.docusaurus/site-metadata.json +0 -36
  449. package/website/.gitignore +0 -20
  450. package/website/README.md +0 -33
  451. package/website/docker/.dockerignore +0 -3
  452. package/website/docker/Dockerfile +0 -9
  453. package/website/docker/docker-compose.yml +0 -11
  454. package/website/docs/API.md +0 -940
  455. package/website/docs/EslintPLluginTestingLibrary.md +0 -28
  456. package/website/docs/FAQ.md +0 -44
  457. package/website/docs/GettingStarted.md +0 -100
  458. package/website/docs/HowShouldIQuery.md +0 -21
  459. package/website/docs/MigrationV11.md +0 -64
  460. package/website/docs/MigrationV12.md +0 -67
  461. package/website/docs/MigrationV2.md +0 -126
  462. package/website/docs/MigrationV7.md +0 -119
  463. package/website/docs/MigrationV9.md +0 -67
  464. package/website/docs/Queries.md +0 -567
  465. package/website/docs/ReactNavigation.md +0 -371
  466. package/website/docs/ReduxIntegration.md +0 -137
  467. package/website/docs/TestingEnvironment.md +0 -154
  468. package/website/docs/Troubleshooting.md +0 -44
  469. package/website/docs/UnderstandingAct.md +0 -227
  470. package/website/docs/UserEvent.md +0 -143
  471. package/website/docusaurus.config.js +0 -114
  472. package/website/package.json +0 -31
  473. package/website/sidebars.js +0 -20
  474. package/website/src/components/Feature.js +0 -31
  475. package/website/src/css/custom.css +0 -13
  476. package/website/src/css/index.module.css +0 -77
  477. package/website/src/pages/index.js +0 -82
  478. package/website/static/.nojekyll +0 -0
  479. package/website/static/css/custom.css +0 -28
  480. package/website/static/img/hit.png +0 -0
  481. package/website/static/img/locomotive.png +0 -0
  482. package/website/static/img/owl.png +0 -0
  483. package/website/static/img/tools.png +0 -0
  484. package/website/yarn.lock +0 -7669
  485. package/yarn-error.log +0 -10613
  486. package/yarn.lock +0 -7765
@@ -1,53 +0,0 @@
1
- import { getQueryPrefix } from './query-name';
2
-
3
- export function deprecateQueries<Queries extends Record<string, any>>(
4
- queriesObject: Queries,
5
- recommendation: string
6
- ): Queries {
7
- const result = {} as Queries;
8
- Object.keys(queriesObject).forEach((queryName) => {
9
- const queryFn = queriesObject[queryName];
10
- // @ts-expect-error: generic typing is hard
11
- result[queryName] = deprecateQuery(queryFn, queryName, recommendation);
12
- });
13
-
14
- return result;
15
- }
16
-
17
- function deprecateQuery<QueryFn extends (...args: any) => any>(
18
- queryFn: QueryFn,
19
- queryName: string,
20
- recommendation: string
21
- ): QueryFn {
22
- const formattedRecommendation = recommendation.replace(
23
- /{queryPrefix}/g,
24
- getQueryPrefix(queryName)
25
- );
26
-
27
- // @ts-expect-error: generic typing is hard
28
- const wrapper: QueryFn = (...args: any) => {
29
- const errorMessage = `${queryName}(...) is deprecated and will be removed in the future.\n\n${formattedRecommendation}`;
30
- // eslint-disable-next-line no-console
31
- console.warn(errorMessage);
32
- return queryFn(...args);
33
- };
34
-
35
- return wrapper;
36
- }
37
-
38
- const warned: { [functionName: string]: boolean } = {};
39
-
40
- /* istanbul ignore next: occasionally used */
41
- export function printDeprecationWarning(functionName: string) {
42
- if (warned[functionName]) {
43
- return;
44
- }
45
-
46
- // eslint-disable-next-line no-console
47
- console.warn(`
48
- Deprecation Warning:
49
- Use of ${functionName} is not recommended and will be deleted in future versions of @testing-library/react-native.
50
- `);
51
-
52
- warned[functionName] = true;
53
- }
@@ -1,66 +0,0 @@
1
- import prettyFormat from 'pretty-format';
2
-
3
- export class ErrorWithStack extends Error {
4
- constructor(message: string | undefined, callsite: Function) {
5
- super(message);
6
- if (Error.captureStackTrace) {
7
- Error.captureStackTrace(this, callsite);
8
- }
9
- }
10
- }
11
-
12
- export const prepareErrorMessage = (
13
- // TS states that error caught in a catch close are of type `unknown`
14
- // most real cases will be `Error`, but better safe than sorry
15
- error: unknown,
16
- name?: string,
17
- value?: unknown
18
- ): string => {
19
- let errorMessage: string;
20
- if (error instanceof Error) {
21
- // Strip info about custom predicate
22
- errorMessage = error.message.replace(
23
- / matching custom predicate[^]*/gm,
24
- ''
25
- );
26
- } else if (error && typeof error === 'object') {
27
- errorMessage = error.toString();
28
- } else {
29
- errorMessage = 'Caught unknown error';
30
- }
31
-
32
- if (name && value) {
33
- errorMessage += ` with ${name} ${prettyFormat(value, { min: true })}`;
34
- }
35
- return errorMessage;
36
- };
37
-
38
- export const createQueryByError = (
39
- error: unknown,
40
- callsite: Function
41
- ): null => {
42
- if (error instanceof Error) {
43
- if (error.message.includes('No instances found')) {
44
- return null;
45
- }
46
- throw new ErrorWithStack(error.message, callsite);
47
- }
48
-
49
- throw new ErrorWithStack(
50
- // generic refining of `unknown` is very hard, you cannot do `'toString' in error` or anything like that
51
- // Converting as any with extra safe optional chaining will do the job just as well
52
- `Query: caught unknown error type: ${typeof error}, value: ${(
53
- error as any
54
- )?.toString?.()}`,
55
- callsite
56
- );
57
- };
58
-
59
- export function copyStackTrace(target: unknown, stackTraceSource: Error) {
60
- if (target instanceof Error && stackTraceSource.stack) {
61
- target.stack = stackTraceSource.stack.replace(
62
- stackTraceSource.message,
63
- target.message
64
- );
65
- }
66
- }
@@ -1,7 +0,0 @@
1
- import type { ReactTestInstance } from 'react-test-renderer';
2
- import * as React from 'react';
3
-
4
- export const filterNodeByType = (
5
- node: ReactTestInstance | React.ReactElement,
6
- type: React.ElementType | string
7
- ) => node.type === type;
@@ -1,68 +0,0 @@
1
- import { ReactTestInstance } from 'react-test-renderer';
2
- import { getConfig } from '../config';
3
- import { isHiddenFromAccessibility } from './accessiblity';
4
-
5
- interface FindAllOptions {
6
- /** Match elements hidden from accessibility */
7
- includeHiddenElements?: boolean;
8
-
9
- /** RTL-compatible alias to `includeHiddenElements` */
10
- hidden?: boolean;
11
-
12
- /* Exclude any ancestors of deepest matched elements even if they match the predicate */
13
- matchDeepestOnly?: boolean;
14
- }
15
-
16
- export function findAll(
17
- root: ReactTestInstance,
18
- predicate: (element: ReactTestInstance) => boolean,
19
- options?: FindAllOptions
20
- ) {
21
- const results = findAllInternal(root, predicate, options);
22
-
23
- const includeHiddenElements =
24
- options?.includeHiddenElements ??
25
- options?.hidden ??
26
- getConfig()?.defaultIncludeHiddenElements;
27
-
28
- if (includeHiddenElements) {
29
- return results;
30
- }
31
-
32
- const cache = new WeakMap<ReactTestInstance>();
33
- return results.filter(
34
- (element) => !isHiddenFromAccessibility(element, { cache })
35
- );
36
- }
37
-
38
- // Extracted from React Test Renderer
39
- // src: https://github.com/facebook/react/blob/8e2bde6f2751aa6335f3cef488c05c3ea08e074a/packages/react-test-renderer/src/ReactTestRenderer.js#L402
40
- function findAllInternal(
41
- root: ReactTestInstance,
42
- predicate: (element: ReactTestInstance) => boolean,
43
- options?: FindAllOptions
44
- ): Array<ReactTestInstance> {
45
- const results: ReactTestInstance[] = [];
46
-
47
- // Match descendants first but do not add them to results yet.
48
- const matchingDescendants: ReactTestInstance[] = [];
49
- root.children.forEach((child) => {
50
- if (typeof child === 'string') {
51
- return;
52
- }
53
- matchingDescendants.push(...findAllInternal(child, predicate, options));
54
- });
55
-
56
- if (
57
- // When matchDeepestOnly = true: add current element only if no descendants match
58
- (!options?.matchDeepestOnly || matchingDescendants.length === 0) &&
59
- predicate(root)
60
- ) {
61
- results.push(root);
62
- }
63
-
64
- // Add matching descendants after element to preserve original tree walk order.
65
- results.push(...matchingDescendants);
66
-
67
- return results;
68
- }
@@ -1,72 +0,0 @@
1
- import { StyleSheet, ViewStyle } from 'react-native';
2
- import { MapPropsFunction } from './format';
3
-
4
- const propsToDisplay = [
5
- 'testID',
6
- 'nativeID',
7
- 'accessibilityElementsHidden',
8
- 'accessibilityViewIsModal',
9
- 'importantForAccessibility',
10
- 'accessibilityRole',
11
- 'accessibilityLabel',
12
- 'accessibilityLabelledBy',
13
- 'accessibilityHint',
14
- 'placeholder',
15
- 'value',
16
- 'defaultValue',
17
- 'title',
18
- ];
19
-
20
- /**
21
- * Preserve props that are helpful in diagnosing test failures, while stripping rest
22
- */
23
- export const defaultMapProps: MapPropsFunction = (props) => {
24
- const result: Record<string, unknown> = {};
25
-
26
- const styles = StyleSheet.flatten(props.style as ViewStyle);
27
- if (styles?.display === 'none') {
28
- result.style = { display: 'none' };
29
- }
30
-
31
- const accessibilityState = removeUndefinedKeys(props.accessibilityState);
32
- if (accessibilityState !== undefined) {
33
- result.accessibilityState = accessibilityState;
34
- }
35
-
36
- const accessibilityValue = removeUndefinedKeys(props.accessibilityValue);
37
- if (accessibilityValue !== undefined) {
38
- result.accessibilityValue = accessibilityValue;
39
- }
40
-
41
- propsToDisplay.forEach((propName) => {
42
- if (propName in props) {
43
- result[propName] = props[propName];
44
- }
45
- });
46
-
47
- return result;
48
- };
49
-
50
- function isObject(value: unknown): value is Record<string, unknown> {
51
- return typeof value === 'object' && value !== null && !Array.isArray(value);
52
- }
53
-
54
- function removeUndefinedKeys(prop: unknown) {
55
- if (!isObject(prop)) {
56
- return prop;
57
- }
58
-
59
- const result: Record<string, unknown> = {};
60
- Object.entries(prop).forEach(([key, value]) => {
61
- if (value !== undefined) {
62
- result[key] = value;
63
- }
64
- });
65
-
66
- // If object does not have any props we will ignore it.
67
- if (Object.keys(result).length === 0) {
68
- return undefined;
69
- }
70
-
71
- return result;
72
- }
@@ -1,47 +0,0 @@
1
- import type { ReactTestRendererJSON } from 'react-test-renderer';
2
- import prettyFormat, { NewPlugin, plugins } from 'pretty-format';
3
-
4
- export type MapPropsFunction = (
5
- props: Record<string, unknown>,
6
- node: ReactTestRendererJSON
7
- ) => Record<string, unknown>;
8
-
9
- export type FormatOptions = {
10
- mapProps?: MapPropsFunction;
11
- };
12
-
13
- const format = (
14
- input: ReactTestRendererJSON | ReactTestRendererJSON[],
15
- options: FormatOptions = {}
16
- ) =>
17
- prettyFormat(input, {
18
- plugins: [getCustomPlugin(options.mapProps), plugins.ReactElement],
19
- highlight: shouldHighlight(),
20
- printBasicPrototype: false,
21
- });
22
-
23
- const getCustomPlugin = (mapProps?: MapPropsFunction): NewPlugin => {
24
- return {
25
- test: (val) => plugins.ReactTestComponent.test(val),
26
- serialize: (val, config, indentation, depth, refs, printer) => {
27
- let newVal = val;
28
- if (mapProps && val.props) {
29
- newVal = { ...val, props: mapProps(val.props, val) };
30
- }
31
- return plugins.ReactTestComponent.serialize(
32
- newVal,
33
- config,
34
- indentation,
35
- depth,
36
- refs,
37
- printer
38
- );
39
- },
40
- };
41
- };
42
-
43
- function shouldHighlight() {
44
- return process?.env?.COLORS !== 'false';
45
- }
46
-
47
- export default format;
@@ -1,20 +0,0 @@
1
- import type { ReactTestInstance } from 'react-test-renderer';
2
-
3
- export function getTextContent(
4
- element: ReactTestInstance | string | null
5
- ): string {
6
- if (!element) {
7
- return '';
8
- }
9
-
10
- if (typeof element === 'string') {
11
- return element;
12
- }
13
-
14
- const result: string[] = [];
15
- element.children?.forEach((child) => {
16
- result.push(getTextContent(child));
17
- });
18
-
19
- return result.join('');
20
- }
@@ -1,75 +0,0 @@
1
- import * as React from 'react';
2
- import { ReactTestInstance } from 'react-test-renderer';
3
- import { Switch, Text, TextInput, View } from 'react-native';
4
- import { configureInternal, getConfig, HostComponentNames } from '../config';
5
- import { renderWithAct } from '../render-act';
6
-
7
- const userConfigErrorMessage = `There seems to be an issue with your configuration that prevents React Native Testing Library from working correctly.
8
- Please check if you are using compatible versions of React Native and React Native Testing Library.`;
9
-
10
- export function getHostComponentNames(): HostComponentNames {
11
- let hostComponentNames = getConfig().hostComponentNames;
12
- if (!hostComponentNames) {
13
- hostComponentNames = detectHostComponentNames();
14
- configureInternal({ hostComponentNames });
15
- }
16
-
17
- return hostComponentNames;
18
- }
19
-
20
- export function configureHostComponentNamesIfNeeded() {
21
- const configHostComponentNames = getConfig().hostComponentNames;
22
- if (configHostComponentNames) {
23
- return;
24
- }
25
-
26
- const hostComponentNames = detectHostComponentNames();
27
- configureInternal({ hostComponentNames });
28
- }
29
-
30
- function detectHostComponentNames(): HostComponentNames {
31
- try {
32
- const renderer = renderWithAct(
33
- <View>
34
- <Text testID="text">Hello</Text>
35
- <TextInput testID="textInput" />
36
- <Switch testID="switch" />
37
- </View>
38
- );
39
-
40
- return {
41
- text: getByTestId(renderer.root, 'text').type as string,
42
- textInput: getByTestId(renderer.root, 'textInput').type as string,
43
- switch: getByTestId(renderer.root, 'switch').type as string,
44
- };
45
- } catch (error) {
46
- const errorMessage =
47
- error && typeof error === 'object' && 'message' in error
48
- ? error.message
49
- : null;
50
-
51
- throw new Error(
52
- `Trying to detect host component names triggered the following error:\n\n${errorMessage}\n\n${userConfigErrorMessage}`
53
- );
54
- }
55
- }
56
-
57
- function getByTestId(instance: ReactTestInstance, testID: string) {
58
- const nodes = instance.findAll(
59
- (node) => typeof node.type === 'string' && node.props.testID === testID
60
- );
61
-
62
- if (nodes.length === 0) {
63
- throw new Error(`Unable to find an element with testID: ${testID}`);
64
- }
65
-
66
- return nodes[0];
67
- }
68
-
69
- export function isHostText(element?: ReactTestInstance) {
70
- return element?.type === getHostComponentNames().text;
71
- }
72
-
73
- export function isHostTextInput(element?: ReactTestInstance) {
74
- return element?.type === getHostComponentNames().textInput;
75
- }
@@ -1,34 +0,0 @@
1
- import { matchArrayProp } from '../matchArrayProp';
2
-
3
- test('returns true given 2 identical prop and matcher', () => {
4
- expect(matchArrayProp(['banana'], ['banana'])).toEqual(true);
5
- expect(matchArrayProp(['banana', 'apple'], ['banana', 'apple'])).toEqual(
6
- true
7
- );
8
- });
9
-
10
- test('returns true when the prop contains all the values of the matcher', () => {
11
- expect(
12
- matchArrayProp(['banana', 'apple', 'orange'], ['banana', 'orange'])
13
- ).toEqual(true);
14
- });
15
-
16
- test('returns false when the prop does not contain all the values of the matcher', () => {
17
- expect(
18
- matchArrayProp(['banana', 'apple', 'orange'], ['banana', 'pear'])
19
- ).toEqual(false);
20
- });
21
-
22
- test('returns false when prop is undefined', () => {
23
- expect(matchArrayProp(undefined, ['banana'])).toEqual(false);
24
- });
25
-
26
- test('returns false when the matcher is an empty list', () => {
27
- expect(matchArrayProp(['banana'], [])).toEqual(false);
28
- });
29
-
30
- test('returns false given 2 different prop and matchers', () => {
31
- expect(matchArrayProp(['banana', 'apple'], ['banana', 'orange'])).toEqual(
32
- false
33
- );
34
- });
@@ -1,37 +0,0 @@
1
- import { matchObjectProp } from '../matchObjectProp';
2
-
3
- test('returns true given 2 identical objects', () => {
4
- expect(matchObjectProp({ fruit: 'banana' }, { fruit: 'banana' })).toEqual(
5
- true
6
- );
7
- expect(
8
- matchObjectProp(
9
- { fruit: 'banana', isRipe: true },
10
- { fruit: 'banana', isRipe: true }
11
- )
12
- ).toEqual(true);
13
- });
14
-
15
- test('returns false when one of the param is an empty object', () => {
16
- expect(matchObjectProp({}, { fruit: 'banana' })).toEqual(false);
17
- expect(matchObjectProp({ fruit: 'banana' }, {})).toEqual(false);
18
- });
19
-
20
- test('returns false given an undefined prop', () => {
21
- expect(matchObjectProp(undefined, { fruit: 'banana' })).toEqual(false);
22
- });
23
-
24
- test('returns false given 2 different non empty objects', () => {
25
- expect(matchObjectProp({ fruit: 'banana' }, { fruits: 'banana' })).toEqual(
26
- false
27
- );
28
- expect(matchObjectProp({ fruit: 'banana' }, { fruit: 'orange' })).toEqual(
29
- false
30
- );
31
- expect(
32
- matchObjectProp(
33
- { fruit: 'banana', isRipe: true },
34
- { fruit: 'banana', ripe: true }
35
- )
36
- ).toEqual(false);
37
- });
@@ -1,15 +0,0 @@
1
- import { matchStringProp } from '../matchStringProp';
2
-
3
- test.each`
4
- prop | matcher | expectedResult
5
- ${'hey'} | ${'hey'} | ${true}
6
- ${'hey'} | ${/hey/} | ${true}
7
- ${'hey'} | ${'heyyyy'} | ${false}
8
- ${'hey'} | ${/heyyy/} | ${false}
9
- ${undefined} | ${'hey'} | ${false}
10
- `(
11
- 'returns $expectedResult given prop $prop and matcher $matcher',
12
- ({ prop, matcher, expectedResult }) => {
13
- expect(matchStringProp(prop, matcher)).toEqual(expectedResult);
14
- }
15
- );
@@ -1,48 +0,0 @@
1
- import { AccessibilityState } from 'react-native';
2
- import { ReactTestInstance } from 'react-test-renderer';
3
- import { accessibilityStateKeys } from '../accessiblity';
4
-
5
- // This type is the same as AccessibilityState from `react-native` package
6
- // It is re-declared here due to issues with migration from `@types/react-native` to
7
- // built in `react-native` types.
8
- // See: https://github.com/callstack/react-native-testing-library/issues/1351
9
- export interface AccessibilityStateMatcher {
10
- disabled?: boolean;
11
- selected?: boolean;
12
- checked?: boolean | 'mixed';
13
- busy?: boolean;
14
- expanded?: boolean;
15
- }
16
-
17
- /**
18
- * Default accessibility state values based on experiments using accessibility
19
- * inspector/screen reader on iOS and Android.
20
- *
21
- * @see https://github.com/callstack/react-native-testing-library/wiki/Accessibility:-State
22
- */
23
- const defaultState: AccessibilityState = {
24
- disabled: false,
25
- selected: false,
26
- checked: undefined,
27
- busy: false,
28
- expanded: undefined,
29
- };
30
-
31
- export function matchAccessibilityState(
32
- node: ReactTestInstance,
33
- matcher: AccessibilityStateMatcher
34
- ) {
35
- const state = node.props.accessibilityState;
36
- return accessibilityStateKeys.every((key) => matchState(state, matcher, key));
37
- }
38
-
39
- function matchState(
40
- state: AccessibilityState,
41
- matcher: AccessibilityStateMatcher,
42
- key: keyof AccessibilityState
43
- ) {
44
- return (
45
- matcher[key] === undefined ||
46
- matcher[key] === (state?.[key] ?? defaultState[key])
47
- );
48
- }
@@ -1,24 +0,0 @@
1
- import { AccessibilityValue } from 'react-native';
2
- import { ReactTestInstance } from 'react-test-renderer';
3
- import { TextMatch } from '../../matches';
4
- import { matchStringProp } from './matchStringProp';
5
-
6
- export interface AccessibilityValueMatcher {
7
- min?: number;
8
- max?: number;
9
- now?: number;
10
- text?: TextMatch;
11
- }
12
-
13
- export function matchAccessibilityValue(
14
- node: ReactTestInstance,
15
- matcher: AccessibilityValueMatcher
16
- ): boolean {
17
- const value: AccessibilityValue = node.props.accessibilityValue ?? {};
18
- return (
19
- (matcher.min === undefined || matcher.min === value.min) &&
20
- (matcher.max === undefined || matcher.max === value.max) &&
21
- (matcher.now === undefined || matcher.now === value.now) &&
22
- (matcher.text === undefined || matchStringProp(value.text, matcher.text))
23
- );
24
- }
@@ -1,21 +0,0 @@
1
- /**
2
- * Matches whether given array prop contains the given value, or all given values.
3
- *
4
- * @param prop - The array prop to match.
5
- * @param matcher - The value or values to be included in the array.
6
- * @returns Whether the array prop contains the given value, or all given values.
7
- */
8
- export function matchArrayProp(
9
- prop: Array<string> | undefined,
10
- matcher: string | Array<string>
11
- ): boolean {
12
- if (!prop || matcher.length === 0) {
13
- return false;
14
- }
15
-
16
- if (typeof matcher === 'string') {
17
- return prop.includes(matcher);
18
- }
19
-
20
- return matcher.every((e) => prop.includes(e));
21
- }
@@ -1,51 +0,0 @@
1
- import { ReactTestInstance } from 'react-test-renderer';
2
- import { matches, TextMatch, TextMatchOptions } from '../../matches';
3
- import { findAll } from '../findAll';
4
- import { matchTextContent } from './matchTextContent';
5
-
6
- export function matchLabelText(
7
- root: ReactTestInstance,
8
- element: ReactTestInstance,
9
- text: TextMatch,
10
- options: TextMatchOptions = {}
11
- ) {
12
- return (
13
- matchAccessibilityLabel(element, text, options) ||
14
- matchAccessibilityLabelledBy(
15
- root,
16
- element.props.accessibilityLabelledBy,
17
- text,
18
- options
19
- )
20
- );
21
- }
22
-
23
- function matchAccessibilityLabel(
24
- element: ReactTestInstance,
25
- text: TextMatch,
26
- options: TextMatchOptions
27
- ) {
28
- const { exact, normalizer } = options;
29
- return matches(text, element.props.accessibilityLabel, normalizer, exact);
30
- }
31
-
32
- function matchAccessibilityLabelledBy(
33
- root: ReactTestInstance,
34
- nativeId: string | undefined,
35
- text: TextMatch,
36
- options: TextMatchOptions
37
- ) {
38
- if (!nativeId) {
39
- return false;
40
- }
41
-
42
- return (
43
- findAll(
44
- root,
45
- (node) =>
46
- typeof node.type === 'string' &&
47
- node.props.nativeID === nativeId &&
48
- matchTextContent(node, text, options)
49
- ).length > 0
50
- );
51
- }
@@ -1,25 +0,0 @@
1
- /**
2
- * check that each key value pair of the objects match
3
- * BE CAREFUL it works only for 1 level deep key value pairs
4
- * won't work for nested objects
5
- */
6
-
7
- /**
8
- * Matches whether given object prop contains all key/value pairs.
9
- * @param prop - The object prop to match.
10
- * @param matcher - The key/value pairs to be included in the object.
11
- * @returns Whether the object prop contains all key/value pairs.
12
- */
13
- export function matchObjectProp<T extends Record<string, unknown>>(
14
- prop: T | undefined,
15
- matcher: T
16
- ): boolean {
17
- if (!prop || Object.keys(matcher).length === 0) {
18
- return false;
19
- }
20
-
21
- return (
22
- Object.keys(prop).length !== 0 &&
23
- Object.keys(matcher).every((key) => prop[key] === matcher[key])
24
- );
25
- }