Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

189
Visualizações
Componente de prueba que obtiene datos con React Testing Library

Tengo un componente que realiza una búsqueda de datos muy básica. Una vez que se obtienen estos datos, los usuarios pueden interactuar y hacer clic en los elementos de una lista. Cuando se hace clic en un elemento, se muestra en la parte superior del componente con una descripción como "elemento activo".

Me gustaría probar la funcionalidad de hacer clic asegurándome de que un elemento se pueda configurar como activo y también eliminarlo. Sin embargo, no estoy seguro de cómo hacerlo, ya que se basa en datos de una API. ¿Algunas ideas?

Código de componente

 interface Item { title: string; description: string; } const Home: NextPage = () => { const [items, setItems] = useState<Item[]>([]); const [activeItem, setActiveItem] = useState<Item | null>(null); const fetchItems = async () => { try { const res = await axios.get<Item[]>('http://localhost:3090/api/items'); setItems(res.data); } catch (error) { console.log(error); } }; const handleActiveItem = (item: Item) => { if (activeItem?.title === item.title) { setActiveItem(null); } else { setActiveItem(item); } }; useEffect(() => { fetchItems(); }, []); return ( <div> {activeItem && ( <div data-testid="active-item"> <h1>{activeItem.title}</h1> <p>{activeItem.description}</p> </div> )} <ul> {items.map((item: Item) => ( <li key={item.title} onClick={() => handleActiveItem(item)}> {item.title} </li> ))} </ul> </div> ); };

Código de prueba

 describe('Home', () => { it('matches snapshot', () => { const tree = renderer.create(<Home />).toJSON(); expect(tree).toMatchSnapshot(); }); render(<Home />); it('Initially there is no active item', () => { const activeItem = screen.queryByTestId('active-item'); expect(activeItem).not.toBeInTheDocument(); }); it('When an item is clicked in the list, it becomes the active item', () => { // }); it('If there is an active item and it is clicked in the list, active item is emptied', () => { // }); });
about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda