@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.
- package/package.json +2 -3
- package/.DS_Store +0 -0
- package/.codecov.yml +0 -9
- package/.eslintcache +0 -1
- package/.eslintignore +0 -3
- package/.eslintrc +0 -19
- package/.flowconfig +0 -63
- package/.github/ISSUE_TEMPLATE/bug_report.md +0 -38
- package/.github/ISSUE_TEMPLATE/feature_request.md +0 -14
- package/.github/ISSUE_TEMPLATE/question.md +0 -9
- package/.github/PULL_REQUEST_TEMPLATE.md +0 -10
- package/.github/actions/setup-deps/action.yml +0 -22
- package/.github/actions/setup-website-deps/action.yml +0 -22
- package/.github/dependabot.yml +0 -10
- package/.github/workflows/deploy-website.yml +0 -36
- package/.github/workflows/example-apps.yml +0 -25
- package/.github/workflows/main.yml +0 -103
- package/.gitignore +0 -11
- package/.prettierrc.js +0 -5
- package/CODE_OF_CONDUCT.md +0 -73
- package/CONTRIBUTING.md +0 -64
- package/babel.config.js +0 -22
- package/examples/basic/.expo/README.md +0 -15
- package/examples/basic/.expo/packager-info.json +0 -4
- package/examples/basic/.expo/settings.json +0 -10
- package/examples/basic/.expo-shared/assets.json +0 -4
- package/examples/basic/.gitignore +0 -14
- package/examples/basic/App.tsx +0 -20
- package/examples/basic/README.md +0 -11
- package/examples/basic/__tests__/App.test.tsx +0 -137
- package/examples/basic/app.json +0 -31
- package/examples/basic/assets/adaptive-icon.png +0 -0
- package/examples/basic/assets/favicon.png +0 -0
- package/examples/basic/assets/icon.png +0 -0
- package/examples/basic/assets/splash.png +0 -0
- package/examples/basic/babel.config.js +0 -6
- package/examples/basic/components/Home.tsx +0 -28
- package/examples/basic/components/LoginForm.tsx +0 -138
- package/examples/basic/jest-setup.ts +0 -7
- package/examples/basic/jest.config.js +0 -5
- package/examples/basic/package.json +0 -30
- package/examples/basic/tsconfig.json +0 -7
- package/examples/basic/yarn.lock +0 -7499
- package/examples/react-navigation/README.md +0 -16
- package/examples/react-navigation/babel.config.js +0 -4
- package/examples/react-navigation/jest-setup.js +0 -11
- package/examples/react-navigation/jest.config.js +0 -10
- package/examples/react-navigation/package.json +0 -31
- package/examples/react-navigation/src/App.js +0 -21
- package/examples/react-navigation/src/DrawerNavigator.js +0 -15
- package/examples/react-navigation/src/DrawerNavigator.test.js +0 -42
- package/examples/react-navigation/src/NativeStackNavigator.js +0 -15
- package/examples/react-navigation/src/NativeStackNavigator.test.js +0 -34
- package/examples/react-navigation/src/StackNavigator.js +0 -15
- package/examples/react-navigation/src/StackNavigator.test.js +0 -34
- package/examples/react-navigation/src/TabNavigator.js +0 -15
- package/examples/react-navigation/src/TabNavigator.test.js +0 -21
- package/examples/react-navigation/src/screens/DetailsScreen.js +0 -43
- package/examples/react-navigation/src/screens/DetailsScreen.test.js +0 -27
- package/examples/react-navigation/src/screens/DrawerHomeScreen.js +0 -26
- package/examples/react-navigation/src/screens/HomeScreen.js +0 -48
- package/examples/react-navigation/src/screens/SettingsScreen.js +0 -20
- package/examples/react-navigation/src/test-utils.js +0 -12
- package/examples/react-navigation/yarn.lock +0 -5018
- package/examples/redux/App.js +0 -27
- package/examples/redux/README.md +0 -5
- package/examples/redux/actions/todoActions.js +0 -25
- package/examples/redux/babel.config.js +0 -6
- package/examples/redux/components/AddTodo.js +0 -73
- package/examples/redux/components/AddTodo.test.js +0 -27
- package/examples/redux/components/TodoElem.js +0 -25
- package/examples/redux/components/TodoList.js +0 -29
- package/examples/redux/components/TodoList.test.js +0 -34
- package/examples/redux/index.js +0 -8
- package/examples/redux/jest-setup.js +0 -2
- package/examples/redux/jest.config.js +0 -4
- package/examples/redux/package.json +0 -23
- package/examples/redux/reducers/index.js +0 -6
- package/examples/redux/reducers/todoReducer.js +0 -27
- package/examples/redux/store.js +0 -10
- package/examples/redux/test-utils.js +0 -11
- package/examples/redux/yarn.lock +0 -4819
- package/experiments-app/.expo/README.md +0 -15
- package/experiments-app/.expo/devices.json +0 -3
- package/experiments-app/.expo/packager-info.json +0 -9
- package/experiments-app/.expo/settings.json +0 -9
- package/experiments-app/.gitignore +0 -17
- package/experiments-app/.prettierrc.js +0 -5
- package/experiments-app/app.json +0 -30
- package/experiments-app/assets/adaptive-icon.png +0 -0
- package/experiments-app/assets/favicon.png +0 -0
- package/experiments-app/assets/icon.png +0 -0
- package/experiments-app/assets/splash.png +0 -0
- package/experiments-app/babel.config.js +0 -6
- package/experiments-app/index.js +0 -4
- package/experiments-app/package.json +0 -29
- package/experiments-app/src/App.tsx +0 -31
- package/experiments-app/src/MainScreen.tsx +0 -52
- package/experiments-app/src/experiments.ts +0 -35
- package/experiments-app/src/screens/FlatListEvents.tsx +0 -57
- package/experiments-app/src/screens/ScrollViewEvents.tsx +0 -65
- package/experiments-app/src/screens/SectionListEvents.tsx +0 -91
- package/experiments-app/src/screens/TextInputEventPropagation.tsx +0 -42
- package/experiments-app/src/screens/TextInputEvents.tsx +0 -48
- package/experiments-app/src/utils/helpers.ts +0 -18
- package/experiments-app/tsconfig.json +0 -6
- package/experiments-app/yarn.lock +0 -6709
- package/experiments-rtl/.babelrc +0 -8
- package/experiments-rtl/.eslintrc.json +0 -3
- package/experiments-rtl/.gitignore +0 -35
- package/experiments-rtl/README.md +0 -34
- package/experiments-rtl/jest-setup.js +0 -1
- package/experiments-rtl/jest.config.js +0 -4
- package/experiments-rtl/next.config.js +0 -4
- package/experiments-rtl/package.json +0 -38
- package/experiments-rtl/postcss.config.js +0 -6
- package/experiments-rtl/public/next.svg +0 -1
- package/experiments-rtl/public/vercel.svg +0 -1
- package/experiments-rtl/src/app/__tests__/click.test.tsx +0 -31
- package/experiments-rtl/src/app/__tests__/managed-text-input.test.tsx +0 -51
- package/experiments-rtl/src/app/globals.css +0 -27
- package/experiments-rtl/src/app/layout.tsx +0 -22
- package/experiments-rtl/src/app/page.tsx +0 -113
- package/experiments-rtl/tailwind.config.ts +0 -20
- package/experiments-rtl/tsconfig.json +0 -28
- package/experiments-rtl/yarn.lock +0 -5418
- package/flow-typed/npm/jest_v26.x.x.js +0 -1218
- package/flow-typed/npm/react-test-renderer_v16.x.x.js +0 -81
- package/jest-setup.ts +0 -10
- package/renovate.json +0 -19
- package/scripts/test_react_17 +0 -12
- package/src/__tests__/__snapshots__/render-debug.test.tsx.snap +0 -548
- package/src/__tests__/__snapshots__/render.test.tsx.snap +0 -39
- package/src/__tests__/act.test.tsx +0 -56
- package/src/__tests__/auto-cleanup-skip.test.tsx +0 -39
- package/src/__tests__/auto-cleanup.test.tsx +0 -50
- package/src/__tests__/cleanup.test.tsx +0 -26
- package/src/__tests__/config.test.ts +0 -55
- package/src/__tests__/fireEvent-textInput.test.tsx +0 -154
- package/src/__tests__/fireEvent.test.tsx +0 -485
- package/src/__tests__/host-component-names.test.tsx +0 -109
- package/src/__tests__/host-text-nesting.test.tsx +0 -90
- package/src/__tests__/jest-native.test.tsx +0 -84
- package/src/__tests__/questionsBoard.test.tsx +0 -62
- package/src/__tests__/react-native-api.test.tsx +0 -126
- package/src/__tests__/render-debug.test.tsx +0 -207
- package/src/__tests__/render-stringValidation.test.tsx +0 -157
- package/src/__tests__/render.test.tsx +0 -256
- package/src/__tests__/renderHook.test.tsx +0 -114
- package/src/__tests__/screen.test.tsx +0 -66
- package/src/__tests__/timerUtils.ts +0 -7
- package/src/__tests__/timers.test.ts +0 -27
- package/src/__tests__/waitFor.test.tsx +0 -327
- package/src/__tests__/waitForElementToBeRemoved.test.tsx +0 -151
- package/src/__tests__/within.test.tsx +0 -96
- package/src/act.ts +0 -86
- package/src/cleanup.ts +0 -15
- package/src/config.ts +0 -72
- package/src/fireEvent.ts +0 -159
- package/src/flush-micro-tasks.ts +0 -30
- package/src/helpers/__tests__/accessiblity.test.tsx +0 -373
- package/src/helpers/__tests__/component-tree.test.tsx +0 -226
- package/src/helpers/__tests__/format-default.tsx +0 -114
- package/src/helpers/__tests__/getTextContent.test.tsx +0 -49
- package/src/helpers/__tests__/includeHiddenElements.test.tsx +0 -39
- package/src/helpers/__tests__/query-name.test.ts +0 -10
- package/src/helpers/__tests__/timers.test.ts +0 -8
- package/src/helpers/accessiblity.ts +0 -108
- package/src/helpers/component-tree.ts +0 -94
- package/src/helpers/debugDeep.ts +0 -27
- package/src/helpers/debugShallow.ts +0 -22
- package/src/helpers/deprecation.ts +0 -53
- package/src/helpers/errors.ts +0 -66
- package/src/helpers/findAll.ts +0 -70
- package/src/helpers/format-default.ts +0 -72
- package/src/helpers/format.ts +0 -47
- package/src/helpers/getTextContent.ts +0 -20
- package/src/helpers/host-component-names.tsx +0 -88
- package/src/helpers/matchers/__tests__/matchArrayValue.test.ts +0 -34
- package/src/helpers/matchers/__tests__/matchObject.test.ts +0 -37
- package/src/helpers/matchers/__tests__/matchStringValue.test.ts +0 -15
- package/src/helpers/matchers/accessibilityState.ts +0 -48
- package/src/helpers/matchers/accessibilityValue.ts +0 -24
- package/src/helpers/matchers/matchArrayProp.ts +0 -21
- package/src/helpers/matchers/matchLabelText.ts +0 -50
- package/src/helpers/matchers/matchObjectProp.ts +0 -25
- package/src/helpers/matchers/matchStringProp.ts +0 -23
- package/src/helpers/matchers/matchTextContent.ts +0 -20
- package/src/helpers/pointer-events.ts +0 -27
- package/src/helpers/query-name.ts +0 -4
- package/src/helpers/stringValidation.ts +0 -36
- package/src/helpers/timers.ts +0 -98
- package/src/index.ts +0 -33
- package/src/matches.ts +0 -49
- package/src/pure.ts +0 -27
- package/src/queries/__tests__/a11yState.test.tsx +0 -439
- package/src/queries/__tests__/a11yValue.test.tsx +0 -309
- package/src/queries/__tests__/displayValue.test.tsx +0 -221
- package/src/queries/__tests__/hintText.test.tsx +0 -177
- package/src/queries/__tests__/labelText.test.tsx +0 -242
- package/src/queries/__tests__/makeQueries.test.tsx +0 -235
- package/src/queries/__tests__/placeholderText.test.tsx +0 -136
- package/src/queries/__tests__/role-value.test.tsx +0 -176
- package/src/queries/__tests__/role.test.tsx +0 -824
- package/src/queries/__tests__/testId.test.tsx +0 -200
- package/src/queries/__tests__/text.test.tsx +0 -556
- package/src/queries/a11yState.ts +0 -127
- package/src/queries/a11yValue.ts +0 -127
- package/src/queries/displayValue.ts +0 -71
- package/src/queries/hintText.ts +0 -107
- package/src/queries/labelText.ts +0 -57
- package/src/queries/makeQueries.ts +0 -255
- package/src/queries/options.ts +0 -14
- package/src/queries/placeholderText.ts +0 -72
- package/src/queries/role.ts +0 -131
- package/src/queries/testId.ts +0 -66
- package/src/queries/text.ts +0 -63
- package/src/queries/unsafeProps.ts +0 -76
- package/src/queries/unsafeType.ts +0 -73
- package/src/react-versions.ts +0 -11
- package/src/render-act.ts +0 -19
- package/src/render.tsx +0 -183
- package/src/renderHook.tsx +0 -56
- package/src/screen.ts +0 -123
- package/src/shallow.ts +0 -18
- package/src/test-utils/events.ts +0 -24
- package/src/test-utils/index.ts +0 -1
- package/src/user-event/__tests__/__snapshots__/clear.test.tsx.snap +0 -269
- package/src/user-event/__tests__/clear.test.tsx +0 -217
- package/src/user-event/clear.ts +0 -59
- package/src/user-event/event-builder/common.ts +0 -66
- package/src/user-event/event-builder/index.ts +0 -7
- package/src/user-event/event-builder/text-input.ts +0 -86
- package/src/user-event/index.ts +0 -18
- package/src/user-event/press/__tests__/longPress.real-timers.test.tsx +0 -117
- package/src/user-event/press/__tests__/longPress.test.tsx +0 -157
- package/src/user-event/press/__tests__/press.real-timers.test.tsx +0 -320
- package/src/user-event/press/__tests__/press.test.tsx +0 -457
- package/src/user-event/press/constants.ts +0 -7
- package/src/user-event/press/index.ts +0 -1
- package/src/user-event/press/press.ts +0 -163
- package/src/user-event/setup/index.ts +0 -2
- package/src/user-event/setup/setup.ts +0 -142
- package/src/user-event/type/__tests__/__snapshots__/type-managed.test.tsx.snap +0 -339
- package/src/user-event/type/__tests__/__snapshots__/type.test.tsx.snap +0 -668
- package/src/user-event/type/__tests__/parseKeys.test.ts +0 -23
- package/src/user-event/type/__tests__/type-managed.test.tsx +0 -120
- package/src/user-event/type/__tests__/type.test.tsx +0 -335
- package/src/user-event/type/index.ts +0 -1
- package/src/user-event/type/parseKeys.ts +0 -41
- package/src/user-event/type/type.ts +0 -138
- package/src/user-event/utils/__tests__/dispatch-event.test.tsx +0 -41
- package/src/user-event/utils/__tests__/wait.test.ts +0 -62
- package/src/user-event/utils/content-size.ts +0 -25
- package/src/user-event/utils/dispatch-event.ts +0 -38
- package/src/user-event/utils/host-components.ts +0 -6
- package/src/user-event/utils/index.ts +0 -6
- package/src/user-event/utils/text-range.ts +0 -4
- package/src/user-event/utils/wait.ts +0 -15
- package/src/user-event/utils/warn-about-real-timers.ts +0 -13
- package/src/waitFor.ts +0 -228
- package/src/waitForElementToBeRemoved.ts +0 -42
- package/src/within.ts +0 -30
- package/tsconfig.json +0 -17
- package/tsconfig.release.json +0 -8
- package/website/.gitignore +0 -20
- package/website/README.md +0 -33
- package/website/docker/.dockerignore +0 -3
- package/website/docker/Dockerfile +0 -9
- package/website/docker/docker-compose.yml +0 -11
- package/website/docs/API.md +0 -940
- package/website/docs/EslintPLluginTestingLibrary.md +0 -28
- package/website/docs/FAQ.md +0 -44
- package/website/docs/GettingStarted.md +0 -100
- package/website/docs/HowShouldIQuery.md +0 -21
- package/website/docs/MigrationV11.md +0 -64
- package/website/docs/MigrationV12.md +0 -67
- package/website/docs/MigrationV2.md +0 -126
- package/website/docs/MigrationV7.md +0 -119
- package/website/docs/MigrationV9.md +0 -67
- package/website/docs/Queries.md +0 -572
- package/website/docs/ReactNavigation.md +0 -371
- package/website/docs/ReduxIntegration.md +0 -137
- package/website/docs/TestingEnvironment.md +0 -154
- package/website/docs/Troubleshooting.md +0 -44
- package/website/docs/UnderstandingAct.md +0 -227
- package/website/docs/UserEvent.md +0 -191
- package/website/docusaurus.config.js +0 -114
- package/website/package.json +0 -31
- package/website/sidebars.js +0 -20
- package/website/src/components/Feature.js +0 -31
- package/website/src/css/custom.css +0 -13
- package/website/src/css/index.module.css +0 -77
- package/website/src/pages/index.js +0 -82
- package/website/static/.nojekyll +0 -0
- package/website/static/css/custom.css +0 -28
- package/website/static/img/hit.png +0 -0
- package/website/static/img/locomotive.png +0 -0
- package/website/static/img/owl.png +0 -0
- package/website/static/img/tools.png +0 -0
- package/website/yarn.lock +0 -7669
- package/yarn.lock +0 -7765
package/src/queries/a11yValue.ts
DELETED
|
@@ -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
|
-
});
|
package/src/queries/hintText.ts
DELETED
|
@@ -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
|
-
};
|
package/src/queries/labelText.ts
DELETED
|
@@ -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
|
-
}
|
package/src/queries/options.ts
DELETED
|
@@ -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
|
-
});
|