@testing-library/react-native 14.0.0-beta.0 → 14.0.0-rc.0

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 (191) hide show
  1. package/README.md +22 -33
  2. package/build/event-builder/base.js.map +1 -0
  3. package/build/event-builder/common.d.ts +152 -0
  4. package/build/event-builder/common.js +80 -0
  5. package/build/event-builder/common.js.map +1 -0
  6. package/build/event-builder/index.d.ts +3 -0
  7. package/build/event-builder/index.js +39 -0
  8. package/build/event-builder/index.js.map +1 -0
  9. package/build/event-builder/scroll.d.ts +56 -0
  10. package/build/event-builder/scroll.js +51 -0
  11. package/build/event-builder/scroll.js.map +1 -0
  12. package/build/event-builder/text.d.ts +162 -0
  13. package/build/event-builder/text.js +113 -0
  14. package/build/event-builder/text.js.map +1 -0
  15. package/build/fire-event.d.ts +6 -5
  16. package/build/fire-event.js +47 -23
  17. package/build/fire-event.js.map +1 -1
  18. package/build/helpers/accessibility.d.ts +18 -15
  19. package/build/helpers/accessibility.js +64 -47
  20. package/build/helpers/accessibility.js.map +1 -1
  21. package/build/helpers/component-tree.d.ts +9 -9
  22. package/build/helpers/component-tree.js +17 -17
  23. package/build/helpers/component-tree.js.map +1 -1
  24. package/build/helpers/find-all.d.ts +2 -2
  25. package/build/helpers/find-all.js +1 -1
  26. package/build/helpers/find-all.js.map +1 -1
  27. package/build/helpers/format-element.d.ts +5 -5
  28. package/build/helpers/format-element.js +9 -9
  29. package/build/helpers/format-element.js.map +1 -1
  30. package/build/helpers/host-component-names.d.ts +13 -13
  31. package/build/helpers/host-component-names.js +18 -18
  32. package/build/helpers/host-component-names.js.map +1 -1
  33. package/build/helpers/matchers/match-accessibility-state.d.ts +2 -2
  34. package/build/helpers/matchers/match-accessibility-state.js +6 -6
  35. package/build/helpers/matchers/match-accessibility-state.js.map +1 -1
  36. package/build/helpers/matchers/match-accessibility-value.d.ts +2 -2
  37. package/build/helpers/matchers/match-accessibility-value.js +2 -2
  38. package/build/helpers/matchers/match-accessibility-value.js.map +1 -1
  39. package/build/helpers/matchers/match-label-text.d.ts +2 -2
  40. package/build/helpers/matchers/match-label-text.js +2 -2
  41. package/build/helpers/matchers/match-label-text.js.map +1 -1
  42. package/build/helpers/matchers/match-text-content.d.ts +5 -5
  43. package/build/helpers/matchers/match-text-content.js +5 -5
  44. package/build/helpers/matchers/match-text-content.js.map +1 -1
  45. package/build/helpers/pointer-events.d.ts +2 -2
  46. package/build/helpers/pointer-events.js +4 -4
  47. package/build/helpers/pointer-events.js.map +1 -1
  48. package/build/helpers/text-content.d.ts +2 -2
  49. package/build/helpers/text-content.js +5 -5
  50. package/build/helpers/text-content.js.map +1 -1
  51. package/build/helpers/text-input.d.ts +3 -3
  52. package/build/helpers/text-input.js +6 -6
  53. package/build/helpers/text-input.js.map +1 -1
  54. package/build/matchers/to-be-busy.d.ts +2 -2
  55. package/build/matchers/to-be-busy.js +5 -5
  56. package/build/matchers/to-be-busy.js.map +1 -1
  57. package/build/matchers/to-be-checked.d.ts +2 -2
  58. package/build/matchers/to-be-checked.js +9 -9
  59. package/build/matchers/to-be-checked.js.map +1 -1
  60. package/build/matchers/to-be-disabled.d.ts +3 -3
  61. package/build/matchers/to-be-disabled.js +10 -10
  62. package/build/matchers/to-be-disabled.js.map +1 -1
  63. package/build/matchers/to-be-empty-element.d.ts +2 -2
  64. package/build/matchers/to-be-empty-element.js +4 -4
  65. package/build/matchers/to-be-empty-element.js.map +1 -1
  66. package/build/matchers/to-be-expanded.d.ts +3 -3
  67. package/build/matchers/to-be-expanded.js +10 -10
  68. package/build/matchers/to-be-expanded.js.map +1 -1
  69. package/build/matchers/to-be-on-the-screen.d.ts +2 -2
  70. package/build/matchers/to-be-on-the-screen.js +7 -7
  71. package/build/matchers/to-be-on-the-screen.js.map +1 -1
  72. package/build/matchers/to-be-partially-checked.d.ts +2 -2
  73. package/build/matchers/to-be-partially-checked.js +8 -8
  74. package/build/matchers/to-be-partially-checked.js.map +1 -1
  75. package/build/matchers/to-be-selected.d.ts +2 -2
  76. package/build/matchers/to-be-selected.js +4 -4
  77. package/build/matchers/to-be-selected.js.map +1 -1
  78. package/build/matchers/to-be-visible.d.ts +2 -2
  79. package/build/matchers/to-be-visible.js +12 -12
  80. package/build/matchers/to-be-visible.js.map +1 -1
  81. package/build/matchers/to-contain-element.d.ts +2 -2
  82. package/build/matchers/to-contain-element.js +6 -6
  83. package/build/matchers/to-contain-element.js.map +1 -1
  84. package/build/matchers/to-have-accessibility-value.d.ts +2 -2
  85. package/build/matchers/to-have-accessibility-value.js +6 -6
  86. package/build/matchers/to-have-accessibility-value.js.map +1 -1
  87. package/build/matchers/to-have-accessible-name.d.ts +2 -2
  88. package/build/matchers/to-have-accessible-name.js +5 -10
  89. package/build/matchers/to-have-accessible-name.js.map +1 -1
  90. package/build/matchers/to-have-display-value.d.ts +2 -2
  91. package/build/matchers/to-have-display-value.js +6 -6
  92. package/build/matchers/to-have-display-value.js.map +1 -1
  93. package/build/matchers/to-have-prop.d.ts +2 -2
  94. package/build/matchers/to-have-prop.js +6 -6
  95. package/build/matchers/to-have-prop.js.map +1 -1
  96. package/build/matchers/to-have-style.d.ts +2 -2
  97. package/build/matchers/to-have-style.js +5 -5
  98. package/build/matchers/to-have-style.js.map +1 -1
  99. package/build/matchers/to-have-text-content.d.ts +2 -2
  100. package/build/matchers/to-have-text-content.js +4 -4
  101. package/build/matchers/to-have-text-content.js.map +1 -1
  102. package/build/matchers/types.d.ts +20 -20
  103. package/build/matchers/types.js.map +1 -1
  104. package/build/matchers/utils.d.ts +4 -4
  105. package/build/matchers/utils.js +6 -6
  106. package/build/matchers/utils.js.map +1 -1
  107. package/build/native-state.d.ts +3 -3
  108. package/build/native-state.js +2 -2
  109. package/build/native-state.js.map +1 -1
  110. package/build/queries/display-value.d.ts +2 -2
  111. package/build/queries/display-value.js +12 -12
  112. package/build/queries/display-value.js.map +1 -1
  113. package/build/queries/hint-text.d.ts +2 -2
  114. package/build/queries/hint-text.js +11 -11
  115. package/build/queries/hint-text.js.map +1 -1
  116. package/build/queries/label-text.d.ts +2 -2
  117. package/build/queries/label-text.js +9 -9
  118. package/build/queries/label-text.js.map +1 -1
  119. package/build/queries/make-queries.d.ts +8 -8
  120. package/build/queries/make-queries.js +11 -11
  121. package/build/queries/make-queries.js.map +1 -1
  122. package/build/queries/placeholder-text.d.ts +2 -2
  123. package/build/queries/placeholder-text.js +11 -11
  124. package/build/queries/placeholder-text.js.map +1 -1
  125. package/build/queries/role.d.ts +2 -2
  126. package/build/queries/role.js +17 -27
  127. package/build/queries/role.js.map +1 -1
  128. package/build/queries/test-id.d.ts +2 -2
  129. package/build/queries/test-id.js +11 -11
  130. package/build/queries/test-id.js.map +1 -1
  131. package/build/queries/text.d.ts +2 -2
  132. package/build/queries/text.js +9 -9
  133. package/build/queries/text.js.map +1 -1
  134. package/build/render.d.ts +3 -4
  135. package/build/render.js +17 -3
  136. package/build/render.js.map +1 -1
  137. package/build/screen.js.map +1 -1
  138. package/build/test-utils/react-version-gates.d.ts +1 -0
  139. package/build/test-utils/react-version-gates.js +28 -0
  140. package/build/test-utils/react-version-gates.js.map +1 -0
  141. package/build/types.d.ts +7 -0
  142. package/build/types.js.map +1 -1
  143. package/build/user-event/clear.d.ts +2 -2
  144. package/build/user-event/clear.js +13 -13
  145. package/build/user-event/clear.js.map +1 -1
  146. package/build/user-event/index.d.ts +7 -7
  147. package/build/user-event/index.js +6 -6
  148. package/build/user-event/index.js.map +1 -1
  149. package/build/user-event/paste.d.ts +2 -2
  150. package/build/user-event/paste.js +18 -18
  151. package/build/user-event/paste.js.map +1 -1
  152. package/build/user-event/press/press.d.ts +3 -3
  153. package/build/user-event/press/press.js +35 -35
  154. package/build/user-event/press/press.js.map +1 -1
  155. package/build/user-event/scroll/scroll-to.d.ts +2 -2
  156. package/build/user-event/scroll/scroll-to.js +20 -20
  157. package/build/user-event/scroll/scroll-to.js.map +1 -1
  158. package/build/user-event/setup/setup.d.ts +11 -11
  159. package/build/user-event/setup/setup.js.map +1 -1
  160. package/build/user-event/type/type.d.ts +3 -3
  161. package/build/user-event/type/type.js +27 -28
  162. package/build/user-event/type/type.js.map +1 -1
  163. package/build/user-event/utils/dispatch-event.d.ts +3 -3
  164. package/build/user-event/utils/dispatch-event.js +4 -4
  165. package/build/user-event/utils/dispatch-event.js.map +1 -1
  166. package/build/user-event/utils/index.d.ts +0 -1
  167. package/build/user-event/utils/index.js +0 -11
  168. package/build/user-event/utils/index.js.map +1 -1
  169. package/build/within.d.ts +3 -3
  170. package/build/within.js +10 -10
  171. package/build/within.js.map +1 -1
  172. package/package.json +37 -27
  173. package/build/tsconfig.release.tsbuildinfo +0 -1
  174. package/build/user-event/event-builder/base.js.map +0 -1
  175. package/build/user-event/event-builder/common.d.ts +0 -155
  176. package/build/user-event/event-builder/common.js +0 -77
  177. package/build/user-event/event-builder/common.js.map +0 -1
  178. package/build/user-event/event-builder/index.d.ts +0 -318
  179. package/build/user-event/event-builder/index.js +0 -15
  180. package/build/user-event/event-builder/index.js.map +0 -1
  181. package/build/user-event/event-builder/scroll-view.d.ts +0 -58
  182. package/build/user-event/event-builder/scroll-view.js +0 -53
  183. package/build/user-event/event-builder/scroll-view.js.map +0 -1
  184. package/build/user-event/event-builder/text-input.d.ts +0 -165
  185. package/build/user-event/event-builder/text-input.js +0 -105
  186. package/build/user-event/event-builder/text-input.js.map +0 -1
  187. package/build/user-event/utils/text-range.d.ts +0 -4
  188. package/build/user-event/utils/text-range.js +0 -6
  189. package/build/user-event/utils/text-range.js.map +0 -1
  190. /package/build/{user-event/event-builder → event-builder}/base.d.ts +0 -0
  191. /package/build/{user-event/event-builder → event-builder}/base.js +0 -0
