mirror of
https://github.com/facebook/react-native.git
synced 2024-11-21 22:10:14 +00:00
507b05f4c0
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
32 lines
712 B
JavaScript
32 lines
712 B
JavaScript
/**
|
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
*
|
|
* 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
|
|
*/
|
|
|
|
/* eslint-env jest */
|
|
|
|
'use strict';
|
|
|
|
const React = require('react');
|
|
import typeof Modal from '../Libraries/Modal/Modal';
|
|
|
|
function mockModal(BaseComponent: $FlowFixMe) {
|
|
class ModalMock extends BaseComponent {
|
|
render(): React.Element<Modal> {
|
|
return (
|
|
<BaseComponent {...this.props}>
|
|
{this.props.visible !== true ? null : this.props.children}
|
|
</BaseComponent>
|
|
);
|
|
}
|
|
}
|
|
return ModalMock;
|
|
}
|
|
|
|
module.exports = (mockModal: $FlowFixMe);
|