1
resposta

[Dúvida] Problemas para instalar e utilizar a lib

Estou usando React 18.2.0 e, ao tentar executar o comando

npm install --save-dev react-test-renderer@18.2.0 @testing-library/react-native @testing-library/react-hooks

recebo o seguinte erro: Could not resolve dependency: peer react@"^16.9.0 || ^17.0.0" from @testing-library/react-hooks@8.0.1

No GitHub da ferramenta, há uma nota orientando que, caso use React 18, substituir a dependência testing-library/react-hooks pela testing-library/react. Foi o que fiz, tanto na instalação quanto nos testes.

Porém, ao executar os testes (já desconsiderando o problema do @jest-environment jsdom, declarei no início do arquivo), desta vez recebo o seguinte erro:

TypeError: waitForNextUpdate is not a function

Daqui pra frente não sei o que fazer. No fim, o estado do elemento não atualiza mesmo devido ao async. Como posso resolver?

1 resposta

Olá, Rafael! Pelo que entendi, você está tendo problemas para testar um hook no React Native utilizando a biblioteca de testes @testing-library/react-hooks. O erro que você está recebendo indica que a função waitForNextUpdate não está sendo reconhecida.

A função waitForNextUpdate é parte da biblioteca @testing-library/react-hooks e é usada para aguardar até que o próximo estado do componente seja atualizado. No seu caso, parece que a biblioteca não está sendo importada corretamente ou a função não está disponível na versão que você está utilizando.

Primeiramente, certifique-se de que você está importando corretamente a função waitForNextUpdate da biblioteca. A importação correta seria algo assim:

import { renderHook, act } from '@testing-library/react-hooks'

Depois, dentro do seu teste, você deveria ser capaz de usar a função waitForNextUpdate da seguinte forma:

const { result, waitForNextUpdate } = renderHook(() => useListaLeiloes());

Se você já está fazendo isso e ainda assim está recebendo o erro, pode ser que você esteja utilizando uma versão da biblioteca que não possui a função waitForNextUpdate. Nesse caso, recomendo que você atualize a biblioteca para a versão mais recente.

Se o problema persistir mesmo após essas verificações, pode ser necessário um entendimento mais profundo do seu código e do contexto em que a função waitForNextUpdate está sendo chamada.

Espero ter ajudado e bons estudos!