Estoy usando React v15.4, babel-jest v18 y enzima v2.5.1
Tengo un componente React simple:
MiComponente.js
import React, { useState, useEffect, useCallback } from 'react'; import Loader from '../components/Loader'; import axios from 'axios'; const MyComponent = () => { const [loading, setLoading] = useState(true); const [inputs, setInputs] = useState(); const getData = useCallback(() => { axios.get('http://jsonplaceholder.typicode.com/todos/1') .then(res => { console.log(res.data) setInputs(res.data); setLoading(false); }).catch(error => { console.log(error); setLoading(false); }); },[]); useEffect(() => { getData(); },[getData]); return( <div> <Loader isLoading={loading} /> {(inputs && !loading) && <> <h2>User Information</h2> <p>{inputs.id}</p> <p>{inputs.userId}</p> <p>{inputs.title}</p> <p>{inputs.completed}</p> </>} </div> ); }; export default MyComponent;MiComponente.test.js
import {render} from '@testing-library/react'; import MyComponent from '../components/MyComponent'; import React from "react"; import { configure, mount } from 'enzyme'; import Adapter from 'enzyme-adapter-react-16'; configure({ adapter: new Adapter() }); test('My Component', () => { render(<MyComponent />) const widget = mount(<MyComponent />); widget.find('h2').text().contains('User Information') })La prueba Jest debería pasar, pero recibo un error:
El método "texto" solo está destinado a ejecutarse en un solo nodo. 0 encontrado en su lugar.
O ¿cómo puedo inicializar el valor del estado para probar si la etiqueta h2 está presente en dom o no?