Skip to content

Commit 507b05f

Browse files
AntoineDoubovetzkyfacebook-github-bot
AntoineDoubovetzky
authored andcommitted
fix(jest/setup): fix circular dependencies in mockModal (#32964)
Summary: Fixes #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: #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
1 parent 8858c21 commit 507b05f

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

jest/mockModal.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@
1313
'use strict';
1414

1515
const React = require('react');
16-
const Modal = require('../Libraries/Modal/Modal');
16+
import typeof Modal from '../Libraries/Modal/Modal';
1717

1818
function mockModal(BaseComponent: $FlowFixMe) {
1919
class ModalMock extends BaseComponent {
20-
render(): React.Element<typeof Modal> {
20+
render(): React.Element<Modal> {
2121
return (
2222
<BaseComponent {...this.props}>
2323
{this.props.visible !== true ? null : this.props.children}

0 commit comments

Comments
 (0)