@testing-library/react-native 12.2.1 → 12.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (302) hide show
  1. package/package.json +2 -3
  2. package/.DS_Store +0 -0
  3. package/.codecov.yml +0 -9
  4. package/.eslintcache +0 -1
  5. package/.eslintignore +0 -3
  6. package/.eslintrc +0 -19
  7. package/.flowconfig +0 -63
  8. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -38
  9. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -14
  10. package/.github/ISSUE_TEMPLATE/question.md +0 -9
  11. package/.github/PULL_REQUEST_TEMPLATE.md +0 -10
  12. package/.github/actions/setup-deps/action.yml +0 -22
  13. package/.github/actions/setup-website-deps/action.yml +0 -22
  14. package/.github/dependabot.yml +0 -10
  15. package/.github/workflows/deploy-website.yml +0 -36
  16. package/.github/workflows/example-apps.yml +0 -25
  17. package/.github/workflows/main.yml +0 -103
  18. package/.gitignore +0 -11
  19. package/.prettierrc.js +0 -5
  20. package/CODE_OF_CONDUCT.md +0 -73
  21. package/CONTRIBUTING.md +0 -64
  22. package/babel.config.js +0 -22
  23. package/examples/basic/.expo/README.md +0 -15
  24. package/examples/basic/.expo/packager-info.json +0 -4
  25. package/examples/basic/.expo/settings.json +0 -10
  26. package/examples/basic/.expo-shared/assets.json +0 -4
  27. package/examples/basic/.gitignore +0 -14
  28. package/examples/basic/App.tsx +0 -20
  29. package/examples/basic/README.md +0 -11
  30. package/examples/basic/__tests__/App.test.tsx +0 -137
  31. package/examples/basic/app.json +0 -31
  32. package/examples/basic/assets/adaptive-icon.png +0 -0
  33. package/examples/basic/assets/favicon.png +0 -0
  34. package/examples/basic/assets/icon.png +0 -0
  35. package/examples/basic/assets/splash.png +0 -0
  36. package/examples/basic/babel.config.js +0 -6
  37. package/examples/basic/components/Home.tsx +0 -28
  38. package/examples/basic/components/LoginForm.tsx +0 -138
  39. package/examples/basic/jest-setup.ts +0 -7
  40. package/examples/basic/jest.config.js +0 -5
  41. package/examples/basic/package.json +0 -30
  42. package/examples/basic/tsconfig.json +0 -7
  43. package/examples/basic/yarn.lock +0 -7499
  44. package/examples/react-navigation/README.md +0 -16
  45. package/examples/react-navigation/babel.config.js +0 -4
  46. package/examples/react-navigation/jest-setup.js +0 -11
  47. package/examples/react-navigation/jest.config.js +0 -10
  48. package/examples/react-navigation/package.json +0 -31
  49. package/examples/react-navigation/src/App.js +0 -21
  50. package/examples/react-navigation/src/DrawerNavigator.js +0 -15
  51. package/examples/react-navigation/src/DrawerNavigator.test.js +0 -42
  52. package/examples/react-navigation/src/NativeStackNavigator.js +0 -15
  53. package/examples/react-navigation/src/NativeStackNavigator.test.js +0 -34
  54. package/examples/react-navigation/src/StackNavigator.js +0 -15
  55. package/examples/react-navigation/src/StackNavigator.test.js +0 -34
  56. package/examples/react-navigation/src/TabNavigator.js +0 -15
  57. package/examples/react-navigation/src/TabNavigator.test.js +0 -21
  58. package/examples/react-navigation/src/screens/DetailsScreen.js +0 -43
  59. package/examples/react-navigation/src/screens/DetailsScreen.test.js +0 -27
  60. package/examples/react-navigation/src/screens/DrawerHomeScreen.js +0 -26
  61. package/examples/react-navigation/src/screens/HomeScreen.js +0 -48
  62. package/examples/react-navigation/src/screens/SettingsScreen.js +0 -20
  63. package/examples/react-navigation/src/test-utils.js +0 -12
  64. package/examples/react-navigation/yarn.lock +0 -5018
  65. package/examples/redux/App.js +0 -27
  66. package/examples/redux/README.md +0 -5
  67. package/examples/redux/actions/todoActions.js +0 -25
  68. package/examples/redux/babel.config.js +0 -6
  69. package/examples/redux/components/AddTodo.js +0 -73
  70. package/examples/redux/components/AddTodo.test.js +0 -27
  71. package/examples/redux/components/TodoElem.js +0 -25
  72. package/examples/redux/components/TodoList.js +0 -29
  73. package/examples/redux/components/TodoList.test.js +0 -34
  74. package/examples/redux/index.js +0 -8
  75. package/examples/redux/jest-setup.js +0 -2
  76. package/examples/redux/jest.config.js +0 -4
  77. package/examples/redux/package.json +0 -23
  78. package/examples/redux/reducers/index.js +0 -6
  79. package/examples/redux/reducers/todoReducer.js +0 -27
  80. package/examples/redux/store.js +0 -10
  81. package/examples/redux/test-utils.js +0 -11
  82. package/examples/redux/yarn.lock +0 -4819
  83. package/experiments-app/.expo/README.md +0 -15
  84. package/experiments-app/.expo/devices.json +0 -3
  85. package/experiments-app/.expo/packager-info.json +0 -9
  86. package/experiments-app/.expo/settings.json +0 -9
  87. package/experiments-app/.gitignore +0 -17
  88. package/experiments-app/.prettierrc.js +0 -5
  89. package/experiments-app/app.json +0 -30
  90. package/experiments-app/assets/adaptive-icon.png +0 -0
  91. package/experiments-app/assets/favicon.png +0 -0
  92. package/experiments-app/assets/icon.png +0 -0
  93. package/experiments-app/assets/splash.png +0 -0
  94. package/experiments-app/babel.config.js +0 -6
  95. package/experiments-app/index.js +0 -4
  96. package/experiments-app/package.json +0 -29
  97. package/experiments-app/src/App.tsx +0 -31
  98. package/experiments-app/src/MainScreen.tsx +0 -52
  99. package/experiments-app/src/experiments.ts +0 -35
  100. package/experiments-app/src/screens/FlatListEvents.tsx +0 -57
  101. package/experiments-app/src/screens/ScrollViewEvents.tsx +0 -65
  102. package/experiments-app/src/screens/SectionListEvents.tsx +0 -91
  103. package/experiments-app/src/screens/TextInputEventPropagation.tsx +0 -42
  104. package/experiments-app/src/screens/TextInputEvents.tsx +0 -48
  105. package/experiments-app/src/utils/helpers.ts +0 -18
  106. package/experiments-app/tsconfig.json +0 -6
  107. package/experiments-app/yarn.lock +0 -6709
  108. package/experiments-rtl/.babelrc +0 -8
  109. package/experiments-rtl/.eslintrc.json +0 -3
  110. package/experiments-rtl/.gitignore +0 -35
  111. package/experiments-rtl/README.md +0 -34
  112. package/experiments-rtl/jest-setup.js +0 -1
  113. package/experiments-rtl/jest.config.js +0 -4
  114. package/experiments-rtl/next.config.js +0 -4
  115. package/experiments-rtl/package.json +0 -38
  116. package/experiments-rtl/postcss.config.js +0 -6
  117. package/experiments-rtl/public/next.svg +0 -1
  118. package/experiments-rtl/public/vercel.svg +0 -1
  119. package/experiments-rtl/src/app/__tests__/click.test.tsx +0 -31
  120. package/experiments-rtl/src/app/__tests__/managed-text-input.test.tsx +0 -51
  121. package/experiments-rtl/src/app/globals.css +0 -27
  122. package/experiments-rtl/src/app/layout.tsx +0 -22
  123. package/experiments-rtl/src/app/page.tsx +0 -113
  124. package/experiments-rtl/tailwind.config.ts +0 -20
  125. package/experiments-rtl/tsconfig.json +0 -28
  126. package/experiments-rtl/yarn.lock +0 -5418
  127. package/flow-typed/npm/jest_v26.x.x.js +0 -1218
  128. package/flow-typed/npm/react-test-renderer_v16.x.x.js +0 -81
  129. package/jest-setup.ts +0 -10
  130. package/renovate.json +0 -19
  131. package/scripts/test_react_17 +0 -12
  132. package/src/__tests__/__snapshots__/render-debug.test.tsx.snap +0 -548
  133. package/src/__tests__/__snapshots__/render.test.tsx.snap +0 -39
  134. package/src/__tests__/act.test.tsx +0 -56
  135. package/src/__tests__/auto-cleanup-skip.test.tsx +0 -39
  136. package/src/__tests__/auto-cleanup.test.tsx +0 -50
  137. package/src/__tests__/cleanup.test.tsx +0 -26
  138. package/src/__tests__/config.test.ts +0 -55
  139. package/src/__tests__/fireEvent-textInput.test.tsx +0 -154
  140. package/src/__tests__/fireEvent.test.tsx +0 -485
  141. package/src/__tests__/host-component-names.test.tsx +0 -109
  142. package/src/__tests__/host-text-nesting.test.tsx +0 -90
  143. package/src/__tests__/jest-native.test.tsx +0 -84
  144. package/src/__tests__/questionsBoard.test.tsx +0 -62
  145. package/src/__tests__/react-native-api.test.tsx +0 -126
  146. package/src/__tests__/render-debug.test.tsx +0 -207
  147. package/src/__tests__/render-stringValidation.test.tsx +0 -157
  148. package/src/__tests__/render.test.tsx +0 -256
  149. package/src/__tests__/renderHook.test.tsx +0 -114
  150. package/src/__tests__/screen.test.tsx +0 -66
  151. package/src/__tests__/timerUtils.ts +0 -7
  152. package/src/__tests__/timers.test.ts +0 -27
  153. package/src/__tests__/waitFor.test.tsx +0 -327
  154. package/src/__tests__/waitForElementToBeRemoved.test.tsx +0 -151
  155. package/src/__tests__/within.test.tsx +0 -96
  156. package/src/act.ts +0 -86
  157. package/src/cleanup.ts +0 -15
  158. package/src/config.ts +0 -72
  159. package/src/fireEvent.ts +0 -159
  160. package/src/flush-micro-tasks.ts +0 -30
  161. package/src/helpers/__tests__/accessiblity.test.tsx +0 -373
  162. package/src/helpers/__tests__/component-tree.test.tsx +0 -226
  163. package/src/helpers/__tests__/format-default.tsx +0 -114
  164. package/src/helpers/__tests__/getTextContent.test.tsx +0 -49
  165. package/src/helpers/__tests__/includeHiddenElements.test.tsx +0 -39
  166. package/src/helpers/__tests__/query-name.test.ts +0 -10
  167. package/src/helpers/__tests__/timers.test.ts +0 -8
  168. package/src/helpers/accessiblity.ts +0 -108
  169. package/src/helpers/component-tree.ts +0 -94
  170. package/src/helpers/debugDeep.ts +0 -27
  171. package/src/helpers/debugShallow.ts +0 -22
  172. package/src/helpers/deprecation.ts +0 -53
  173. package/src/helpers/errors.ts +0 -66
  174. package/src/helpers/findAll.ts +0 -70
  175. package/src/helpers/format-default.ts +0 -72
  176. package/src/helpers/format.ts +0 -47
  177. package/src/helpers/getTextContent.ts +0 -20
  178. package/src/helpers/host-component-names.tsx +0 -88
  179. package/src/helpers/matchers/__tests__/matchArrayValue.test.ts +0 -34
  180. package/src/helpers/matchers/__tests__/matchObject.test.ts +0 -37
  181. package/src/helpers/matchers/__tests__/matchStringValue.test.ts +0 -15
  182. package/src/helpers/matchers/accessibilityState.ts +0 -48
  183. package/src/helpers/matchers/accessibilityValue.ts +0 -24
  184. package/src/helpers/matchers/matchArrayProp.ts +0 -21
  185. package/src/helpers/matchers/matchLabelText.ts +0 -50
  186. package/src/helpers/matchers/matchObjectProp.ts +0 -25
  187. package/src/helpers/matchers/matchStringProp.ts +0 -23
  188. package/src/helpers/matchers/matchTextContent.ts +0 -20
  189. package/src/helpers/pointer-events.ts +0 -27
  190. package/src/helpers/query-name.ts +0 -4
  191. package/src/helpers/stringValidation.ts +0 -36
  192. package/src/helpers/timers.ts +0 -98
  193. package/src/index.ts +0 -33
  194. package/src/matches.ts +0 -49
  195. package/src/pure.ts +0 -27
  196. package/src/queries/__tests__/a11yState.test.tsx +0 -439
  197. package/src/queries/__tests__/a11yValue.test.tsx +0 -309
  198. package/src/queries/__tests__/displayValue.test.tsx +0 -221
  199. package/src/queries/__tests__/hintText.test.tsx +0 -177
  200. package/src/queries/__tests__/labelText.test.tsx +0 -242
  201. package/src/queries/__tests__/makeQueries.test.tsx +0 -235
  202. package/src/queries/__tests__/placeholderText.test.tsx +0 -136
  203. package/src/queries/__tests__/role-value.test.tsx +0 -176
  204. package/src/queries/__tests__/role.test.tsx +0 -824
  205. package/src/queries/__tests__/testId.test.tsx +0 -200
  206. package/src/queries/__tests__/text.test.tsx +0 -556
  207. package/src/queries/a11yState.ts +0 -127
  208. package/src/queries/a11yValue.ts +0 -127
  209. package/src/queries/displayValue.ts +0 -71
  210. package/src/queries/hintText.ts +0 -107
  211. package/src/queries/labelText.ts +0 -57
  212. package/src/queries/makeQueries.ts +0 -255
  213. package/src/queries/options.ts +0 -14
  214. package/src/queries/placeholderText.ts +0 -72
  215. package/src/queries/role.ts +0 -131
  216. package/src/queries/testId.ts +0 -66
  217. package/src/queries/text.ts +0 -63
  218. package/src/queries/unsafeProps.ts +0 -76
  219. package/src/queries/unsafeType.ts +0 -73
  220. package/src/react-versions.ts +0 -11
  221. package/src/render-act.ts +0 -19
  222. package/src/render.tsx +0 -183
  223. package/src/renderHook.tsx +0 -56
  224. package/src/screen.ts +0 -123
  225. package/src/shallow.ts +0 -18
  226. package/src/test-utils/events.ts +0 -24
  227. package/src/test-utils/index.ts +0 -1
  228. package/src/user-event/__tests__/__snapshots__/clear.test.tsx.snap +0 -269
  229. package/src/user-event/__tests__/clear.test.tsx +0 -217
  230. package/src/user-event/clear.ts +0 -59
  231. package/src/user-event/event-builder/common.ts +0 -66
  232. package/src/user-event/event-builder/index.ts +0 -7
  233. package/src/user-event/event-builder/text-input.ts +0 -86
  234. package/src/user-event/index.ts +0 -18
  235. package/src/user-event/press/__tests__/longPress.real-timers.test.tsx +0 -117
  236. package/src/user-event/press/__tests__/longPress.test.tsx +0 -157
  237. package/src/user-event/press/__tests__/press.real-timers.test.tsx +0 -320
  238. package/src/user-event/press/__tests__/press.test.tsx +0 -457
  239. package/src/user-event/press/constants.ts +0 -7
  240. package/src/user-event/press/index.ts +0 -1
  241. package/src/user-event/press/press.ts +0 -163
  242. package/src/user-event/setup/index.ts +0 -2
  243. package/src/user-event/setup/setup.ts +0 -142
  244. package/src/user-event/type/__tests__/__snapshots__/type-managed.test.tsx.snap +0 -339
  245. package/src/user-event/type/__tests__/__snapshots__/type.test.tsx.snap +0 -668
  246. package/src/user-event/type/__tests__/parseKeys.test.ts +0 -23
  247. package/src/user-event/type/__tests__/type-managed.test.tsx +0 -120
  248. package/src/user-event/type/__tests__/type.test.tsx +0 -335
  249. package/src/user-event/type/index.ts +0 -1
  250. package/src/user-event/type/parseKeys.ts +0 -41
  251. package/src/user-event/type/type.ts +0 -138
  252. package/src/user-event/utils/__tests__/dispatch-event.test.tsx +0 -41
  253. package/src/user-event/utils/__tests__/wait.test.ts +0 -62
  254. package/src/user-event/utils/content-size.ts +0 -25
  255. package/src/user-event/utils/dispatch-event.ts +0 -38
  256. package/src/user-event/utils/host-components.ts +0 -6
  257. package/src/user-event/utils/index.ts +0 -6
  258. package/src/user-event/utils/text-range.ts +0 -4
  259. package/src/user-event/utils/wait.ts +0 -15
  260. package/src/user-event/utils/warn-about-real-timers.ts +0 -13
  261. package/src/waitFor.ts +0 -228
  262. package/src/waitForElementToBeRemoved.ts +0 -42
  263. package/src/within.ts +0 -30
  264. package/tsconfig.json +0 -17
  265. package/tsconfig.release.json +0 -8
  266. package/website/.gitignore +0 -20
  267. package/website/README.md +0 -33
  268. package/website/docker/.dockerignore +0 -3
  269. package/website/docker/Dockerfile +0 -9
  270. package/website/docker/docker-compose.yml +0 -11
  271. package/website/docs/API.md +0 -940
  272. package/website/docs/EslintPLluginTestingLibrary.md +0 -28
  273. package/website/docs/FAQ.md +0 -44
  274. package/website/docs/GettingStarted.md +0 -100
  275. package/website/docs/HowShouldIQuery.md +0 -21
  276. package/website/docs/MigrationV11.md +0 -64
  277. package/website/docs/MigrationV12.md +0 -67
  278. package/website/docs/MigrationV2.md +0 -126
  279. package/website/docs/MigrationV7.md +0 -119
  280. package/website/docs/MigrationV9.md +0 -67
  281. package/website/docs/Queries.md +0 -572
  282. package/website/docs/ReactNavigation.md +0 -371
  283. package/website/docs/ReduxIntegration.md +0 -137
  284. package/website/docs/TestingEnvironment.md +0 -154
  285. package/website/docs/Troubleshooting.md +0 -44
  286. package/website/docs/UnderstandingAct.md +0 -227
  287. package/website/docs/UserEvent.md +0 -191
  288. package/website/docusaurus.config.js +0 -114
  289. package/website/package.json +0 -31
  290. package/website/sidebars.js +0 -20
  291. package/website/src/components/Feature.js +0 -31
  292. package/website/src/css/custom.css +0 -13
  293. package/website/src/css/index.module.css +0 -77
  294. package/website/src/pages/index.js +0 -82
  295. package/website/static/.nojekyll +0 -0
  296. package/website/static/css/custom.css +0 -28
  297. package/website/static/img/hit.png +0 -0
  298. package/website/static/img/locomotive.png +0 -0
  299. package/website/static/img/owl.png +0 -0
  300. package/website/static/img/tools.png +0 -0
  301. package/website/yarn.lock +0 -7669
  302. package/yarn.lock +0 -7765
