@testing-library/react-native 12.1.3 → 12.2.1

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 (194) hide show
  1. package/.eslintcache +1 -1
  2. package/.eslintignore +1 -0
  3. package/build/fireEvent.js +2 -5
  4. package/build/fireEvent.js.map +1 -1
  5. package/build/helpers/component-tree.d.ts +11 -5
  6. package/build/helpers/component-tree.js +5 -1
  7. package/build/helpers/component-tree.js.map +1 -1
  8. package/build/helpers/deprecation.js +1 -1
  9. package/build/helpers/deprecation.js.map +1 -1
  10. package/build/helpers/findAll.d.ts +2 -1
  11. package/build/helpers/findAll.js +2 -1
  12. package/build/helpers/findAll.js.map +1 -1
  13. package/build/helpers/host-component-names.d.ts +12 -0
  14. package/build/helpers/host-component-names.js +18 -0
  15. package/build/helpers/host-component-names.js.map +1 -1
  16. package/build/helpers/matchers/matchLabelText.js +1 -1
  17. package/build/helpers/matchers/matchLabelText.js.map +1 -1
  18. package/build/pure.d.ts +2 -0
  19. package/build/pure.js +7 -0
  20. package/build/pure.js.map +1 -1
  21. package/build/queries/a11yState.js +1 -1
  22. package/build/queries/a11yState.js.map +1 -1
  23. package/build/queries/a11yValue.js +1 -1
  24. package/build/queries/a11yValue.js.map +1 -1
  25. package/build/queries/displayValue.js +5 -6
  26. package/build/queries/displayValue.js.map +1 -1
  27. package/build/queries/hintText.js +1 -1
  28. package/build/queries/hintText.js.map +1 -1
  29. package/build/queries/labelText.js +1 -1
  30. package/build/queries/labelText.js.map +1 -1
  31. package/build/queries/placeholderText.js +3 -4
  32. package/build/queries/placeholderText.js.map +1 -1
  33. package/build/queries/role.js +1 -1
  34. package/build/queries/role.js.map +1 -1
  35. package/build/queries/testId.js +3 -3
  36. package/build/queries/testId.js.map +1 -1
  37. package/build/queries/text.js +1 -2
  38. package/build/queries/text.js.map +1 -1
  39. package/build/render.js.map +1 -1
  40. package/build/user-event/clear.d.ts +3 -0
  41. package/build/user-event/clear.js +41 -0
  42. package/build/user-event/clear.js.map +1 -0
  43. package/build/user-event/event-builder/common.d.ts +48 -6
  44. package/build/user-event/event-builder/common.js +37 -20
  45. package/build/user-event/event-builder/common.js.map +1 -1
  46. package/build/user-event/event-builder/index.d.ts +94 -0
  47. package/build/user-event/event-builder/index.js +3 -1
  48. package/build/user-event/event-builder/index.js.map +1 -1
  49. package/build/user-event/event-builder/text-input.d.ts +91 -0
  50. package/build/user-event/event-builder/text-input.js +117 -0
  51. package/build/user-event/event-builder/text-input.js.map +1 -0
  52. package/build/user-event/index.d.ts +5 -2
  53. package/build/user-event/index.js +8 -1
  54. package/build/user-event/index.js.map +1 -1
  55. package/build/user-event/press/index.d.ts +1 -1
  56. package/build/user-event/press/index.js +6 -0
  57. package/build/user-event/press/index.js.map +1 -1
  58. package/build/user-event/press/press.d.ts +3 -3
  59. package/build/user-event/press/press.js +54 -64
  60. package/build/user-event/press/press.js.map +1 -1
  61. package/build/user-event/setup/setup.d.ts +45 -3
  62. package/build/user-event/setup/setup.js +17 -2
  63. package/build/user-event/setup/setup.js.map +1 -1
  64. package/build/user-event/type/index.d.ts +1 -1
  65. package/build/user-event/type/index.js +6 -0
  66. package/build/user-event/type/index.js.map +1 -1
  67. package/build/user-event/type/parseKeys.d.ts +1 -0
  68. package/build/user-event/type/parseKeys.js +40 -0
  69. package/build/user-event/type/parseKeys.js.map +1 -0
  70. package/build/user-event/type/type.d.ts +7 -2
  71. package/build/user-event/type/type.js +70 -8
  72. package/build/user-event/type/type.js.map +1 -1
  73. package/build/user-event/utils/content-size.d.ts +15 -0
  74. package/build/user-event/utils/content-size.js +26 -0
  75. package/build/user-event/utils/content-size.js.map +1 -0
  76. package/build/user-event/utils/{events.d.ts → dispatch-event.d.ts} +2 -2
  77. package/build/user-event/utils/dispatch-event.js +36 -0
  78. package/build/user-event/utils/dispatch-event.js.map +1 -0
  79. package/build/user-event/utils/host-components.d.ts +2 -0
  80. package/build/user-event/utils/host-components.js +11 -0
  81. package/build/user-event/utils/host-components.js.map +1 -0
  82. package/build/user-event/utils/index.d.ts +5 -1
  83. package/build/user-event/utils/index.js +48 -4
  84. package/build/user-event/utils/index.js.map +1 -1
  85. package/build/user-event/utils/text-range.d.ts +4 -0
  86. package/build/user-event/utils/text-range.js +2 -0
  87. package/build/user-event/utils/text-range.js.map +1 -0
  88. package/build/user-event/utils/warn-about-real-timers.d.ts +1 -0
  89. package/build/user-event/utils/warn-about-real-timers.js +20 -0
  90. package/build/user-event/utils/warn-about-real-timers.js.map +1 -0
  91. package/examples/basic/.expo/README.md +15 -0
  92. package/examples/basic/.expo/packager-info.json +4 -0
  93. package/examples/basic/.expo/settings.json +10 -0
  94. package/examples/basic/__tests__/App.test.tsx +30 -12
  95. package/examples/basic/package.json +7 -7
  96. package/examples/basic/yarn.lock +7499 -0
  97. package/examples/react-navigation/README.md +2 -0
  98. package/examples/react-navigation/package.json +5 -5
  99. package/examples/react-navigation/yarn.lock +5018 -0
  100. package/examples/redux/README.md +5 -0
  101. package/examples/redux/package.json +7 -7
  102. package/examples/redux/yarn.lock +4819 -0
  103. package/experiments-app/.expo/packager-info.json +2 -2
  104. package/experiments-app/package.json +7 -9
  105. package/experiments-app/src/MainScreen.tsx +1 -0
  106. package/experiments-app/src/experiments.ts +20 -2
  107. package/experiments-app/src/screens/FlatListEvents.tsx +57 -0
  108. package/experiments-app/src/screens/ScrollViewEvents.tsx +65 -0
  109. package/experiments-app/src/screens/SectionListEvents.tsx +91 -0
  110. package/experiments-app/src/screens/TextInputEventPropagation.tsx +5 -17
  111. package/experiments-app/src/screens/TextInputEvents.tsx +13 -15
  112. package/experiments-app/src/utils/helpers.ts +13 -3
  113. package/experiments-app/yarn.lock +901 -1105
  114. package/experiments-rtl/.babelrc +8 -0
  115. package/experiments-rtl/.eslintrc.json +3 -0
  116. package/experiments-rtl/.gitignore +35 -0
  117. package/experiments-rtl/README.md +34 -0
  118. package/experiments-rtl/jest-setup.js +1 -0
  119. package/experiments-rtl/jest.config.js +4 -0
  120. package/experiments-rtl/next.config.js +4 -0
  121. package/experiments-rtl/package.json +38 -0
  122. package/experiments-rtl/postcss.config.js +6 -0
  123. package/experiments-rtl/public/next.svg +1 -0
  124. package/experiments-rtl/public/vercel.svg +1 -0
  125. package/experiments-rtl/src/app/__tests__/click.test.tsx +31 -0
  126. package/experiments-rtl/src/app/__tests__/managed-text-input.test.tsx +51 -0
  127. package/experiments-rtl/src/app/globals.css +27 -0
  128. package/experiments-rtl/src/app/layout.tsx +22 -0
  129. package/experiments-rtl/src/app/page.tsx +113 -0
  130. package/experiments-rtl/tailwind.config.ts +20 -0
  131. package/experiments-rtl/tsconfig.json +28 -0
  132. package/experiments-rtl/yarn.lock +5418 -0
  133. package/package.json +4 -2
  134. package/src/__tests__/act.test.tsx +4 -0
  135. package/src/fireEvent.ts +1 -5
  136. package/src/helpers/component-tree.ts +14 -9
  137. package/src/helpers/deprecation.ts +1 -1
  138. package/src/helpers/findAll.ts +6 -4
  139. package/src/helpers/host-component-names.tsx +21 -0
  140. package/src/helpers/matchers/matchLabelText.ts +0 -1
  141. package/src/pure.ts +2 -0
  142. package/src/queries/a11yState.ts +2 -6
  143. package/src/queries/a11yValue.ts +2 -6
  144. package/src/queries/displayValue.ts +7 -14
  145. package/src/queries/hintText.ts +2 -7
  146. package/src/queries/labelText.ts +1 -3
  147. package/src/queries/placeholderText.ts +6 -13
  148. package/src/queries/role.ts +1 -2
  149. package/src/queries/testId.ts +5 -10
  150. package/src/queries/text.ts +3 -6
  151. package/src/render.tsx +1 -1
  152. package/src/user-event/__tests__/__snapshots__/clear.test.tsx.snap +269 -0
  153. package/src/user-event/__tests__/clear.test.tsx +217 -0
  154. package/src/user-event/clear.ts +59 -0
  155. package/src/user-event/event-builder/common.ts +35 -19
  156. package/src/user-event/event-builder/index.ts +2 -0
  157. package/src/user-event/event-builder/text-input.ts +86 -0
  158. package/src/user-event/index.ts +7 -3
  159. package/src/user-event/press/__tests__/longPress.real-timers.test.tsx +4 -2
  160. package/src/user-event/press/__tests__/press.real-timers.test.tsx +4 -2
  161. package/src/user-event/press/__tests__/press.test.tsx +40 -5
  162. package/src/user-event/press/index.ts +1 -1
  163. package/src/user-event/press/press.ts +93 -64
  164. package/src/user-event/setup/setup.ts +54 -5
  165. package/src/user-event/type/__tests__/__snapshots__/type-managed.test.tsx.snap +339 -0
  166. package/src/user-event/type/__tests__/__snapshots__/type.test.tsx.snap +644 -2
  167. package/src/user-event/type/__tests__/parseKeys.test.ts +23 -0
  168. package/src/user-event/type/__tests__/type-managed.test.tsx +120 -0
  169. package/src/user-event/type/__tests__/type.test.tsx +299 -27
  170. package/src/user-event/type/index.ts +1 -1
  171. package/src/user-event/type/parseKeys.ts +41 -0
  172. package/src/user-event/type/type.ts +128 -10
  173. package/src/user-event/utils/__tests__/dispatch-event.test.tsx +41 -0
  174. package/src/user-event/utils/__tests__/wait.test.ts +0 -1
  175. package/src/user-event/utils/content-size.ts +25 -0
  176. package/src/user-event/utils/dispatch-event.ts +38 -0
  177. package/src/user-event/utils/host-components.ts +6 -0
  178. package/src/user-event/utils/index.ts +5 -1
  179. package/src/user-event/utils/text-range.ts +4 -0
  180. package/src/user-event/{press/utils/warnAboutRealTimers.ts → utils/warn-about-real-timers.ts} +8 -1
  181. package/website/docs/API.md +19 -25
  182. package/website/docs/Queries.md +64 -59
  183. package/website/docs/UserEvent.md +134 -9
  184. package/website/sidebars.js +1 -1
  185. package/build/helpers/filterNodeByType.d.ts +0 -3
  186. package/build/helpers/filterNodeByType.js +0 -9
  187. package/build/helpers/filterNodeByType.js.map +0 -1
  188. package/build/user-event/press/utils/warnAboutRealTimers.d.ts +0 -1
  189. package/build/user-event/press/utils/warnAboutRealTimers.js +0 -14
  190. package/build/user-event/press/utils/warnAboutRealTimers.js.map +0 -1
  191. package/build/user-event/utils/events.js +0 -44
  192. package/build/user-event/utils/events.js.map +0 -1
  193. package/src/helpers/filterNodeByType.ts +0 -7
  194. package/src/user-event/utils/events.ts +0 -54
