Skip to content

Commit 9c0ab88

Browse files
rubennortemeta-codesync[bot]
authored andcommitted
Remove remaining test deep imports (#58573)
Summary: Pull Request resolved: #58573 Migrate the remaining Flow-visible deep imports in React Native tests. Use public DOM globals where their types are sufficient, and use relative imports for implementation-specific helpers, observer types, and native specs that are not publicly exported. Changelog: [Internal] Reviewed By: javache Differential Revision: D120537585
1 parent 7d900ed commit 9c0ab88

16 files changed

Lines changed: 65 additions & 83 deletions

File tree

packages/react-native/Libraries/Text/__tests__/Text-itest.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,16 @@ import '@react-native/fantom/src/setUpDefaultReactNativeEnvironment';
1313
import type {HostInstance} from 'react-native';
1414
import type {AccessibilityProps} from 'react-native';
1515

16+
import accessibilityPropsSuite, {
17+
rolePropSuite,
18+
} from '../../../src/private/__tests__/utilities/accessibilityPropsSuite';
19+
import {testIDPropSuite} from '../../../src/private/__tests__/utilities/commonPropsSuite';
1620
import ensureInstance from '../../../src/private/__tests__/utilities/ensureInstance';
1721
import * as Fantom from '@react-native/fantom';
1822
import nullthrows from 'nullthrows';
1923
import * as React from 'react';
2024
import {createRef} from 'react';
2125
import {Text} from 'react-native';
22-
import accessibilityPropsSuite, {
23-
rolePropSuite,
24-
} from 'react-native/src/private/__tests__/utilities/accessibilityPropsSuite';
25-
import {testIDPropSuite} from 'react-native/src/private/__tests__/utilities/commonPropsSuite';
2626

2727
const TEST_TEXT = 'the text';
2828

packages/react-native/Libraries/Utilities/__tests__/BackHandler-itest.js

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@
1010

1111
import '@react-native/fantom/src/setUpDefaultReactNativeEnvironment';
1212

13+
import {HardwareBackPressEvent} from '../HardwareBackPressEvent';
1314
import {BackHandler, DeviceEventEmitter} from 'react-native';
14-
import {HardwareBackPressEvent as HardwareBackPressEventClass} from 'react-native/Libraries/Utilities/HardwareBackPressEvent';
1515

1616
type BackPressHandler = Parameters<typeof BackHandler.addEventListener>[1];
17-
type HardwareBackPressEvent = Parameters<BackPressHandler>[0];
17+
type HardwareBackPressEventType = Parameters<BackPressHandler>[0];
1818

1919
describe('BackHandler', () => {
2020
const subscriptions: Array<{remove: () => void, ...}> = [];
@@ -28,11 +28,11 @@ describe('BackHandler', () => {
2828

2929
it('calls handlers in reverse order (LIFO)', () => {
3030
const callOrder: Array<string> = [];
31-
const handler1 = (_event: HardwareBackPressEvent) => {
31+
const handler1 = (_event: HardwareBackPressEventType) => {
3232
callOrder.push('first');
3333
return false;
3434
};
35-
const handler2 = (_event: HardwareBackPressEvent) => {
35+
const handler2 = (_event: HardwareBackPressEventType) => {
3636
callOrder.push('second');
3737
return true;
3838
};
@@ -51,11 +51,11 @@ describe('BackHandler', () => {
5151

5252
it('calls all handlers when none return true', () => {
5353
const callOrder: Array<string> = [];
54-
const handler1 = (_event: HardwareBackPressEvent) => {
54+
const handler1 = (_event: HardwareBackPressEventType) => {
5555
callOrder.push('first');
5656
return false;
5757
};
58-
const handler2 = (_event: HardwareBackPressEvent) => {
58+
const handler2 = (_event: HardwareBackPressEventType) => {
5959
callOrder.push('second');
6060
return false;
6161
};
@@ -73,8 +73,8 @@ describe('BackHandler', () => {
7373
});
7474

7575
it('passes HardwareBackPressEvent to handlers', () => {
76-
let receivedEvent: ?HardwareBackPressEvent = null;
77-
const handler = (event: HardwareBackPressEvent) => {
76+
let receivedEvent: ?HardwareBackPressEventType = null;
77+
const handler = (event: HardwareBackPressEventType) => {
7878
receivedEvent = event;
7979
return true;
8080
};
@@ -85,12 +85,12 @@ describe('BackHandler', () => {
8585

8686
DeviceEventEmitter.emit('hardwareBackPress', {timeStamp: 42});
8787

88-
expect(receivedEvent).toBeInstanceOf(HardwareBackPressEventClass);
88+
expect(receivedEvent).toBeInstanceOf(HardwareBackPressEvent);
8989
});
9090

9191
it('event has native timestamp as timeStamp', () => {
92-
let receivedEvent: ?HardwareBackPressEvent = null;
93-
const handler = (event: HardwareBackPressEvent) => {
92+
let receivedEvent: ?HardwareBackPressEventType = null;
93+
const handler = (event: HardwareBackPressEventType) => {
9494
receivedEvent = event;
9595
return true;
9696
};
@@ -105,8 +105,8 @@ describe('BackHandler', () => {
105105
});
106106

107107
it('event falls back to performance.now() when no native timestamp', () => {
108-
let receivedEvent: ?HardwareBackPressEvent = null;
109-
const handler = (event: HardwareBackPressEvent) => {
108+
let receivedEvent: ?HardwareBackPressEventType = null;
109+
const handler = (event: HardwareBackPressEventType) => {
110110
receivedEvent = event;
111111
return true;
112112
};
@@ -129,7 +129,7 @@ describe('BackHandler', () => {
129129

130130
it('removes handler on subscription.remove()', () => {
131131
let called = false;
132-
const handler = (_event: HardwareBackPressEvent) => {
132+
const handler = (_event: HardwareBackPressEventType) => {
133133
called = true;
134134
return true;
135135
};

packages/react-native/Libraries/Utilities/__tests__/HardwareBackPressEvent-itest.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010

1111
import '@react-native/fantom/src/setUpDefaultReactNativeEnvironment';
1212

13-
import {HardwareBackPressEvent} from 'react-native/Libraries/Utilities/HardwareBackPressEvent';
14-
import {setEventInitTimeStamp} from 'react-native/src/private/webapis/dom/events/internals/EventInternals';
13+
import {setEventInitTimeStamp} from '../../../src/private/webapis/dom/events/internals/EventInternals';
14+
import {HardwareBackPressEvent} from '../HardwareBackPressEvent';
1515

1616
describe('HardwareBackPressEvent', () => {
1717
it('extends Event', () => {

packages/react-native/src/private/webapis/dom/events/__tests__/Event-itest.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import '@react-native/fantom/src/setUpDefaultReactNativeEnvironment';
1313
import {
1414
setEventInitTimeStamp,
1515
setInPassiveListenerFlag,
16-
} from 'react-native/src/private/webapis/dom/events/internals/EventInternals';
16+
} from '../internals/EventInternals';
1717

1818
type EventOptions = EventInit & {
1919
rnIsDirect?: boolean,

packages/react-native/src/private/webapis/dom/events/__tests__/EventHandlerAttributes-itest.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import '@react-native/fantom/src/setUpDefaultReactNativeEnvironment';
1515
import {
1616
getEventHandlerAttribute,
1717
setEventHandlerAttribute,
18-
} from 'react-native/src/private/webapis/dom/events/EventHandlerAttributes';
18+
} from '../EventHandlerAttributes';
1919

2020
type EventCallback = (event: Event) => void;
2121

packages/react-native/src/private/webapis/dom/events/__tests__/EventTarget-benchmark-itest.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@
1111

1212
import '@react-native/fantom/src/setUpDefaultReactNativeEnvironment';
1313

14+
import {EVENT_TARGET_GET_DECLARATIVE_LISTENER_KEY} from '../internals/EventTargetInternals';
1415
import createEventTargetHierarchyWithDepth from './createEventTargetHierarchyWithDepth';
1516
import {unstable_benchmark} from '@react-native/fantom';
16-
import {EVENT_TARGET_GET_DECLARATIVE_LISTENER_KEY} from 'react-native/src/private/webapis/dom/events/internals/EventTargetInternals';
1717

1818
let event: Event;
1919
let eventTarget: EventTarget;

packages/react-native/src/private/webapis/dom/nodes/__tests__/ReactNativeDocument-itest.js

Lines changed: 23 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,6 @@ import nullthrows from 'nullthrows';
1919
import * as React from 'react';
2020
import {createRef} from 'react';
2121
import {View} from 'react-native';
22-
import ReactNativeDocument from 'react-native/src/private/webapis/dom/nodes/ReactNativeDocument';
23-
import ReactNativeElement from 'react-native/src/private/webapis/dom/nodes/ReactNativeElement';
2422

2523
describe('ReactNativeDocument', () => {
2624
it('is connected until the surface is destroyed', () => {
@@ -32,7 +30,7 @@ describe('ReactNativeDocument', () => {
3230
});
3331

3432
const element = nullthrows(nodeRef.current);
35-
const document = ensureInstance(element.ownerDocument, ReactNativeDocument);
33+
const document = ensureInstance(element.ownerDocument, Document);
3634

3735
expect(document.isConnected).toBe(true);
3836

@@ -58,14 +56,15 @@ describe('ReactNativeDocument', () => {
5856
});
5957

6058
const element = nullthrows(nodeRef.current);
61-
const document = ensureInstance(element.ownerDocument, ReactNativeDocument);
59+
const document = ensureInstance(element.ownerDocument, Document);
60+
const documentElement = nullthrows(document.documentElement);
6261

6362
expect(document.childNodes.length).toBe(1);
64-
expect(document.childNodes[0]).toBe(document.documentElement);
65-
expect(document.documentElement.parentNode).toBe(document);
66-
expect(document.documentElement.childNodes.length).toBe(1);
67-
expect(document.documentElement.childNodes[0]).toBe(element);
68-
expect(element.parentNode).toBe(document.documentElement);
63+
expect(document.childNodes[0]).toBe(documentElement);
64+
expect(documentElement.parentNode).toBe(document);
65+
expect(documentElement.childNodes.length).toBe(1);
66+
expect(documentElement.childNodes[0]).toBe(element);
67+
expect(element.parentNode).toBe(documentElement);
6968
});
7069

7170
it('allows traversal through document-specific methods', () => {
@@ -77,7 +76,7 @@ describe('ReactNativeDocument', () => {
7776
});
7877

7978
const element = nullthrows(nodeRef.current);
80-
const document = ensureInstance(element.ownerDocument, ReactNativeDocument);
79+
const document = ensureInstance(element.ownerDocument, Document);
8180

8281
expect(document.childElementCount).toBe(1);
8382
expect(document.firstElementChild).toBe(document.documentElement);
@@ -95,7 +94,7 @@ describe('ReactNativeDocument', () => {
9594
});
9695

9796
const element = nullthrows(nodeRef.current);
98-
const document = ensureInstance(element.ownerDocument, ReactNativeDocument);
97+
const document = ensureInstance(element.ownerDocument, Document);
9998

10099
expect(document.nodeName).toBe('#document');
101100
expect(document.nodeType).toBe(Node.DOCUMENT_NODE);
@@ -117,19 +116,19 @@ describe('ReactNativeDocument', () => {
117116
});
118117

119118
const element = nullthrows(nodeRef.current);
120-
const document = ensureInstance(element.ownerDocument, ReactNativeDocument);
119+
const document = ensureInstance(element.ownerDocument, Document);
120+
const documentElement = nullthrows(document.documentElement);
121121

122-
const {x, y, width, height} =
123-
document.documentElement.getBoundingClientRect();
122+
const {x, y, width, height} = documentElement.getBoundingClientRect();
124123

125124
expect(x).toBe(111);
126125
expect(y).toBe(222);
127126
expect(width).toBe(200);
128127
expect(height).toBe(100);
129128

130-
expect(document.documentElement.offsetParent).toBe(null);
131-
expect(document.documentElement.offsetTop).toBe(0);
132-
expect(document.documentElement.offsetLeft).toBe(0);
129+
expect(documentElement.offsetParent).toBe(null);
130+
expect(documentElement.offsetTop).toBe(0);
131+
expect(documentElement.offsetLeft).toBe(0);
133132
});
134133

135134
it('implements compareDocumentPosition correctly', () => {
@@ -140,18 +139,14 @@ describe('ReactNativeDocument', () => {
140139
root.render(<View ref={nodeRef} />);
141140
});
142141

143-
const element = nullthrows(nodeRef.current);
144-
const document = ensureInstance(element.ownerDocument, ReactNativeDocument);
145-
const documentElement = document.documentElement;
142+
const element = ensureInstance(nodeRef.current, Element);
143+
const document = ensureInstance(element.ownerDocument, Document);
144+
const documentElement = nullthrows(document.documentElement);
146145

147146
/* eslint-disable no-bitwise */
148147

149148
expect(document.compareDocumentPosition(document)).toBe(0);
150-
expect(
151-
document.documentElement.compareDocumentPosition(
152-
document.documentElement,
153-
),
154-
).toBe(0);
149+
expect(documentElement.compareDocumentPosition(documentElement)).toBe(0);
155150

156151
expect(document.compareDocumentPosition(documentElement)).toBe(
157152
Node.DOCUMENT_POSITION_CONTAINED_BY | Node.DOCUMENT_POSITION_FOLLOWING,
@@ -185,10 +180,7 @@ describe('ReactNativeDocument', () => {
185180
let maybeWeakDocument;
186181
Fantom.runTask(() => {
187182
maybeWeakDocument = new WeakRef(
188-
ensureInstance(
189-
nullthrows(nodeRef.current).ownerDocument,
190-
ReactNativeDocument,
191-
),
183+
ensureInstance(nullthrows(nodeRef.current).ownerDocument, Document),
192184
);
193185
maybeWeakNode = new WeakRef(nullthrows(nodeRef.current));
194186
});
@@ -250,11 +242,8 @@ describe('ReactNativeDocument', () => {
250242
);
251243
});
252244

253-
const element = ensureInstance(lastNode, ReactNativeElement);
254-
const document = ensureInstance(
255-
element.ownerDocument,
256-
ReactNativeDocument,
257-
);
245+
const element = ensureInstance(lastNode, Element);
246+
const document = ensureInstance(element.ownerDocument, Document);
258247

259248
expect(document.getElementById('foo')).toBe(fooNode);
260249
expect(document.getElementById('bar')).toBe(barFirstNode);

packages/react-native/src/private/webapis/dom/nodes/__tests__/ReactNativeElement-itest.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import type {HostInstance} from 'react-native';
1717

1818
import ensureInstance from '../../../../__tests__/utilities/ensureInstance';
1919
import TextInputState from '../../../../../../Libraries/Components/TextInput/TextInputState';
20+
import {NativeVirtualText} from '../../../../../../Libraries/Text/TextNativeComponent';
2021
import * as Fantom from '@react-native/fantom';
2122
import nullthrows from 'nullthrows';
2223
import * as React from 'react';
@@ -29,7 +30,6 @@ import {
2930
View,
3031
unstable_NativeText as NativeText,
3132
} from 'react-native';
32-
import {NativeVirtualText} from 'react-native/Libraries/Text/TextNativeComponent';
3333
import {ReactNativeFeatureFlags} from 'react-native/react-private-interface';
3434

3535
// The public imperative EventTarget API is not part of the static type of this

packages/react-native/src/private/webapis/dom/nodes/__tests__/ReadOnlyText-itest.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,14 @@ import '@react-native/fantom/src/setUpDefaultReactNativeEnvironment';
1515
import type {HostInstance} from 'react-native';
1616

1717
import ensureInstance from '../../../../__tests__/utilities/ensureInstance';
18+
import ReadOnlyText from '../ReadOnlyText';
1819
import * as Fantom from '@react-native/fantom';
1920
import invariant from 'invariant';
2021
import nullthrows from 'nullthrows';
2122
import * as React from 'react';
2223
import {createRef} from 'react';
2324
import {unstable_NativeText as NativeText} from 'react-native';
2425
import {ReactNativeFeatureFlags} from 'react-native/react-private-interface';
25-
import ReadOnlyText from 'react-native/src/private/webapis/dom/nodes/ReadOnlyText';
2626

2727
function ensureReadOnlyText(value: unknown): ReadOnlyText {
2828
return ensureInstance(value, ReadOnlyText);

packages/react-native/src/private/webapis/intersectionobserver/__tests__/IntersectionObserver-benchmark-itest.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@
1111

1212
import '@react-native/fantom/src/setUpDefaultReactNativeEnvironment';
1313

14+
import type IntersectionObserverType from '../IntersectionObserver';
1415
import type {Root} from '@react-native/fantom';
1516
import type {HostInstance} from 'react-native';
16-
import type IntersectionObserverType from 'react-native/src/private/webapis/intersectionobserver/IntersectionObserver';
1717

1818
import * as Fantom from '@react-native/fantom';
1919
import nullthrows from 'nullthrows';

0 commit comments

Comments
 (0)