From aeab69a7442872d5fcee37c5d3864d7f48a4a13a Mon Sep 17 00:00:00 2001 From: Alex Hunt Date: Thu, 22 May 2025 06:00:49 -0700 Subject: [PATCH] Move RefreshControlMock into Jest preset files (#51530) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/51530 Alternative to https://github.com/facebook/react-native/pull/50784. `__mocks__` (and other underscored dirs) are correctly excluded from our npm package via `package.json#files`. But in this instance, this is a source file for the `jest/` directory (Jest preset within `react-native`), and should be included — fix by relocating. Changelog: [General][Fixed] - Fix missing RefreshControlMock source in Jest preset Reviewed By: rshest Differential Revision: D75215731 fbshipit-source-id: 1240344c4236288f31b16513f4df16766ad1e571 --- .../__mocks__ => jest}/RefreshControlMock.js | 18 +++++++++--------- packages/react-native/jest/setup.js | 4 +--- 2 files changed, 10 insertions(+), 12 deletions(-) rename packages/react-native/{Libraries/Components/RefreshControl/__mocks__ => jest}/RefreshControlMock.js (64%) diff --git a/packages/react-native/Libraries/Components/RefreshControl/__mocks__/RefreshControlMock.js b/packages/react-native/jest/RefreshControlMock.js similarity index 64% rename from packages/react-native/Libraries/Components/RefreshControl/__mocks__/RefreshControlMock.js rename to packages/react-native/jest/RefreshControlMock.js index c6143672214..42111b9cbf4 100644 --- a/packages/react-native/Libraries/Components/RefreshControl/__mocks__/RefreshControlMock.js +++ b/packages/react-native/jest/RefreshControlMock.js @@ -4,29 +4,29 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @format * @flow strict-local + * @format */ 'use strict'; -import type {HostComponent} from '../../../../src/private/types/HostComponent'; +import type {HostComponent} from '../src/private/types/HostComponent'; -import requireNativeComponent from '../../../ReactNative/requireNativeComponent'; +import requireNativeComponent from '../Libraries/ReactNative/requireNativeComponent'; import * as React from 'react'; const RCTRefreshControl: HostComponent<{}> = requireNativeComponent<{}>( 'RCTRefreshControl', ); -class RefreshControlMock extends React.Component<{...}> { +export default class RefreshControlMock extends React.Component<{...}> { static latestRef: ?RefreshControlMock; + + render(): React.Node { + return ; + } + componentDidMount() { RefreshControlMock.latestRef = this; } - render(): React.MixedElement { - return ; - } } - -module.exports = RefreshControlMock; diff --git a/packages/react-native/jest/setup.js b/packages/react-native/jest/setup.js index 723a3a15709..5b3bab6d161 100644 --- a/packages/react-native/jest/setup.js +++ b/packages/react-native/jest/setup.js @@ -201,9 +201,7 @@ jest })) .mock('../Libraries/Components/RefreshControl/RefreshControl', () => ({ __esModule: true, - default: jest.requireActual( - '../Libraries/Components/RefreshControl/__mocks__/RefreshControlMock', - ), + default: jest.requireActual('./RefreshControlMock').default, })) .mock('../Libraries/Components/ScrollView/ScrollView', () => { const baseComponent = mockComponent(