@@ -1,44 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,7 +0,0 @@
1
- import type { ReactTestInstance } from 'react-test-renderer';
2
- import * as React from 'react';
3
-
4
- export const filterNodeByType = (
5
- node: ReactTestInstance | React.ReactElement,
6
- type: React.ElementType | string
7
- ) => node.type === type;
@@ -1,54 +0,0 @@
1
- import { ReactTestInstance } from 'react-test-renderer';
2
- import act from '../../act';
3
- import { isEventEnabled, isTouchResponder } from '../../fireEvent';
4
-
5
- type EventHandler = (event: unknown) => void;
6
-
7
- /**
8
- * Dispatch event function used by User Event module.
9
- *
10
- * @param element element trigger event on
11
- * @param eventName name of the event
12
- * @param event event payload
13
- */
14
- export function dispatchHostEvent(
15
- element: ReactTestInstance,
16
- eventName: string,
17
- event: unknown
18
- ) {
19
- const handler = getEnabledEventHandler(element, eventName);
20
- if (!handler) {
21
- return;
22
- }
23
-
24
- act(() => {
25
- handler(event);
26
- });
27
- }
28
-
29
- function getEnabledEventHandler(
30
- element: ReactTestInstance,
31
- eventName: string
32
- ): EventHandler | null {
33
- const touchResponder = isTouchResponder(element) ? element : undefined;
34
-
35
- const handler = getEventHandler(element, eventName);
36
- if (handler && isEventEnabled(element, eventName, touchResponder)) {
37
- return handler;
38
- }
39
-
40
- return null;
41
- }
42
-
43
- function getEventHandler(element: ReactTestInstance, eventName: string) {
44
- const eventHandlerName = getEventHandlerName(eventName);
45
- if (typeof element.props[eventHandlerName] === 'function') {
46
- return element.props[eventHandlerName];
47
- }
48
-
49
- return undefined;
50
- }
51
-
52
- function getEventHandlerName(eventName: string) {
53
- return `on${eventName.charAt(0).toUpperCase()}${eventName.slice(1)}`;
54
- }