@@ -0,0 +1,162 @@
1
+ import type { Size, TextRange } from '../types';
2
+ /**
3
+ * Experimental values:
4
+ * - iOS: `{"eventCount": 4, "target": 75, "text": "Test"}`
5
+ * - Android: `{"eventCount": 6, "target": 53, "text": "Tes"}`
6
+ */
7
+ export declare function buildTextChangeEvent(text: string): {
8
+ nativeEvent: {
9
+ text: string;
10
+ target: number;
11
+ eventCount: number;
12
+ };
13
+ currentTarget?: unknown;
14
+ target?: unknown;
15
+ bubbles?: boolean | undefined;
16
+ cancelable?: boolean | undefined;
17
+ defaultPrevented?: boolean | undefined;
18
+ eventPhase?: number | undefined;
19
+ isTrusted?: boolean | undefined;
20
+ preventDefault?: (() => void) | undefined;
21
+ isDefaultPrevented?: (() => boolean) | undefined;
22
+ stopPropagation?: (() => void) | undefined;
23
+ isPropagationStopped?: (() => boolean) | undefined;
24
+ persist?: (() => void) | undefined;
25
+ timeStamp?: number | undefined;
26
+ type?: string | undefined;
27
+ isPersistent: () => boolean;
28
+ };
29
+ /**
30
+ * Experimental values:
31
+ * - iOS: `{"eventCount": 3, "key": "a", "target": 75}`
32
+ * - Android: `{"key": "a"}`
33
+ */
34
+ export declare function buildKeyPressEvent(key: string): {
35
+ nativeEvent: {
36
+ key: string;
37
+ };
38
+ currentTarget?: unknown;
39
+ target?: unknown;
40
+ bubbles?: boolean | undefined;
41
+ cancelable?: boolean | undefined;
42
+ defaultPrevented?: boolean | undefined;
43
+ eventPhase?: number | undefined;
44
+ isTrusted?: boolean | undefined;
45
+ preventDefault?: (() => void) | undefined;
46
+ isDefaultPrevented?: (() => boolean) | undefined;
47
+ stopPropagation?: (() => void) | undefined;
48
+ isPropagationStopped?: (() => boolean) | undefined;
49
+ persist?: (() => void) | undefined;
50
+ timeStamp?: number | undefined;
51
+ type?: string | undefined;
52
+ isPersistent: () => boolean;
53
+ };
54
+ /**
55
+ * Experimental values:
56
+ * - iOS: `{"eventCount": 4, "target": 75, "text": "Test"}`
57
+ * - Android: `{"target": 53, "text": "Test"}`
58
+ */
59
+ export declare function buildSubmitEditingEvent(text: string): {
60
+ nativeEvent: {
61
+ text: string;
62
+ target: number;
63
+ };
64
+ currentTarget?: unknown;
65
+ target?: unknown;
66
+ bubbles?: boolean | undefined;
67
+ cancelable?: boolean | undefined;
68
+ defaultPrevented?: boolean | undefined;
69
+ eventPhase?: number | undefined;
70
+ isTrusted?: boolean | undefined;
71
+ preventDefault?: (() => void) | undefined;
72
+ isDefaultPrevented?: (() => boolean) | undefined;
73
+ stopPropagation?: (() => void) | undefined;
74
+ isPropagationStopped?: (() => boolean) | undefined;
75
+ persist?: (() => void) | undefined;
76
+ timeStamp?: number | undefined;
77
+ type?: string | undefined;
78
+ isPersistent: () => boolean;
79
+ };
80
+ /**
81
+ * Experimental values:
82
+ * - iOS: `{"eventCount": 4, "target": 75, "text": "Test"}`
83
+ * - Android: `{"target": 53, "text": "Test"}`
84
+ */
85
+ export declare function buildEndEditingEvent(text: string): {
86
+ nativeEvent: {
87
+ text: string;
88
+ target: number;
89
+ };
90
+ currentTarget?: unknown;
91
+ target?: unknown;
92
+ bubbles?: boolean | undefined;
93
+ cancelable?: boolean | undefined;
94
+ defaultPrevented?: boolean | undefined;
95
+ eventPhase?: number | undefined;
96
+ isTrusted?: boolean | undefined;
97
+ preventDefault?: (() => void) | undefined;
98
+ isDefaultPrevented?: (() => boolean) | undefined;
99
+ stopPropagation?: (() => void) | undefined;
100
+ isPropagationStopped?: (() => boolean) | undefined;
101
+ persist?: (() => void) | undefined;
102
+ timeStamp?: number | undefined;
103
+ type?: string | undefined;
104
+ isPersistent: () => boolean;
105
+ };
106
+ /**
107
+ * Experimental values:
108
+ * - iOS: `{"selection": {"end": 4, "start": 4}, "target": 75}`
109
+ * - Android: `{"selection": {"end": 4, "start": 4}}`
110
+ */
111
+ export declare function buildTextSelectionChangeEvent({ start, end }: TextRange): {
112
+ nativeEvent: {
113
+ selection: {
114
+ start: number;
115
+ end: number;
116
+ };
117
+ };
118
+ currentTarget?: unknown;
119
+ target?: unknown;
120
+ bubbles?: boolean | undefined;
121
+ cancelable?: boolean | undefined;
122
+ defaultPrevented?: boolean | undefined;
123
+ eventPhase?: number | undefined;
124
+ isTrusted?: boolean | undefined;
125
+ preventDefault?: (() => void) | undefined;
126
+ isDefaultPrevented?: (() => boolean) | undefined;
127
+ stopPropagation?: (() => void) | undefined;
128
+ isPropagationStopped?: (() => boolean) | undefined;
129
+ persist?: (() => void) | undefined;
130
+ timeStamp?: number | undefined;
131
+ type?: string | undefined;
132
+ isPersistent: () => boolean;
133
+ };
134
+ /**
135
+ * Experimental values:
136
+ * - iOS: `{"contentSize": {"height": 21.666666666666668, "width": 11.666666666666666}, "target": 75}`
137
+ * - Android: `{"contentSize": {"height": 61.45454406738281, "width": 352.7272644042969}, "target": 53}`
138
+ */
139
+ export declare function buildContentSizeChangeEvent({ width, height }: Size): {
140
+ nativeEvent: {
141
+ contentSize: {
142
+ width: number;
143
+ height: number;
144
+ };
145
+ target: number;
146
+ };
147
+ currentTarget?: unknown;
148
+ target?: unknown;
149
+ bubbles?: boolean | undefined;
150
+ cancelable?: boolean | undefined;
151
+ defaultPrevented?: boolean | undefined;
152
+ eventPhase?: number | undefined;
153
+ isTrusted?: boolean | undefined;
154
+ preventDefault?: (() => void) | undefined;
155
+ isDefaultPrevented?: (() => boolean) | undefined;
156
+ stopPropagation?: (() => void) | undefined;
157
+ isPropagationStopped?: (() => boolean) | undefined;
158
+ persist?: (() => void) | undefined;
159
+ timeStamp?: number | undefined;
160
+ type?: string | undefined;
161
+ isPersistent: () => boolean;
162
+ };
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.buildContentSizeChangeEvent = buildContentSizeChangeEvent;
7
+ exports.buildEndEditingEvent = buildEndEditingEvent;
8
+ exports.buildKeyPressEvent = buildKeyPressEvent;
9
+ exports.buildSubmitEditingEvent = buildSubmitEditingEvent;
10
+ exports.buildTextChangeEvent = buildTextChangeEvent;
11
+ exports.buildTextSelectionChangeEvent = buildTextSelectionChangeEvent;
12
+ var _base = require("./base");
13
+ /**
14
+ * Experimental values:
15
+ * - iOS: `{"eventCount": 4, "target": 75, "text": "Test"}`
16
+ * - Android: `{"eventCount": 6, "target": 53, "text": "Tes"}`
17
+ */
18
+ function buildTextChangeEvent(text) {
19
+ return {
20
+ ...(0, _base.baseSyntheticEvent)(),
21
+ nativeEvent: {
22
+ text,
23
+ target: 0,
24
+ eventCount: 0
25
+ }
26
+ };
27
+ }
28
+
29
+ /**
30
+ * Experimental values:
31
+ * - iOS: `{"eventCount": 3, "key": "a", "target": 75}`
32
+ * - Android: `{"key": "a"}`
33
+ */
34
+ function buildKeyPressEvent(key) {
35
+ return {
36
+ ...(0, _base.baseSyntheticEvent)(),
37
+ nativeEvent: {
38
+ key
39
+ }
40
+ };
41
+ }
42
+
43
+ /**
44
+ * Experimental values:
45
+ * - iOS: `{"eventCount": 4, "target": 75, "text": "Test"}`
46
+ * - Android: `{"target": 53, "text": "Test"}`
47
+ */
48
+ function buildSubmitEditingEvent(text) {
49
+ return {
50
+ ...(0, _base.baseSyntheticEvent)(),
51
+ nativeEvent: {
52
+ text,
53
+ target: 0
54
+ }
55
+ };
56
+ }
57
+
58
+ /**
59
+ * Experimental values:
60
+ * - iOS: `{"eventCount": 4, "target": 75, "text": "Test"}`
61
+ * - Android: `{"target": 53, "text": "Test"}`
62
+ */
63
+ function buildEndEditingEvent(text) {
64
+ return {
65
+ ...(0, _base.baseSyntheticEvent)(),
66
+ nativeEvent: {
67
+ text,
68
+ target: 0
69
+ }
70
+ };
71
+ }
72
+
73
+ /**
74
+ * Experimental values:
75
+ * - iOS: `{"selection": {"end": 4, "start": 4}, "target": 75}`
76
+ * - Android: `{"selection": {"end": 4, "start": 4}}`
77
+ */
78
+ function buildTextSelectionChangeEvent({
79
+ start,
80
+ end
81
+ }) {
82
+ return {
83
+ ...(0, _base.baseSyntheticEvent)(),
84
+ nativeEvent: {
85
+ selection: {
86
+ start,
87
+ end
88
+ }
89
+ }
90
+ };
91
+ }
92
+
93
+ /**
94
+ * Experimental values:
95
+ * - iOS: `{"contentSize": {"height": 21.666666666666668, "width": 11.666666666666666}, "target": 75}`
96
+ * - Android: `{"contentSize": {"height": 61.45454406738281, "width": 352.7272644042969}, "target": 53}`
97
+ */
98
+ function buildContentSizeChangeEvent({
99
+ width,
100
+ height
101
+ }) {
102
+ return {
103
+ ...(0, _base.baseSyntheticEvent)(),
104
+ nativeEvent: {
105
+ contentSize: {
106
+ width,
107
+ height
108
+ },
109
+ target: 0
110
+ }
111
+ };
112
+ }
113
+ //# sourceMappingURL=text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.js","names":["_base","require","buildTextChangeEvent","text","baseSyntheticEvent","nativeEvent","target","eventCount","buildKeyPressEvent","key","buildSubmitEditingEvent","buildEndEditingEvent","buildTextSelectionChangeEvent","start","end","selection","buildContentSizeChangeEvent","width","height","contentSize"],"sources":["../../src/event-builder/text.ts"],"sourcesContent":["import type { Size, TextRange } from '../types';\nimport { baseSyntheticEvent } from './base';\n\n/**\n * Experimental values:\n * - iOS: `{\"eventCount\": 4, \"target\": 75, \"text\": \"Test\"}`\n * - Android: `{\"eventCount\": 6, \"target\": 53, \"text\": \"Tes\"}`\n */\nexport function buildTextChangeEvent(text: string) {\n return {\n ...baseSyntheticEvent(),\n nativeEvent: { text, target: 0, eventCount: 0 },\n };\n}\n\n/**\n * Experimental values:\n * - iOS: `{\"eventCount\": 3, \"key\": \"a\", \"target\": 75}`\n * - Android: `{\"key\": \"a\"}`\n */\nexport function buildKeyPressEvent(key: string) {\n return {\n ...baseSyntheticEvent(),\n nativeEvent: { key },\n };\n}\n\n/**\n * Experimental values:\n * - iOS: `{\"eventCount\": 4, \"target\": 75, \"text\": \"Test\"}`\n * - Android: `{\"target\": 53, \"text\": \"Test\"}`\n */\nexport function buildSubmitEditingEvent(text: string) {\n return {\n ...baseSyntheticEvent(),\n nativeEvent: { text, target: 0 },\n };\n}\n\n/**\n * Experimental values:\n * - iOS: `{\"eventCount\": 4, \"target\": 75, \"text\": \"Test\"}`\n * - Android: `{\"target\": 53, \"text\": \"Test\"}`\n */\nexport function buildEndEditingEvent(text: string) {\n return {\n ...baseSyntheticEvent(),\n nativeEvent: { text, target: 0 },\n };\n}\n\n/**\n * Experimental values:\n * - iOS: `{\"selection\": {\"end\": 4, \"start\": 4}, \"target\": 75}`\n * - Android: `{\"selection\": {\"end\": 4, \"start\": 4}}`\n */\nexport function buildTextSelectionChangeEvent({ start, end }: TextRange) {\n return {\n ...baseSyntheticEvent(),\n nativeEvent: { selection: { start, end } },\n };\n}\n\n/**\n * Experimental values:\n * - iOS: `{\"contentSize\": {\"height\": 21.666666666666668, \"width\": 11.666666666666666}, \"target\": 75}`\n * - Android: `{\"contentSize\": {\"height\": 61.45454406738281, \"width\": 352.7272644042969}, \"target\": 53}`\n */\nexport function buildContentSizeChangeEvent({ width, height }: Size) {\n return {\n ...baseSyntheticEvent(),\n nativeEvent: { contentSize: { width, height }, target: 0 },\n };\n}\n"],"mappings":";;;;;;;;;;;AACA,IAAAA,KAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASC,oBAAoBA,CAACC,IAAY,EAAE;EACjD,OAAO;IACL,GAAG,IAAAC,wBAAkB,EAAC,CAAC;IACvBC,WAAW,EAAE;MAAEF,IAAI;MAAEG,MAAM,EAAE,CAAC;MAAEC,UAAU,EAAE;IAAE;EAChD,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASC,kBAAkBA,CAACC,GAAW,EAAE;EAC9C,OAAO;IACL,GAAG,IAAAL,wBAAkB,EAAC,CAAC;IACvBC,WAAW,EAAE;MAAEI;IAAI;EACrB,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASC,uBAAuBA,CAACP,IAAY,EAAE;EACpD,OAAO;IACL,GAAG,IAAAC,wBAAkB,EAAC,CAAC;IACvBC,WAAW,EAAE;MAAEF,IAAI;MAAEG,MAAM,EAAE;IAAE;EACjC,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASK,oBAAoBA,CAACR,IAAY,EAAE;EACjD,OAAO;IACL,GAAG,IAAAC,wBAAkB,EAAC,CAAC;IACvBC,WAAW,EAAE;MAAEF,IAAI;MAAEG,MAAM,EAAE;IAAE;EACjC,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASM,6BAA6BA,CAAC;EAAEC,KAAK;EAAEC;AAAe,CAAC,EAAE;EACvE,OAAO;IACL,GAAG,IAAAV,wBAAkB,EAAC,CAAC;IACvBC,WAAW,EAAE;MAAEU,SAAS,EAAE;QAAEF,KAAK;QAAEC;MAAI;IAAE;EAC3C,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASE,2BAA2BA,CAAC;EAAEC,KAAK;EAAEC;AAAa,CAAC,EAAE;EACnE,OAAO;IACL,GAAG,IAAAd,wBAAkB,EAAC,CAAC;IACvBC,WAAW,EAAE;MAAEc,WAAW,EAAE;QAAEF,KAAK;QAAEC;MAAO,CAAC;MAAEZ,MAAM,EAAE;IAAE;EAC3D,CAAC;AACH","ignoreList":[]}
@@ -1,14 +1,15 @@
1
1
  import type { PressableProps, ScrollViewProps, TextInputProps, TextProps, ViewProps } from 'react-native';
