@testing-library/react-native 12.2.1 → 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 (302) hide show
  1. package/package.json +2 -3
  2. package/.DS_Store +0 -0
  3. package/.codecov.yml +0 -9
  4. package/.eslintcache +0 -1
  5. package/.eslintignore +0 -3
  6. package/.eslintrc +0 -19
  7. package/.flowconfig +0 -63
  8. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -38
  9. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -14
  10. package/.github/ISSUE_TEMPLATE/question.md +0 -9
  11. package/.github/PULL_REQUEST_TEMPLATE.md +0 -10
  12. package/.github/actions/setup-deps/action.yml +0 -22
  13. package/.github/actions/setup-website-deps/action.yml +0 -22
  14. package/.github/dependabot.yml +0 -10
  15. package/.github/workflows/deploy-website.yml +0 -36
  16. package/.github/workflows/example-apps.yml +0 -25
  17. package/.github/workflows/main.yml +0 -103
  18. package/.gitignore +0 -11
  19. package/.prettierrc.js +0 -5
  20. package/CODE_OF_CONDUCT.md +0 -73
  21. package/CONTRIBUTING.md +0 -64
  22. package/babel.config.js +0 -22
  23. package/examples/basic/.expo/README.md +0 -15
  24. package/examples/basic/.expo/packager-info.json +0 -4
  25. package/examples/basic/.expo/settings.json +0 -10
  26. package/examples/basic/.expo-shared/assets.json +0 -4
  27. package/examples/basic/.gitignore +0 -14
  28. package/examples/basic/App.tsx +0 -20
  29. package/examples/basic/README.md +0 -11
  30. package/examples/basic/__tests__/App.test.tsx +0 -137
  31. package/examples/basic/app.json +0 -31
  32. package/examples/basic/assets/adaptive-icon.png +0 -0
  33. package/examples/basic/assets/favicon.png +0 -0
  34. package/examples/basic/assets/icon.png +0 -0
  35. package/examples/basic/assets/splash.png +0 -0
  36. package/examples/basic/babel.config.js +0 -6
  37. package/examples/basic/components/Home.tsx +0 -28
  38. package/examples/basic/components/LoginForm.tsx +0 -138
  39. package/examples/basic/jest-setup.ts +0 -7
  40. package/examples/basic/jest.config.js +0 -5
  41. package/examples/basic/package.json +0 -30
  42. package/examples/basic/tsconfig.json +0 -7
  43. package/examples/basic/yarn.lock +0 -7499
  44. package/examples/react-navigation/README.md +0 -16
  45. package/examples/react-navigation/babel.config.js +0 -4
  46. package/examples/react-navigation/jest-setup.js +0 -11
  47. package/examples/react-navigation/jest.config.js +0 -10
  48. package/examples/react-navigation/package.json +0 -31
  49. package/examples/react-navigation/src/App.js +0 -21
  50. package/examples/react-navigation/src/DrawerNavigator.js +0 -15
  51. package/examples/react-navigation/src/DrawerNavigator.test.js +0 -42
  52. package/examples/react-navigation/src/NativeStackNavigator.js +0 -15
  53. package/examples/react-navigation/src/NativeStackNavigator.test.js +0 -34
  54. package/examples/react-navigation/src/StackNavigator.js +0 -15
  55. package/examples/react-navigation/src/StackNavigator.test.js +0 -34
  56. package/examples/react-navigation/src/TabNavigator.js +0 -15
  57. package/examples/react-navigation/src/TabNavigator.test.js +0 -21
  58. package/examples/react-navigation/src/screens/DetailsScreen.js +0 -43
  59. package/examples/react-navigation/src/screens/DetailsScreen.test.js +0 -27
  60. package/examples/react-navigation/src/screens/DrawerHomeScreen.js +0 -26
  61. package/examples/react-navigation/src/screens/HomeScreen.js +0 -48
  62. package/examples/react-navigation/src/screens/SettingsScreen.js +0 -20
  63. package/examples/react-navigation/src/test-utils.js +0 -12
  64. package/examples/react-navigation/yarn.lock +0 -5018
  65. package/examples/redux/App.js +0 -27
  66. package/examples/redux/README.md +0 -5
  67. package/examples/redux/actions/todoActions.js +0 -25
  68. package/examples/redux/babel.config.js +0 -6
  69. package/examples/redux/components/AddTodo.js +0 -73
  70. package/examples/redux/components/AddTodo.test.js +0 -27
  71. package/examples/redux/components/TodoElem.js +0 -25
  72. package/examples/redux/components/TodoList.js +0 -29
  73. package/examples/redux/components/TodoList.test.js +0 -34
  74. package/examples/redux/index.js +0 -8
  75. package/examples/redux/jest-setup.js +0 -2
  76. package/examples/redux/jest.config.js +0 -4
  77. package/examples/redux/package.json +0 -23
  78. package/examples/redux/reducers/index.js +0 -6
  79. package/examples/redux/reducers/todoReducer.js +0 -27
  80. package/examples/redux/store.js +0 -10
  81. package/examples/redux/test-utils.js +0 -11
  82. package/examples/redux/yarn.lock +0 -4819
  83. package/experiments-app/.expo/README.md +0 -15
  84. package/experiments-app/.expo/devices.json +0 -3
  85. package/experiments-app/.expo/packager-info.json +0 -9
  86. package/experiments-app/.expo/settings.json +0 -9
  87. package/experiments-app/.gitignore +0 -17
  88. package/experiments-app/.prettierrc.js +0 -5
  89. package/experiments-app/app.json +0 -30
  90. package/experiments-app/assets/adaptive-icon.png +0 -0
  91. package/experiments-app/assets/favicon.png +0 -0
  92. package/experiments-app/assets/icon.png +0 -0
  93. package/experiments-app/assets/splash.png +0 -0
  94. package/experiments-app/babel.config.js +0 -6
  95. package/experiments-app/index.js +0 -4
  96. package/experiments-app/package.json +0 -29
  97. package/experiments-app/src/App.tsx +0 -31
  98. package/experiments-app/src/MainScreen.tsx +0 -52
  99. package/experiments-app/src/experiments.ts +0 -35
  100. package/experiments-app/src/screens/FlatListEvents.tsx +0 -57
  101. package/experiments-app/src/screens/ScrollViewEvents.tsx +0 -65
  102. package/experiments-app/src/screens/SectionListEvents.tsx +0 -91
  103. package/experiments-app/src/screens/TextInputEventPropagation.tsx +0 -42
  104. package/experiments-app/src/screens/TextInputEvents.tsx +0 -48
  105. package/experiments-app/src/utils/helpers.ts +0 -18
  106. package/experiments-app/tsconfig.json +0 -6
  107. package/experiments-app/yarn.lock +0 -6709
  108. package/experiments-rtl/.babelrc +0 -8
  109. package/experiments-rtl/.eslintrc.json +0 -3
  110. package/experiments-rtl/.gitignore +0 -35
  111. package/experiments-rtl/README.md +0 -34
  112. package/experiments-rtl/jest-setup.js +0 -1
  113. package/experiments-rtl/jest.config.js +0 -4
  114. package/experiments-rtl/next.config.js +0 -4
  115. package/experiments-rtl/package.json +0 -38
  116. package/experiments-rtl/postcss.config.js +0 -6
  117. package/experiments-rtl/public/next.svg +0 -1
  118. package/experiments-rtl/public/vercel.svg +0 -1
  119. package/experiments-rtl/src/app/__tests__/click.test.tsx +0 -31
  120. package/experiments-rtl/src/app/__tests__/managed-text-input.test.tsx +0 -51
  121. package/experiments-rtl/src/app/globals.css +0 -27
  122. package/experiments-rtl/src/app/layout.tsx +0 -22
  123. package/experiments-rtl/src/app/page.tsx +0 -113
  124. package/experiments-rtl/tailwind.config.ts +0 -20
  125. package/experiments-rtl/tsconfig.json +0 -28
  126. package/experiments-rtl/yarn.lock +0 -5418
  127. package/flow-typed/npm/jest_v26.x.x.js +0 -1218
  128. package/flow-typed/npm/react-test-renderer_v16.x.x.js +0 -81
  129. package/jest-setup.ts +0 -10
  130. package/renovate.json +0 -19
  131. package/scripts/test_react_17 +0 -12
  132. package/src/__tests__/__snapshots__/render-debug.test.tsx.snap +0 -548
  133. package/src/__tests__/__snapshots__/render.test.tsx.snap +0 -39
  134. package/src/__tests__/act.test.tsx +0 -56
  135. package/src/__tests__/auto-cleanup-skip.test.tsx +0 -39
  136. package/src/__tests__/auto-cleanup.test.tsx +0 -50
  137. package/src/__tests__/cleanup.test.tsx +0 -26
  138. package/src/__tests__/config.test.ts +0 -55
  139. package/src/__tests__/fireEvent-textInput.test.tsx +0 -154
  140. package/src/__tests__/fireEvent.test.tsx +0 -485
  141. package/src/__tests__/host-component-names.test.tsx +0 -109
  142. package/src/__tests__/host-text-nesting.test.tsx +0 -90
  143. package/src/__tests__/jest-native.test.tsx +0 -84
  144. package/src/__tests__/questionsBoard.test.tsx +0 -62
  145. package/src/__tests__/react-native-api.test.tsx +0 -126
  146. package/src/__tests__/render-debug.test.tsx +0 -207
  147. package/src/__tests__/render-stringValidation.test.tsx +0 -157
  148. package/src/__tests__/render.test.tsx +0 -256
  149. package/src/__tests__/renderHook.test.tsx +0 -114
  150. package/src/__tests__/screen.test.tsx +0 -66
  151. package/src/__tests__/timerUtils.ts +0 -7
  152. package/src/__tests__/timers.test.ts +0 -27
  153. package/src/__tests__/waitFor.test.tsx +0 -327
  154. package/src/__tests__/waitForElementToBeRemoved.test.tsx +0 -151
  155. package/src/__tests__/within.test.tsx +0 -96
  156. package/src/act.ts +0 -86
  157. package/src/cleanup.ts +0 -15
  158. package/src/config.ts +0 -72
  159. package/src/fireEvent.ts +0 -159
  160. package/src/flush-micro-tasks.ts +0 -30
  161. package/src/helpers/__tests__/accessiblity.test.tsx +0 -373
  162. package/src/helpers/__tests__/component-tree.test.tsx +0 -226
  163. package/src/helpers/__tests__/format-default.tsx +0 -114
  164. package/src/helpers/__tests__/getTextContent.test.tsx +0 -49
  165. package/src/helpers/__tests__/includeHiddenElements.test.tsx +0 -39
  166. package/src/helpers/__tests__/query-name.test.ts +0 -10
  167. package/src/helpers/__tests__/timers.test.ts +0 -8
  168. package/src/helpers/accessiblity.ts +0 -108
  169. package/src/helpers/component-tree.ts +0 -94
  170. package/src/helpers/debugDeep.ts +0 -27
  171. package/src/helpers/debugShallow.ts +0 -22
  172. package/src/helpers/deprecation.ts +0 -53
  173. package/src/helpers/errors.ts +0 -66
  174. package/src/helpers/findAll.ts +0 -70
  175. package/src/helpers/format-default.ts +0 -72
  176. package/src/helpers/format.ts +0 -47
  177. package/src/helpers/getTextContent.ts +0 -20
  178. package/src/helpers/host-component-names.tsx +0 -88
  179. package/src/helpers/matchers/__tests__/matchArrayValue.test.ts +0 -34
  180. package/src/helpers/matchers/__tests__/matchObject.test.ts +0 -37
  181. package/src/helpers/matchers/__tests__/matchStringValue.test.ts +0 -15
  182. package/src/helpers/matchers/accessibilityState.ts +0 -48
  183. package/src/helpers/matchers/accessibilityValue.ts +0 -24
  184. package/src/helpers/matchers/matchArrayProp.ts +0 -21
  185. package/src/helpers/matchers/matchLabelText.ts +0 -50
  186. package/src/helpers/matchers/matchObjectProp.ts +0 -25
  187. package/src/helpers/matchers/matchStringProp.ts +0 -23
  188. package/src/helpers/matchers/matchTextContent.ts +0 -20
  189. package/src/helpers/pointer-events.ts +0 -27
  190. package/src/helpers/query-name.ts +0 -4
  191. package/src/helpers/stringValidation.ts +0 -36
  192. package/src/helpers/timers.ts +0 -98
  193. package/src/index.ts +0 -33
  194. package/src/matches.ts +0 -49
  195. package/src/pure.ts +0 -27
  196. package/src/queries/__tests__/a11yState.test.tsx +0 -439
  197. package/src/queries/__tests__/a11yValue.test.tsx +0 -309
  198. package/src/queries/__tests__/displayValue.test.tsx +0 -221
  199. package/src/queries/__tests__/hintText.test.tsx +0 -177
  200. package/src/queries/__tests__/labelText.test.tsx +0 -242
  201. package/src/queries/__tests__/makeQueries.test.tsx +0 -235
  202. package/src/queries/__tests__/placeholderText.test.tsx +0 -136
  203. package/src/queries/__tests__/role-value.test.tsx +0 -176
  204. package/src/queries/__tests__/role.test.tsx +0 -824
  205. package/src/queries/__tests__/testId.test.tsx +0 -200
  206. package/src/queries/__tests__/text.test.tsx +0 -556
  207. package/src/queries/a11yState.ts +0 -127
  208. package/src/queries/a11yValue.ts +0 -127
  209. package/src/queries/displayValue.ts +0 -71
  210. package/src/queries/hintText.ts +0 -107
  211. package/src/queries/labelText.ts +0 -57
  212. package/src/queries/makeQueries.ts +0 -255
  213. package/src/queries/options.ts +0 -14
  214. package/src/queries/placeholderText.ts +0 -72
  215. package/src/queries/role.ts +0 -131
  216. package/src/queries/testId.ts +0 -66
  217. package/src/queries/text.ts +0 -63
  218. package/src/queries/unsafeProps.ts +0 -76
  219. package/src/queries/unsafeType.ts +0 -73
  220. package/src/react-versions.ts +0 -11
  221. package/src/render-act.ts +0 -19
  222. package/src/render.tsx +0 -183
  223. package/src/renderHook.tsx +0 -56
  224. package/src/screen.ts +0 -123
  225. package/src/shallow.ts +0 -18
  226. package/src/test-utils/events.ts +0 -24
  227. package/src/test-utils/index.ts +0 -1
  228. package/src/user-event/__tests__/__snapshots__/clear.test.tsx.snap +0 -269
  229. package/src/user-event/__tests__/clear.test.tsx +0 -217
  230. package/src/user-event/clear.ts +0 -59
  231. package/src/user-event/event-builder/common.ts +0 -66
  232. package/src/user-event/event-builder/index.ts +0 -7
  233. package/src/user-event/event-builder/text-input.ts +0 -86
  234. package/src/user-event/index.ts +0 -18
  235. package/src/user-event/press/__tests__/longPress.real-timers.test.tsx +0 -117
  236. package/src/user-event/press/__tests__/longPress.test.tsx +0 -157
  237. package/src/user-event/press/__tests__/press.real-timers.test.tsx +0 -320
  238. package/src/user-event/press/__tests__/press.test.tsx +0 -457
  239. package/src/user-event/press/constants.ts +0 -7
  240. package/src/user-event/press/index.ts +0 -1
  241. package/src/user-event/press/press.ts +0 -163
  242. package/src/user-event/setup/index.ts +0 -2
  243. package/src/user-event/setup/setup.ts +0 -142
  244. package/src/user-event/type/__tests__/__snapshots__/type-managed.test.tsx.snap +0 -339
  245. package/src/user-event/type/__tests__/__snapshots__/type.test.tsx.snap +0 -668
  246. package/src/user-event/type/__tests__/parseKeys.test.ts +0 -23
  247. package/src/user-event/type/__tests__/type-managed.test.tsx +0 -120
  248. package/src/user-event/type/__tests__/type.test.tsx +0 -335
  249. package/src/user-event/type/index.ts +0 -1
  250. package/src/user-event/type/parseKeys.ts +0 -41
  251. package/src/user-event/type/type.ts +0 -138
  252. package/src/user-event/utils/__tests__/dispatch-event.test.tsx +0 -41
  253. package/src/user-event/utils/__tests__/wait.test.ts +0 -62
  254. package/src/user-event/utils/content-size.ts +0 -25
  255. package/src/user-event/utils/dispatch-event.ts +0 -38
  256. package/src/user-event/utils/host-components.ts +0 -6
  257. package/src/user-event/utils/index.ts +0 -6
  258. package/src/user-event/utils/text-range.ts +0 -4
  259. package/src/user-event/utils/wait.ts +0 -15
  260. package/src/user-event/utils/warn-about-real-timers.ts +0 -13
  261. package/src/waitFor.ts +0 -228
  262. package/src/waitForElementToBeRemoved.ts +0 -42
  263. package/src/within.ts +0 -30
  264. package/tsconfig.json +0 -17
  265. package/tsconfig.release.json +0 -8
  266. package/website/.gitignore +0 -20
  267. package/website/README.md +0 -33
  268. package/website/docker/.dockerignore +0 -3
  269. package/website/docker/Dockerfile +0 -9
  270. package/website/docker/docker-compose.yml +0 -11
  271. package/website/docs/API.md +0 -940
  272. package/website/docs/EslintPLluginTestingLibrary.md +0 -28
  273. package/website/docs/FAQ.md +0 -44
  274. package/website/docs/GettingStarted.md +0 -100
  275. package/website/docs/HowShouldIQuery.md +0 -21
  276. package/website/docs/MigrationV11.md +0 -64
  277. package/website/docs/MigrationV12.md +0 -67
  278. package/website/docs/MigrationV2.md +0 -126
  279. package/website/docs/MigrationV7.md +0 -119
  280. package/website/docs/MigrationV9.md +0 -67
  281. package/website/docs/Queries.md +0 -572
  282. package/website/docs/ReactNavigation.md +0 -371
  283. package/website/docs/ReduxIntegration.md +0 -137
  284. package/website/docs/TestingEnvironment.md +0 -154
  285. package/website/docs/Troubleshooting.md +0 -44
  286. package/website/docs/UnderstandingAct.md +0 -227
  287. package/website/docs/UserEvent.md +0 -191
  288. package/website/docusaurus.config.js +0 -114
  289. package/website/package.json +0 -31
  290. package/website/sidebars.js +0 -20
  291. package/website/src/components/Feature.js +0 -31
  292. package/website/src/css/custom.css +0 -13
  293. package/website/src/css/index.module.css +0 -77
  294. package/website/src/pages/index.js +0 -82
  295. package/website/static/.nojekyll +0 -0
  296. package/website/static/css/custom.css +0 -28
  297. package/website/static/img/hit.png +0 -0
  298. package/website/static/img/locomotive.png +0 -0
  299. package/website/static/img/owl.png +0 -0
  300. package/website/static/img/tools.png +0 -0
  301. package/website/yarn.lock +0 -7669
  302. package/yarn.lock +0 -7765
@@ -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
- });