Closed
Description
react-testing-library
version: "^3.1.4"react
version: "^16.4.0"node
version: v8.9.0npm
(oryarn
) version: 5.5.1antd
version: "^3.6.2",
Relevant code or config:
// Login component
import {default as LoginForm } from 'components/Login/Form'
import Layout from 'antd' // layout component https://ant.design/components/layout/
const Login = () => {
return (
<Layout> {/* this markup breaks the test */}
<h2 data-testid='login-screen'>Login</h2>
<LoginForm>
</LoginForm>
</Layout>
)
}
export default Login
// test
import React from 'react'
import 'jest-dom/extend-expect';
import {cleanup, renderIntoDocument} from 'react-testing-library'
import {default as Login} from '../containers/Login/';
afterEach(cleanup)
describe('<Login />', () => {
let comp
beforeEach(() => {
comp = renderIntoDocument(<Login />)
})
describe('when rendered', () => {
it('then should show login welcome text', () => {
const { getByTestId } = comp
expect(getByTestId('login-screen', { selector: 'h2' })).toBeInTheDOM()
})
});
})
What you did:
I'm using CRA boiler plate and just run npm test
What happened:
React.createElement: type is invalid
Reproduction:
Problem description:
Not sure if it's a bug with jsdom or the test library?
Suggested solution:
Removing the Layout
markup from the code would run the test successfully like so
```js
// Login component
import {default as LoginForm } from 'components/Login/Form'
import Layout from 'antd' // layout component https://ant.design/components/layout/
const Login = () => {
return (
<div>
<h2 data-testid='login-screen'>Login</h2>
<LoginForm>
</LoginForm>
<div>
)
}
export default Login
<!--
It's ok if you don't have a suggested solution, but it really helps if you could
do a little digging to come up with some suggestion of how to improve things.
-->
Metadata
Metadata
Assignees
Labels
No labels