-
-
Save oieduardorabelo/6f9f64c68f9862995aa5d555cfe890c0 to your computer and use it in GitHub Desktop.
Testando com Jest: Dica #3
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import renderer from 'react-test-renderer' | |
import Select from '../Select' | |
jest.mock('react-select', () => { | |
const { createElement } = require('react') | |
// Perceba que como estamos mockando 'react-select' | |
// nós precisamos usar require.requireActual, dentro do nosso mock | |
// A melhor analogia aqui é o filme Inception, naquela parte do | |
// sonho dentro do sonho, espero que você tenha assistido! :P | |
const ReactSelect = require.requireActual('react-select') | |
// Como precisamos de validação de proptype, precisamos envolver o mock em | |
// um component sem estado (ou stateless function, dumb component, ou qualquer | |
// coisa que o React possa renderizar :P) | |
const MockedAsync = props => createElement('Async', props) | |
MockedAsync.propTypes = ReactSelect.Async.propTypes | |
MockedAsync.defaultProps = ReactSelect.Async.defaultProps | |
ReactSelect.Async = MockedAsync | |
return ReactSelect | |
}) | |
it('should render correctly', () => { | |
const component = renderer.create(<Select />) | |
expect(component.toJSON()).toMatchSnapshot() | |
}) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { Async } from 'react-select' | |
// apenas decorando o react-select com props padrões | |
// para reduzir a duplicaço no nosso código | |
export default props => <Async labelKey="title" valueKey="uuid" {...props} /> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment