Problema
Estava criando testes para um componente onde o filho dele é um dropdown com vários controles e uso de alguns hooks, etc.
Quando tentava renderizar ele tomava erro, pois ele não conseguia ter tudo para renderizar.
Neste cenário em específico um hook customizado está utilizando alguns recursos do next/navigation que no momento do teste não podem ser acessados. Dando o erro abaixo:
Error: Uncaught [TypeError: (0 , _navigation.useRouter) is not a function]
Solução
Com o Jest é possível fazer mock de qualquer coisa que é importando dentro do componente, então fiz o mock do componente filho para que, ao invés de renderizar ele, renderize apenas <div></div>. Esse código não tem nenhuma regra, ele é renderizado sem problemas.
O componente que vou fazer o mock foi criado da seguinte maneira:
export function ComponentName() {}
Como ele não tem export default tive que lidar com isso no mock também.
Então o mock ficou da seguinte maneira:
jest.mock("./component-name", () => {
return {
ComponentName: jest.fn(() => <div></div>),
};
});
E com isso, meu teste pode ser executado sem problemas.