From 55608a1a0d839a07437a4b14df516ea8e54ac4b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Per=20Sj=C3=B6str=C3=B6m?= Date: Wed, 1 Apr 2026 10:56:49 +0200 Subject: [PATCH] Fix RefreshControl jest mock to forward props The RefreshControl mock renders `` without forwarding any props, unlike the ScrollView mock which spreads `{...this.props}`. This makes props like `testID`, `onRefresh`, and `accessibilityLabel` invisible to testing library queries, forcing workarounds like `UNSAFE_getByType`. --- packages/jest-preset/jest/RefreshControlMock.js | 10 +++++----- packages/jest-preset/jest/mocks/RefreshControl.js | 7 +++---- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/packages/jest-preset/jest/RefreshControlMock.js b/packages/jest-preset/jest/RefreshControlMock.js index e9addffac46f..84a335b37c0e 100644 --- a/packages/jest-preset/jest/RefreshControlMock.js +++ b/packages/jest-preset/jest/RefreshControlMock.js @@ -10,20 +10,20 @@ 'use strict'; +import type {RefreshControlProps} from 'react-native/Libraries/Components/RefreshControl/RefreshControl'; import type {HostComponent} from 'react-native/src/private/types/HostComponent'; import * as React from 'react'; import requireNativeComponent from 'react-native/Libraries/ReactNative/requireNativeComponent'; -const RCTRefreshControl: HostComponent<{}> = requireNativeComponent<{}>( - 'RCTRefreshControl', -); +const RCTRefreshControl: HostComponent = + requireNativeComponent('RCTRefreshControl'); -export default class RefreshControlMock extends React.Component<{...}> { +export default class RefreshControlMock extends React.Component { static latestRef: ?RefreshControlMock; render(): React.Node { - return ; + return ; } componentDidMount() { diff --git a/packages/jest-preset/jest/mocks/RefreshControl.js b/packages/jest-preset/jest/mocks/RefreshControl.js index cb9800dbbb75..b906582d1ed5 100644 --- a/packages/jest-preset/jest/mocks/RefreshControl.js +++ b/packages/jest-preset/jest/mocks/RefreshControl.js @@ -14,15 +14,14 @@ import type {HostComponent} from 'react-native/src/private/types/HostComponent'; import * as React from 'react'; import requireNativeComponent from 'react-native/Libraries/ReactNative/requireNativeComponent'; -const RCTRefreshControl: HostComponent<{}> = requireNativeComponent<{}>( - 'RCTRefreshControl', -); +const RCTRefreshControl: HostComponent = + requireNativeComponent('RCTRefreshControl'); export default class RefreshControlMock extends React.Component { static latestRef: ?RefreshControlMock; render(): React.Node { - return ; + return ; } componentDidMount() {