@testing-library/react-native 12.2.0 → 12.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/fireEvent.js +1 -1
- package/build/fireEvent.js.map +1 -1
- package/build/helpers/component-tree.d.ts +11 -5
- package/build/helpers/component-tree.js +5 -1
- package/build/helpers/component-tree.js.map +1 -1
- package/build/helpers/findAll.d.ts +2 -1
- package/build/helpers/findAll.js +2 -1
- package/build/helpers/findAll.js.map +1 -1
- package/build/helpers/host-component-names.d.ts +11 -2
- package/build/helpers/host-component-names.js +10 -0
- package/build/helpers/host-component-names.js.map +1 -1
- package/build/helpers/matchers/matchLabelText.js +1 -1
- package/build/helpers/matchers/matchLabelText.js.map +1 -1
- package/build/queries/a11yState.js +1 -1
- package/build/queries/a11yState.js.map +1 -1
- package/build/queries/a11yValue.js +1 -1
- package/build/queries/a11yValue.js.map +1 -1
- package/build/queries/displayValue.js +5 -6
- package/build/queries/displayValue.js.map +1 -1
- package/build/queries/hintText.js +1 -1
- package/build/queries/hintText.js.map +1 -1
- package/build/queries/labelText.js +1 -1
- package/build/queries/labelText.js.map +1 -1
- package/build/queries/placeholderText.js +3 -4
- package/build/queries/placeholderText.js.map +1 -1
- package/build/queries/role.js +1 -1
- package/build/queries/role.js.map +1 -1
- package/build/queries/testId.js +3 -3
- package/build/queries/testId.js.map +1 -1
- package/build/queries/text.js +1 -2
- package/build/queries/text.js.map +1 -1
- package/build/render.js.map +1 -1
- package/build/user-event/clear.d.ts +3 -0
- package/build/user-event/clear.js +41 -0
- package/build/user-event/clear.js.map +1 -0
- package/build/user-event/index.d.ts +1 -0
- package/build/user-event/index.js +2 -1
- package/build/user-event/index.js.map +1 -1
- package/build/user-event/press/press.js +1 -4
- package/build/user-event/press/press.js.map +1 -1
- package/build/user-event/setup/setup.d.ts +14 -2
- package/build/user-event/setup/setup.js +3 -1
- package/build/user-event/setup/setup.js.map +1 -1
- package/build/user-event/type/type.d.ts +2 -1
- package/build/user-event/type/type.js +8 -4
- package/build/user-event/type/type.js.map +1 -1
- package/build/user-event/utils/host-components.d.ts +2 -0
- package/build/user-event/utils/host-components.js +11 -0
- package/build/user-event/utils/host-components.js.map +1 -0
- package/build/user-event/utils/index.d.ts +1 -0
- package/build/user-event/utils/index.js +11 -0
- package/build/user-event/utils/index.js.map +1 -1
- package/build/user-event/utils/text-range.d.ts +0 -1
- package/build/user-event/utils/text-range.js +0 -11
- package/build/user-event/utils/text-range.js.map +1 -1
- package/package.json +5 -4
- package/.DS_Store +0 -0
- package/.codecov.yml +0 -9
- package/.eslintcache +0 -1
- package/.eslintignore +0 -2
- 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/build/helpers/filterNodeByType.d.ts +0 -3
- package/build/helpers/filterNodeByType.js +0 -9
- package/build/helpers/filterNodeByType.js.map +0 -1
- package/coverage/clover.xml +0 -1176
- package/coverage/coverage-final.json +0 -70
- package/coverage/lcov-report/base.css +0 -224
- package/coverage/lcov-report/block-navigation.js +0 -87
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +0 -266
- package/coverage/lcov-report/prettify.css +0 -1
- package/coverage/lcov-report/prettify.js +0 -2
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +0 -196
- package/coverage/lcov-report/src/act.ts.html +0 -343
- package/coverage/lcov-report/src/cleanup.ts.html +0 -130
- package/coverage/lcov-report/src/config.ts.html +0 -301
- package/coverage/lcov-report/src/fireEvent.ts.html +0 -559
- package/coverage/lcov-report/src/flushMicroTasks.ts.html +0 -124
- package/coverage/lcov-report/src/helpers/accessiblity.ts.html +0 -412
- package/coverage/lcov-report/src/helpers/component-tree.ts.html +0 -352
- package/coverage/lcov-report/src/helpers/debugDeep.ts.html +0 -166
- package/coverage/lcov-report/src/helpers/debugShallow.ts.html +0 -151
- package/coverage/lcov-report/src/helpers/deprecation.ts.html +0 -244
- package/coverage/lcov-report/src/helpers/errors.ts.html +0 -283
- package/coverage/lcov-report/src/helpers/filterNodeByType.ts.html +0 -106
- package/coverage/lcov-report/src/helpers/findAll.ts.html +0 -289
- package/coverage/lcov-report/src/helpers/format-default.ts.html +0 -301
- package/coverage/lcov-report/src/helpers/format.ts.html +0 -226
- package/coverage/lcov-report/src/helpers/getTextContent.ts.html +0 -145
- package/coverage/lcov-report/src/helpers/host-component-names.tsx.html +0 -286
- package/coverage/lcov-report/src/helpers/index.html +0 -326
- package/coverage/lcov-report/src/helpers/matchers/accessibilityState.ts.html +0 -229
- package/coverage/lcov-report/src/helpers/matchers/accessibilityValue.ts.html +0 -157
- package/coverage/lcov-report/src/helpers/matchers/index.html +0 -206
- package/coverage/lcov-report/src/helpers/matchers/matchArrayProp.ts.html +0 -148
- package/coverage/lcov-report/src/helpers/matchers/matchLabelText.ts.html +0 -238
- package/coverage/lcov-report/src/helpers/matchers/matchObjectProp.ts.html +0 -160
- package/coverage/lcov-report/src/helpers/matchers/matchStringProp.ts.html +0 -154
- package/coverage/lcov-report/src/helpers/matchers/matchTextContent.ts.html +0 -145
- package/coverage/lcov-report/src/helpers/query-name.ts.html +0 -97
- package/coverage/lcov-report/src/helpers/stringValidation.ts.html +0 -193
- package/coverage/lcov-report/src/helpers/timers.ts.html +0 -382
- package/coverage/lcov-report/src/index.html +0 -356
- package/coverage/lcov-report/src/index.ts.html +0 -184
- package/coverage/lcov-report/src/matches.ts.html +0 -232
- package/coverage/lcov-report/src/pure.ts.html +0 -157
- package/coverage/lcov-report/src/queries/a11yState.ts.html +0 -478
- package/coverage/lcov-report/src/queries/a11yValue.ts.html +0 -478
- package/coverage/lcov-report/src/queries/displayValue.ts.html +0 -319
- package/coverage/lcov-report/src/queries/hintText.ts.html +0 -421
- package/coverage/lcov-report/src/queries/index.html +0 -281
- package/coverage/lcov-report/src/queries/labelText.ts.html +0 -262
- package/coverage/lcov-report/src/queries/makeQueries.ts.html +0 -850
- package/coverage/lcov-report/src/queries/placeholderText.ts.html +0 -322
- package/coverage/lcov-report/src/queries/role.ts.html +0 -481
- package/coverage/lcov-report/src/queries/testId.ts.html +0 -298
- package/coverage/lcov-report/src/queries/text.ts.html +0 -283
- package/coverage/lcov-report/src/queries/unsafeProps.ts.html +0 -313
- package/coverage/lcov-report/src/queries/unsafeType.ts.html +0 -304
- package/coverage/lcov-report/src/react-versions.ts.html +0 -118
- package/coverage/lcov-report/src/render-act.ts.html +0 -142
- package/coverage/lcov-report/src/render.tsx.html +0 -592
- package/coverage/lcov-report/src/renderHook.tsx.html +0 -262
- package/coverage/lcov-report/src/screen.ts.html +0 -454
- package/coverage/lcov-report/src/shallow.ts.html +0 -139
- package/coverage/lcov-report/src/test-utils/events.ts.html +0 -145
- package/coverage/lcov-report/src/test-utils/index.html +0 -131
- package/coverage/lcov-report/src/test-utils/index.ts.html +0 -88
- package/coverage/lcov-report/src/user-event/event-builder/common.ts.html +0 -229
- package/coverage/lcov-report/src/user-event/event-builder/index.html +0 -146
- package/coverage/lcov-report/src/user-event/event-builder/index.ts.html +0 -106
- package/coverage/lcov-report/src/user-event/event-builder/test-input.ts.html +0 -343
- package/coverage/lcov-report/src/user-event/event-builder/text-input.ts.html +0 -343
- package/coverage/lcov-report/src/user-event/index.html +0 -116
- package/coverage/lcov-report/src/user-event/index.ts.html +0 -121
- package/coverage/lcov-report/src/user-event/press/index.html +0 -131
- package/coverage/lcov-report/src/user-event/press/index.ts.html +0 -88
- package/coverage/lcov-report/src/user-event/press/press.ts.html +0 -133
- package/coverage/lcov-report/src/user-event/setup/index.html +0 -131
- package/coverage/lcov-report/src/user-event/setup/index.ts.html +0 -91
- package/coverage/lcov-report/src/user-event/setup/setup.ts.html +0 -358
- package/coverage/lcov-report/src/user-event/type/index.html +0 -146
- package/coverage/lcov-report/src/user-event/type/index.ts.html +0 -88
- package/coverage/lcov-report/src/user-event/type/parseKeys.ts.html +0 -208
- package/coverage/lcov-report/src/user-event/type/type.ts.html +0 -484
- package/coverage/lcov-report/src/user-event/utils/content-size.ts.html +0 -160
- package/coverage/lcov-report/src/user-event/utils/dispatch-event.ts.html +0 -367
- package/coverage/lcov-report/src/user-event/utils/events.ts.html +0 -247
- package/coverage/lcov-report/src/user-event/utils/index.html +0 -176
- package/coverage/lcov-report/src/user-event/utils/index.ts.html +0 -97
- package/coverage/lcov-report/src/user-event/utils/text-range.ts.html +0 -118
- package/coverage/lcov-report/src/user-event/utils/wait.ts.html +0 -130
- package/coverage/lcov-report/src/waitFor.ts.html +0 -772
- package/coverage/lcov-report/src/waitForElementToBeRemoved.ts.html +0 -211
- package/coverage/lcov-report/src/within.ts.html +0 -175
- package/coverage/lcov.info +0 -2614
- package/examples/.DS_Store +0 -0
- package/examples/basic/.expo/README.md +0 -17
- package/examples/basic/.expo/devices.json +0 -3
- package/examples/basic/.expo/packager-info.json +0 -4
- package/examples/basic/.expo/settings.json +0 -8
- 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 -119
- 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-error.log +0 -8083
- package/examples/basic/yarn.lock +0 -8878
- 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 -5610
- 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-error.log +0 -8083
- package/examples/redux/yarn.lock +0 -8423
- package/experiments-app/.expo/README.md +0 -15
- package/experiments-app/.expo/devices.json +0 -3
- package/experiments-app/.expo/settings.json +0 -10
- 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 -31
- package/experiments-app/src/App.tsx +0 -31
- package/experiments-app/src/MainScreen.tsx +0 -51
- package/experiments-app/src/experiments.ts +0 -17
- package/experiments-app/src/screens/TextInputEventPropagation.tsx +0 -54
- package/experiments-app/src/screens/TextInputEvents.tsx +0 -60
- package/experiments-app/src/utils/helpers.ts +0 -8
- package/experiments-app/tsconfig.json +0 -6
- package/experiments-app/yarn.lock +0 -6913
- 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/.DS_Store +0 -0
- package/src/__tests__/.DS_Store +0 -0
- 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 -89
- 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/filterNodeByType.ts +0 -7
- package/src/helpers/findAll.ts +0 -68
- 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 -75
- 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 -51
- 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 -131
- package/src/queries/a11yValue.ts +0 -131
- package/src/queries/displayValue.ts +0 -78
- package/src/queries/hintText.ts +0 -112
- package/src/queries/labelText.ts +0 -59
- package/src/queries/makeQueries.ts +0 -255
- package/src/queries/options.ts +0 -14
- package/src/queries/placeholderText.ts +0 -79
- package/src/queries/role.ts +0 -132
- package/src/queries/testId.ts +0 -71
- package/src/queries/text.ts +0 -66
- 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/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 -17
- 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 -169
- package/src/user-event/setup/index.ts +0 -2
- package/src/user-event/setup/setup.ts +0 -127
- 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 -121
- package/src/user-event/type/__tests__/type.test.tsx +0 -336
- 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 -135
- package/src/user-event/utils/__tests__/dispatch-event.test.tsx +0 -41
- package/src/user-event/utils/__tests__/wait.test.ts +0 -63
- 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/index.ts +0 -5
- package/src/user-event/utils/text-range.ts +0 -11
- 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/.DS_Store +0 -0
- package/website/.docusaurus/DONT-EDIT-THIS-FOLDER +0 -5
- package/website/.docusaurus/client-modules.js +0 -6
- package/website/.docusaurus/codeTranslations.json +0 -1
- package/website/.docusaurus/docusaurus-plugin-content-blog/default/blog-post-list-prop-default.json +0 -4
- package/website/.docusaurus/docusaurus-plugin-content-blog/default/plugin-route-context-module-100.json +0 -4
- package/website/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json +0 -4
- package/website/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-api-md-c82.json +0 -27
- package/website/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-eslint-p-llugin-testing-library-md-d24.json +0 -27
- package/website/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-faq-md-ad8.json +0 -27
- package/website/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-getting-started-md-8a6.json +0 -23
- package/website/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-how-should-i-query-md-f2d.json +0 -27
- package/website/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-migration-v-11-md-add.json +0 -27
- package/website/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-migration-v-12-md-14f.json +0 -27
- package/website/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-migration-v-2-md-698.json +0 -27
- package/website/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-migration-v-7-md-6bb.json +0 -27
- package/website/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-migration-v-9-md-f69.json +0 -27
- package/website/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-queries-md-7ad.json +0 -27
- package/website/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-react-navigation-md-1bd.json +0 -27
- package/website/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-redux-integration-md-77b.json +0 -23
- package/website/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-testing-environment-md-1c6.json +0 -27
- package/website/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-troubleshooting-md-01d.json +0 -27
- package/website/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-understanding-act-md-aa9.json +0 -27
- package/website/.docusaurus/docusaurus-plugin-content-docs/default/site-docs-user-event-md-501.json +0 -27
- package/website/.docusaurus/docusaurus-plugin-content-docs/default/version-current-metadata-prop-751.json +0 -268
- package/website/.docusaurus/docusaurus-plugin-content-docs/react-native-testing-library-docs-route-96e.json +0 -115
- package/website/.docusaurus/docusaurus-plugin-content-docs/site-docs-api-md-c82.json +0 -19
- package/website/.docusaurus/docusaurus-plugin-content-docs/site-docs-eslint-p-llugin-testing-library-md-d24.json +0 -19
- package/website/.docusaurus/docusaurus-plugin-content-docs/site-docs-faq-md-ad8.json +0 -19
- package/website/.docusaurus/docusaurus-plugin-content-docs/site-docs-getting-started-md-8a6.json +0 -15
- package/website/.docusaurus/docusaurus-plugin-content-docs/site-docs-how-should-i-query-md-f2d.json +0 -19
- package/website/.docusaurus/docusaurus-plugin-content-docs/site-docs-migration-v-11-md-add.json +0 -19
- package/website/.docusaurus/docusaurus-plugin-content-docs/site-docs-migration-v-2-md-698.json +0 -19
- package/website/.docusaurus/docusaurus-plugin-content-docs/site-docs-migration-v-7-md-6bb.json +0 -19
- package/website/.docusaurus/docusaurus-plugin-content-docs/site-docs-migration-v-9-md-f69.json +0 -19
- package/website/.docusaurus/docusaurus-plugin-content-docs/site-docs-queries-md-7ad.json +0 -19
- package/website/.docusaurus/docusaurus-plugin-content-docs/site-docs-react-navigation-md-1bd.json +0 -19
- package/website/.docusaurus/docusaurus-plugin-content-docs/site-docs-redux-integration-md-77b.json +0 -15
- package/website/.docusaurus/docusaurus-plugin-content-docs/site-docs-troubleshooting-md-01d.json +0 -19
- package/website/.docusaurus/docusaurus-plugin-content-docs/site-docs-understanding-act-md-aa9.json +0 -19
- package/website/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json +0 -4
- package/website/.docusaurus/docusaurus-plugin-debug/default/docusaurus-debug-all-content-673.json +0 -623
- package/website/.docusaurus/docusaurus-plugin-debug/default/plugin-route-context-module-100.json +0 -4
- package/website/.docusaurus/docusaurus-theme-search-algolia/default/plugin-route-context-module-100.json +0 -4
- package/website/.docusaurus/docusaurus.config.js +0 -267
- package/website/.docusaurus/docusaurus.config.mjs +0 -365
- package/website/.docusaurus/globalData.json +0 -113
- package/website/.docusaurus/i18n.json +0 -17
- package/website/.docusaurus/registry.js +0 -35
- package/website/.docusaurus/routes.js +0 -162
- package/website/.docusaurus/routesChunkNames.json +0 -133
- package/website/.docusaurus/site-metadata.json +0 -36
- 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 -567
- 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 -143
- 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-error.log +0 -10613
- package/yarn.lock +0 -7765
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
# RNTL example app for React Navigation
|
|
2
|
-
|
|
3
|
-
**Note: this example is stale and might not function correctly.**
|
|
4
|
-
|
|
5
|
-
This example shows how to write integration tests using React Navigation without mocking it. Presented approach has been consulted with and influenced by React Navigation team.
|
|
6
|
-
|
|
7
|
-
## Recommended tests
|
|
8
|
-
|
|
9
|
-
There are two types of recommeded tests:
|
|
10
|
-
1. Tests operating on navigator level - these use `renderNavigator` helper to render a navigator component used in the app. It is useful when you want to test a scenario that includes multiple screens.
|
|
11
|
-
2. Tests operating on single screen level - these use regular `render` helper but require refactoring screen components into `Screen` and `ScreenContent` components. Where `Screen` receives React Navigation props and/or uses hooks like `useNavigation` while `ScreenContent` does not have a direct relation to React Navigation API but gets props from `Screen` and calls relevant callbacks to trigger navigation.
|
|
12
|
-
|
|
13
|
-
## Non-recommended tests
|
|
14
|
-
|
|
15
|
-
There also exists another popular type of screen level tests, where users mock React Navigation objects like `navigation`, `route` and/or hooks like `useNavigation`, etc. We don't recommend this way of testing. **Mocking internal parts of the libraries is effectively testing implementation details, which goes against the Testing Library's [Guiding Principles](https://testing-library.com/docs/guiding-principles/)**.
|
|
16
|
-
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/* eslint-disable no-undef, import/no-extraneous-dependencies */
|
|
2
|
-
|
|
3
|
-
// Import Jest Native matchers
|
|
4
|
-
import '@testing-library/jest-native/extend-expect';
|
|
5
|
-
|
|
6
|
-
// Silence the warning: Animated: `useNativeDriver` is not supported because the native animated module is missing
|
|
7
|
-
jest.mock('react-native/Libraries/Animated/NativeAnimatedHelper');
|
|
8
|
-
|
|
9
|
-
// Setup Reanimated mocking for Drawer navigation
|
|
10
|
-
global.ReanimatedDataMock = { now: () => Date.now() };
|
|
11
|
-
require('react-native-reanimated/lib/reanimated2/jestUtils').setUpTests();
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
module.exports = {
|
|
2
|
-
preset: 'react-native',
|
|
3
|
-
setupFilesAfterEnv: [
|
|
4
|
-
'./node_modules/react-native-gesture-handler/jestSetup.js',
|
|
5
|
-
'./jest-setup.js',
|
|
6
|
-
],
|
|
7
|
-
transformIgnorePatterns: [
|
|
8
|
-
'node_modules/(?!(jest-)?react-native|@react-native|@react-native-community|@react-navigation)',
|
|
9
|
-
],
|
|
10
|
-
};
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "react-navigation-example",
|
|
3
|
-
"description": "Testing React Navigation with RNTL",
|
|
4
|
-
"version": "0.0.1",
|
|
5
|
-
"private": true,
|
|
6
|
-
"scripts": {
|
|
7
|
-
"test": "jest"
|
|
8
|
-
},
|
|
9
|
-
"dependencies": {
|
|
10
|
-
"@react-navigation/bottom-tabs": "^6.4.1",
|
|
11
|
-
"@react-navigation/drawer": "^6.5.1",
|
|
12
|
-
"@react-navigation/native": "^6.0.14",
|
|
13
|
-
"@react-navigation/native-stack": "^6.9.2",
|
|
14
|
-
"@react-navigation/stack": "^6.3.5",
|
|
15
|
-
"react": "18.2.0",
|
|
16
|
-
"react-native": "0.72.3",
|
|
17
|
-
"react-native-gesture-handler": "^2.8.0",
|
|
18
|
-
"react-native-reanimated": "^2.13.0",
|
|
19
|
-
"react-native-safe-area-context": "^4.4.1",
|
|
20
|
-
"react-native-screens": "^3.18.2"
|
|
21
|
-
},
|
|
22
|
-
"devDependencies": {
|
|
23
|
-
"@babel/core": "^7.20.2",
|
|
24
|
-
"@testing-library/jest-native": "^5.4.2",
|
|
25
|
-
"@testing-library/react-native": "^12.1.3",
|
|
26
|
-
"babel-jest": "^29.3.1",
|
|
27
|
-
"jest": "^29.3.0",
|
|
28
|
-
"metro-react-native-babel-preset": "^0.72.3",
|
|
29
|
-
"react-test-renderer": "18.2.0"
|
|
30
|
-
}
|
|
31
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { StatusBar, StyleSheet, View } from 'react-native';
|
|
3
|
-
import { NavigationContainer } from '@react-navigation/native';
|
|
4
|
-
import AppNavigator from './NativeStackNavigator';
|
|
5
|
-
|
|
6
|
-
export default function App() {
|
|
7
|
-
return (
|
|
8
|
-
<NavigationContainer>
|
|
9
|
-
<View style={styles.container}>
|
|
10
|
-
<StatusBar barStyle="dark-content" />
|
|
11
|
-
<AppNavigator />
|
|
12
|
-
</View>
|
|
13
|
-
</NavigationContainer>
|
|
14
|
-
);
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
const styles = StyleSheet.create({
|
|
18
|
-
container: {
|
|
19
|
-
flex: 1,
|
|
20
|
-
},
|
|
21
|
-
});
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { createDrawerNavigator } from '@react-navigation/drawer';
|
|
3
|
-
import DrawerHomeScreen from './screens/DrawerHomeScreen';
|
|
4
|
-
import SettingsScreen from './screens/SettingsScreen';
|
|
5
|
-
|
|
6
|
-
const Drawer = createDrawerNavigator();
|
|
7
|
-
|
|
8
|
-
export default function Navigation() {
|
|
9
|
-
return (
|
|
10
|
-
<Drawer.Navigator>
|
|
11
|
-
<Drawer.Screen name="Home" component={DrawerHomeScreen} />
|
|
12
|
-
<Drawer.Screen name="Settings" component={SettingsScreen} />
|
|
13
|
-
</Drawer.Navigator>
|
|
14
|
-
);
|
|
15
|
-
}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { screen, fireEvent } from '@testing-library/react-native';
|
|
3
|
-
import { renderNavigator } from './test-utils';
|
|
4
|
-
import DrawerNavigator from './DrawerNavigator';
|
|
5
|
-
|
|
6
|
-
test('Changing screens', () => {
|
|
7
|
-
renderNavigator(<DrawerNavigator />);
|
|
8
|
-
|
|
9
|
-
// Assert initial screen
|
|
10
|
-
expect(screen.getByRole('header', { name: 'Home screen' })).toBeOnTheScreen();
|
|
11
|
-
|
|
12
|
-
// Open drawer by pressing button
|
|
13
|
-
const toggleButton = screen.getByText('Toggle drawer');
|
|
14
|
-
fireEvent.press(toggleButton);
|
|
15
|
-
|
|
16
|
-
// Assert drawer state
|
|
17
|
-
expect(screen.getByRole('button', { name: 'Home' })).toHaveAccessibilityState(
|
|
18
|
-
{ selected: true }
|
|
19
|
-
);
|
|
20
|
-
expect(
|
|
21
|
-
screen.getByRole('button', { name: 'Settings' })
|
|
22
|
-
).toHaveAccessibilityState({ selected: false });
|
|
23
|
-
|
|
24
|
-
// Press drawer item
|
|
25
|
-
fireEvent.press(screen.getByRole('button', { name: 'Settings' }));
|
|
26
|
-
|
|
27
|
-
// Assert drawer state after action
|
|
28
|
-
expect(screen.getByRole('button', { name: 'Home' })).toHaveAccessibilityState(
|
|
29
|
-
{ selected: false }
|
|
30
|
-
);
|
|
31
|
-
expect(
|
|
32
|
-
screen.getByRole('button', { name: 'Settings' })
|
|
33
|
-
).toHaveAccessibilityState({ selected: true });
|
|
34
|
-
|
|
35
|
-
// Assert visible screen
|
|
36
|
-
expect(
|
|
37
|
-
screen.getByRole('header', { name: 'Settings screen' })
|
|
38
|
-
).toBeOnTheScreen();
|
|
39
|
-
expect(
|
|
40
|
-
screen.queryByRole('header', { name: 'Home screen' })
|
|
41
|
-
).not.toBeOnTheScreen();
|
|
42
|
-
});
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { createNativeStackNavigator } from '@react-navigation/native-stack';
|
|
3
|
-
import HomeScreen from './screens/HomeScreen';
|
|
4
|
-
import DetailsScreen from './screens/DetailsScreen';
|
|
5
|
-
|
|
6
|
-
const Stack = createNativeStackNavigator();
|
|
7
|
-
|
|
8
|
-
export default function Navigation() {
|
|
9
|
-
return (
|
|
10
|
-
<Stack.Navigator>
|
|
11
|
-
<Stack.Screen name="Home" component={HomeScreen} />
|
|
12
|
-
<Stack.Screen name="Details" component={DetailsScreen} />
|
|
13
|
-
</Stack.Navigator>
|
|
14
|
-
);
|
|
15
|
-
}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { screen, fireEvent } from '@testing-library/react-native';
|
|
3
|
-
import { renderNavigator } from './test-utils';
|
|
4
|
-
import NativeStackNavigator from './NativeStackNavigator';
|
|
5
|
-
|
|
6
|
-
test('Home screen contains the header and list of items', () => {
|
|
7
|
-
renderNavigator(<NativeStackNavigator />);
|
|
8
|
-
|
|
9
|
-
expect(screen.getByRole('header', { name: 'Home screen' })).toBeOnTheScreen();
|
|
10
|
-
expect(screen.getAllByRole('button', { name: /Item/ })).toHaveLength(10);
|
|
11
|
-
|
|
12
|
-
expect(
|
|
13
|
-
screen.queryByRole('header', { name: /Details for item/i })
|
|
14
|
-
).not.toBeOnTheScreen();
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
test('Pressing an item takes user to the details screen', () => {
|
|
18
|
-
renderNavigator(<NativeStackNavigator />);
|
|
19
|
-
|
|
20
|
-
const item5 = screen.getByRole('button', { name: 'Item 5' });
|
|
21
|
-
fireEvent.press(item5);
|
|
22
|
-
|
|
23
|
-
expect(
|
|
24
|
-
screen.getByRole('header', { name: 'Details for Item 5' })
|
|
25
|
-
).toBeOnTheScreen();
|
|
26
|
-
expect(
|
|
27
|
-
screen.getByText('The number you have chosen is 5.')
|
|
28
|
-
).toBeOnTheScreen();
|
|
29
|
-
|
|
30
|
-
// Home screen is still in the element tree but it is hidden from accessibility
|
|
31
|
-
expect(
|
|
32
|
-
screen.queryByRole('header', { name: 'Home screen' })
|
|
33
|
-
).not.toBeOnTheScreen();
|
|
34
|
-
});
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { createStackNavigator } from '@react-navigation/stack';
|
|
3
|
-
import HomeScreen from './screens/HomeScreen';
|
|
4
|
-
import DetailsScreen from './screens/DetailsScreen';
|
|
5
|
-
|
|
6
|
-
const Stack = createStackNavigator();
|
|
7
|
-
|
|
8
|
-
export default function Navigation() {
|
|
9
|
-
return (
|
|
10
|
-
<Stack.Navigator>
|
|
11
|
-
<Stack.Screen name="Home" component={HomeScreen} />
|
|
12
|
-
<Stack.Screen name="Details" component={DetailsScreen} />
|
|
13
|
-
</Stack.Navigator>
|
|
14
|
-
);
|
|
15
|
-
}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { screen, fireEvent } from '@testing-library/react-native';
|
|
3
|
-
import { renderNavigator } from './test-utils';
|
|
4
|
-
import StackNavigator from './StackNavigator';
|
|
5
|
-
|
|
6
|
-
test('Home screen contains the header and list of items', () => {
|
|
7
|
-
renderNavigator(<StackNavigator />);
|
|
8
|
-
|
|
9
|
-
expect(screen.getByRole('header', { name: 'Home screen' })).toBeOnTheScreen();
|
|
10
|
-
expect(screen.getAllByRole('button', { name: /Item/ })).toHaveLength(10);
|
|
11
|
-
|
|
12
|
-
expect(
|
|
13
|
-
screen.queryByRole('header', { name: /Details for item/i })
|
|
14
|
-
).not.toBeOnTheScreen();
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
test('Pressing an item takes user to the details screen', () => {
|
|
18
|
-
renderNavigator(<StackNavigator />);
|
|
19
|
-
|
|
20
|
-
const item5 = screen.getByRole('button', { name: 'Item 5' });
|
|
21
|
-
fireEvent.press(item5);
|
|
22
|
-
|
|
23
|
-
expect(
|
|
24
|
-
screen.getByRole('header', { name: 'Details for Item 5' })
|
|
25
|
-
).toBeOnTheScreen();
|
|
26
|
-
expect(
|
|
27
|
-
screen.getByText('The number you have chosen is 5.')
|
|
28
|
-
).toBeOnTheScreen();
|
|
29
|
-
|
|
30
|
-
// Home screen is still in the element tree but it is hidden from accessibility
|
|
31
|
-
expect(
|
|
32
|
-
screen.queryByRole('header', { name: 'Home screen' })
|
|
33
|
-
).not.toBeOnTheScreen();
|
|
34
|
-
});
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
|
|
3
|
-
import HomeScreen from './screens/HomeScreen';
|
|
4
|
-
import SettingsScreen from './screens/SettingsScreen';
|
|
5
|
-
|
|
6
|
-
const Tab = createBottomTabNavigator();
|
|
7
|
-
|
|
8
|
-
export default function Navigation() {
|
|
9
|
-
return (
|
|
10
|
-
<Tab.Navigator>
|
|
11
|
-
<Tab.Screen name="Home" component={HomeScreen} />
|
|
12
|
-
<Tab.Screen name="Settings" component={SettingsScreen} />
|
|
13
|
-
</Tab.Navigator>
|
|
14
|
-
);
|
|
15
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { screen, fireEvent } from '@testing-library/react-native';
|
|
3
|
-
import { renderNavigator } from './test-utils';
|
|
4
|
-
import TabNavigator from './TabNavigator';
|
|
5
|
-
|
|
6
|
-
test('Changing tabs', () => {
|
|
7
|
-
renderNavigator(<TabNavigator />);
|
|
8
|
-
expect(screen.getByRole('header', { name: 'Home screen' })).toBeOnTheScreen();
|
|
9
|
-
|
|
10
|
-
// Note: React Navigation uses `button` role for tab buttons as workaround.
|
|
11
|
-
// It should actually be `tab` role.
|
|
12
|
-
const settingsTab = screen.getByRole('button', { name: 'Settings' });
|
|
13
|
-
fireEvent.press(settingsTab);
|
|
14
|
-
|
|
15
|
-
expect(
|
|
16
|
-
screen.getByRole('header', { name: 'Settings screen' })
|
|
17
|
-
).toBeOnTheScreen();
|
|
18
|
-
expect(
|
|
19
|
-
screen.queryByRole('header', { name: 'Home screen' })
|
|
20
|
-
).not.toBeOnTheScreen();
|
|
21
|
-
});
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { StyleSheet, View, Text, Pressable } from 'react-native';
|
|
3
|
-
|
|
4
|
-
export default function DetailsScreen({ navigation, route }) {
|
|
5
|
-
const item = route.params;
|
|
6
|
-
return (
|
|
7
|
-
<DetailsScreenContent item={item} onGoBack={() => navigation.goBack()} />
|
|
8
|
-
);
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export function DetailsScreenContent({ item, onGoBack }) {
|
|
12
|
-
return (
|
|
13
|
-
<View>
|
|
14
|
-
<Text accessibilityRole="header" style={styles.header}>
|
|
15
|
-
Details for {item.title}
|
|
16
|
-
</Text>
|
|
17
|
-
<Text style={styles.body}>
|
|
18
|
-
The number you have chosen is {item.value}.
|
|
19
|
-
</Text>
|
|
20
|
-
|
|
21
|
-
<BackButton onPress={onGoBack} />
|
|
22
|
-
</View>
|
|
23
|
-
);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
function BackButton({ onPress }) {
|
|
27
|
-
return (
|
|
28
|
-
<Pressable accessibilityRole="button" onPress={onPress}>
|
|
29
|
-
<Text>Go Back</Text>
|
|
30
|
-
</Pressable>
|
|
31
|
-
);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
const styles = StyleSheet.create({
|
|
35
|
-
header: {
|
|
36
|
-
fontSize: 20,
|
|
37
|
-
textAlign: 'center',
|
|
38
|
-
marginVertical: 16,
|
|
39
|
-
},
|
|
40
|
-
body: {
|
|
41
|
-
textAlign: 'center',
|
|
42
|
-
},
|
|
43
|
-
});
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { render, screen, fireEvent } from '@testing-library/react-native';
|
|
3
|
-
import { DetailsScreenContent } from './DetailsScreen';
|
|
4
|
-
|
|
5
|
-
test('Details screen contains the header and content', () => {
|
|
6
|
-
const item = {
|
|
7
|
-
id: 100,
|
|
8
|
-
title: 'Item 100',
|
|
9
|
-
value: 100,
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
const onGoBack = jest.fn();
|
|
13
|
-
|
|
14
|
-
// Passing both navigation and route to the screen as props
|
|
15
|
-
render(<DetailsScreenContent item={item} onGoBack={onGoBack} />);
|
|
16
|
-
|
|
17
|
-
expect(
|
|
18
|
-
screen.getByRole('header', { name: 'Details for Item 100' })
|
|
19
|
-
).toBeOnTheScreen();
|
|
20
|
-
expect(
|
|
21
|
-
screen.getByText('The number you have chosen is 100.')
|
|
22
|
-
).toBeOnTheScreen();
|
|
23
|
-
|
|
24
|
-
// Note: Go Back button get navigation from `useNavigation` hook
|
|
25
|
-
fireEvent.press(screen.getByRole('button', { name: 'Go Back' }));
|
|
26
|
-
expect(onGoBack).toHaveBeenCalledTimes(1);
|
|
27
|
-
});
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { StyleSheet, View, Text, Pressable } from 'react-native';
|
|
3
|
-
|
|
4
|
-
export default function DrawerHomeScreen({ navigation }) {
|
|
5
|
-
const handleToggleDrawer = () => navigation.toggleDrawer();
|
|
6
|
-
|
|
7
|
-
return (
|
|
8
|
-
<View>
|
|
9
|
-
<Text accessibilityRole="header" style={styles.header}>
|
|
10
|
-
Home screen
|
|
11
|
-
</Text>
|
|
12
|
-
|
|
13
|
-
<Pressable accessiblityRole="button" onPress={handleToggleDrawer}>
|
|
14
|
-
<Text>Toggle drawer</Text>
|
|
15
|
-
</Pressable>
|
|
16
|
-
</View>
|
|
17
|
-
);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
const styles = StyleSheet.create({
|
|
21
|
-
header: {
|
|
22
|
-
fontSize: 20,
|
|
23
|
-
textAlign: 'center',
|
|
24
|
-
marginVertical: 16,
|
|
25
|
-
},
|
|
26
|
-
});
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { StyleSheet, View, Text, FlatList, Pressable } from 'react-native';
|
|
3
|
-
|
|
4
|
-
const mockData = new Array(20).fill(null).map((_, index) => ({
|
|
5
|
-
id: index + 1,
|
|
6
|
-
title: `Item ${index + 1}`,
|
|
7
|
-
value: index + 1,
|
|
8
|
-
}));
|
|
9
|
-
|
|
10
|
-
export default function HomeScreen({ navigation }) {
|
|
11
|
-
const handleItemPress = (item) => navigation.navigate('Details', item);
|
|
12
|
-
|
|
13
|
-
const renderItem = ({ item }) => {
|
|
14
|
-
return (
|
|
15
|
-
<Pressable
|
|
16
|
-
accessibilityRole="button"
|
|
17
|
-
onPress={() => handleItemPress(item)}
|
|
18
|
-
style={styles.row}
|
|
19
|
-
>
|
|
20
|
-
<Text>{item.title}</Text>
|
|
21
|
-
</Pressable>
|
|
22
|
-
);
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
return (
|
|
26
|
-
<View>
|
|
27
|
-
<Text accessibilityRole="header" style={styles.header}>
|
|
28
|
-
Home screen
|
|
29
|
-
</Text>
|
|
30
|
-
|
|
31
|
-
<FlatList data={mockData} renderItem={renderItem} />
|
|
32
|
-
</View>
|
|
33
|
-
);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
const styles = StyleSheet.create({
|
|
37
|
-
header: {
|
|
38
|
-
fontSize: 20,
|
|
39
|
-
textAlign: 'center',
|
|
40
|
-
marginVertical: 16,
|
|
41
|
-
},
|
|
42
|
-
row: {
|
|
43
|
-
paddingVertical: 16,
|
|
44
|
-
paddingHorizontal: 24,
|
|
45
|
-
borderBottomColor: '#DDDDDD',
|
|
46
|
-
borderBottomWidth: 1,
|
|
47
|
-
},
|
|
48
|
-
});
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { StyleSheet, View, Text } from 'react-native';
|
|
3
|
-
|
|
4
|
-
export default function SettingsScreen() {
|
|
5
|
-
return (
|
|
6
|
-
<View>
|
|
7
|
-
<Text accessibilityRole="header" style={styles.header}>
|
|
8
|
-
Settings screen
|
|
9
|
-
</Text>
|
|
10
|
-
</View>
|
|
11
|
-
);
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
const styles = StyleSheet.create({
|
|
15
|
-
header: {
|
|
16
|
-
fontSize: 20,
|
|
17
|
-
textAlign: 'center',
|
|
18
|
-
marginVertical: 16,
|
|
19
|
-
},
|
|
20
|
-
});
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/* eslint-disable no-undef, import/no-extraneous-dependencies */
|
|
2
|
-
import * as React from 'react';
|
|
3
|
-
import { NavigationContainer } from '@react-navigation/native';
|
|
4
|
-
import { render } from '@testing-library/react-native';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Render given JSX inside Navigation container.
|
|
8
|
-
* This should be used for rendering whole navigators as used by real app.
|
|
9
|
-
*/
|
|
10
|
-
export function renderNavigator(ui) {
|
|
11
|
-
return render(<NavigationContainer>{ui}</NavigationContainer>);
|
|
12
|
-
}
|