Olá.
Nem sempre eu uso o mesmo nome para as variáveis que são criadas nos vídeos. Dessa vez, por causa disso, me deparei com um problema e um erro ao usar o jest.mock().
Meu código estava assim:
const navegarPara = jest.fn();
jest.mock('react-router-dom', () => {
return {
useNavigate: () => navegarPara
}
})
Isso gerava o seguinte erro:
"ReferenceError: (...): The module factory of `jest.mock()` is not allowed to reference any out-of-scope variables.
Invalid variable access: navegarPara
Pesquisando no Stack Overflow, vi que a solução é declarar a variável com o prefixo "mock", ou seja ao invés de "navegarPara", tem que ser "mockNavegarPara". Tem alguma coisa a ver com lazy load e hoisting, mas aí ainda é muito avançado para eu entender a fundo.
Então o código deve ser assim:
const mockNavegarPara = jest.fn();
jest.mock('react-router-dom', () => {
return {
useNavigate: () => mockNavegarPara
}
})
Curiosamente, no vídeo a variável é declarada como "mockNavegacao" e por isso o erro não ocorreu durante a aula :)