@omriashke/dynamico-validator 0.1.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.
- package/LICENSE +184 -0
- package/dist/events.d.ts +10 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +35 -0
- package/dist/events.js.map +1 -0
- package/dist/expect.d.ts +18 -0
- package/dist/expect.d.ts.map +1 -0
- package/dist/expect.js +69 -0
- package/dist/expect.js.map +1 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -0
- package/dist/mocks/react-native.d.ts +385 -0
- package/dist/mocks/react-native.d.ts.map +1 -0
- package/dist/mocks/react-native.js +181 -0
- package/dist/mocks/react-native.js.map +1 -0
- package/dist/mocks/safe-area-context.d.ts +50 -0
- package/dist/mocks/safe-area-context.d.ts.map +1 -0
- package/dist/mocks/safe-area-context.js +13 -0
- package/dist/mocks/safe-area-context.js.map +1 -0
- package/dist/queries.d.ts +16 -0
- package/dist/queries.d.ts.map +1 -0
- package/dist/queries.js +65 -0
- package/dist/queries.js.map +1 -0
- package/dist/render.d.ts +39 -0
- package/dist/render.d.ts.map +1 -0
- package/dist/render.js +34 -0
- package/dist/render.js.map +1 -0
- package/dist/runTest.d.ts +48 -0
- package/dist/runTest.d.ts.map +1 -0
- package/dist/runTest.js +339 -0
- package/dist/runTest.js.map +1 -0
- package/dist/timing.d.ts +7 -0
- package/dist/timing.d.ts.map +1 -0
- package/dist/timing.js +14 -0
- package/dist/timing.js.map +1 -0
- package/package.json +53 -0
- package/src/events.ts +38 -0
- package/src/expect.ts +70 -0
- package/src/index.ts +23 -0
- package/src/mocks/react-native.ts +203 -0
- package/src/mocks/safe-area-context.ts +15 -0
- package/src/queries.ts +66 -0
- package/src/render.ts +64 -0
- package/src/runTest.ts +402 -0
- package/src/timing.ts +15 -0
|
@@ -0,0 +1,385 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal `react-native` mock for use inside the dynamico push validator.
|
|
3
|
+
*
|
|
4
|
+
* react-test-renderer treats every JSX tag whose component is a string OR a
|
|
5
|
+
* function as a host component. The real react-native exports each primitive
|
|
6
|
+
* (View, Text, Pressable, ...) as a class/native component that the JS runtime
|
|
7
|
+
* doesn't have at validation time. We substitute each with a tiny functional
|
|
8
|
+
* component that just renders its children. This is enough for:
|
|
9
|
+
*
|
|
10
|
+
* - assertions about which sub-trees rendered (the test can still
|
|
11
|
+
* `find(node => node.type.name === 'Text' && node.props.children === 'X')`)
|
|
12
|
+
* - exercising onPress / onChangeText handlers via the press()/type() helpers
|
|
13
|
+
* - StyleSheet.create / Animated / Platform — stubbed to no-op
|
|
14
|
+
*
|
|
15
|
+
* We deliberately do NOT import the real `react-native` here: doing so pulls
|
|
16
|
+
* in the iOS/Android bridge code which fails at require() time on Node.
|
|
17
|
+
*/
|
|
18
|
+
import * as React from "react";
|
|
19
|
+
type AnyProps = Record<string, unknown> & {
|
|
20
|
+
children?: React.ReactNode;
|
|
21
|
+
};
|
|
22
|
+
export declare const View: {
|
|
23
|
+
(props: AnyProps): React.ReactElement;
|
|
24
|
+
displayName: string;
|
|
25
|
+
};
|
|
26
|
+
export declare const Text: {
|
|
27
|
+
(props: AnyProps): React.ReactElement;
|
|
28
|
+
displayName: string;
|
|
29
|
+
};
|
|
30
|
+
export declare const Pressable: {
|
|
31
|
+
(props: AnyProps): React.ReactElement;
|
|
32
|
+
displayName: string;
|
|
33
|
+
};
|
|
34
|
+
export declare const TouchableOpacity: {
|
|
35
|
+
(props: AnyProps): React.ReactElement;
|
|
36
|
+
displayName: string;
|
|
37
|
+
};
|
|
38
|
+
export declare const TouchableHighlight: {
|
|
39
|
+
(props: AnyProps): React.ReactElement;
|
|
40
|
+
displayName: string;
|
|
41
|
+
};
|
|
42
|
+
export declare const TouchableWithoutFeedback: {
|
|
43
|
+
(props: AnyProps): React.ReactElement;
|
|
44
|
+
displayName: string;
|
|
45
|
+
};
|
|
46
|
+
export declare const ScrollView: {
|
|
47
|
+
(props: AnyProps): React.ReactElement;
|
|
48
|
+
displayName: string;
|
|
49
|
+
};
|
|
50
|
+
export declare const SafeAreaView: {
|
|
51
|
+
(props: AnyProps): React.ReactElement;
|
|
52
|
+
displayName: string;
|
|
53
|
+
};
|
|
54
|
+
export declare const Image: {
|
|
55
|
+
(props: AnyProps): React.ReactElement;
|
|
56
|
+
displayName: string;
|
|
57
|
+
};
|
|
58
|
+
export declare const TextInput: {
|
|
59
|
+
(props: AnyProps): React.ReactElement;
|
|
60
|
+
displayName: string;
|
|
61
|
+
};
|
|
62
|
+
export declare const Switch: {
|
|
63
|
+
(props: AnyProps): React.ReactElement;
|
|
64
|
+
displayName: string;
|
|
65
|
+
};
|
|
66
|
+
export declare const Modal: {
|
|
67
|
+
(props: AnyProps): React.ReactElement;
|
|
68
|
+
displayName: string;
|
|
69
|
+
};
|
|
70
|
+
export declare const ActivityIndicator: {
|
|
71
|
+
(props: AnyProps): React.ReactElement;
|
|
72
|
+
displayName: string;
|
|
73
|
+
};
|
|
74
|
+
export declare const KeyboardAvoidingView: {
|
|
75
|
+
(props: AnyProps): React.ReactElement;
|
|
76
|
+
displayName: string;
|
|
77
|
+
};
|
|
78
|
+
export declare const RefreshControl: {
|
|
79
|
+
(props: AnyProps): React.ReactElement;
|
|
80
|
+
displayName: string;
|
|
81
|
+
};
|
|
82
|
+
export declare function FlatList(props: AnyProps): React.ReactElement;
|
|
83
|
+
export declare const StyleSheet: {
|
|
84
|
+
create<T extends Record<string, object>>(styles: T): T;
|
|
85
|
+
flatten(style: unknown): unknown;
|
|
86
|
+
hairlineWidth: number;
|
|
87
|
+
absoluteFill: {};
|
|
88
|
+
absoluteFillObject: {};
|
|
89
|
+
};
|
|
90
|
+
export declare const Platform: {
|
|
91
|
+
OS: "ios";
|
|
92
|
+
Version: number;
|
|
93
|
+
select<T>(specifics: {
|
|
94
|
+
ios?: T;
|
|
95
|
+
android?: T;
|
|
96
|
+
default?: T;
|
|
97
|
+
}): T | undefined;
|
|
98
|
+
isPad: boolean;
|
|
99
|
+
isTV: boolean;
|
|
100
|
+
};
|
|
101
|
+
export declare const Dimensions: {
|
|
102
|
+
get: (_what: "window" | "screen") => {
|
|
103
|
+
width: number;
|
|
104
|
+
height: number;
|
|
105
|
+
scale: number;
|
|
106
|
+
fontScale: number;
|
|
107
|
+
};
|
|
108
|
+
addEventListener: () => {
|
|
109
|
+
remove: () => void;
|
|
110
|
+
};
|
|
111
|
+
removeEventListener: () => void;
|
|
112
|
+
};
|
|
113
|
+
export declare const PixelRatio: {
|
|
114
|
+
get: () => number;
|
|
115
|
+
getFontScale: () => number;
|
|
116
|
+
roundToNearestPixel: (n: number) => number;
|
|
117
|
+
getPixelSizeForLayoutSize: (n: number) => number;
|
|
118
|
+
};
|
|
119
|
+
declare const noopAnimatedValue: () => {
|
|
120
|
+
setValue: () => void;
|
|
121
|
+
interpolate: () => number;
|
|
122
|
+
addListener: () => string;
|
|
123
|
+
removeListener: () => void;
|
|
124
|
+
removeAllListeners: () => void;
|
|
125
|
+
stopAnimation: () => void;
|
|
126
|
+
resetAnimation: () => void;
|
|
127
|
+
__getValue: () => number;
|
|
128
|
+
};
|
|
129
|
+
export declare const Animated: {
|
|
130
|
+
Value: new (n: number) => ReturnType<typeof noopAnimatedValue>;
|
|
131
|
+
ValueXY: new () => {
|
|
132
|
+
x: ReturnType<typeof noopAnimatedValue>;
|
|
133
|
+
y: ReturnType<typeof noopAnimatedValue>;
|
|
134
|
+
};
|
|
135
|
+
View: {
|
|
136
|
+
(props: AnyProps): React.ReactElement;
|
|
137
|
+
displayName: string;
|
|
138
|
+
};
|
|
139
|
+
Text: {
|
|
140
|
+
(props: AnyProps): React.ReactElement;
|
|
141
|
+
displayName: string;
|
|
142
|
+
};
|
|
143
|
+
ScrollView: {
|
|
144
|
+
(props: AnyProps): React.ReactElement;
|
|
145
|
+
displayName: string;
|
|
146
|
+
};
|
|
147
|
+
Image: {
|
|
148
|
+
(props: AnyProps): React.ReactElement;
|
|
149
|
+
displayName: string;
|
|
150
|
+
};
|
|
151
|
+
FlatList: typeof FlatList;
|
|
152
|
+
timing: () => {
|
|
153
|
+
start: (cb?: () => void) => void | undefined;
|
|
154
|
+
};
|
|
155
|
+
spring: () => {
|
|
156
|
+
start: (cb?: () => void) => void | undefined;
|
|
157
|
+
};
|
|
158
|
+
decay: () => {
|
|
159
|
+
start: (cb?: () => void) => void | undefined;
|
|
160
|
+
};
|
|
161
|
+
parallel: (animations: Array<{
|
|
162
|
+
start: (cb?: () => void) => void;
|
|
163
|
+
}>) => {
|
|
164
|
+
start: (cb?: () => void) => void;
|
|
165
|
+
};
|
|
166
|
+
sequence: (animations: Array<{
|
|
167
|
+
start: (cb?: () => void) => void;
|
|
168
|
+
}>) => {
|
|
169
|
+
start: (cb?: () => void) => void;
|
|
170
|
+
};
|
|
171
|
+
loop: () => {
|
|
172
|
+
start: () => void;
|
|
173
|
+
};
|
|
174
|
+
createAnimatedComponent: <P>(C: React.ComponentType<P>) => React.ComponentType<P>;
|
|
175
|
+
event: () => () => void;
|
|
176
|
+
};
|
|
177
|
+
export declare const Easing: {
|
|
178
|
+
linear: (t: number) => number;
|
|
179
|
+
ease: (t: number) => number;
|
|
180
|
+
in: (e: (t: number) => number) => (t: number) => number;
|
|
181
|
+
out: (e: (t: number) => number) => (t: number) => number;
|
|
182
|
+
inOut: (e: (t: number) => number) => (t: number) => number;
|
|
183
|
+
};
|
|
184
|
+
export declare const Alert: {
|
|
185
|
+
alert: () => void;
|
|
186
|
+
prompt: () => void;
|
|
187
|
+
};
|
|
188
|
+
export declare const StatusBar: {
|
|
189
|
+
(props: AnyProps): React.ReactElement;
|
|
190
|
+
displayName: string;
|
|
191
|
+
};
|
|
192
|
+
export declare const Keyboard: {
|
|
193
|
+
dismiss: () => void;
|
|
194
|
+
addListener: () => {
|
|
195
|
+
remove: () => void;
|
|
196
|
+
};
|
|
197
|
+
removeListener: () => void;
|
|
198
|
+
};
|
|
199
|
+
export declare const InteractionManager: {
|
|
200
|
+
runAfterInteractions: (cb: () => void) => {
|
|
201
|
+
cancel: () => void;
|
|
202
|
+
};
|
|
203
|
+
createInteractionHandle: () => number;
|
|
204
|
+
clearInteractionHandle: () => void;
|
|
205
|
+
};
|
|
206
|
+
export declare const NativeModules: Record<string, unknown>;
|
|
207
|
+
declare const _default: {
|
|
208
|
+
View: {
|
|
209
|
+
(props: AnyProps): React.ReactElement;
|
|
210
|
+
displayName: string;
|
|
211
|
+
};
|
|
212
|
+
Text: {
|
|
213
|
+
(props: AnyProps): React.ReactElement;
|
|
214
|
+
displayName: string;
|
|
215
|
+
};
|
|
216
|
+
Pressable: {
|
|
217
|
+
(props: AnyProps): React.ReactElement;
|
|
218
|
+
displayName: string;
|
|
219
|
+
};
|
|
220
|
+
TouchableOpacity: {
|
|
221
|
+
(props: AnyProps): React.ReactElement;
|
|
222
|
+
displayName: string;
|
|
223
|
+
};
|
|
224
|
+
TouchableHighlight: {
|
|
225
|
+
(props: AnyProps): React.ReactElement;
|
|
226
|
+
displayName: string;
|
|
227
|
+
};
|
|
228
|
+
TouchableWithoutFeedback: {
|
|
229
|
+
(props: AnyProps): React.ReactElement;
|
|
230
|
+
displayName: string;
|
|
231
|
+
};
|
|
232
|
+
ScrollView: {
|
|
233
|
+
(props: AnyProps): React.ReactElement;
|
|
234
|
+
displayName: string;
|
|
235
|
+
};
|
|
236
|
+
SafeAreaView: {
|
|
237
|
+
(props: AnyProps): React.ReactElement;
|
|
238
|
+
displayName: string;
|
|
239
|
+
};
|
|
240
|
+
Image: {
|
|
241
|
+
(props: AnyProps): React.ReactElement;
|
|
242
|
+
displayName: string;
|
|
243
|
+
};
|
|
244
|
+
TextInput: {
|
|
245
|
+
(props: AnyProps): React.ReactElement;
|
|
246
|
+
displayName: string;
|
|
247
|
+
};
|
|
248
|
+
Switch: {
|
|
249
|
+
(props: AnyProps): React.ReactElement;
|
|
250
|
+
displayName: string;
|
|
251
|
+
};
|
|
252
|
+
Modal: {
|
|
253
|
+
(props: AnyProps): React.ReactElement;
|
|
254
|
+
displayName: string;
|
|
255
|
+
};
|
|
256
|
+
ActivityIndicator: {
|
|
257
|
+
(props: AnyProps): React.ReactElement;
|
|
258
|
+
displayName: string;
|
|
259
|
+
};
|
|
260
|
+
KeyboardAvoidingView: {
|
|
261
|
+
(props: AnyProps): React.ReactElement;
|
|
262
|
+
displayName: string;
|
|
263
|
+
};
|
|
264
|
+
RefreshControl: {
|
|
265
|
+
(props: AnyProps): React.ReactElement;
|
|
266
|
+
displayName: string;
|
|
267
|
+
};
|
|
268
|
+
FlatList: typeof FlatList;
|
|
269
|
+
StyleSheet: {
|
|
270
|
+
create<T extends Record<string, object>>(styles: T): T;
|
|
271
|
+
flatten(style: unknown): unknown;
|
|
272
|
+
hairlineWidth: number;
|
|
273
|
+
absoluteFill: {};
|
|
274
|
+
absoluteFillObject: {};
|
|
275
|
+
};
|
|
276
|
+
Platform: {
|
|
277
|
+
OS: "ios";
|
|
278
|
+
Version: number;
|
|
279
|
+
select<T>(specifics: {
|
|
280
|
+
ios?: T;
|
|
281
|
+
android?: T;
|
|
282
|
+
default?: T;
|
|
283
|
+
}): T | undefined;
|
|
284
|
+
isPad: boolean;
|
|
285
|
+
isTV: boolean;
|
|
286
|
+
};
|
|
287
|
+
Dimensions: {
|
|
288
|
+
get: (_what: "window" | "screen") => {
|
|
289
|
+
width: number;
|
|
290
|
+
height: number;
|
|
291
|
+
scale: number;
|
|
292
|
+
fontScale: number;
|
|
293
|
+
};
|
|
294
|
+
addEventListener: () => {
|
|
295
|
+
remove: () => void;
|
|
296
|
+
};
|
|
297
|
+
removeEventListener: () => void;
|
|
298
|
+
};
|
|
299
|
+
PixelRatio: {
|
|
300
|
+
get: () => number;
|
|
301
|
+
getFontScale: () => number;
|
|
302
|
+
roundToNearestPixel: (n: number) => number;
|
|
303
|
+
getPixelSizeForLayoutSize: (n: number) => number;
|
|
304
|
+
};
|
|
305
|
+
Animated: {
|
|
306
|
+
Value: new (n: number) => ReturnType<typeof noopAnimatedValue>;
|
|
307
|
+
ValueXY: new () => {
|
|
308
|
+
x: ReturnType<typeof noopAnimatedValue>;
|
|
309
|
+
y: ReturnType<typeof noopAnimatedValue>;
|
|
310
|
+
};
|
|
311
|
+
View: {
|
|
312
|
+
(props: AnyProps): React.ReactElement;
|
|
313
|
+
displayName: string;
|
|
314
|
+
};
|
|
315
|
+
Text: {
|
|
316
|
+
(props: AnyProps): React.ReactElement;
|
|
317
|
+
displayName: string;
|
|
318
|
+
};
|
|
319
|
+
ScrollView: {
|
|
320
|
+
(props: AnyProps): React.ReactElement;
|
|
321
|
+
displayName: string;
|
|
322
|
+
};
|
|
323
|
+
Image: {
|
|
324
|
+
(props: AnyProps): React.ReactElement;
|
|
325
|
+
displayName: string;
|
|
326
|
+
};
|
|
327
|
+
FlatList: typeof FlatList;
|
|
328
|
+
timing: () => {
|
|
329
|
+
start: (cb?: () => void) => void | undefined;
|
|
330
|
+
};
|
|
331
|
+
spring: () => {
|
|
332
|
+
start: (cb?: () => void) => void | undefined;
|
|
333
|
+
};
|
|
334
|
+
decay: () => {
|
|
335
|
+
start: (cb?: () => void) => void | undefined;
|
|
336
|
+
};
|
|
337
|
+
parallel: (animations: Array<{
|
|
338
|
+
start: (cb?: () => void) => void;
|
|
339
|
+
}>) => {
|
|
340
|
+
start: (cb?: () => void) => void;
|
|
341
|
+
};
|
|
342
|
+
sequence: (animations: Array<{
|
|
343
|
+
start: (cb?: () => void) => void;
|
|
344
|
+
}>) => {
|
|
345
|
+
start: (cb?: () => void) => void;
|
|
346
|
+
};
|
|
347
|
+
loop: () => {
|
|
348
|
+
start: () => void;
|
|
349
|
+
};
|
|
350
|
+
createAnimatedComponent: <P>(C: React.ComponentType<P>) => React.ComponentType<P>;
|
|
351
|
+
event: () => () => void;
|
|
352
|
+
};
|
|
353
|
+
Easing: {
|
|
354
|
+
linear: (t: number) => number;
|
|
355
|
+
ease: (t: number) => number;
|
|
356
|
+
in: (e: (t: number) => number) => (t: number) => number;
|
|
357
|
+
out: (e: (t: number) => number) => (t: number) => number;
|
|
358
|
+
inOut: (e: (t: number) => number) => (t: number) => number;
|
|
359
|
+
};
|
|
360
|
+
Alert: {
|
|
361
|
+
alert: () => void;
|
|
362
|
+
prompt: () => void;
|
|
363
|
+
};
|
|
364
|
+
StatusBar: {
|
|
365
|
+
(props: AnyProps): React.ReactElement;
|
|
366
|
+
displayName: string;
|
|
367
|
+
};
|
|
368
|
+
Keyboard: {
|
|
369
|
+
dismiss: () => void;
|
|
370
|
+
addListener: () => {
|
|
371
|
+
remove: () => void;
|
|
372
|
+
};
|
|
373
|
+
removeListener: () => void;
|
|
374
|
+
};
|
|
375
|
+
InteractionManager: {
|
|
376
|
+
runAfterInteractions: (cb: () => void) => {
|
|
377
|
+
cancel: () => void;
|
|
378
|
+
};
|
|
379
|
+
createInteractionHandle: () => number;
|
|
380
|
+
clearInteractionHandle: () => void;
|
|
381
|
+
};
|
|
382
|
+
NativeModules: Record<string, unknown>;
|
|
383
|
+
};
|
|
384
|
+
export default _default;
|
|
385
|
+
//# sourceMappingURL=react-native.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-native.d.ts","sourceRoot":"","sources":["../../src/mocks/react-native.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal `react-native` mock for use inside the dynamico push validator.
|
|
3
|
+
*
|
|
4
|
+
* react-test-renderer treats every JSX tag whose component is a string OR a
|
|
5
|
+
* function as a host component. The real react-native exports each primitive
|
|
6
|
+
* (View, Text, Pressable, ...) as a class/native component that the JS runtime
|
|
7
|
+
* doesn't have at validation time. We substitute each with a tiny functional
|
|
8
|
+
* component that just renders its children. This is enough for:
|
|
9
|
+
*
|
|
10
|
+
* - assertions about which sub-trees rendered (the test can still
|
|
11
|
+
* `find(node => node.type.name === 'Text' && node.props.children === 'X')`)
|
|
12
|
+
* - exercising onPress / onChangeText handlers via the press()/type() helpers
|
|
13
|
+
* - StyleSheet.create / Animated / Platform — stubbed to no-op
|
|
14
|
+
*
|
|
15
|
+
* We deliberately do NOT import the real `react-native` here: doing so pulls
|
|
16
|
+
* in the iOS/Android bridge code which fails at require() time on Node.
|
|
17
|
+
*/
|
|
18
|
+
import * as React from "react";
|
|
19
|
+
function createHostComponent(displayName) {
|
|
20
|
+
const C = (props) => React.createElement(displayName, props, props.children);
|
|
21
|
+
C.displayName = displayName;
|
|
22
|
+
return C;
|
|
23
|
+
}
|
|
24
|
+
export const View = createHostComponent("View");
|
|
25
|
+
export const Text = createHostComponent("Text");
|
|
26
|
+
export const Pressable = createHostComponent("Pressable");
|
|
27
|
+
export const TouchableOpacity = createHostComponent("TouchableOpacity");
|
|
28
|
+
export const TouchableHighlight = createHostComponent("TouchableHighlight");
|
|
29
|
+
export const TouchableWithoutFeedback = createHostComponent("TouchableWithoutFeedback");
|
|
30
|
+
export const ScrollView = createHostComponent("ScrollView");
|
|
31
|
+
export const SafeAreaView = createHostComponent("SafeAreaView");
|
|
32
|
+
export const Image = createHostComponent("Image");
|
|
33
|
+
export const TextInput = createHostComponent("TextInput");
|
|
34
|
+
export const Switch = createHostComponent("Switch");
|
|
35
|
+
export const Modal = createHostComponent("Modal");
|
|
36
|
+
export const ActivityIndicator = createHostComponent("ActivityIndicator");
|
|
37
|
+
export const KeyboardAvoidingView = createHostComponent("KeyboardAvoidingView");
|
|
38
|
+
export const RefreshControl = createHostComponent("RefreshControl");
|
|
39
|
+
// FlatList passes data/renderItem in real RN; the mock does the same so
|
|
40
|
+
// onPress handlers inside renderItem still get exercised by tests.
|
|
41
|
+
export function FlatList(props) {
|
|
42
|
+
const data = props.data ?? [];
|
|
43
|
+
const renderItem = props.renderItem;
|
|
44
|
+
const keyExtractor = props.keyExtractor;
|
|
45
|
+
return React.createElement("FlatList", props, ...data.map((item, index) => {
|
|
46
|
+
const child = renderItem ? renderItem({ item, index }) : null;
|
|
47
|
+
const key = keyExtractor ? keyExtractor(item, index) : String(index);
|
|
48
|
+
return child ? React.cloneElement(child, { key }) : null;
|
|
49
|
+
}));
|
|
50
|
+
}
|
|
51
|
+
export const StyleSheet = {
|
|
52
|
+
create(styles) {
|
|
53
|
+
return styles;
|
|
54
|
+
},
|
|
55
|
+
flatten(style) {
|
|
56
|
+
if (Array.isArray(style)) {
|
|
57
|
+
return Object.assign({}, ...style.filter(Boolean));
|
|
58
|
+
}
|
|
59
|
+
return style ?? {};
|
|
60
|
+
},
|
|
61
|
+
hairlineWidth: 1,
|
|
62
|
+
absoluteFill: {},
|
|
63
|
+
absoluteFillObject: {},
|
|
64
|
+
};
|
|
65
|
+
export const Platform = {
|
|
66
|
+
OS: "ios",
|
|
67
|
+
Version: 17,
|
|
68
|
+
select(specifics) {
|
|
69
|
+
return specifics.ios ?? specifics.default;
|
|
70
|
+
},
|
|
71
|
+
isPad: false,
|
|
72
|
+
isTV: false,
|
|
73
|
+
};
|
|
74
|
+
export const Dimensions = {
|
|
75
|
+
get: (_what) => ({ width: 390, height: 844, scale: 3, fontScale: 1 }),
|
|
76
|
+
addEventListener: () => ({ remove: () => { } }),
|
|
77
|
+
removeEventListener: () => { },
|
|
78
|
+
};
|
|
79
|
+
export const PixelRatio = {
|
|
80
|
+
get: () => 3,
|
|
81
|
+
getFontScale: () => 1,
|
|
82
|
+
roundToNearestPixel: (n) => Math.round(n),
|
|
83
|
+
getPixelSizeForLayoutSize: (n) => n * 3,
|
|
84
|
+
};
|
|
85
|
+
const noopAnimatedValue = () => ({
|
|
86
|
+
setValue: () => { },
|
|
87
|
+
interpolate: () => 0,
|
|
88
|
+
addListener: () => "",
|
|
89
|
+
removeListener: () => { },
|
|
90
|
+
removeAllListeners: () => { },
|
|
91
|
+
stopAnimation: () => { },
|
|
92
|
+
resetAnimation: () => { },
|
|
93
|
+
__getValue: () => 0,
|
|
94
|
+
});
|
|
95
|
+
export const Animated = {
|
|
96
|
+
Value: function () {
|
|
97
|
+
return noopAnimatedValue();
|
|
98
|
+
},
|
|
99
|
+
ValueXY: function () {
|
|
100
|
+
return { x: noopAnimatedValue(), y: noopAnimatedValue() };
|
|
101
|
+
},
|
|
102
|
+
View,
|
|
103
|
+
Text,
|
|
104
|
+
ScrollView,
|
|
105
|
+
Image,
|
|
106
|
+
FlatList,
|
|
107
|
+
timing: () => ({ start: (cb) => cb?.() }),
|
|
108
|
+
spring: () => ({ start: (cb) => cb?.() }),
|
|
109
|
+
decay: () => ({ start: (cb) => cb?.() }),
|
|
110
|
+
parallel: (animations) => ({
|
|
111
|
+
start: (cb) => {
|
|
112
|
+
animations.forEach((a) => a.start());
|
|
113
|
+
cb?.();
|
|
114
|
+
},
|
|
115
|
+
}),
|
|
116
|
+
sequence: (animations) => ({
|
|
117
|
+
start: (cb) => {
|
|
118
|
+
animations.forEach((a) => a.start());
|
|
119
|
+
cb?.();
|
|
120
|
+
},
|
|
121
|
+
}),
|
|
122
|
+
loop: () => ({ start: () => { } }),
|
|
123
|
+
createAnimatedComponent: (C) => C,
|
|
124
|
+
event: () => () => { },
|
|
125
|
+
};
|
|
126
|
+
export const Easing = {
|
|
127
|
+
linear: (t) => t,
|
|
128
|
+
ease: (t) => t,
|
|
129
|
+
in: (e) => e,
|
|
130
|
+
out: (e) => e,
|
|
131
|
+
inOut: (e) => e,
|
|
132
|
+
};
|
|
133
|
+
export const Alert = {
|
|
134
|
+
alert: () => { },
|
|
135
|
+
prompt: () => { },
|
|
136
|
+
};
|
|
137
|
+
export const StatusBar = createHostComponent("StatusBar");
|
|
138
|
+
export const Keyboard = {
|
|
139
|
+
dismiss: () => { },
|
|
140
|
+
addListener: () => ({ remove: () => { } }),
|
|
141
|
+
removeListener: () => { },
|
|
142
|
+
};
|
|
143
|
+
export const InteractionManager = {
|
|
144
|
+
runAfterInteractions: (cb) => {
|
|
145
|
+
cb();
|
|
146
|
+
return { cancel: () => { } };
|
|
147
|
+
},
|
|
148
|
+
createInteractionHandle: () => 0,
|
|
149
|
+
clearInteractionHandle: () => { },
|
|
150
|
+
};
|
|
151
|
+
export const NativeModules = {};
|
|
152
|
+
export default {
|
|
153
|
+
View,
|
|
154
|
+
Text,
|
|
155
|
+
Pressable,
|
|
156
|
+
TouchableOpacity,
|
|
157
|
+
TouchableHighlight,
|
|
158
|
+
TouchableWithoutFeedback,
|
|
159
|
+
ScrollView,
|
|
160
|
+
SafeAreaView,
|
|
161
|
+
Image,
|
|
162
|
+
TextInput,
|
|
163
|
+
Switch,
|
|
164
|
+
Modal,
|
|
165
|
+
ActivityIndicator,
|
|
166
|
+
KeyboardAvoidingView,
|
|
167
|
+
RefreshControl,
|
|
168
|
+
FlatList,
|
|
169
|
+
StyleSheet,
|
|
170
|
+
Platform,
|
|
171
|
+
Dimensions,
|
|
172
|
+
PixelRatio,
|
|
173
|
+
Animated,
|
|
174
|
+
Easing,
|
|
175
|
+
Alert,
|
|
176
|
+
StatusBar,
|
|
177
|
+
Keyboard,
|
|
178
|
+
InteractionManager,
|
|
179
|
+
NativeModules,
|
|
180
|
+
};
|
|
181
|
+
//# sourceMappingURL=react-native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-native.js","sourceRoot":"","sources":["../../src/mocks/react-native.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export declare const SafeAreaProvider: (props: {
|
|
3
|
+
children?: React.ReactNode;
|
|
4
|
+
}) => React.FunctionComponentElement<{
|
|
5
|
+
children?: React.ReactNode | undefined;
|
|
6
|
+
}>;
|
|
7
|
+
export declare const SafeAreaView: (props: {
|
|
8
|
+
children?: React.ReactNode;
|
|
9
|
+
}) => React.FunctionComponentElement<{
|
|
10
|
+
children?: React.ReactNode | undefined;
|
|
11
|
+
}>;
|
|
12
|
+
export declare const SafeAreaInsetsContext: React.Context<{
|
|
13
|
+
top: number;
|
|
14
|
+
right: number;
|
|
15
|
+
bottom: number;
|
|
16
|
+
left: number;
|
|
17
|
+
}>;
|
|
18
|
+
export declare const SafeAreaFrameContext: React.Context<{
|
|
19
|
+
x: number;
|
|
20
|
+
y: number;
|
|
21
|
+
width: number;
|
|
22
|
+
height: number;
|
|
23
|
+
}>;
|
|
24
|
+
export declare const useSafeAreaInsets: () => {
|
|
25
|
+
top: number;
|
|
26
|
+
right: number;
|
|
27
|
+
bottom: number;
|
|
28
|
+
left: number;
|
|
29
|
+
};
|
|
30
|
+
export declare const useSafeAreaFrame: () => {
|
|
31
|
+
x: number;
|
|
32
|
+
y: number;
|
|
33
|
+
width: number;
|
|
34
|
+
height: number;
|
|
35
|
+
};
|
|
36
|
+
export declare const initialWindowMetrics: {
|
|
37
|
+
insets: {
|
|
38
|
+
top: number;
|
|
39
|
+
right: number;
|
|
40
|
+
bottom: number;
|
|
41
|
+
left: number;
|
|
42
|
+
};
|
|
43
|
+
frame: {
|
|
44
|
+
x: number;
|
|
45
|
+
y: number;
|
|
46
|
+
width: number;
|
|
47
|
+
height: number;
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=safe-area-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safe-area-context.d.ts","sourceRoot":"","sources":["../../src/mocks/safe-area-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,eAAO,MAAM,gBAAgB,UAHD;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE;;EAGf,CAAC;AAC5C,eAAO,MAAM,YAAY,UAJG;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE;;EAInB,CAAC;AACxC,eAAO,MAAM,qBAAqB;;;;;EAAgE,CAAC;AACnG,eAAO,MAAM,oBAAoB;;;;;EAA+D,CAAC;AACjG,eAAO,MAAM,iBAAiB;;;;;CAAmD,CAAC;AAClF,eAAO,MAAM,gBAAgB;;;;;CAAkD,CAAC;AAChF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;CAGhC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
const passthrough = (props) => React.createElement(React.Fragment, null, props.children);
|
|
3
|
+
export const SafeAreaProvider = passthrough;
|
|
4
|
+
export const SafeAreaView = passthrough;
|
|
5
|
+
export const SafeAreaInsetsContext = React.createContext({ top: 0, right: 0, bottom: 0, left: 0 });
|
|
6
|
+
export const SafeAreaFrameContext = React.createContext({ x: 0, y: 0, width: 390, height: 844 });
|
|
7
|
+
export const useSafeAreaInsets = () => ({ top: 0, right: 0, bottom: 0, left: 0 });
|
|
8
|
+
export const useSafeAreaFrame = () => ({ x: 0, y: 0, width: 390, height: 844 });
|
|
9
|
+
export const initialWindowMetrics = {
|
|
10
|
+
insets: { top: 0, right: 0, bottom: 0, left: 0 },
|
|
11
|
+
frame: { x: 0, y: 0, width: 390, height: 844 },
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=safe-area-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safe-area-context.js","sourceRoot":"","sources":["../../src/mocks/safe-area-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,GAAG,CAAC,KAAqC,EAAE,EAAE,CAC5D,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;AAE5D,MAAM,CAAC,MAAM,gBAAgB,GAAG,WAAW,CAAC;AAC5C,MAAM,CAAC,MAAM,YAAY,GAAG,WAAW,CAAC;AACxC,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;AACnG,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AACjG,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;AAClF,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AAChF,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE;IAChD,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;CAC/C,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ReactTestInstance } from "react-test-renderer";
|
|
2
|
+
/**
|
|
3
|
+
* Find the first node whose direct text content matches `matcher`. Walks the
|
|
4
|
+
* tree and looks for Text nodes whose children stringify to the matcher.
|
|
5
|
+
*
|
|
6
|
+
* Mirrors the spirit of testing-library's getByText without pulling the
|
|
7
|
+
* whole library in.
|
|
8
|
+
*/
|
|
9
|
+
export declare function findByText(root: ReactTestInstance, matcher: string | RegExp): ReactTestInstance;
|
|
10
|
+
export declare function queryByText(root: ReactTestInstance, matcher: string | RegExp): ReactTestInstance | null;
|
|
11
|
+
/**
|
|
12
|
+
* Find all rendered nodes whose displayName/type matches the given name.
|
|
13
|
+
* E.g. findAllByType(root, 'Text') returns every Text node.
|
|
14
|
+
*/
|
|
15
|
+
export declare function findAllByType(root: ReactTestInstance, typeName: string): ReactTestInstance[];
|
|
16
|
+
//# sourceMappingURL=queries.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../src/queries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7D;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,iBAAiB,CAQ/F;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAsBvG;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAW5F"}
|