2
- import type { HostElement } from 'test-renderer';
2
+ import type { TestInstance } from 'test-renderer';
3
3
  import type { StringWithAutocomplete } from './types';
4
4
  type EventNameExtractor<T> = keyof {
5
5
  [K in keyof T as K extends `on${infer Rest}` ? Uncapitalize<Rest> : never]: T[K];
6
6
  };
7
7
  type EventName = StringWithAutocomplete<EventNameExtractor<ViewProps> | EventNameExtractor<TextProps> | EventNameExtractor<TextInputProps> | EventNameExtractor<PressableProps> | EventNameExtractor<ScrollViewProps>>;
8
- declare function fireEvent(element: HostElement, eventName: EventName, ...data: unknown[]): Promise<undefined>;
8
+ declare function fireEvent(instance: TestInstance, eventName: EventName, ...data: unknown[]): Promise<undefined>;
9
9
  declare namespace fireEvent {
10
- var press: (element: HostElement, ...data: unknown[]) => Promise<undefined>;
11
- var changeText: (element: HostElement, ...data: unknown[]) => Promise<undefined>;
12
- var scroll: (element: HostElement, ...data: unknown[]) => Promise<undefined>;
10
+ var changeText: (instance: TestInstance, text: string) => Promise<undefined>;
11
+ var press: (instance: TestInstance, eventProps?: EventProps) => Promise<void>;
12
+ var scroll: (instance: TestInstance, eventProps?: EventProps) => Promise<void>;
13
13
  }
