Solucionado (ver solução)
Solucionado
(ver solução)
7
respostas

Erro ao disparar eventos que alteram o estado do componente.

Após seguir o que foi orientado no curso e adicionar os teste Quando realizo uma transação de saque, a transação deve ser realizada recebo o seguinte erro:

Warning: An update to App inside a test was not wrapped in act(...).

When testing, code that causes React state updates should be wrapped into act(...):

act(() => {
  /* fire events that update state */
});
/* assert on the output */

Mais abaixo no erro ele possui esse link: https://fb.me/react-wrap-tests-with-act , tentei dar uma olhada no link porém no link só fala como usar o act para renderizar componentes usando o React DOM e disparar os eventos com o mesmo, tentei posicionar os acts da mesma maneira, tive apenas que criar variáveis no escopo do teste para não ter problema de acesso a valor, porém continuou dando o mesmo erro, tentei posicionar todo o teste dentro de um act, e isso também não funciona.

Dei uma olhada na documentação do react testing libary sobre esse act que solicitaram que fosse colocado no código, e diz que ele não é realmente necessário, como você pode ler nesse link: https://testing-library.com/docs/preact-testing-library/api#act

Caso queiram dar uma olhada no código, segue o link: https://github.com/Evndroo/Learning-react-testing-libary

7 respostas

Fala Evandro, tudo bem? Testei o seu projeto e rodei os testes aqui, para mim não deu mais erro de act apenas erros de propTypes:

console.error node_modules/prop-types/checkPropTypes.js:20
      Warning: Failed prop type: Invalid prop `transacoes[0].valor` of type `number` supplied to `Transacoes`, expected `string`.
          in Transacoes (at App.js:52)
          in App (at App.test.js:41)
    console.error node_modules/prop-types/checkPropTypes.js:20
      Warning: Failed prop type: Invalid prop `valor` of type `number` supplied to `Transacao`, expected `string`.
          in Transacao (at Transacoes.js:10)
          in Transacoes (at App.js:52)
          in div (at App.js:46)
          in App (at App.test.js:41)

Espero ter ajudado.

Fala Matheus, tudo certo e contigo?

No caso você rodou o npm test, correto? Acredito que esse erro pode ter vindo pelo fato do servidor backend não ter sido iniciado talvez, isso está na orientação do curso.

Esse erro não me ocorreu, segue um link do erro que pusso no meu console completo: https://drive.google.com/file/d/1j7LVwTKA2pw_Rjp6_jcXqDEm0gD4R1au/view?usp=sharing

Fala Evandro, rodei o npm test sim e o servidor estava rodando também.

Abraços

Estou com esse mesmo problema, já tentei usar o act que fala no erro, e continua o erro (Estou rodando a banco normal tbm)

Olá! Estou com o mesmo problema. Também estou rodando o banco.

Update: então, sério que os instrutores vão deixar a gente na mão mesmo?

solução!

Boa tarde gente, tudo bom?

Estava vendo aqui o projeto e tem um erro no projeto inicial do curso. No componente Conta.js o Button não está marcado como type="submit" e isso que está causando o erro de vcs.

Evandro, peguei o seu projeto para testar e vi que vc colocou o act ao redor do teste. Não precisa desse act se vc mudar o type do botão.

<button type='submit'>
    Realizar operação
</button>

Estou fazendo a alteração no repo inicial do curso

Após fazer essa alteração esse erro sumiu. Resolveu esse problema, agora os testes dão certo, porém eventualmente, mesmo com sem erro nos testes ele joga um log enorme reclamando de atualização de estado em componentes já "desmontados" (App.js, linha 43 [um UseEffect]).

Mas acredito que esse seja tema para outro fórum.