@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
package/src/screen.ts DELETED
@@ -1,123 +0,0 @@
1
- import { ReactTestInstance } from 'react-test-renderer';
2
- import { RenderResult } from './render';
3
-
4
- const SCREEN_ERROR = '`render` method has not been called';
5
-
6
- const notImplemented = () => {
7
- throw new Error(SCREEN_ERROR);
8
- };
9
-
10
- const notImplementedDebug = () => {
11
- throw new Error(SCREEN_ERROR);
12
- };
13
- notImplementedDebug.shallow = notImplemented;
14
-
15
- const defaultScreen: RenderResult = {
16
- get root(): ReactTestInstance {
17
- throw new Error(SCREEN_ERROR);
18
- },
19
- get UNSAFE_root(): ReactTestInstance {
20
- throw new Error(SCREEN_ERROR);
21
- },
22
- debug: notImplementedDebug,
23
- update: notImplemented,
24
- unmount: notImplemented,
25
- rerender: notImplemented,
26
- toJSON: notImplemented,
27
- getByLabelText: notImplemented,
28
- getAllByLabelText: notImplemented,
29
- queryByLabelText: notImplemented,
30
- queryAllByLabelText: notImplemented,
31
- findByLabelText: notImplemented,
32
- findAllByLabelText: notImplemented,
33
- getByHintText: notImplemented,
34
- getAllByHintText: notImplemented,
35
- queryByHintText: notImplemented,
36
- queryAllByHintText: notImplemented,
37
- findByHintText: notImplemented,
38
- findAllByHintText: notImplemented,
39
- getByA11yHint: notImplemented,
40
- getAllByA11yHint: notImplemented,
41
- queryByA11yHint: notImplemented,
42
- queryAllByA11yHint: notImplemented,
43
- findByA11yHint: notImplemented,
44
- findAllByA11yHint: notImplemented,
45
- getByAccessibilityHint: notImplemented,
46
- getAllByAccessibilityHint: notImplemented,
47
- queryByAccessibilityHint: notImplemented,
48
- queryAllByAccessibilityHint: notImplemented,
49
- findByAccessibilityHint: notImplemented,
50
- findAllByAccessibilityHint: notImplemented,
51
- getByRole: notImplemented,
52
- getAllByRole: notImplemented,
53
- queryByRole: notImplemented,
54
- queryAllByRole: notImplemented,
55
- findByRole: notImplemented,
56
- findAllByRole: notImplemented,
57
- getByA11yState: notImplemented,
58
- getAllByA11yState: notImplemented,
59
- queryByA11yState: notImplemented,
60
- queryAllByA11yState: notImplemented,
61
- findByA11yState: notImplemented,
62
- findAllByA11yState: notImplemented,
63
- getByAccessibilityState: notImplemented,
64
- getAllByAccessibilityState: notImplemented,
65
- queryByAccessibilityState: notImplemented,
66
- queryAllByAccessibilityState: notImplemented,
67
- findByAccessibilityState: notImplemented,
68
- findAllByAccessibilityState: notImplemented,
69
- getByA11yValue: notImplemented,
70
- getAllByA11yValue: notImplemented,
71
- queryByA11yValue: notImplemented,
72
- queryAllByA11yValue: notImplemented,
73
- findByA11yValue: notImplemented,
74
- findAllByA11yValue: notImplemented,
75
- getByAccessibilityValue: notImplemented,
76
- getAllByAccessibilityValue: notImplemented,
77
- queryByAccessibilityValue: notImplemented,
78
- queryAllByAccessibilityValue: notImplemented,
79
- findByAccessibilityValue: notImplemented,
80
- findAllByAccessibilityValue: notImplemented,
81
- UNSAFE_getByProps: notImplemented,
82
- UNSAFE_getAllByProps: notImplemented,
83
- UNSAFE_queryByProps: notImplemented,
84
- UNSAFE_queryAllByProps: notImplemented,
85
- UNSAFE_getByType: notImplemented,
86
- UNSAFE_getAllByType: notImplemented,
87
- UNSAFE_queryByType: notImplemented,
88
- UNSAFE_queryAllByType: notImplemented,
89
- getByPlaceholderText: notImplemented,
90
- getAllByPlaceholderText: notImplemented,
91
- queryByPlaceholderText: notImplemented,
92
- queryAllByPlaceholderText: notImplemented,
93
- findByPlaceholderText: notImplemented,
94
- findAllByPlaceholderText: notImplemented,
95
- getByDisplayValue: notImplemented,
96
- getAllByDisplayValue: notImplemented,
97
- queryByDisplayValue: notImplemented,
98
- queryAllByDisplayValue: notImplemented,
99
- findByDisplayValue: notImplemented,
100
- findAllByDisplayValue: notImplemented,
101
- getByTestId: notImplemented,
102
- getAllByTestId: notImplemented,
103
- queryByTestId: notImplemented,
104
- queryAllByTestId: notImplemented,
105
- findByTestId: notImplemented,
106
- findAllByTestId: notImplemented,
107
- getByText: notImplemented,
108
- getAllByText: notImplemented,
109
- queryByText: notImplemented,
110
- queryAllByText: notImplemented,
111
- findByText: notImplemented,
112
- findAllByText: notImplemented,
113
- };
114
-
115
- export let screen: RenderResult = defaultScreen;
116
-
117
- export function setRenderResult(output: RenderResult) {
118
- screen = output;
119
- }
120
-
121
- export function clearRenderResult() {
122
- screen = defaultScreen;
123
- }
package/src/shallow.ts DELETED
@@ -1,18 +0,0 @@
1
- import * as React from 'react';
2
- import { ReactTestInstance } from 'react-test-renderer';
3
- import ShallowRenderer from 'react-test-renderer/shallow'; // eslint-disable-line import/no-extraneous-dependencies
4
-
5
- /**
6
- * Renders test component shallowly using react-test-renderer/shallow
7
- */
8
- export function shallowInternal(
9
- instance: ReactTestInstance | React.ReactElement<any>
10
- ): { output: any } {
11
- const renderer = new (ShallowRenderer as any)();
12
-
13
- renderer.render(React.createElement(instance.type, instance.props));
14
-
15
- return {
16
- output: renderer.getRenderOutput(),
17
- };
18
- }
@@ -1,24 +0,0 @@
1
- interface EventEntry {
2
- name: string;
3
- payload: any;
4
- }
5
-
6
- export function createEventLogger() {
7
- const events: EventEntry[] = [];
8
- const logEvent = (name: string) => {
9
- return (event: unknown) => {
10
- const eventEntry: EventEntry = {
11
- name,
12
- payload: event,
13
- };
14
-
15
- events.push(eventEntry);
16
- };
17
- };
18
-
19
- return { events, logEvent };
20
- }
21
-
22
- export function getEventsName(events: EventEntry[]) {
23
- return events.map((event) => event.name);
24
- }
@@ -1 +0,0 @@
1
- export * from './events';
@@ -1,269 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`clear() supports basic case: value: "Hello! 1`] = `
4
- [
5
- {
6
- "name": "focus",
7
- "payload": {
8
- "nativeEvent": {
9
- "target": 0,
10
- },
11
- },
12
- },
13
- {
14
- "name": "selectionChange",
15
- "payload": {
16
- "nativeEvent": {
17
- "selection": {
18
- "end": 6,
19
- "start": 0,
20
- },
21
- },
22
- },
23
- },
24
- {
25
- "name": "keyPress",
26
- "payload": {
27
- "nativeEvent": {
28
- "key": "Backspace",
29
- },
30
- },
31
- },
32
- {
33
- "name": "change",
34
- "payload": {
35
- "nativeEvent": {
36
- "eventCount": 0,
37
- "target": 0,
38
- "text": "",
39
- },
40
- },
41
- },
42
- {
43
- "name": "changeText",
44
- "payload": "",
45
- },
46
- {
47
- "name": "selectionChange",
48
- "payload": {
49
- "nativeEvent": {
50
- "selection": {
51
- "end": 0,
52
- "start": 0,
53
- },
54
- },
55
- },
56
- },
57
- {
58
- "name": "endEditing",
59
- "payload": {
60
- "nativeEvent": {
61
- "target": 0,
62
- "text": "",
63
- },
64
- },
65
- },
66
- {
67
- "name": "blur",
68
- "payload": {
69
- "nativeEvent": {
70
- "target": 0,
71
- },
72
- },
73
- },
74
- ]
75
- `;
76
-
77
- exports[`clear() supports defaultValue prop: defaultValue: "Hello Default!" 1`] = `
78
- [
79
- {
80
- "name": "focus",
81
- "payload": {
82
- "nativeEvent": {
83
- "target": 0,
84
- },
85
- },
86
- },
87
- {
88
- "name": "selectionChange",
89
- "payload": {
90
- "nativeEvent": {
91
- "selection": {
92
- "end": 14,
93
- "start": 0,
94
- },
95
- },
96
- },
97
- },
98
- {
99
- "name": "keyPress",
100
- "payload": {
101
- "nativeEvent": {
102
- "key": "Backspace",
103
- },
104
- },
105
- },
106
- {
107
- "name": "change",
108
- "payload": {
109
- "nativeEvent": {
110
- "eventCount": 0,
111
- "target": 0,
112
- "text": "",
113
- },
114
- },
115
- },
116
- {
117
- "name": "changeText",
118
- "payload": "",
119
- },
120
- {
121
- "name": "selectionChange",
122
- "payload": {
123
- "nativeEvent": {
124
- "selection": {
125
- "end": 0,
126
- "start": 0,
127
- },
128
- },
129
- },
130
- },
131
- {
132
- "name": "endEditing",
133
- "payload": {
134
- "nativeEvent": {
135
- "target": 0,
136
- "text": "",
137
- },
138
- },
139
- },
140
- {
141
- "name": "blur",
142
- "payload": {
143
- "nativeEvent": {
144
- "target": 0,
145
- },
146
- },
147
- },
148
- ]
149
- `;
150
-
151
- exports[`clear() supports multiline: value: "Hello World!
152
- How are you?" multiline: true, 1`] = `
153
- [
154
- {
155
- "name": "focus",
156
- "payload": {
157
- "nativeEvent": {
158
- "target": 0,
159
- },
160
- },
161
- },
162
- {
163
- "name": "selectionChange",
164
- "payload": {
165
- "nativeEvent": {
166
- "selection": {
167
- "end": 25,
168
- "start": 0,
169
- },
170
- },
171
- },
172
- },
173
- {
174
- "name": "keyPress",
175
- "payload": {
176
- "nativeEvent": {
177
- "key": "Backspace",
178
- },
179
- },
180
- },
181
- {
182
- "name": "textInput",
183
- "payload": {
184
- "nativeEvent": {
185
- "previousText": "Hello World!
186
- How are you?",
187
- "range": {
188
- "end": 0,
189
- "start": 0,
190
- },
191
- "target": 0,
192
- "text": "",
193
- },
194
- },
195
- },
196
- {
197
- "name": "change",
198
- "payload": {
199
- "nativeEvent": {
200
- "eventCount": 0,
201
- "target": 0,
202
- "text": "",
203
- },
204
- },
205
- },
206
- {
207
- "name": "changeText",
208
- "payload": "",
209
- },
210
- {
211
- "name": "selectionChange",
212
- "payload": {
213
- "nativeEvent": {
214
- "selection": {
215
- "end": 0,
216
- "start": 0,
217
- },
218
- },
219
- },
220
- },
221
- {
222
- "name": "contentSizeChange",
223
- "payload": {
224
- "nativeEvent": {
225
- "contentSize": {
226
- "height": 16,
227
- "width": 0,
228
- },
229
- "target": 0,
230
- },
231
- },
232
- },
233
- {
234
- "name": "endEditing",
235
- "payload": {
236
- "nativeEvent": {
237
- "target": 0,
238
- "text": "",
239
- },
240
- },
241
- },
242
- {
243
- "name": "blur",
244
- "payload": {
245
- "nativeEvent": {
246
- "target": 0,
247
- },
248
- },
249
- },
250
- ]
251
- `;
252
-
253
- exports[`clear() works when not all events have handlers 1`] = `
254
- [
255
- {
256
- "name": "changeText",
257
- "payload": "",
258
- },
259
- {
260
- "name": "endEditing",
261
- "payload": {
262
- "nativeEvent": {
263
- "target": 0,
264
- "text": "",
265
- },
266
- },
267
- },
268
- ]
269
- `;
@@ -1,217 +0,0 @@
1
- import * as React from 'react';
2
- import { View, TextInput, TextInputProps } from 'react-native';
3
- import { createEventLogger } from '../../test-utils/events';
4
- import { render, userEvent } from '../..';
5
-
6
- beforeEach(() => {
7
- jest.useRealTimers();
8
- });
9
-
10
- function renderTextInputWithToolkit(props: TextInputProps = {}) {
11
- const { events, logEvent } = createEventLogger();
12
-
13
- const screen = render(
14
- <TextInput
15
- testID="input"
16
- onFocus={logEvent('focus')}
17
- onBlur={logEvent('blur')}
18
- onPressIn={logEvent('pressIn')}
19
- onPressOut={logEvent('pressOut')}
20
- onChange={logEvent('change')}
21
- onChangeText={logEvent('changeText')}
22
- onKeyPress={logEvent('keyPress')}
23
- onTextInput={logEvent('textInput')}
24
- onSelectionChange={logEvent('selectionChange')}
25
- onSubmitEditing={logEvent('submitEditing')}
26
- onEndEditing={logEvent('endEditing')}
27
- onContentSizeChange={logEvent('contentSizeChange')}
28
- {...props}
29
- />
30
- );
31
-
32
- const textInput = screen.getByTestId('input');
33
-
34
- return {
35
- events,
36
- textInput,
37
- };
38
- }
39
-
40
- describe('clear()', () => {
41
- it('supports basic case', async () => {
42
- jest.spyOn(Date, 'now').mockImplementation(() => 100100100100);
43
- const { textInput, events } = renderTextInputWithToolkit({
44
- value: 'Hello!',
45
- });
46
-
47
- const user = userEvent.setup();
48
- await user.clear(textInput);
49
-
50
- const eventNames = events.map((e) => e.name);
51
- expect(eventNames).toEqual([
52
- 'focus',
53
- 'selectionChange',
54
- 'keyPress',
55
- 'change',
56
- 'changeText',
57
- 'selectionChange',
58
- 'endEditing',
59
- 'blur',
60
- ]);
61
-
62
- expect(events).toMatchSnapshot('value: "Hello!');
63
- });
64
-
65
- it.each(['modern', 'legacy'])('works with %s fake timers', async (type) => {
66
- jest.useFakeTimers({ legacyFakeTimers: type === 'legacy' });
67
- const { textInput, events } = renderTextInputWithToolkit({
68
- value: 'Hello!',
69
- });
70
-
71
- const user = userEvent.setup();
72
- await user.clear(textInput);
73
-
74
- const eventNames = events.map((e) => e.name);
75
- expect(eventNames).toEqual([
76
- 'focus',
77
- 'selectionChange',
78
- 'keyPress',
79
- 'change',
80
- 'changeText',
81
- 'selectionChange',
82
- 'endEditing',
83
- 'blur',
84
- ]);
85
- });
86
-
87
- it('supports defaultValue prop', async () => {
88
- const { textInput, events } = renderTextInputWithToolkit({
89
- defaultValue: 'Hello Default!',
90
- });
91
-
92
- const user = userEvent.setup();
93
- await user.clear(textInput);
94
-
95
- const eventNames = events.map((e) => e.name);
96
- expect(eventNames).toEqual([
97
- 'focus',
98
- 'selectionChange',
99
- 'keyPress',
100
- 'change',
101
- 'changeText',
102
- 'selectionChange',
103
- 'endEditing',
104
- 'blur',
105
- ]);
106
-
107
- expect(events).toMatchSnapshot('defaultValue: "Hello Default!"');
108
- });
109
-
110
- it('does respect editable prop', async () => {
111
- const { textInput } = renderTextInputWithToolkit({
112
- value: 'Hello!',
113
- editable: false,
114
- });
115
-
116
- const user = userEvent.setup();
117
- user.clear(textInput);
118
-
119
- expect(textInput.props.value).toBe('Hello!');
120
- });
121
-
122
- it('does respect pointer-events prop', async () => {
123
- const { textInput } = renderTextInputWithToolkit({
124
- value: 'Hello!',
125
- pointerEvents: 'none',
126
- });
127
-
128
- const user = userEvent.setup();
129
- user.clear(textInput);
130
-
131
- expect(textInput.props.value).toBe('Hello!');
132
- });
133
-
134
- it('supports multiline', async () => {
135
- const { textInput, events } = renderTextInputWithToolkit({
136
- value: 'Hello World!\nHow are you?',
137
- multiline: true,
138
- });
139
-
140
- const user = userEvent.setup();
141
- await user.clear(textInput);
142
-
143
- const eventNames = events.map((e) => e.name);
144
- expect(eventNames).toEqual([
145
- 'focus',
146
- 'selectionChange',
147
- 'keyPress',
148
- 'textInput',
149
- 'change',
150
- 'changeText',
151
- 'selectionChange',
152
- 'contentSizeChange',
153
- 'endEditing',
154
- 'blur',
155
- ]);
156
-
157
- expect(events).toMatchSnapshot(
158
- 'value: "Hello World!\nHow are you?" multiline: true,'
159
- );
160
- });
161
-
162
- it('works when not all events have handlers', async () => {
163
- const { events, logEvent } = createEventLogger();
164
- const screen = render(
165
- <TextInput
166
- testID="input"
167
- onChangeText={logEvent('changeText')}
168
- onEndEditing={logEvent('endEditing')}
169
- />
170
- );
171
-
172
- const user = userEvent.setup();
173
- await user.clear(screen.getByTestId('input'));
174
-
175
- const eventNames = events.map((e) => e.name);
176
- expect(eventNames).toEqual(['changeText', 'endEditing']);
177
-
178
- expect(events).toMatchSnapshot();
179
- });
180
-
181
- it('does NOT work on View', async () => {
182
- const screen = render(<View testID="input" />);
183
-
184
- const user = userEvent.setup();
185
- await expect(
186
- user.clear(screen.getByTestId('input'))
187
- ).rejects.toThrowErrorMatchingInlineSnapshot(
188
- `"clear() only supports host "TextInput" elements. Passed element has type: "View"."`
189
- );
190
- });
191
-
192
- // View that ignores props type checking
193
- const AnyView = View as React.ComponentType<any>;
194
-
195
- it('does NOT bubble up', async () => {
196
- const parentHandler = jest.fn();
197
- const screen = render(
198
- <AnyView
199
- onChangeText={parentHandler}
200
- onChange={parentHandler}
201
- onKeyPress={parentHandler}
202
- onTextInput={parentHandler}
203
- onFocus={parentHandler}
204
- onBlur={parentHandler}
205
- onEndEditing={parentHandler}
206
- onPressIn={parentHandler}
207
- onPressOut={parentHandler}
208
- >
209
- <TextInput testID="input" />
210
- </AnyView>
211
- );
212
-
213
- const user = userEvent.setup();
214
- await user.clear(screen.getByTestId('input'));
215
- expect(parentHandler).not.toHaveBeenCalled();
216
- });
217
- });
@@ -1,59 +0,0 @@
1
- import { ReactTestInstance } from 'react-test-renderer';
2
- import { ErrorWithStack } from '../helpers/errors';
3
- import { isHostTextInput } from '../helpers/host-component-names';
4
- import { isPointerEventEnabled } from '../helpers/pointer-events';
5
- import { EventBuilder } from './event-builder';
6
- import { UserEventInstance } from './setup';
7
- import { dispatchEvent, wait, isEditableTextInput } from './utils';
8
- import { emitTypingEvents } from './type/type';
9
-
10
- export async function clear(
11
- this: UserEventInstance,
12
- element: ReactTestInstance
13
- ): Promise<void> {
14
- if (!isHostTextInput(element)) {
15
- throw new ErrorWithStack(
16
- `clear() only supports host "TextInput" elements. Passed element has type: "${element.type}".`,
17
- clear
18
- );
19
- }
20
-
21
- if (!isEditableTextInput(element) || !isPointerEventEnabled(element)) {
22
- return;
23
- }
24
-
25
- // 1. Enter element
26
- dispatchEvent(element, 'focus', EventBuilder.Common.focus());
27
-
28
- // 2. Select all
29
- const previousText = element.props.value ?? element.props.defaultValue ?? '';
30
- const selectionRange = {
31
- start: 0,
32
- end: previousText.length,
33
- };
34
- dispatchEvent(
35
- element,
36
- 'selectionChange',
37
- EventBuilder.TextInput.selectionChange(selectionRange)
38
- );
39
-
40
- // 3. Press backspace
41
- const finalText = '';
42
- await emitTypingEvents(
43
- this.config,
44
- element,
45
- 'Backspace',
46
- finalText,
47
- previousText
48
- );
49
-
50
- // 4. Exit element
51
- await wait(this.config);
52
- dispatchEvent(
53
- element,
54
- 'endEditing',
55
- EventBuilder.TextInput.endEditing(finalText)
56
- );
57
-
58
- dispatchEvent(element, 'blur', EventBuilder.Common.blur());
59
- }