14
+ type EventProps = Record<string, unknown>;
14
15
  export { fireEvent };
@@ -5,14 +5,15 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.fireEvent = fireEvent;
7
7
  var _act = require("./act");
8
+ var _eventBuilder = require("./event-builder");
8
9
  var _eventHandler = require("./event-handler");
9
10
  var _componentTree = require("./helpers/component-tree");
10
11
  var _hostComponentNames = require("./helpers/host-component-names");
11
12
  var _pointerEvents = require("./helpers/pointer-events");
12
13
  var _textInput = require("./helpers/text-input");
13
14
  var _nativeState = require("./native-state");
14
- function isTouchResponder(element) {
15
- return Boolean(element.props.onStartShouldSetResponder) || (0, _hostComponentNames.isHostTextInput)(element);
15
+ function isTouchResponder(instance) {
16
+ return Boolean(instance.props.onStartShouldSetResponder) || (0, _hostComponentNames.isHostTextInput)(instance);
16
17
  }
17
18
 
18
19
  /**
@@ -30,11 +31,11 @@ const eventsAffectedByPointerEventsProp = new Set(['press', 'onPress']);
30
31
  * so we need cover both forms.
31
32
  */
32
33
  const textInputEventsIgnoringEditableProp = new Set(['contentSizeChange', 'onContentSizeChange', 'layout', 'onLayout', 'scroll', 'onScroll']);
33
- function isEventEnabled(element, eventName, nearestTouchResponder) {
34
+ function isEventEnabled(instance, eventName, nearestTouchResponder) {
34
35
  if (nearestTouchResponder != null && (0, _hostComponentNames.isHostTextInput)(nearestTouchResponder)) {
35
36
  return (0, _textInput.isEditableTextInput)(nearestTouchResponder) || textInputEventsIgnoringEditableProp.has(eventName);
36
37
  }
37
- if (eventsAffectedByPointerEventsProp.has(eventName) && !(0, _pointerEvents.isPointerEventEnabled)(element)) {
38
+ if (eventsAffectedByPointerEventsProp.has(eventName) && !(0, _pointerEvents.isPointerEventEnabled)(instance)) {
38
39
  return false;
39
40
  }
40
41
  const touchStart = nearestTouchResponder?.props.onStartShouldSetResponder?.();
@@ -44,18 +45,18 @@ function isEventEnabled(element, eventName, nearestTouchResponder) {
44
45
  }
45
46
  return touchStart === undefined && touchMove === undefined;
46
47
  }
47
- function findEventHandler(element, eventName, nearestTouchResponder) {
48
- const touchResponder = isTouchResponder(element) ? element : nearestTouchResponder;
49
- const handler = (0, _eventHandler.getEventHandlerFromProps)(element.props, eventName, {
48
+ function findEventHandler(instance, eventName, nearestTouchResponder) {
49
+ const touchResponder = isTouchResponder(instance) ? instance : nearestTouchResponder;
50
+ const handler = (0, _eventHandler.getEventHandlerFromProps)(instance.props, eventName, {
50
51
  loose: true
51
- }) ?? findEventHandlerFromFiber(element.unstable_fiber, eventName);
52
- if (handler && isEventEnabled(element, eventName, touchResponder)) {
52
+ }) ?? findEventHandlerFromFiber(instance.unstable_fiber, eventName);
53
+ if (handler && isEventEnabled(instance, eventName, touchResponder)) {
53
54
  return handler;
54
55
  }
55
- if (element.parent === null) {
56
+ if (instance.parent === null) {
56
57
  return null;
57
58
  }
58
- return findEventHandler(element.parent, eventName, touchResponder);
59
+ return findEventHandler(instance.parent, eventName, touchResponder);
59
60
  }
60
61
  function findEventHandlerFromFiber(fiber, eventName) {
61
62
  // Container fibers have memoizedProps set to null
@@ -78,12 +79,12 @@ function findEventHandlerFromFiber(fiber, eventName) {
78
79
 
79
80
  // String union type of keys of T that start with on, stripped of 'on'
80
81
 
81
- async function fireEvent(element, eventName, ...data) {
82
- if (!(0, _componentTree.isElementMounted)(element)) {
82
+ async function fireEvent(instance, eventName, ...data) {
83
+ if (!(0, _componentTree.isInstanceMounted)(instance)) {
83
84
  return;
84
85
  }
85
- setNativeStateIfNeeded(element, eventName, data[0]);
86
- const handler = findEventHandler(element, eventName);
86
+ setNativeStateIfNeeded(instance, eventName, data[0]);
87
+ const handler = findEventHandler(instance, eventName);
87
88
  if (!handler) {
88
89
  return;
89
90
  }
@@ -93,18 +94,30 @@ async function fireEvent(element, eventName, ...data) {
93
94
  });
94
95
  return returnValue;
95
96
  }
96
- fireEvent.press = async (element, ...data) => await fireEvent(element, 'press', ...data);
97
- fireEvent.changeText = async (element, ...data) => await fireEvent(element, 'changeText', ...data);
98
- fireEvent.scroll = async (element, ...data) => await fireEvent(element, 'scroll', ...data);
97
+ fireEvent.changeText = async (instance, text) => await fireEvent(instance, 'changeText', text);
98
+ fireEvent.press = async (instance, eventProps) => {
99
+ const event = (0, _eventBuilder.buildTouchEvent)();
100
+ if (eventProps) {
101
+ mergeEventProps(event, eventProps);
102
+ }
103
+ await fireEvent(instance, 'press', event);
104
+ };
105
+ fireEvent.scroll = async (instance, eventProps) => {
106
+ const event = (0, _eventBuilder.buildScrollEvent)();
107
+ if (eventProps) {
108
+ mergeEventProps(event, eventProps);
109
+ }
110
+ await fireEvent(instance, 'scroll', event);
111
+ };
99
112
  const scrollEventNames = new Set(['scroll', 'scrollBeginDrag', 'scrollEndDrag', 'momentumScrollBegin', 'momentumScrollEnd']);
100
- function setNativeStateIfNeeded(element, eventName, value) {
101
- if (eventName === 'changeText' && typeof value === 'string' && (0, _textInput.isEditableTextInput)(element)) {
102
- _nativeState.nativeState.valueForElement.set(element, value);
113
+ function setNativeStateIfNeeded(instance, eventName, value) {
114
+ if (eventName === 'changeText' && typeof value === 'string' && (0, _textInput.isEditableTextInput)(instance)) {
115
+ _nativeState.nativeState.valueForInstance.set(instance, value);
103
116
  }
104
- if (scrollEventNames.has(eventName) && (0, _hostComponentNames.isHostScrollView)(element)) {
117
+ if (scrollEventNames.has(eventName) && (0, _hostComponentNames.isHostScrollView)(instance)) {
105
118
  const contentOffset = tryGetContentOffset(value);
106
119
  if (contentOffset) {
107
- _nativeState.nativeState.contentOffsetForElement.set(element, contentOffset);
120
+ _nativeState.nativeState.contentOffsetForInstance.set(instance, contentOffset);
108
121
  }
109
122
  }
110
123
  }
@@ -125,4 +138,15 @@ function tryGetContentOffset(event) {
125
138
  }
126
139
  return null;
127
140
  }
141
+ function mergeEventProps(target, source) {
142
+ for (const key of Object.keys(source)) {
143
+ const sourceValue = source[key];
144
+ const targetValue = target[key];
145
+ if (sourceValue != null && typeof sourceValue === 'object' && !Array.isArray(sourceValue) && targetValue && typeof targetValue === 'object' && !Array.isArray(targetValue)) {
146
+ mergeEventProps(targetValue, sourceValue);
147
+ } else {
148
+ target[key] = sourceValue;
149
+ }
150
+ }
151
+ }
128
152
  //# sourceMappingURL=fire-event.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fire-event.js","names":["_act","require","_eventHandler","_componentTree","_hostComponentNames","_pointerEvents","_textInput","_nativeState","isTouchResponder","element","Boolean","props","onStartShouldSetResponder","isHostTextInput","eventsAffectedByPointerEventsProp","Set","textInputEventsIgnoringEditableProp","isEventEnabled","eventName","nearestTouchResponder","isEditableTextInput","has","isPointerEventEnabled","touchStart","touchMove","onMoveShouldSetResponder","undefined","findEventHandler","touchResponder","handler","getEventHandlerFromProps","loose","findEventHandlerFromFiber","unstable_fiber","parent","fiber","memoizedProps","return","type","fireEvent","data","isElementMounted","setNativeStateIfNeeded","returnValue","act","press","changeText","scroll","scrollEventNames","value","nativeState","valueForElement","set","isHostScrollView","contentOffset","tryGetContentOffset","contentOffsetForElement","event","nativeEvent","x","y","Number","isFinite"],"sources":["../src/fire-event.ts"],"sourcesContent":["import type {\n PressableProps,\n ScrollViewProps,\n TextInputProps,\n TextProps,\n ViewProps,\n} from 'react-native';\nimport type { Fiber, HostElement } from 'test-renderer';\n\nimport { act } from './act';\nimport type { EventHandler } from './event-handler';\nimport { getEventHandlerFromProps } from './event-handler';\nimport { isElementMounted } from './helpers/component-tree';\nimport { isHostScrollView, isHostTextInput } from './helpers/host-component-names';\nimport { isPointerEventEnabled } from './helpers/pointer-events';\nimport { isEditableTextInput } from './helpers/text-input';\nimport { nativeState } from './native-state';\nimport type { Point, StringWithAutocomplete } from './types';\n\nfunction isTouchResponder(element: HostElement) {\n return Boolean(element.props.onStartShouldSetResponder) || isHostTextInput(element);\n}\n\n/**\n * List of events affected by `pointerEvents` prop.\n *\n * Note: `fireEvent` is accepting both `press` and `onPress` for event names,\n * so we need cover both forms.\n */\nconst eventsAffectedByPointerEventsProp = new Set(['press', 'onPress']);\n\n/**\n * List of `TextInput` events not affected by `editable` prop.\n *\n * Note: `fireEvent` is accepting both `press` and `onPress` for event names,\n * so we need cover both forms.\n */\nconst textInputEventsIgnoringEditableProp = new Set([\n 'contentSizeChange',\n 'onContentSizeChange',\n 'layout',\n 'onLayout',\n 'scroll',\n 'onScroll',\n]);\n\nfunction isEventEnabled(\n element: HostElement,\n eventName: string,\n nearestTouchResponder?: HostElement,\n) {\n if (nearestTouchResponder != null && isHostTextInput(nearestTouchResponder)) {\n return (\n isEditableTextInput(nearestTouchResponder) ||\n textInputEventsIgnoringEditableProp.has(eventName)\n );\n }\n\n if (eventsAffectedByPointerEventsProp.has(eventName) && !isPointerEventEnabled(element)) {\n return false;\n }\n\n const touchStart = nearestTouchResponder?.props.onStartShouldSetResponder?.();\n const touchMove = nearestTouchResponder?.props.onMoveShouldSetResponder?.();\n if (touchStart || touchMove) {\n return true;\n }\n\n return touchStart === undefined && touchMove === undefined;\n}\n\nfunction findEventHandler(\n element: HostElement,\n eventName: string,\n nearestTouchResponder?: HostElement,\n): EventHandler | null {\n const touchResponder = isTouchResponder(element) ? element : nearestTouchResponder;\n\n const handler =\n getEventHandlerFromProps(element.props, eventName, { loose: true }) ??\n findEventHandlerFromFiber(element.unstable_fiber, eventName);\n if (handler && isEventEnabled(element, eventName, touchResponder)) {\n return handler;\n }\n\n if (element.parent === null) {\n return null;\n }\n\n return findEventHandler(element.parent, eventName, touchResponder);\n}\n\nfunction findEventHandlerFromFiber(fiber: Fiber | null, eventName: string): EventHandler | null {\n // Container fibers have memoizedProps set to null\n if (!fiber?.memoizedProps) {\n return null;\n }\n\n const handler = getEventHandlerFromProps(fiber.memoizedProps, eventName, { loose: true });\n if (handler) {\n return handler;\n }\n\n // No parent fiber or we reached another host element\n if (fiber.return === null || typeof fiber.return.type === 'string') {\n return null;\n }\n\n return findEventHandlerFromFiber(fiber.return, eventName);\n}\n\n// String union type of keys of T that start with on, stripped of 'on'\ntype EventNameExtractor<T> = keyof {\n [K in keyof T as K extends `on${infer Rest}` ? Uncapitalize<Rest> : never]: T[K];\n};\n\ntype EventName = StringWithAutocomplete<\n | EventNameExtractor<ViewProps>\n | EventNameExtractor<TextProps>\n | EventNameExtractor<TextInputProps>\n | EventNameExtractor<PressableProps>\n | EventNameExtractor<ScrollViewProps>\n>;\n\nasync function fireEvent(element: HostElement, eventName: EventName, ...data: unknown[]) {\n if (!isElementMounted(element)) {\n return;\n }\n\n setNativeStateIfNeeded(element, eventName, data[0]);\n\n const handler = findEventHandler(element, eventName);\n if (!handler) {\n return;\n }\n\n let returnValue;\n await act(() => {\n returnValue = handler(...data);\n });\n\n return returnValue;\n}\n\nfireEvent.press = async (element: HostElement, ...data: unknown[]) =>\n await fireEvent(element, 'press', ...data);\n\nfireEvent.changeText = async (element: HostElement, ...data: unknown[]) =>\n await fireEvent(element, 'changeText', ...data);\n\nfireEvent.scroll = async (element: HostElement, ...data: unknown[]) =>\n await fireEvent(element, 'scroll', ...data);\n\nexport { fireEvent };\n\nconst scrollEventNames = new Set([\n 'scroll',\n 'scrollBeginDrag',\n 'scrollEndDrag',\n 'momentumScrollBegin',\n 'momentumScrollEnd',\n]);\n\nfunction setNativeStateIfNeeded(element: HostElement, eventName: string, value: unknown) {\n if (eventName === 'changeText' && typeof value === 'string' && isEditableTextInput(element)) {\n nativeState.valueForElement.set(element, value);\n }\n\n if (scrollEventNames.has(eventName) && isHostScrollView(element)) {\n const contentOffset = tryGetContentOffset(value);\n if (contentOffset) {\n nativeState.contentOffsetForElement.set(element, contentOffset);\n }\n }\n}\n\nfunction tryGetContentOffset(event: unknown): Point | null {\n try {\n // @ts-expect-error: try to extract contentOffset from the event value\n const contentOffset = event?.nativeEvent?.contentOffset;\n const x = contentOffset?.x;\n const y = contentOffset?.y;\n\n if (typeof x === 'number' || typeof y === 'number') {\n return {\n x: Number.isFinite(x) ? x : 0,\n y: Number.isFinite(y) ? y : 0,\n };\n }\n } catch {\n // Do nothing\n }\n\n return null;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"fire-event.js","names":["_act","require","_eventBuilder","_eventHandler","_componentTree","_hostComponentNames","_pointerEvents","_textInput","_nativeState","isTouchResponder","instance","Boolean","props","onStartShouldSetResponder","isHostTextInput","eventsAffectedByPointerEventsProp","Set","textInputEventsIgnoringEditableProp","isEventEnabled","eventName","nearestTouchResponder","isEditableTextInput","has","isPointerEventEnabled","touchStart","touchMove","onMoveShouldSetResponder","undefined","findEventHandler","touchResponder","handler","getEventHandlerFromProps","loose","findEventHandlerFromFiber","unstable_fiber","parent","fiber","memoizedProps","return","type","fireEvent","data","isInstanceMounted","setNativeStateIfNeeded","returnValue","act","changeText","text","press","eventProps","event","buildTouchEvent","mergeEventProps","scroll","buildScrollEvent","scrollEventNames","value","nativeState","valueForInstance","set","isHostScrollView","contentOffset","tryGetContentOffset","contentOffsetForInstance","nativeEvent","x","y","Number","isFinite","target","source","key","Object","keys","sourceValue","targetValue","Array","isArray"],"sources":["../src/fire-event.ts"],"sourcesContent":["import type {\n PressableProps,\n ScrollViewProps,\n TextInputProps,\n TextProps,\n ViewProps,\n} from 'react-native';\nimport type { Fiber, TestInstance } from 'test-renderer';\n\nimport { act } from './act';\nimport { buildScrollEvent, buildTouchEvent } from './event-builder';\nimport type { EventHandler } from './event-handler';\nimport { getEventHandlerFromProps } from './event-handler';\nimport { isInstanceMounted } from './helpers/component-tree';\nimport { isHostScrollView, isHostTextInput } from './helpers/host-component-names';\nimport { isPointerEventEnabled } from './helpers/pointer-events';\nimport { isEditableTextInput } from './helpers/text-input';\nimport { nativeState } from './native-state';\nimport type { Point, StringWithAutocomplete } from './types';\n\nfunction isTouchResponder(instance: TestInstance) {\n return Boolean(instance.props.onStartShouldSetResponder) || isHostTextInput(instance);\n}\n\n/**\n * List of events affected by `pointerEvents` prop.\n *\n * Note: `fireEvent` is accepting both `press` and `onPress` for event names,\n * so we need cover both forms.\n */\nconst eventsAffectedByPointerEventsProp = new Set(['press', 'onPress']);\n\n/**\n * List of `TextInput` events not affected by `editable` prop.\n *\n * Note: `fireEvent` is accepting both `press` and `onPress` for event names,\n * so we need cover both forms.\n */\nconst textInputEventsIgnoringEditableProp = new Set([\n 'contentSizeChange',\n 'onContentSizeChange',\n 'layout',\n 'onLayout',\n 'scroll',\n 'onScroll',\n]);\n\nfunction isEventEnabled(\n instance: TestInstance,\n eventName: string,\n nearestTouchResponder?: TestInstance,\n) {\n if (nearestTouchResponder != null && isHostTextInput(nearestTouchResponder)) {\n return (\n isEditableTextInput(nearestTouchResponder) ||\n textInputEventsIgnoringEditableProp.has(eventName)\n );\n }\n\n if (eventsAffectedByPointerEventsProp.has(eventName) && !isPointerEventEnabled(instance)) {\n return false;\n }\n\n const touchStart = nearestTouchResponder?.props.onStartShouldSetResponder?.();\n const touchMove = nearestTouchResponder?.props.onMoveShouldSetResponder?.();\n if (touchStart || touchMove) {\n return true;\n }\n\n return touchStart === undefined && touchMove === undefined;\n}\n\nfunction findEventHandler(\n instance: TestInstance,\n eventName: string,\n nearestTouchResponder?: TestInstance,\n): EventHandler | null {\n const touchResponder = isTouchResponder(instance) ? instance : nearestTouchResponder;\n\n const handler =\n getEventHandlerFromProps(instance.props, eventName, { loose: true }) ??\n findEventHandlerFromFiber(instance.unstable_fiber, eventName);\n if (handler && isEventEnabled(instance, eventName, touchResponder)) {\n return handler;\n }\n\n if (instance.parent === null) {\n return null;\n }\n\n return findEventHandler(instance.parent, eventName, touchResponder);\n}\n\nfunction findEventHandlerFromFiber(fiber: Fiber | null, eventName: string): EventHandler | null {\n // Container fibers have memoizedProps set to null\n if (!fiber?.memoizedProps) {\n return null;\n }\n\n const handler = getEventHandlerFromProps(fiber.memoizedProps, eventName, { loose: true });\n if (handler) {\n return handler;\n }\n\n // No parent fiber or we reached another host element\n if (fiber.return === null || typeof fiber.return.type === 'string') {\n return null;\n }\n\n return findEventHandlerFromFiber(fiber.return, eventName);\n}\n\n// String union type of keys of T that start with on, stripped of 'on'\ntype EventNameExtractor<T> = keyof {\n [K in keyof T as K extends `on${infer Rest}` ? Uncapitalize<Rest> : never]: T[K];\n};\n\ntype EventName = StringWithAutocomplete<\n | EventNameExtractor<ViewProps>\n | EventNameExtractor<TextProps>\n | EventNameExtractor<TextInputProps>\n | EventNameExtractor<PressableProps>\n | EventNameExtractor<ScrollViewProps>\n>;\n\nasync function fireEvent(instance: TestInstance, eventName: EventName, ...data: unknown[]) {\n if (!isInstanceMounted(instance)) {\n return;\n }\n\n setNativeStateIfNeeded(instance, eventName, data[0]);\n\n const handler = findEventHandler(instance, eventName);\n if (!handler) {\n return;\n }\n\n let returnValue;\n await act(() => {\n returnValue = handler(...data);\n });\n\n return returnValue;\n}\n\ntype EventProps = Record<string, unknown>;\n\nfireEvent.changeText = async (instance: TestInstance, text: string) =>\n await fireEvent(instance, 'changeText', text);\n\nfireEvent.press = async (instance: TestInstance, eventProps?: EventProps) => {\n const event = buildTouchEvent();\n if (eventProps) {\n mergeEventProps(event, eventProps);\n }\n\n await fireEvent(instance, 'press', event);\n};\n\nfireEvent.scroll = async (instance: TestInstance, eventProps?: EventProps) => {\n const event = buildScrollEvent();\n if (eventProps) {\n mergeEventProps(event, eventProps);\n }\n\n await fireEvent(instance, 'scroll', event);\n};\n\nexport { fireEvent };\n\nconst scrollEventNames = new Set([\n 'scroll',\n 'scrollBeginDrag',\n 'scrollEndDrag',\n 'momentumScrollBegin',\n 'momentumScrollEnd',\n]);\n\nfunction setNativeStateIfNeeded(instance: TestInstance, eventName: string, value: unknown) {\n if (eventName === 'changeText' && typeof value === 'string' && isEditableTextInput(instance)) {\n nativeState.valueForInstance.set(instance, value);\n }\n\n if (scrollEventNames.has(eventName) && isHostScrollView(instance)) {\n const contentOffset = tryGetContentOffset(value);\n if (contentOffset) {\n nativeState.contentOffsetForInstance.set(instance, contentOffset);\n }\n }\n}\n\nfunction tryGetContentOffset(event: unknown): Point | null {\n try {\n // @ts-expect-error: try to extract contentOffset from the event value\n const contentOffset = event?.nativeEvent?.contentOffset;\n const x = contentOffset?.x;\n const y = contentOffset?.y;\n\n if (typeof x === 'number' || typeof y === 'number') {\n return {\n x: Number.isFinite(x) ? x : 0,\n y: Number.isFinite(y) ? y : 0,\n };\n }\n } catch {\n // Do nothing\n }\n\n return null;\n}\n\nfunction mergeEventProps(target: Record<string, unknown>, source: Record<string, unknown>) {\n for (const key of Object.keys(source)) {\n const sourceValue = source[key];\n const targetValue = target[key];\n if (\n sourceValue != null &&\n typeof sourceValue === 'object' &&\n !Array.isArray(sourceValue) &&\n targetValue &&\n typeof targetValue === 'object' &&\n !Array.isArray(targetValue)\n ) {\n mergeEventProps(\n targetValue as Record<string, unknown>,\n sourceValue as Record<string, unknown>,\n );\n } else {\n target[key] = sourceValue;\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,14 +1,14 @@
1
1
  import type { AccessibilityRole, AccessibilityState, AccessibilityValue, Role } from 'react-native';
2
- import type { HostElement } from 'test-renderer';
2
+ import type { TestInstance } from 'test-renderer';
3
3
  type IsInaccessibleOptions = {
4
- cache?: WeakMap<HostElement, boolean>;
4
+ cache?: WeakMap<TestInstance, boolean>;
5
5
  };
6
6
  export declare const accessibilityStateKeys: (keyof AccessibilityState)[];
7
7
  export declare const accessibilityValueKeys: (keyof AccessibilityValue)[];
8
- export declare function isHiddenFromAccessibility(element: HostElement | null, { cache }?: IsInaccessibleOptions): boolean;
8
+ export declare function isHiddenFromAccessibility(instance: TestInstance | null, { cache }?: IsInaccessibleOptions): boolean;
9
9
  /** RTL-compatibility alias for `isHiddenFromAccessibility` */
10
10
  export declare const isInaccessible: typeof isHiddenFromAccessibility;
11
- export declare function isAccessibilityElement(element: HostElement | null): boolean;
11
+ export declare function isAccessibilityElement(instance: TestInstance | null): boolean;
12
12
  /**
13
13
  * Returns the accessibility role for given element. It will return explicit
14
14
  * role from either `role` or `accessibilityRole` props if set.
@@ -19,10 +19,10 @@ export declare function isAccessibilityElement(element: HostElement | null): boo
19
19
  *
20
20
  * In all other cases this functions returns `none`.
21
21
  *
22
- * @param element
22
+ * @param instance
23
23
  * @returns
24
24
  */
25
- export declare function getRole(element: HostElement): Role | AccessibilityRole;
25
+ export declare function getRole(instance: TestInstance): Role | AccessibilityRole;
26
26
  /**
27
27
  * There are some duplications between (ARIA) `Role` and `AccessibilityRole` types.
28
28
  * Resolve them by using ARIA `Role` type where possible.
@@ -31,15 +31,18 @@ export declare function getRole(element: HostElement): Role | AccessibilityRole;
31
31
  * @returns Normalized role
32
32
  */
33
33
  export declare function normalizeRole(role: string): Role | AccessibilityRole;
34
- export declare function computeAriaModal(element: HostElement): boolean | undefined;
35
- export declare function computeAriaLabel(element: HostElement): string | undefined;
36
- export declare function computeAriaBusy({ props }: HostElement): boolean;
37
- export declare function computeAriaChecked(element: HostElement): AccessibilityState['checked'];
38
- export declare function computeAriaDisabled(element: HostElement): boolean;
39
- export declare function computeAriaExpanded({ props }: HostElement): boolean | undefined;
40
- export declare function computeAriaSelected({ props }: HostElement): boolean;
41
- export declare function computeAriaValue(element: HostElement): AccessibilityValue;
42
- export declare function computeAccessibleName(element: HostElement): string | undefined;
34
+ export declare function computeAriaModal(instance: TestInstance): boolean | undefined;
35
+ export declare function computeAriaLabel(instance: TestInstance): string | undefined;
36
+ export declare function computeAriaBusy({ props }: TestInstance): boolean;
37
+ export declare function computeAriaChecked(instance: TestInstance): AccessibilityState['checked'];
38
+ export declare function computeAriaDisabled(instance: TestInstance): boolean;
39
+ export declare function computeAriaExpanded({ props }: TestInstance): boolean | undefined;
40
+ export declare function computeAriaSelected({ props }: TestInstance): boolean;
41
+ export declare function computeAriaValue(instance: TestInstance): AccessibilityValue;
42
+ type ComputeAccessibleNameOptions = {
43
+ root?: boolean;
44
+ };
45
+ export declare function computeAccessibleName(instance: TestInstance, options?: ComputeAccessibleNameOptions): string | undefined;
43
46
  type RoleSupportMap = Partial<Record<Role | AccessibilityRole, true>>;
44
47
  export declare const rolesSupportingCheckedState: RoleSupportMap;
45
48
  export {};