diff --git a/Libraries/Modal/__tests__/Modal-test.js b/Libraries/Modal/__tests__/Modal-test.js index db45cd2fe6ade9..33cbb19dd50af8 100644 --- a/Libraries/Modal/__tests__/Modal-test.js +++ b/Libraries/Modal/__tests__/Modal-test.js @@ -27,7 +27,7 @@ describe('', () => { expect(instance).toMatchSnapshot(); }); - it('should shallow render as when mocked', () => { + it('should shallow render as when mocked', () => { const output = render.shallow( diff --git a/Libraries/Modal/__tests__/__snapshots__/Modal-test.js.snap b/Libraries/Modal/__tests__/__snapshots__/Modal-test.js.snap index 807bc29ca552b9..d6272a92fb5fbe 100644 --- a/Libraries/Modal/__tests__/__snapshots__/Modal-test.js.snap +++ b/Libraries/Modal/__tests__/__snapshots__/Modal-test.js.snap @@ -61,13 +61,13 @@ exports[` should render as when not mocked 1`] = ` `; -exports[` should shallow render as when mocked 1`] = ` - should shallow render as when mocked 1`] = ` + - + `; exports[` should shallow render as when not mocked 1`] = ` diff --git a/jest/mockComponent.js b/jest/mockComponent.js index 28e222123961ba..42a30c8c6e68ac 100644 --- a/jest/mockComponent.js +++ b/jest/mockComponent.js @@ -16,17 +16,19 @@ module.exports = (moduleName, instanceMethods) => { const SuperClass = typeof RealComponent === 'function' ? RealComponent : React.Component; + const name = + RealComponent.displayName || + RealComponent.name || + (RealComponent.render // handle React.forwardRef + ? RealComponent.render.displayName || RealComponent.render.name + : 'Unknown'); + + const nameWithoutPrefix = name.replace(/^(RCT|RK)/, ''); + const Component = class extends SuperClass { static displayName = 'Component'; render() { - const name = - RealComponent.displayName || - RealComponent.name || - (RealComponent.render // handle React.forwardRef - ? RealComponent.render.displayName || RealComponent.render.name - : 'Unknown'); - const props = Object.assign({}, RealComponent.defaultProps); if (this.props) { @@ -42,14 +44,12 @@ module.exports = (moduleName, instanceMethods) => { }); } - return React.createElement( - name.replace(/^(RCT|RK)/, ''), - props, - this.props.children, - ); + return React.createElement(nameWithoutPrefix, props, this.props.children); } }; + Component.displayName = nameWithoutPrefix; + Object.keys(RealComponent).forEach(classStatic => { Component[classStatic] = RealComponent[classStatic]; });