@testing-library/react-native 12.1.1 → 12.1.3
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/.DS_Store +0 -0
- package/.codecov.yml +9 -0
- package/.eslintcache +1 -0
- package/.eslintignore +2 -0
- package/.eslintrc +19 -0
- package/.flowconfig +63 -0
- package/.github/ISSUE_TEMPLATE/bug_report.md +38 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +14 -0
- package/.github/ISSUE_TEMPLATE/question.md +9 -0
- package/.github/PULL_REQUEST_TEMPLATE.md +10 -0
- package/.github/actions/setup-deps/action.yml +22 -0
- package/.github/actions/setup-website-deps/action.yml +22 -0
- package/.github/dependabot.yml +10 -0
- package/.github/workflows/deploy-website.yml +36 -0
- package/.github/workflows/example-apps.yml +25 -0
- package/.github/workflows/main.yml +103 -0
- package/.gitignore +11 -0
- package/.prettierrc.js +5 -0
- package/CODE_OF_CONDUCT.md +73 -0
- package/CONTRIBUTING.md +64 -0
- package/README.md +8 -7
- package/babel.config.js +22 -0
- package/build/act.js.map +1 -1
- package/build/cleanup.js.map +1 -1
- package/build/config.d.ts +1 -0
- package/build/config.js.map +1 -1
- package/build/fireEvent.d.ts +13 -5
- package/build/fireEvent.js +57 -48
- package/build/fireEvent.js.map +1 -1
- package/build/flush-micro-tasks.d.ts +19 -0
- package/build/flush-micro-tasks.js +36 -0
- package/build/flush-micro-tasks.js.map +1 -0
- package/build/helpers/accessiblity.js +3 -1
- package/build/helpers/accessiblity.js.map +1 -1
- package/build/helpers/component-tree.d.ts +0 -15
- package/build/helpers/component-tree.js +0 -45
- package/build/helpers/component-tree.js.map +1 -1
- package/build/helpers/deprecation.d.ts +1 -0
- package/build/helpers/deprecation.js +16 -0
- package/build/helpers/deprecation.js.map +1 -1
- package/build/helpers/errors.d.ts +0 -4
- package/build/helpers/errors.js +1 -25
- package/build/helpers/errors.js.map +1 -1
- package/build/helpers/findAll.js.map +1 -1
- package/build/helpers/format-default.js.map +1 -1
- package/build/helpers/format.js.map +1 -1
- package/build/helpers/host-component-names.js +4 -1
- package/build/helpers/host-component-names.js.map +1 -1
- package/build/helpers/matchers/matchLabelText.js.map +1 -1
- package/build/helpers/pointer-events.d.ts +9 -0
- package/build/helpers/pointer-events.js +25 -0
- package/build/helpers/pointer-events.js.map +1 -0
- package/build/helpers/stringValidation.js.map +1 -1
- package/build/helpers/timers.js.map +1 -1
- package/build/index.js +2 -2
- package/build/index.js.map +1 -1
- package/build/matches.js.map +1 -1
- package/build/pure.d.ts +1 -1
- package/build/pure.js.map +1 -1
- package/build/queries/a11yState.js.map +1 -1
- package/build/queries/a11yValue.js.map +1 -1
- package/build/queries/displayValue.js.map +1 -1
- package/build/queries/hintText.js.map +1 -1
- package/build/queries/labelText.js.map +1 -1
- package/build/queries/makeQueries.js.map +1 -1
- package/build/queries/placeholderText.js.map +1 -1
- package/build/queries/role.js.map +1 -1
- package/build/queries/testId.js.map +1 -1
- package/build/queries/text.js.map +1 -1
- package/build/queries/unsafeProps.js.map +1 -1
- package/build/render.d.ts +171 -12
- package/build/render.js +11 -4
- package/build/render.js.map +1 -1
- package/build/renderHook.d.ts +3 -6
- package/build/renderHook.js +4 -3
- package/build/renderHook.js.map +1 -1
- package/build/shallow.js.map +1 -1
- package/build/test-utils/events.d.ts +10 -0
- package/build/test-utils/events.js +27 -0
- package/build/test-utils/events.js.map +1 -0
- package/build/test-utils/index.d.ts +1 -0
- package/build/test-utils/index.js +17 -0
- package/build/test-utils/index.js.map +1 -0
- package/build/user-event/event-builder/common.d.ts +45 -0
- package/build/user-event/event-builder/common.js +58 -0
- package/build/user-event/event-builder/common.js.map +1 -0
- package/build/user-event/event-builder/index.d.ts +32 -0
- package/build/user-event/event-builder/index.js +12 -0
- package/build/user-event/event-builder/index.js.map +1 -0
- package/build/user-event/index.d.ts +9 -0
- package/build/user-event/index.js +16 -0
- package/build/user-event/index.js.map +1 -0
- package/build/user-event/press/constants.d.ts +2 -0
- package/build/user-event/press/constants.js +16 -0
- package/build/user-event/press/constants.js.map +1 -0
- package/build/user-event/press/index.d.ts +1 -0
- package/build/user-event/press/index.js +19 -0
- package/build/user-event/press/index.js.map +1 -0
- package/build/user-event/press/press.d.ts +7 -0
- package/build/user-event/press/press.js +106 -0
- package/build/user-event/press/press.js.map +1 -0
- package/build/user-event/press/utils/warnAboutRealTimers.d.ts +1 -0
- package/build/user-event/press/utils/warnAboutRealTimers.js +14 -0
- package/build/user-event/press/utils/warnAboutRealTimers.js.map +1 -0
- package/build/user-event/setup/index.d.ts +2 -0
- package/build/user-event/setup/index.js +13 -0
- package/build/user-event/setup/index.js.map +1 -0
- package/build/user-event/setup/setup.d.ts +39 -0
- package/build/user-event/setup/setup.js +56 -0
- package/build/user-event/setup/setup.js.map +1 -0
- package/build/user-event/type/index.d.ts +1 -0
- package/build/user-event/type/index.js +13 -0
- package/build/user-event/type/index.js.map +1 -0
- package/build/user-event/type/type.d.ts +3 -0
- package/build/user-event/type/type.js +18 -0
- package/build/user-event/type/type.js.map +1 -0
- package/build/user-event/utils/events.d.ts +9 -0
- package/build/user-event/utils/events.js +44 -0
- package/build/user-event/utils/events.js.map +1 -0
- package/build/user-event/utils/index.d.ts +2 -0
- package/build/user-event/utils/index.js +28 -0
- package/build/user-event/utils/index.js.map +1 -0
- package/build/user-event/utils/wait.d.ts +2 -0
- package/build/user-event/utils/wait.js +14 -0
- package/build/user-event/utils/wait.js.map +1 -0
- package/build/waitFor.js +3 -3
- package/build/waitFor.js.map +1 -1
- package/build/waitForElementToBeRemoved.js.map +1 -1
- package/examples/basic/.expo-shared/assets.json +4 -0
- package/examples/basic/.gitignore +14 -0
- package/examples/basic/App.tsx +20 -0
- package/examples/basic/README.md +11 -0
- package/examples/basic/__tests__/App.test.tsx +119 -0
- package/examples/basic/app.json +31 -0
- 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 +6 -0
- package/examples/basic/components/Home.tsx +28 -0
- package/examples/basic/components/LoginForm.tsx +138 -0
- package/examples/basic/jest-setup.ts +7 -0
- package/examples/basic/jest.config.js +5 -0
- package/examples/basic/package.json +30 -0
- package/examples/basic/tsconfig.json +7 -0
- package/examples/react-navigation/README.md +14 -0
- package/examples/react-navigation/babel.config.js +4 -0
- package/examples/react-navigation/jest-setup.js +11 -0
- package/examples/react-navigation/jest.config.js +10 -0
- package/examples/react-navigation/package.json +31 -0
- package/examples/react-navigation/src/App.js +21 -0
- package/examples/react-navigation/src/DrawerNavigator.js +15 -0
- package/examples/react-navigation/src/DrawerNavigator.test.js +42 -0
- package/examples/react-navigation/src/NativeStackNavigator.js +15 -0
- package/examples/react-navigation/src/NativeStackNavigator.test.js +34 -0
- package/examples/react-navigation/src/StackNavigator.js +15 -0
- package/examples/react-navigation/src/StackNavigator.test.js +34 -0
- package/examples/react-navigation/src/TabNavigator.js +15 -0
- package/examples/react-navigation/src/TabNavigator.test.js +21 -0
- package/examples/react-navigation/src/screens/DetailsScreen.js +43 -0
- package/examples/react-navigation/src/screens/DetailsScreen.test.js +27 -0
- package/examples/react-navigation/src/screens/DrawerHomeScreen.js +26 -0
- package/examples/react-navigation/src/screens/HomeScreen.js +48 -0
- package/examples/react-navigation/src/screens/SettingsScreen.js +20 -0
- package/examples/react-navigation/src/test-utils.js +12 -0
- package/examples/redux/App.js +27 -0
- package/examples/redux/actions/todoActions.js +25 -0
- package/examples/redux/babel.config.js +6 -0
- package/examples/redux/components/AddTodo.js +73 -0
- package/examples/redux/components/AddTodo.test.js +27 -0
- package/examples/redux/components/TodoElem.js +25 -0
- package/examples/redux/components/TodoList.js +29 -0
- package/examples/redux/components/TodoList.test.js +34 -0
- package/examples/redux/index.js +8 -0
- package/examples/redux/jest-setup.js +2 -0
- package/examples/redux/jest.config.js +4 -0
- package/examples/redux/package.json +23 -0
- package/examples/redux/reducers/index.js +6 -0
- package/examples/redux/reducers/todoReducer.js +27 -0
- package/examples/redux/store.js +10 -0
- package/examples/redux/test-utils.js +11 -0
- package/experiments-app/.expo/README.md +15 -0
- package/experiments-app/.expo/devices.json +3 -0
- package/experiments-app/.expo/packager-info.json +9 -0
- package/experiments-app/.expo/settings.json +9 -0
- package/experiments-app/.gitignore +17 -0
- package/experiments-app/.prettierrc.js +5 -0
- package/experiments-app/app.json +30 -0
- 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 +6 -0
- package/experiments-app/index.js +4 -0
- package/experiments-app/package.json +31 -0
- package/experiments-app/src/App.tsx +31 -0
- package/experiments-app/src/MainScreen.tsx +51 -0
- package/experiments-app/src/experiments.ts +17 -0
- package/experiments-app/src/screens/TextInputEventPropagation.tsx +54 -0
- package/experiments-app/src/screens/TextInputEvents.tsx +50 -0
- package/experiments-app/src/utils/helpers.ts +8 -0
- package/experiments-app/tsconfig.json +6 -0
- package/experiments-app/yarn.lock +6913 -0
- package/flow-typed/npm/jest_v26.x.x.js +1218 -0
- package/flow-typed/npm/react-test-renderer_v16.x.x.js +81 -0
- package/jest-setup.ts +10 -0
- package/package.json +6 -6
- package/renovate.json +19 -0
- package/scripts/test_react_17 +12 -0
- package/src/__tests__/__snapshots__/render-debug.test.tsx.snap +548 -0
- package/src/__tests__/__snapshots__/render.test.tsx.snap +39 -0
- package/src/__tests__/act.test.tsx +52 -0
- package/src/__tests__/auto-cleanup-skip.test.tsx +39 -0
- package/src/__tests__/auto-cleanup.test.tsx +50 -0
- package/src/__tests__/cleanup.test.tsx +26 -0
- package/src/__tests__/config.test.ts +55 -0
- package/src/__tests__/fireEvent-textInput.test.tsx +154 -0
- package/src/__tests__/fireEvent.test.tsx +485 -0
- package/src/__tests__/host-component-names.test.tsx +109 -0
- package/src/__tests__/host-text-nesting.test.tsx +90 -0
- package/src/__tests__/jest-native.test.tsx +84 -0
- package/src/__tests__/questionsBoard.test.tsx +62 -0
- package/src/__tests__/react-native-api.test.tsx +126 -0
- package/src/__tests__/render-debug.test.tsx +207 -0
- package/src/__tests__/render-stringValidation.test.tsx +157 -0
- package/src/__tests__/render.test.tsx +256 -0
- package/src/__tests__/renderHook.test.tsx +114 -0
- package/src/__tests__/screen.test.tsx +66 -0
- package/src/__tests__/timerUtils.ts +7 -0
- package/src/__tests__/timers.test.ts +27 -0
- package/src/__tests__/waitFor.test.tsx +327 -0
- package/src/__tests__/waitForElementToBeRemoved.test.tsx +151 -0
- package/src/__tests__/within.test.tsx +96 -0
- package/src/act.ts +86 -0
- package/src/cleanup.ts +15 -0
- package/src/config.ts +72 -0
- package/src/fireEvent.ts +163 -0
- package/src/flush-micro-tasks.ts +30 -0
- package/src/helpers/__tests__/accessiblity.test.tsx +373 -0
- package/src/helpers/__tests__/component-tree.test.tsx +226 -0
- package/src/helpers/__tests__/format-default.tsx +114 -0
- package/src/helpers/__tests__/getTextContent.test.tsx +49 -0
- package/src/helpers/__tests__/includeHiddenElements.test.tsx +39 -0
- package/src/helpers/__tests__/query-name.test.ts +10 -0
- package/src/helpers/__tests__/timers.test.ts +8 -0
- package/src/helpers/accessiblity.ts +108 -0
- package/src/helpers/component-tree.ts +89 -0
- package/src/helpers/debugDeep.ts +27 -0
- package/src/helpers/debugShallow.ts +22 -0
- package/src/helpers/deprecation.ts +53 -0
- package/src/helpers/errors.ts +66 -0
- package/src/helpers/filterNodeByType.ts +7 -0
- package/src/helpers/findAll.ts +68 -0
- package/src/helpers/format-default.ts +72 -0
- package/src/helpers/format.ts +47 -0
- package/src/helpers/getTextContent.ts +20 -0
- package/src/helpers/host-component-names.tsx +67 -0
- package/src/helpers/matchers/__tests__/matchArrayValue.test.ts +34 -0
- package/src/helpers/matchers/__tests__/matchObject.test.ts +37 -0
- package/src/helpers/matchers/__tests__/matchStringValue.test.ts +15 -0
- package/src/helpers/matchers/accessibilityState.ts +48 -0
- package/src/helpers/matchers/accessibilityValue.ts +24 -0
- package/src/helpers/matchers/matchArrayProp.ts +21 -0
- package/src/helpers/matchers/matchLabelText.ts +51 -0
- package/src/helpers/matchers/matchObjectProp.ts +25 -0
- package/src/helpers/matchers/matchStringProp.ts +23 -0
- package/src/helpers/matchers/matchTextContent.ts +20 -0
- package/src/helpers/pointer-events.ts +27 -0
- package/src/helpers/query-name.ts +4 -0
- package/src/helpers/stringValidation.ts +36 -0
- package/src/helpers/timers.ts +98 -0
- package/src/index.ts +33 -0
- package/src/matches.ts +49 -0
- package/src/pure.ts +25 -0
- package/src/queries/__tests__/a11yState.test.tsx +439 -0
- package/src/queries/__tests__/a11yValue.test.tsx +309 -0
- package/src/queries/__tests__/displayValue.test.tsx +221 -0
- package/src/queries/__tests__/hintText.test.tsx +177 -0
- package/src/queries/__tests__/labelText.test.tsx +242 -0
- package/src/queries/__tests__/makeQueries.test.tsx +235 -0
- package/src/queries/__tests__/placeholderText.test.tsx +136 -0
- package/src/queries/__tests__/role-value.test.tsx +176 -0
- package/src/queries/__tests__/role.test.tsx +824 -0
- package/src/queries/__tests__/testId.test.tsx +200 -0
- package/src/queries/__tests__/text.test.tsx +556 -0
- package/src/queries/a11yState.ts +131 -0
- package/src/queries/a11yValue.ts +131 -0
- package/src/queries/displayValue.ts +78 -0
- package/src/queries/hintText.ts +112 -0
- package/src/queries/labelText.ts +59 -0
- package/src/queries/makeQueries.ts +255 -0
- package/src/queries/options.ts +14 -0
- package/src/queries/placeholderText.ts +79 -0
- package/src/queries/role.ts +132 -0
- package/src/queries/testId.ts +71 -0
- package/src/queries/text.ts +66 -0
- package/src/queries/unsafeProps.ts +76 -0
- package/src/queries/unsafeType.ts +73 -0
- package/src/react-versions.ts +11 -0
- package/src/render-act.ts +19 -0
- package/src/render.tsx +183 -0
- package/src/renderHook.tsx +56 -0
- package/src/screen.ts +123 -0
- package/src/shallow.ts +18 -0
- package/src/test-utils/events.ts +24 -0
- package/src/test-utils/index.ts +1 -0
- package/src/user-event/event-builder/common.ts +50 -0
- package/src/user-event/event-builder/index.ts +5 -0
- package/src/user-event/index.ts +14 -0
- package/src/user-event/press/__tests__/longPress.real-timers.test.tsx +115 -0
- package/src/user-event/press/__tests__/longPress.test.tsx +157 -0
- package/src/user-event/press/__tests__/press.real-timers.test.tsx +318 -0
- package/src/user-event/press/__tests__/press.test.tsx +422 -0
- package/src/user-event/press/constants.ts +7 -0
- package/src/user-event/press/index.ts +1 -0
- package/src/user-event/press/press.ts +134 -0
- package/src/user-event/press/utils/warnAboutRealTimers.ts +6 -0
- package/src/user-event/setup/index.ts +2 -0
- package/src/user-event/setup/setup.ts +93 -0
- package/src/user-event/type/__tests__/__snapshots__/type.test.tsx.snap +26 -0
- package/src/user-event/type/__tests__/type.test.tsx +63 -0
- package/src/user-event/type/index.ts +1 -0
- package/src/user-event/type/type.ts +20 -0
- package/src/user-event/utils/__tests__/wait.test.ts +63 -0
- package/src/user-event/utils/events.ts +54 -0
- package/src/user-event/utils/index.ts +2 -0
- package/src/user-event/utils/wait.ts +15 -0
- package/src/waitFor.ts +228 -0
- package/src/waitForElementToBeRemoved.ts +42 -0
- package/src/within.ts +30 -0
- package/tsconfig.json +17 -0
- package/tsconfig.release.json +8 -0
- package/website/.gitignore +20 -0
- package/website/README.md +33 -0
- package/website/docker/.dockerignore +3 -0
- package/website/docker/Dockerfile +9 -0
- package/website/docker/docker-compose.yml +11 -0
- package/website/docs/API.md +946 -0
- package/website/docs/EslintPLluginTestingLibrary.md +28 -0
- package/website/docs/FAQ.md +44 -0
- package/website/docs/GettingStarted.md +100 -0
- package/website/docs/HowShouldIQuery.md +21 -0
- package/website/docs/MigrationV11.md +64 -0
- package/website/docs/MigrationV12.md +67 -0
- package/website/docs/MigrationV2.md +126 -0
- package/website/docs/MigrationV7.md +119 -0
- package/website/docs/MigrationV9.md +67 -0
- package/website/docs/Queries.md +567 -0
- package/website/docs/ReactNavigation.md +371 -0
- package/website/docs/ReduxIntegration.md +137 -0
- package/website/docs/TestingEnvironment.md +154 -0
- package/website/docs/Troubleshooting.md +44 -0
- package/website/docs/UnderstandingAct.md +227 -0
- package/website/docs/UserEvent.md +66 -0
- package/website/docusaurus.config.js +114 -0
- package/website/package.json +31 -0
- package/website/sidebars.js +20 -0
- package/website/src/components/Feature.js +31 -0
- package/website/src/css/custom.css +13 -0
- package/website/src/css/index.module.css +77 -0
- package/website/src/pages/index.js +82 -0
- package/website/static/.nojekyll +0 -0
- package/website/static/css/custom.css +28 -0
- 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 +7669 -0
- package/yarn.lock +7765 -0
- package/build/flushMicroTasks.d.ts +0 -5
- package/build/flushMicroTasks.js +0 -17
- package/build/flushMicroTasks.js.map +0 -1
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/// <reference types="jest" />
|
|
2
|
+
export declare const EventBuilder: {
|
|
3
|
+
Common: {
|
|
4
|
+
touch: () => {
|
|
5
|
+
persist: jest.Mock<any, any, any>;
|
|
6
|
+
currentTarget: {
|
|
7
|
+
measure: jest.Mock<any, any, any>;
|
|
8
|
+
};
|
|
9
|
+
nativeEvent: {
|
|
10
|
+
changedTouches: never[];
|
|
11
|
+
identifier: number;
|
|
12
|
+
locationX: number;
|
|
13
|
+
locationY: number;
|
|
14
|
+
pageX: number;
|
|
15
|
+
pageY: number;
|
|
16
|
+
target: number;
|
|
17
|
+
timestamp: number;
|
|
18
|
+
touches: never[];
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
focus: () => {
|
|
22
|
+
nativeEvent: {
|
|
23
|
+
target: number;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
blur: () => {
|
|
27
|
+
nativeEvent: {
|
|
28
|
+
target: number;
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.EventBuilder = void 0;
|
|
7
|
+
var _common = require("./common");
|
|
8
|
+
const EventBuilder = {
|
|
9
|
+
Common: _common.CommonEventBuilder
|
|
10
|
+
};
|
|
11
|
+
exports.EventBuilder = EventBuilder;
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["_common","require","EventBuilder","Common","CommonEventBuilder","exports"],"sources":["../../../src/user-event/event-builder/index.ts"],"sourcesContent":["import { CommonEventBuilder } from './common';\n\nexport const EventBuilder = {\n Common: CommonEventBuilder,\n};\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAEO,MAAMC,YAAY,GAAG;EAC1BC,MAAM,EAAEC;AACV,CAAC;AAACC,OAAA,CAAAH,YAAA,GAAAA,YAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ReactTestInstance } from 'react-test-renderer';
|
|
2
|
+
import { setup } from './setup';
|
|
3
|
+
import { PressOptions } from './press/press';
|
|
4
|
+
export declare const userEvent: {
|
|
5
|
+
setup: typeof setup;
|
|
6
|
+
press: (element: ReactTestInstance) => Promise<void>;
|
|
7
|
+
longPress: (element: ReactTestInstance, options?: PressOptions) => Promise<void>;
|
|
8
|
+
type: (element: ReactTestInstance, text: string) => Promise<void>;
|
|
9
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.userEvent = void 0;
|
|
7
|
+
var _setup = require("./setup");
|
|
8
|
+
const userEvent = {
|
|
9
|
+
setup: _setup.setup,
|
|
10
|
+
// Direct access for User Event v13 compatibility
|
|
11
|
+
press: element => (0, _setup.setup)().press(element),
|
|
12
|
+
longPress: (element, options) => (0, _setup.setup)().longPress(element, options),
|
|
13
|
+
type: (element, text) => (0, _setup.setup)().type(element, text)
|
|
14
|
+
};
|
|
15
|
+
exports.userEvent = userEvent;
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["_setup","require","userEvent","setup","press","element","longPress","options","type","text","exports"],"sources":["../../src/user-event/index.ts"],"sourcesContent":["import { ReactTestInstance } from 'react-test-renderer';\nimport { setup } from './setup';\nimport { PressOptions } from './press/press';\n\nexport const userEvent = {\n setup,\n\n // Direct access for User Event v13 compatibility\n press: (element: ReactTestInstance) => setup().press(element),\n longPress: (element: ReactTestInstance, options?: PressOptions) =>\n setup().longPress(element, options),\n type: (element: ReactTestInstance, text: string) =>\n setup().type(element, text),\n};\n"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AAGO,MAAMC,SAAS,GAAG;EACvBC,KAAK,EAALA,YAAK;EAEL;EACAC,KAAK,EAAGC,OAA0B,IAAK,IAAAF,YAAK,EAAC,CAAC,CAACC,KAAK,CAACC,OAAO,CAAC;EAC7DC,SAAS,EAAEA,CAACD,OAA0B,EAAEE,OAAsB,KAC5D,IAAAJ,YAAK,EAAC,CAAC,CAACG,SAAS,CAACD,OAAO,EAAEE,OAAO,CAAC;EACrCC,IAAI,EAAEA,CAACH,OAA0B,EAAEI,IAAY,KAC7C,IAAAN,YAAK,EAAC,CAAC,CAACK,IAAI,CAACH,OAAO,EAAEI,IAAI;AAC9B,CAAC;AAACC,OAAA,CAAAR,SAAA,GAAAA,SAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.DEFAULT_MIN_PRESS_DURATION = exports.DEFAULT_LONG_PRESS_DELAY_MS = void 0;
|
|
7
|
+
// These are constants defined in the React Native repo
|
|
8
|
+
|
|
9
|
+
// Used to define the delay before calling onPressOut after a press
|
|
10
|
+
const DEFAULT_MIN_PRESS_DURATION = 130;
|
|
11
|
+
|
|
12
|
+
// Default minimum press duration to trigger a long press
|
|
13
|
+
exports.DEFAULT_MIN_PRESS_DURATION = DEFAULT_MIN_PRESS_DURATION;
|
|
14
|
+
const DEFAULT_LONG_PRESS_DELAY_MS = 500;
|
|
15
|
+
exports.DEFAULT_LONG_PRESS_DELAY_MS = DEFAULT_LONG_PRESS_DELAY_MS;
|
|
16
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","names":["DEFAULT_MIN_PRESS_DURATION","exports","DEFAULT_LONG_PRESS_DELAY_MS"],"sources":["../../../src/user-event/press/constants.ts"],"sourcesContent":["// These are constants defined in the React Native repo\n\n// Used to define the delay before calling onPressOut after a press\nexport const DEFAULT_MIN_PRESS_DURATION = 130;\n\n// Default minimum press duration to trigger a long press\nexport const DEFAULT_LONG_PRESS_DELAY_MS = 500;\n"],"mappings":";;;;;;AAAA;;AAEA;AACO,MAAMA,0BAA0B,GAAG,GAAG;;AAE7C;AAAAC,OAAA,CAAAD,0BAAA,GAAAA,0BAAA;AACO,MAAME,2BAA2B,GAAG,GAAG;AAACD,OAAA,CAAAC,2BAAA,GAAAA,2BAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { press, longPress } from './press';
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "longPress", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _press.longPress;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "press", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _press.press;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
var _press = require("./press");
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["_press","require"],"sources":["../../../src/user-event/press/index.ts"],"sourcesContent":["export { press, longPress } from './press';\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ReactTestInstance } from 'react-test-renderer';
|
|
2
|
+
import { UserEventInstance } from '../setup';
|
|
3
|
+
export type PressOptions = {
|
|
4
|
+
duration: number;
|
|
5
|
+
};
|
|
6
|
+
export declare function press(this: UserEventInstance, element: ReactTestInstance): Promise<void>;
|
|
7
|
+
export declare function longPress(this: UserEventInstance, element: ReactTestInstance, options?: PressOptions): Promise<void>;
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.longPress = longPress;
|
|
7
|
+
exports.press = press;
|
|
8
|
+
var _eventBuilder = require("../event-builder");
|
|
9
|
+
var _utils = require("../utils");
|
|
10
|
+
var _act = _interopRequireDefault(require("../../act"));
|
|
11
|
+
var _componentTree = require("../../helpers/component-tree");
|
|
12
|
+
var _filterNodeByType = require("../../helpers/filterNodeByType");
|
|
13
|
+
var _pointerEvents = require("../../helpers/pointer-events");
|
|
14
|
+
var _hostComponentNames = require("../../helpers/host-component-names");
|
|
15
|
+
var _timers = require("../../helpers/timers");
|
|
16
|
+
var _constants = require("./constants");
|
|
17
|
+
var _warnAboutRealTimers = require("./utils/warnAboutRealTimers");
|
|
18
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
|
+
async function press(element) {
|
|
20
|
+
await basePress(this.config, element);
|
|
21
|
+
}
|
|
22
|
+
async function longPress(element, options = {
|
|
23
|
+
duration: 500
|
|
24
|
+
}) {
|
|
25
|
+
await basePress(this.config, element, options);
|
|
26
|
+
}
|
|
27
|
+
const basePress = async (config, element, options = {
|
|
28
|
+
duration: 0
|
|
29
|
+
}) => {
|
|
30
|
+
// Text and TextInput components are mocked in React Native preset so the mock
|
|
31
|
+
// doesn't implement the pressability class
|
|
32
|
+
// Thus we need to call the props directly on the host component
|
|
33
|
+
if (isEnabledHostText(element) || isEnabledTextInput(element)) {
|
|
34
|
+
await triggerMockPressEvent(config, element, options);
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
if (isEnabledTouchResponder(element)) {
|
|
38
|
+
await triggerPressEvent(config, element, options);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
const hostParentElement = (0, _componentTree.getHostParent)(element);
|
|
42
|
+
if (!hostParentElement) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
await basePress(config, hostParentElement, options);
|
|
46
|
+
};
|
|
47
|
+
const triggerPressEvent = async (config, element, options = {
|
|
48
|
+
duration: 0
|
|
49
|
+
}) => {
|
|
50
|
+
const areFakeTimersEnabled = (0, _timers.jestFakeTimersAreEnabled)();
|
|
51
|
+
if (!areFakeTimersEnabled) {
|
|
52
|
+
(0, _warnAboutRealTimers.warnAboutRealTimers)();
|
|
53
|
+
}
|
|
54
|
+
await (0, _utils.wait)(config);
|
|
55
|
+
await (0, _act.default)(async () => {
|
|
56
|
+
element.props.onResponderGrant({
|
|
57
|
+
..._eventBuilder.EventBuilder.Common.touch(),
|
|
58
|
+
dispatchConfig: {
|
|
59
|
+
registrationName: 'onResponderGrant'
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
await (0, _utils.wait)(config, options.duration);
|
|
63
|
+
element.props.onResponderRelease({
|
|
64
|
+
..._eventBuilder.EventBuilder.Common.touch(),
|
|
65
|
+
dispatchConfig: {
|
|
66
|
+
registrationName: 'onResponderRelease'
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
if (_constants.DEFAULT_MIN_PRESS_DURATION - options.duration > 0) {
|
|
70
|
+
await (0, _utils.wait)(config, _constants.DEFAULT_MIN_PRESS_DURATION - options.duration);
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
};
|
|
74
|
+
const isEnabledTouchResponder = element => {
|
|
75
|
+
return (0, _pointerEvents.isPointerEventEnabled)(element) && element.props.onStartShouldSetResponder?.();
|
|
76
|
+
};
|
|
77
|
+
const isEnabledHostText = element => {
|
|
78
|
+
return (0, _filterNodeByType.filterNodeByType)(element, (0, _hostComponentNames.getHostComponentNames)().text) && (0, _pointerEvents.isPointerEventEnabled)(element) && !element.props.disabled && element.props.onPress;
|
|
79
|
+
};
|
|
80
|
+
const isEnabledTextInput = element => {
|
|
81
|
+
return (0, _filterNodeByType.filterNodeByType)(element, (0, _hostComponentNames.getHostComponentNames)().textInput) && (0, _pointerEvents.isPointerEventEnabled)(element) && element.props.editable !== false;
|
|
82
|
+
};
|
|
83
|
+
const triggerMockPressEvent = async (config, element, options = {
|
|
84
|
+
duration: 0
|
|
85
|
+
}) => {
|
|
86
|
+
const {
|
|
87
|
+
onPressIn,
|
|
88
|
+
onPress,
|
|
89
|
+
onPressOut
|
|
90
|
+
} = element.props;
|
|
91
|
+
await (0, _utils.wait)(config);
|
|
92
|
+
if (onPressIn) {
|
|
93
|
+
onPressIn(_eventBuilder.EventBuilder.Common.touch());
|
|
94
|
+
}
|
|
95
|
+
if (onPress) {
|
|
96
|
+
onPress(_eventBuilder.EventBuilder.Common.touch());
|
|
97
|
+
}
|
|
98
|
+
await (0, _utils.wait)(config, options.duration);
|
|
99
|
+
if (onPressOut) {
|
|
100
|
+
if (_constants.DEFAULT_MIN_PRESS_DURATION - options.duration > 0) {
|
|
101
|
+
await (0, _utils.wait)(config, _constants.DEFAULT_MIN_PRESS_DURATION - options.duration);
|
|
102
|
+
}
|
|
103
|
+
onPressOut(_eventBuilder.EventBuilder.Common.touch());
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
//# sourceMappingURL=press.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"press.js","names":["_eventBuilder","require","_utils","_act","_interopRequireDefault","_componentTree","_filterNodeByType","_pointerEvents","_hostComponentNames","_timers","_constants","_warnAboutRealTimers","obj","__esModule","default","press","element","basePress","config","longPress","options","duration","isEnabledHostText","isEnabledTextInput","triggerMockPressEvent","isEnabledTouchResponder","triggerPressEvent","hostParentElement","getHostParent","areFakeTimersEnabled","jestFakeTimersAreEnabled","warnAboutRealTimers","wait","act","props","onResponderGrant","EventBuilder","Common","touch","dispatchConfig","registrationName","onResponderRelease","DEFAULT_MIN_PRESS_DURATION","isPointerEventEnabled","onStartShouldSetResponder","filterNodeByType","getHostComponentNames","text","disabled","onPress","textInput","editable","onPressIn","onPressOut"],"sources":["../../../src/user-event/press/press.ts"],"sourcesContent":["import { ReactTestInstance } from 'react-test-renderer';\nimport { EventBuilder } from '../event-builder';\nimport { UserEventInstance } from '../setup';\nimport { wait } from '../utils';\nimport act from '../../act';\nimport { getHostParent } from '../../helpers/component-tree';\nimport { filterNodeByType } from '../../helpers/filterNodeByType';\nimport { isPointerEventEnabled } from '../../helpers/pointer-events';\nimport { getHostComponentNames } from '../../helpers/host-component-names';\nimport { jestFakeTimersAreEnabled } from '../../helpers/timers';\nimport { DEFAULT_MIN_PRESS_DURATION } from './constants';\nimport { warnAboutRealTimers } from './utils/warnAboutRealTimers';\n\nexport type PressOptions = {\n duration: number;\n};\n\nexport async function press(\n this: UserEventInstance,\n element: ReactTestInstance\n): Promise<void> {\n await basePress(this.config, element);\n}\n\nexport async function longPress(\n this: UserEventInstance,\n element: ReactTestInstance,\n options: PressOptions = { duration: 500 }\n): Promise<void> {\n await basePress(this.config, element, options);\n}\n\nconst basePress = async (\n config: UserEventInstance['config'],\n element: ReactTestInstance,\n options: PressOptions = { duration: 0 }\n): Promise<void> => {\n // Text and TextInput components are mocked in React Native preset so the mock\n // doesn't implement the pressability class\n // Thus we need to call the props directly on the host component\n if (isEnabledHostText(element) || isEnabledTextInput(element)) {\n await triggerMockPressEvent(config, element, options);\n return;\n }\n\n if (isEnabledTouchResponder(element)) {\n await triggerPressEvent(config, element, options);\n return;\n }\n\n const hostParentElement = getHostParent(element);\n if (!hostParentElement) {\n return;\n }\n\n await basePress(config, hostParentElement, options);\n};\n\nconst triggerPressEvent = async (\n config: UserEventInstance['config'],\n element: ReactTestInstance,\n options: PressOptions = { duration: 0 }\n) => {\n const areFakeTimersEnabled = jestFakeTimersAreEnabled();\n if (!areFakeTimersEnabled) {\n warnAboutRealTimers();\n }\n\n await wait(config);\n\n await act(async () => {\n element.props.onResponderGrant({\n ...EventBuilder.Common.touch(),\n dispatchConfig: { registrationName: 'onResponderGrant' },\n });\n\n await wait(config, options.duration);\n\n element.props.onResponderRelease({\n ...EventBuilder.Common.touch(),\n dispatchConfig: { registrationName: 'onResponderRelease' },\n });\n\n if (DEFAULT_MIN_PRESS_DURATION - options.duration > 0) {\n await wait(config, DEFAULT_MIN_PRESS_DURATION - options.duration);\n }\n });\n};\n\nconst isEnabledTouchResponder = (element: ReactTestInstance) => {\n return (\n isPointerEventEnabled(element) &&\n element.props.onStartShouldSetResponder?.()\n );\n};\n\nconst isEnabledHostText = (element: ReactTestInstance) => {\n return (\n filterNodeByType(element, getHostComponentNames().text) &&\n isPointerEventEnabled(element) &&\n !element.props.disabled &&\n element.props.onPress\n );\n};\n\nconst isEnabledTextInput = (element: ReactTestInstance) => {\n return (\n filterNodeByType(element, getHostComponentNames().textInput) &&\n isPointerEventEnabled(element) &&\n element.props.editable !== false\n );\n};\n\nconst triggerMockPressEvent = async (\n config: UserEventInstance['config'],\n element: ReactTestInstance,\n options: PressOptions = { duration: 0 }\n) => {\n const { onPressIn, onPress, onPressOut } = element.props;\n await wait(config);\n if (onPressIn) {\n onPressIn(EventBuilder.Common.touch());\n }\n if (onPress) {\n onPress(EventBuilder.Common.touch());\n }\n await wait(config, options.duration);\n if (onPressOut) {\n if (DEFAULT_MIN_PRESS_DURATION - options.duration > 0) {\n await wait(config, DEFAULT_MIN_PRESS_DURATION - options.duration);\n }\n onPressOut(EventBuilder.Common.touch());\n }\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const warnAboutRealTimers: () => void;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.warnAboutRealTimers = void 0;
|
|
7
|
+
const warnAboutRealTimers = () => {
|
|
8
|
+
// eslint-disable-next-line no-console
|
|
9
|
+
console.warn(`It is recommended to use userEvent with fake timers
|
|
10
|
+
Some events involve duration so your tests may take a long time to run.
|
|
11
|
+
For instance calling userEvent.longPress with real timers will take 500 ms.`);
|
|
12
|
+
};
|
|
13
|
+
exports.warnAboutRealTimers = warnAboutRealTimers;
|
|
14
|
+
//# sourceMappingURL=warnAboutRealTimers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"warnAboutRealTimers.js","names":["warnAboutRealTimers","console","warn","exports"],"sources":["../../../../src/user-event/press/utils/warnAboutRealTimers.ts"],"sourcesContent":["export const warnAboutRealTimers = () => {\n // eslint-disable-next-line no-console\n console.warn(`It is recommended to use userEvent with fake timers\nSome events involve duration so your tests may take a long time to run.\nFor instance calling userEvent.longPress with real timers will take 500 ms.`);\n};\n"],"mappings":";;;;;;AAAO,MAAMA,mBAAmB,GAAGA,CAAA,KAAM;EACvC;EACAC,OAAO,CAACC,IAAI,CAAE;AAChB;AACA,4EAA4E,CAAC;AAC7E,CAAC;AAACC,OAAA,CAAAH,mBAAA,GAAAA,mBAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "setup", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _setup.setup;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
var _setup = require("./setup");
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["_setup","require"],"sources":["../../../src/user-event/setup/index.ts"],"sourcesContent":["export type { UserEventConfig, UserEventInstance } from './setup';\nexport { setup } from './setup';\n"],"mappings":";;;;;;;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { ReactTestInstance } from 'react-test-renderer';
|
|
2
|
+
import { PressOptions } from '../press/press';
|
|
3
|
+
export interface UserEventSetupOptions {
|
|
4
|
+
/**
|
|
5
|
+
* Between some subsequent inputs like typing a series of characters
|
|
6
|
+
* the code execution is delayed per `setTimeout` for (at least) `delay` seconds.
|
|
7
|
+
* This moves the next changes at least to next macro task
|
|
8
|
+
* and allows other (asynchronous) code to run between events.
|
|
9
|
+
*
|
|
10
|
+
* `null` prevents `setTimeout` from being called.
|
|
11
|
+
*
|
|
12
|
+
* @default 0
|
|
13
|
+
*/
|
|
14
|
+
delay?: number;
|
|
15
|
+
/**
|
|
16
|
+
* Function to be called to advance fake timers. Setting it is necessary for
|
|
17
|
+
* fake timers to work.
|
|
18
|
+
*
|
|
19
|
+
* @example jest.advanceTimersByTime
|
|
20
|
+
*/
|
|
21
|
+
advanceTimers?: (delay: number) => Promise<void> | void;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Creates a new instance of user event instance with the given options.
|
|
25
|
+
*
|
|
26
|
+
* @param options
|
|
27
|
+
* @returns
|
|
28
|
+
*/
|
|
29
|
+
export declare function setup(options?: UserEventSetupOptions): UserEventInstance;
|
|
30
|
+
export interface UserEventConfig {
|
|
31
|
+
delay: number;
|
|
32
|
+
advanceTimers: (delay: number) => Promise<void> | void;
|
|
33
|
+
}
|
|
34
|
+
export interface UserEventInstance {
|
|
35
|
+
config: UserEventConfig;
|
|
36
|
+
press: (element: ReactTestInstance) => Promise<void>;
|
|
37
|
+
longPress: (element: ReactTestInstance, options?: PressOptions) => Promise<void>;
|
|
38
|
+
type: (element: ReactTestInstance, text: string) => Promise<void>;
|
|
39
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.setup = setup;
|
|
7
|
+
var _timers = require("../../helpers/timers");
|
|
8
|
+
var _press = require("../press");
|
|
9
|
+
var _type = require("../type");
|
|
10
|
+
/**
|
|
11
|
+
* This functions allow wait to work correctly under both real and fake Jest timers.
|
|
12
|
+
*/
|
|
13
|
+
function universalJestAdvanceTimersBy(ms) {
|
|
14
|
+
if ((0, _timers.jestFakeTimersAreEnabled)()) {
|
|
15
|
+
return jest.advanceTimersByTime(ms);
|
|
16
|
+
} else {
|
|
17
|
+
return Promise.resolve();
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
const defaultOptions = {
|
|
21
|
+
delay: 0,
|
|
22
|
+
advanceTimers: universalJestAdvanceTimersBy
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Creates a new instance of user event instance with the given options.
|
|
27
|
+
*
|
|
28
|
+
* @param options
|
|
29
|
+
* @returns
|
|
30
|
+
*/
|
|
31
|
+
function setup(options) {
|
|
32
|
+
const config = createConfig(options);
|
|
33
|
+
const instance = createInstance(config);
|
|
34
|
+
return instance;
|
|
35
|
+
}
|
|
36
|
+
function createConfig(options) {
|
|
37
|
+
return {
|
|
38
|
+
...defaultOptions,
|
|
39
|
+
...options
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
function createInstance(config) {
|
|
43
|
+
const instance = {
|
|
44
|
+
config
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
// We need to bind these functions, as they access the config through 'this.config'.
|
|
48
|
+
const api = {
|
|
49
|
+
press: _press.press.bind(instance),
|
|
50
|
+
longPress: _press.longPress.bind(instance),
|
|
51
|
+
type: _type.type.bind(instance)
|
|
52
|
+
};
|
|
53
|
+
Object.assign(instance, api);
|
|
54
|
+
return instance;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.js","names":["_timers","require","_press","_type","universalJestAdvanceTimersBy","ms","jestFakeTimersAreEnabled","jest","advanceTimersByTime","Promise","resolve","defaultOptions","delay","advanceTimers","setup","options","config","createConfig","instance","createInstance","api","press","bind","longPress","type","Object","assign"],"sources":["../../../src/user-event/setup/setup.ts"],"sourcesContent":["import { ReactTestInstance } from 'react-test-renderer';\nimport { jestFakeTimersAreEnabled } from '../../helpers/timers';\nimport { press, longPress } from '../press';\nimport { type } from '../type';\nimport { PressOptions } from '../press/press';\n\nexport interface UserEventSetupOptions {\n /**\n * Between some subsequent inputs like typing a series of characters\n * the code execution is delayed per `setTimeout` for (at least) `delay` seconds.\n * This moves the next changes at least to next macro task\n * and allows other (asynchronous) code to run between events.\n *\n * `null` prevents `setTimeout` from being called.\n *\n * @default 0\n */\n delay?: number;\n\n /**\n * Function to be called to advance fake timers. Setting it is necessary for\n * fake timers to work.\n *\n * @example jest.advanceTimersByTime\n */\n advanceTimers?: (delay: number) => Promise<void> | void;\n}\n\n/**\n * This functions allow wait to work correctly under both real and fake Jest timers.\n */\nfunction universalJestAdvanceTimersBy(ms: number) {\n if (jestFakeTimersAreEnabled()) {\n return jest.advanceTimersByTime(ms);\n } else {\n return Promise.resolve();\n }\n}\n\nconst defaultOptions: Required<UserEventSetupOptions> = {\n delay: 0,\n advanceTimers: universalJestAdvanceTimersBy,\n};\n\n/**\n * Creates a new instance of user event instance with the given options.\n *\n * @param options\n * @returns\n */\nexport function setup(options?: UserEventSetupOptions) {\n const config = createConfig(options);\n const instance = createInstance(config);\n return instance;\n}\n\nexport interface UserEventConfig {\n delay: number;\n advanceTimers: (delay: number) => Promise<void> | void;\n}\n\nfunction createConfig(options?: UserEventSetupOptions): UserEventConfig {\n return {\n ...defaultOptions,\n ...options,\n };\n}\n\nexport interface UserEventInstance {\n config: UserEventConfig;\n press: (element: ReactTestInstance) => Promise<void>;\n longPress: (\n element: ReactTestInstance,\n options?: PressOptions\n ) => Promise<void>;\n type: (element: ReactTestInstance, text: string) => Promise<void>;\n}\n\nfunction createInstance(config: UserEventConfig): UserEventInstance {\n const instance = {\n config,\n } as UserEventInstance;\n\n // We need to bind these functions, as they access the config through 'this.config'.\n const api = {\n press: press.bind(instance),\n longPress: longPress.bind(instance),\n type: type.bind(instance),\n };\n\n Object.assign(instance, api);\n return instance;\n}\n"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AAyBA;AACA;AACA;AACA,SAASG,4BAA4BA,CAACC,EAAU,EAAE;EAChD,IAAI,IAAAC,gCAAwB,EAAC,CAAC,EAAE;IAC9B,OAAOC,IAAI,CAACC,mBAAmB,CAACH,EAAE,CAAC;EACrC,CAAC,MAAM;IACL,OAAOI,OAAO,CAACC,OAAO,CAAC,CAAC;EAC1B;AACF;AAEA,MAAMC,cAA+C,GAAG;EACtDC,KAAK,EAAE,CAAC;EACRC,aAAa,EAAET;AACjB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACO,SAASU,KAAKA,CAACC,OAA+B,EAAE;EACrD,MAAMC,MAAM,GAAGC,YAAY,CAACF,OAAO,CAAC;EACpC,MAAMG,QAAQ,GAAGC,cAAc,CAACH,MAAM,CAAC;EACvC,OAAOE,QAAQ;AACjB;AAOA,SAASD,YAAYA,CAACF,OAA+B,EAAmB;EACtE,OAAO;IACL,GAAGJ,cAAc;IACjB,GAAGI;EACL,CAAC;AACH;AAYA,SAASI,cAAcA,CAACH,MAAuB,EAAqB;EAClE,MAAME,QAAQ,GAAG;IACfF;EACF,CAAsB;;EAEtB;EACA,MAAMI,GAAG,GAAG;IACVC,KAAK,EAAEA,YAAK,CAACC,IAAI,CAACJ,QAAQ,CAAC;IAC3BK,SAAS,EAAEA,gBAAS,CAACD,IAAI,CAACJ,QAAQ,CAAC;IACnCM,IAAI,EAAEA,UAAI,CAACF,IAAI,CAACJ,QAAQ;EAC1B,CAAC;EAEDO,MAAM,CAACC,MAAM,CAACR,QAAQ,EAAEE,GAAG,CAAC;EAC5B,OAAOF,QAAQ;AACjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { type } from './type';
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "type", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _type.type;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
var _type = require("./type");
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["_type","require"],"sources":["../../../src/user-event/type/index.ts"],"sourcesContent":["export { type } from './type';\n"],"mappings":";;;;;;;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.type = type;
|
|
7
|
+
var _utils = require("../utils");
|
|
8
|
+
var _eventBuilder = require("../event-builder");
|
|
9
|
+
async function type(element, text) {
|
|
10
|
+
// TODO provide real implementation
|
|
11
|
+
await (0, _utils.wait)(this.config);
|
|
12
|
+
(0, _utils.dispatchHostEvent)(element, 'focus', _eventBuilder.EventBuilder.Common.focus());
|
|
13
|
+
await (0, _utils.wait)(this.config);
|
|
14
|
+
(0, _utils.dispatchHostEvent)(element, 'changeText', text);
|
|
15
|
+
await (0, _utils.wait)(this.config);
|
|
16
|
+
(0, _utils.dispatchHostEvent)(element, 'blur', _eventBuilder.EventBuilder.Common.blur());
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type.js","names":["_utils","require","_eventBuilder","type","element","text","wait","config","dispatchHostEvent","EventBuilder","Common","focus","blur"],"sources":["../../../src/user-event/type/type.ts"],"sourcesContent":["import { ReactTestInstance } from 'react-test-renderer';\nimport { UserEventInstance } from '../setup';\nimport { dispatchHostEvent, wait } from '../utils';\nimport { EventBuilder } from '../event-builder';\n\nexport async function type(\n this: UserEventInstance,\n element: ReactTestInstance,\n text: string\n) {\n // TODO provide real implementation\n await wait(this.config);\n dispatchHostEvent(element, 'focus', EventBuilder.Common.focus());\n\n await wait(this.config);\n dispatchHostEvent(element, 'changeText', text);\n\n await wait(this.config);\n dispatchHostEvent(element, 'blur', EventBuilder.Common.blur());\n}\n"],"mappings":";;;;;;AAEA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AAEO,eAAeE,IAAIA,CAExBC,OAA0B,EAC1BC,IAAY,EACZ;EACA;EACA,MAAM,IAAAC,WAAI,EAAC,IAAI,CAACC,MAAM,CAAC;EACvB,IAAAC,wBAAiB,EAACJ,OAAO,EAAE,OAAO,EAAEK,0BAAY,CAACC,MAAM,CAACC,KAAK,CAAC,CAAC,CAAC;EAEhE,MAAM,IAAAL,WAAI,EAAC,IAAI,CAACC,MAAM,CAAC;EACvB,IAAAC,wBAAiB,EAACJ,OAAO,EAAE,YAAY,EAAEC,IAAI,CAAC;EAE9C,MAAM,IAAAC,WAAI,EAAC,IAAI,CAACC,MAAM,CAAC;EACvB,IAAAC,wBAAiB,EAACJ,OAAO,EAAE,MAAM,EAAEK,0BAAY,CAACC,MAAM,CAACE,IAAI,CAAC,CAAC,CAAC;AAChE"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ReactTestInstance } from 'react-test-renderer';
|
|
2
|
+
/**
|
|
3
|
+
* Dispatch event function used by User Event module.
|
|
4
|
+
*
|
|
5
|
+
* @param element element trigger event on
|
|
6
|
+
* @param eventName name of the event
|
|
7
|
+
* @param event event payload
|
|
8
|
+
*/
|
|
9
|
+
export declare function dispatchHostEvent(element: ReactTestInstance, eventName: string, event: unknown): void;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.dispatchHostEvent = dispatchHostEvent;
|
|
7
|
+
var _act = _interopRequireDefault(require("../../act"));
|
|
8
|
+
var _fireEvent = require("../../fireEvent");
|
|
9
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
10
|
+
/**
|
|
11
|
+
* Dispatch event function used by User Event module.
|
|
12
|
+
*
|
|
13
|
+
* @param element element trigger event on
|
|
14
|
+
* @param eventName name of the event
|
|
15
|
+
* @param event event payload
|
|
16
|
+
*/
|
|
17
|
+
function dispatchHostEvent(element, eventName, event) {
|
|
18
|
+
const handler = getEnabledEventHandler(element, eventName);
|
|
19
|
+
if (!handler) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
(0, _act.default)(() => {
|
|
23
|
+
handler(event);
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
function getEnabledEventHandler(element, eventName) {
|
|
27
|
+
const touchResponder = (0, _fireEvent.isTouchResponder)(element) ? element : undefined;
|
|
28
|
+
const handler = getEventHandler(element, eventName);
|
|
29
|
+
if (handler && (0, _fireEvent.isEventEnabled)(element, eventName, touchResponder)) {
|
|
30
|
+
return handler;
|
|
31
|
+
}
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
function getEventHandler(element, eventName) {
|
|
35
|
+
const eventHandlerName = getEventHandlerName(eventName);
|
|
36
|
+
if (typeof element.props[eventHandlerName] === 'function') {
|
|
37
|
+
return element.props[eventHandlerName];
|
|
38
|
+
}
|
|
39
|
+
return undefined;
|
|
40
|
+
}
|
|
41
|
+
function getEventHandlerName(eventName) {
|
|
42
|
+
return `on${eventName.charAt(0).toUpperCase()}${eventName.slice(1)}`;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","names":["_act","_interopRequireDefault","require","_fireEvent","obj","__esModule","default","dispatchHostEvent","element","eventName","event","handler","getEnabledEventHandler","act","touchResponder","isTouchResponder","undefined","getEventHandler","isEventEnabled","eventHandlerName","getEventHandlerName","props","charAt","toUpperCase","slice"],"sources":["../../../src/user-event/utils/events.ts"],"sourcesContent":["import { ReactTestInstance } from 'react-test-renderer';\nimport act from '../../act';\nimport { isEventEnabled, isTouchResponder } from '../../fireEvent';\n\ntype EventHandler = (event: unknown) => void;\n\n/**\n * Dispatch event function used by User Event module.\n *\n * @param element element trigger event on\n * @param eventName name of the event\n * @param event event payload\n */\nexport function dispatchHostEvent(\n element: ReactTestInstance,\n eventName: string,\n event: unknown\n) {\n const handler = getEnabledEventHandler(element, eventName);\n if (!handler) {\n return;\n }\n\n act(() => {\n handler(event);\n });\n}\n\nfunction getEnabledEventHandler(\n element: ReactTestInstance,\n eventName: string\n): EventHandler | null {\n const touchResponder = isTouchResponder(element) ? element : undefined;\n\n const handler = getEventHandler(element, eventName);\n if (handler && isEventEnabled(element, eventName, touchResponder)) {\n return handler;\n }\n\n return null;\n}\n\nfunction getEventHandler(element: ReactTestInstance, eventName: string) {\n const eventHandlerName = getEventHandlerName(eventName);\n if (typeof element.props[eventHandlerName] === 'function') {\n return element.props[eventHandlerName];\n }\n\n return undefined;\n}\n\nfunction getEventHandlerName(eventName: string) {\n return `on${eventName.charAt(0).toUpperCase()}${eventName.slice(1)}`;\n}\n"],"mappings":";;;;;;AACA,IAAAA,IAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAAmE,SAAAD,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAInE;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASG,iBAAiBA,CAC/BC,OAA0B,EAC1BC,SAAiB,EACjBC,KAAc,EACd;EACA,MAAMC,OAAO,GAAGC,sBAAsB,CAACJ,OAAO,EAAEC,SAAS,CAAC;EAC1D,IAAI,CAACE,OAAO,EAAE;IACZ;EACF;EAEA,IAAAE,YAAG,EAAC,MAAM;IACRF,OAAO,CAACD,KAAK,CAAC;EAChB,CAAC,CAAC;AACJ;AAEA,SAASE,sBAAsBA,CAC7BJ,OAA0B,EAC1BC,SAAiB,EACI;EACrB,MAAMK,cAAc,GAAG,IAAAC,2BAAgB,EAACP,OAAO,CAAC,GAAGA,OAAO,GAAGQ,SAAS;EAEtE,MAAML,OAAO,GAAGM,eAAe,CAACT,OAAO,EAAEC,SAAS,CAAC;EACnD,IAAIE,OAAO,IAAI,IAAAO,yBAAc,EAACV,OAAO,EAAEC,SAAS,EAAEK,cAAc,CAAC,EAAE;IACjE,OAAOH,OAAO;EAChB;EAEA,OAAO,IAAI;AACb;AAEA,SAASM,eAAeA,CAACT,OAA0B,EAAEC,SAAiB,EAAE;EACtE,MAAMU,gBAAgB,GAAGC,mBAAmB,CAACX,SAAS,CAAC;EACvD,IAAI,OAAOD,OAAO,CAACa,KAAK,CAACF,gBAAgB,CAAC,KAAK,UAAU,EAAE;IACzD,OAAOX,OAAO,CAACa,KAAK,CAACF,gBAAgB,CAAC;EACxC;EAEA,OAAOH,SAAS;AAClB;AAEA,SAASI,mBAAmBA,CAACX,SAAiB,EAAE;EAC9C,OAAQ,KAAIA,SAAS,CAACa,MAAM,CAAC,CAAC,CAAC,CAACC,WAAW,CAAC,CAAE,GAAEd,SAAS,CAACe,KAAK,CAAC,CAAC,CAAE,EAAC;AACtE"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _events = require("./events");
|
|
7
|
+
Object.keys(_events).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _events[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _events[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
var _wait = require("./wait");
|
|
18
|
+
Object.keys(_wait).forEach(function (key) {
|
|
19
|
+
if (key === "default" || key === "__esModule") return;
|
|
20
|
+
if (key in exports && exports[key] === _wait[key]) return;
|
|
21
|
+
Object.defineProperty(exports, key, {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function () {
|
|
24
|
+
return _wait[key];
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["_events","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_wait"],"sources":["../../../src/user-event/utils/index.ts"],"sourcesContent":["export * from './events';\nexport * from './wait';\n"],"mappings":";;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,OAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,OAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,OAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,KAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,KAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,KAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,KAAA,CAAAL,GAAA;IAAA;EAAA;AAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.wait = wait;
|
|
7
|
+
function wait(config, durationInMs) {
|
|
8
|
+
const delay = durationInMs ?? config.delay;
|
|
9
|
+
if (typeof delay !== 'number') {
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
return Promise.all([new Promise(resolve => globalThis.setTimeout(() => resolve(), delay)), config.advanceTimers(delay)]);
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=wait.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wait.js","names":["wait","config","durationInMs","delay","Promise","all","resolve","globalThis","setTimeout","advanceTimers"],"sources":["../../../src/user-event/utils/wait.ts"],"sourcesContent":["import { UserEventConfig } from '../setup';\n\nexport function wait(config: UserEventConfig, durationInMs?: number) {\n const delay = durationInMs ?? config.delay;\n if (typeof delay !== 'number') {\n return;\n }\n\n return Promise.all([\n new Promise<void>((resolve) =>\n globalThis.setTimeout(() => resolve(), delay)\n ),\n config.advanceTimers(delay),\n ]);\n}\n"],"mappings":";;;;;;AAEO,SAASA,IAAIA,CAACC,MAAuB,EAAEC,YAAqB,EAAE;EACnE,MAAMC,KAAK,GAAGD,YAAY,IAAID,MAAM,CAACE,KAAK;EAC1C,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAC7B;EACF;EAEA,OAAOC,OAAO,CAACC,GAAG,CAAC,CACjB,IAAID,OAAO,CAAQE,OAAO,IACxBC,UAAU,CAACC,UAAU,CAAC,MAAMF,OAAO,CAAC,CAAC,EAAEH,KAAK,CAC9C,CAAC,EACDF,MAAM,CAACQ,aAAa,CAACN,KAAK,CAAC,CAC5B,CAAC;AACJ"}
|
package/build/waitFor.js
CHANGED
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = waitFor;
|
|
7
7
|
var _act = _interopRequireWildcard(require("./act"));
|
|
8
8
|
var _config = require("./config");
|
|
9
|
-
var _flushMicroTasks = require("./
|
|
9
|
+
var _flushMicroTasks = require("./flush-micro-tasks");
|
|
10
10
|
var _errors = require("./helpers/errors");
|
|
11
11
|
var _timers = require("./helpers/timers");
|
|
12
12
|
var _reactVersions = require("./react-versions");
|
|
@@ -76,7 +76,7 @@ function waitForInternal(expectation, {
|
|
|
76
76
|
// of parallelization so we're fine.
|
|
77
77
|
// https://stackoverflow.com/a/59243586/971592
|
|
78
78
|
// eslint-disable-next-line no-await-in-loop
|
|
79
|
-
await
|
|
79
|
+
await (0, _flushMicroTasks.flushMicroTasks)();
|
|
80
80
|
}
|
|
81
81
|
} else {
|
|
82
82
|
overallTimeoutTimer = (0, _timers.setTimeout)(handleTimeout, timeout);
|
|
@@ -186,7 +186,7 @@ async function waitFor(expectation, options) {
|
|
|
186
186
|
try {
|
|
187
187
|
const result = await waitForInternal(expectation, optionsWithStackTrace);
|
|
188
188
|
// Flush the microtask queue before restoring the `act` environment
|
|
189
|
-
await (0, _flushMicroTasks.
|
|
189
|
+
await (0, _flushMicroTasks.flushMicroTasksLegacy)();
|
|
190
190
|
return result;
|
|
191
191
|
} finally {
|
|
192
192
|
(0, _act.setReactActEnvironment)(previousActEnvironment);
|