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

[Dúvida] beforeEach

Bom dia!

Eu gostaria de saber se a utilização do ponto e vírgula ao final de uma sentença no beforeEach, quando há mais de uma, é obrigatória?

Pergunto pois ao mockar o resultado, eu não coloquei o ";" ao final da primeira sentença e apareceu para mim o erro "TypeError: _useListaDeParticipantes.useListaDeParticipantes.mockReturnValue(...)(...).mockReturnValue is not a function"

Ao adicionar o ";", os testes passaram com sucesso.

beforeEach(() => {
    (useListaDeParticipantes as jest.Mock).mockReturnValue(participantes);
    (useResultadoSorteio as jest.Mock).mockReturnValue(resultado);
  })
2 respostas
solução!

Olá, Wellington. Tudo bem?

O ponto e vírgula ao final de uma sentença no beforeEach não é obrigatório, mas pode ser uma boa prática para evitar erros como o que você encontrou. Quando não utilizamos o ponto e vírgula, o JavaScript pode interpretar que as duas sentenças são uma só, o que pode gerar problemas de execução.

No seu caso, ao adicionar o ponto e vírgula, você conseguiu evitar o erro que estava ocorrendo. É importante lembrar que pequenos detalhes como esse podem fazer a diferença na hora de programar.

Um abraço e bons estudos.

Cara, tive esse mesmo problema, mas a solução para o meu foi outra!

Na hora de criar o hook, notei que um eu fiz o export default e no outro fiz só o export. Era o que tinha export default que estava gerando esse erro. Quando alterei só para export, os testes passaram.

Esse jest.mock() é meio nebuloso. Exemplos no Stack Overflow e também da ChatGPT fazem a implementação de maneira diferente, com menos argumentos e usando outros métodos para implementar e retornar o valor.