mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
fix(jest/setup): fix circular dependencies in mockModal (#32964)
Summary: Fixes https://github.com/facebook/react-native/issues/32939 It appears there is circular dependencies on the Modal component that causes the modalMock function to be an empty object. Removing the import fixes the issue. I don't know yet why this is not happening when executing the test suite inside `Modal-test.js` but I will investigate this later. ## Changelog <!-- Help reviewers and the release process by writing your own changelog entry. For an example, see: https://github.com/facebook/react-native/wiki/Changelog --> [General] [Fixed] - Fix error "mockModal is not a function" Pull Request resolved: https://github.com/facebook/react-native/pull/32964 Test Plan: On a newly initiated project using react-native 0.67.1 I created a ModalComponent: ``` import React from 'react'; import {Modal, Text} from 'react-native'; export const ModalComponent = () => { return ( <Modal visible> <Text>Test</Text> </Modal> ); }; ``` and a ModalComponent.test.tsx: ``` import 'react-native'; import React from 'react'; import {ModalComponent} from '../ModalComponent'; // Note: test renderer must be required after react-native. import renderer from 'react-test-renderer'; it('renders correctly', () => { renderer.create(<ModalComponent />); }); ``` Running the test throws the error "TypeError: mockModal is not a function". After modifying the mockModal inside node_modules/react-native/jest/mockModal.js it works correctly. Reviewed By: christophpurrer Differential Revision: D33771136 Pulled By: lunaleaps fbshipit-source-id: c09ada8d2f864f5568b3379616a6cace9fb9921e
This commit is contained in:
committed by
Lorenzo Sciandra
parent
d9424878a8
commit
ac810c0a0c
+2
-2
@@ -13,11 +13,11 @@
|
||||
'use strict';
|
||||
|
||||
const React = require('react');
|
||||
const Modal = require('../Libraries/Modal/Modal');
|
||||
import typeof Modal from '../Libraries/Modal/Modal';
|
||||
|
||||
function mockModal(BaseComponent: $FlowFixMe) {
|
||||
class ModalMock extends BaseComponent {
|
||||
render(): React.Element<typeof Modal> {
|
||||
render(): React.Element<Modal> {
|
||||
return (
|
||||
<BaseComponent {...this.props}>
|
||||
{this.props.visible !== true ? null : this.props.children}
|
||||
|
||||
Reference in New Issue
Block a user