@@ -1,27 +0,0 @@
1
- import * as React from 'react';
2
- import { StyleSheet, View, StatusBar } from 'react-native';
3
- import { Provider } from 'react-redux';
4
- import configureStore from './store';
5
- import AddTodo from './components/AddTodo';
6
- import TodoList from './components/TodoList';
7
-
8
- const store = configureStore();
9
-
10
- export default function App() {
11
- return (
12
- <Provider store={store}>
13
- <View style={styles.container}>
14
- <StatusBar barStyle="dark-content" />
15
- <AddTodo />
16
- <TodoList />
17
- </View>
18
- </Provider>
19
- );
20
- }
21
-
22
- const styles = StyleSheet.create({
23
- container: {
24
- flex: 1,
25
- paddingTop: 32,
26
- },
27
- });
@@ -1,5 +0,0 @@
1
- # RNTL example app for Redux
2
-
3
- **Note: this example is stale and might not function correctly.**
4
-
5
- This example shows how to write integration tests using Redux without mocking it.
@@ -1,25 +0,0 @@
1
- export const actions = {
2
- ADD: '@ADD_TODO',
3
- REMOVE: '@REMOVE_TODO',
4
- MODIFY: '@MODIFY_TODO',
5
- CLEAR: '@CLEAR_TODO',
6
- };
7
-
8
- export const addTodo = (todo) => ({
9
- type: actions.ADD,
10
- payload: todo,
11
- });
12
-
13
- export const removeTodo = (id) => ({
14
- type: actions.REMOVE,
15
- payload: { id },
16
- });
17
-
18
- export const modifyTodo = (todo) => ({
19
- type: actions.MODIFY,
20
- payload: todo,
21
- });
22
-
23
- export const clearTodos = () => ({
24
- type: actions.CLEAR,
25
- });
@@ -1,6 +0,0 @@
1
- module.exports = function (api) {
2
- api.cache(true);
3
- return {
4
- presets: ['module:metro-react-native-babel-preset'],
5
- };
6
- };
@@ -1,73 +0,0 @@
1
- import * as React from 'react';
2
- import { Button, StyleSheet, Text, View, TextInput } from 'react-native';
3
- import { bindActionCreators } from 'redux';
4
- import { connect } from 'react-redux';
5
- import { addTodo } from '../actions/todoActions';
6
-
7
- export function AddTodo(props) {
8
- const [text, setText] = React.useState('');
9
-
10
- const submitForm = () => {
11
- const todo = {
12
- id: props.todoLength + 1,
13
- text,
14
- date: new Date(),
15
- };
16
-
17
- props.addTodo(todo);
18
- setText('');
19
- };
20
-
21
- return (
22
- <View style={styles.container}>
23
- <Text style={styles.header}>Enter a text below to add a new todo</Text>
24
- <TextInput
25
- autoFocus
26
- value={text}
27
- style={styles.input}
28
- returnKeyType="search"
29
- onSubmitEditing={submitForm}
30
- onChangeText={(t) => setText(t)}
31
- placeholder="Enter the name of the repository here"
32
- />
33
-
34
- <Button onPress={submitForm} title="Submit form" />
35
- </View>
36
- );
37
- }
38
-
39
- const styles = StyleSheet.create({
40
- container: {
41
- minHeight: 156,
42
- display: 'flex',
43
- flexDirection: 'column',
44
- alignItems: 'center',
45
- justifyContent: 'center',
46
- borderBottomColor: '#EEEEEE',
47
- borderBottomWidth: 2,
48
- marginBottom: 16,
49
- padding: 16,
50
- },
51
- header: {
52
- fontSize: 20,
53
- fontWeight: 'bold',
54
- marginBottom: 8,
55
- },
56
- input: {
57
- borderColor: '#DDDDDD',
58
- borderWidth: 1,
59
- paddingVertical: 8,
60
- width: '100%',
61
- textAlign: 'center',
62
- borderRadius: 4,
63
- },
64
- });
65
-
66
- const mapStateToProps = ({ todos }) => ({
67
- todoLength: todos.length,
68
- });
69
-
70
- const mapDispatchToProps = (dispatch) =>
71
- bindActionCreators({ addTodo }, dispatch);
72
-
73
- export default connect(mapStateToProps, mapDispatchToProps)(AddTodo);
@@ -1,27 +0,0 @@
1
- import * as React from 'react';
2
- import { screen, fireEvent } from '@testing-library/react-native';
3
- import { renderWithRedux } from '../test-utils';
4
- import AddTodo from './AddTodo';
5
-
6
- test('adds a new todo to redux store when submitting form', () => {
7
- const { store } = renderWithRedux(<AddTodo />);
8
-
9
- const input = screen.getByPlaceholderText(/repository/i);
10
- expect(input).toBeTruthy();
11
-
12
- const textToEnter = 'This is a random element';
13
- fireEvent.changeText(input, textToEnter);
14
- fireEvent.press(screen.getByText('Submit form'));
15
-
16
- const todosState = store.getState().todos;
17
- expect(todosState).toHaveLength(1);
18
- expect(todosState).toEqual(
19
- expect.arrayContaining([
20
- expect.objectContaining({
21
- id: 1,
22
- text: textToEnter,
23
- date: expect.any(Date),
24
- }),
25
- ])
26
- );
27
- });
@@ -1,25 +0,0 @@
1
- import * as React from 'react';
2
- import { StyleSheet, Button, Text, View } from 'react-native';
3
-
4
- export default function TodoElem({ todo, onDelete }) {
5
- return (
6
- <View style={styles.container}>
7
- <View style={styles.textContainer}>
8
- <Text style={styles.text}>{todo.text}</Text>
9
- <Text style={styles.date}>{new Date(todo.date).toDateString()}</Text>
10
- </View>
11
- <View style={styles.buttonContainer}>
12
- <Button onPress={() => onDelete(todo.id)} title="Delete" />
13
- </View>
14
- </View>
15
- );
16
- }
17
-
18
- const styles = StyleSheet.create({
19
- container: {
20
- display: 'flex',
21
- flexDirection: 'row',
22
- alignItems: 'center',
23
- justifyContent: 'center',
24
- },
25
- });
@@ -1,29 +0,0 @@
1
- import * as React from 'react';
2
- import { FlatList, Text } from 'react-native';
3
- import { connect } from 'react-redux';
4
- import { bindActionCreators } from 'redux';
5
- import { removeTodo } from '../actions/todoActions';
6
- import TodoElem from './TodoElem';
7
-
8
- export function TodoList(props) {
9
- const onDeleteTodo = (id) => props.removeTodo(id);
10
-
11
- return (
12
- <FlatList
13
- data={props.todos}
14
- keyExtractor={(todo) => todo.id.toString()}
15
- renderItem={({ item }) => (
16
- <TodoElem todo={item} onDelete={onDeleteTodo} />
17
- )}
18
- />
19
- );
20
- }
21
-
22
- const mapStateToProps = (state) => ({
23
- todos: state.todos,
24
- });
25
-
26
- const mapDispatchToProps = (dispatch) =>
27
- bindActionCreators({ removeTodo }, dispatch);
28
-
29
- export default connect(mapStateToProps, mapDispatchToProps)(TodoList);
@@ -1,34 +0,0 @@
1
- import * as React from 'react';
2
- import { screen, fireEvent } from '@testing-library/react-native';
3
- import { renderWithRedux } from '../test-utils';
4
- import TodoList from './TodoList';
5
-
6
- const initialState = {
7
- todos: [
8
- { id: 1, text: 'Sing something', date: new Date() },
9
- { id: 2, text: 'Dance something', date: new Date() },
10
- { id: 3, text: 'Sleep something', date: new Date() },
11
- { id: 4, text: 'Sleep something', date: new Date() },
12
- ],
13
- };
14
-
15
- test('it should execute with a store with 4 elements', () => {
16
- renderWithRedux(<TodoList />, { initialState });
17
-
18
- const todoElems = screen.getAllByText(/something/i);
19
- expect(todoElems).toHaveLength(4);
20
- });
21
-
22
- test('should display 4 elements and end up with 3 after delete', () => {
23
- renderWithRedux(<TodoList />, { initialState });
24
-
25
- const todoElems = screen.getAllByText(/something/i);
26
- expect(todoElems.length).toBe(4);
27
-
28
- const buttons = screen.getAllByText('Delete');
29
- expect(buttons).toHaveLength(4);
30
- fireEvent.press(buttons[0]);
31
-
32
- const buttonsAfterDelete = screen.getAllByText('Delete');
33
- expect(buttonsAfterDelete).toHaveLength(3);
34
- });
@@ -1,8 +0,0 @@
1
- import { registerRootComponent } from 'expo';
2
-
3
- import App from './App';
4
-
5
- // registerRootComponent calls AppRegistry.registerComponent('main', () => App);
6
- // It also ensures that whether you load the app in the Expo client or in a native build,
7
- // the environment is set up appropriately
8
- registerRootComponent(App);
@@ -1,2 +0,0 @@
1
- // Silence the warning: Animated: `useNativeDriver` is not supported because the native animated module is missing
2
- jest.mock('react-native/Libraries/Animated/NativeAnimatedHelper');
@@ -1,4 +0,0 @@
1
- module.exports = {
2
- preset: '@testing-library/react-native',
3
- setupFiles: ['./jest-setup.js'],
4
- };
@@ -1,23 +0,0 @@
1
- {
2
- "name": "redux-example",
3
- "description": "Testing Redux interactions with RNTL",
4
- "version": "0.0.1",
5
- "private": true,
6
- "scripts": {
7
- "test": "jest"
8
- },
9
- "dependencies": {
10
- "react": "18.2.0",
11
- "react-native": "0.72.3",
12
- "react-redux": "^7.2.0",
13
- "redux": "^4.0.5"
14
- },
15
- "devDependencies": {
16
- "@babel/core": "^7.9.0",
17
- "@testing-library/react-native": "^12.1.3",
18
- "@types/jest": "^29.0.0",
19
- "jest": "^29.0.0",
20
- "metro-react-native-babel-preset": "~0.72.0",
21
- "react-test-renderer": "18.2.0"
22
- }
23
- }
@@ -1,6 +0,0 @@
1
- import { combineReducers } from 'redux';
2
- import todos from './todoReducer';
3
-
4
- export default combineReducers({
5
- todos,
6
- });
@@ -1,27 +0,0 @@
1
- import { actions } from '../actions/todoActions.js';
2
-
3
- export default function todoReducer(state = [], action) {
4
- switch (action.type) {
5
- case actions.ADD:
6
- return state.concat(action.payload);
7
-
8
- case actions.REMOVE:
9
- return state.filter((todo) => todo.id !== action.payload.id);
10
-
11
- case actions.MODIFY:
12
- return state.map((todo) => {
13
- if (todo.id === action.payload.id) {
14
- return {
15
- ...todo,
16
- ...action.payload,
17
- };
18
- }
19
- });
20
-
21
- case actions.CLEAR:
22
- return [];
23
-
24
- default:
25
- return state;
26
- }
27
- }
@@ -1,10 +0,0 @@
1
- import { createStore } from 'redux';
2
- import reducers from './reducers';
3
-
4
- const initialStore = {
5
- todos: [],
6
- };
7
-
8
- export default function configureStore(initialState = initialStore) {
9
- return createStore(reducers, initialState);
10
- }
@@ -1,11 +0,0 @@
1
- /* eslint-disable import/no-extraneous-dependencies */
2
- import * as React from 'react';
3
- import { Provider } from 'react-redux';
4
- import { render } from '@testing-library/react-native';
5
- import configureStore from './store';
6
-
7
- export function renderWithRedux(ui, options) {
8
- const store = options?.store ?? configureStore(options?.initialState);
9
- const queries = render(<Provider store={store}>{ui}</Provider>);
10
- return { ...queries, store };
11
- }