Skip to content

Instantly share code, notes, and snippets.

@oieduardorabelo
Forked from stipsan/Select-test.jsx
Last active June 16, 2017 09:39
Show Gist options
  • Save oieduardorabelo/6f9f64c68f9862995aa5d555cfe890c0 to your computer and use it in GitHub Desktop.
Save oieduardorabelo/6f9f64c68f9862995aa5d555cfe890c0 to your computer and use it in GitHub Desktop.
Testando com Jest: Dica #3
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()
})
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