Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Desafio da seção 2

Olá, tenho uma dúvida no desafio.Vou colocar a minha solução que está quase igual ao do professor (na verdade fiz um linha diferente) que ficará mais simples de explicar minha dúvida.

  test('Deve navegar até a página correspondente ao link clicado', async () => {
    render(<AppRoutes />, { wrapper: BrowserRouter });

    const linkPaginaInvestimentos = screen.getByText('Investimentos');
    expect(linkPaginaInvestimentos).toBeInTheDocument();

    userEvent.click(linkPaginaInvestimentos);

    const tituloPaginaInvestimentos = await screen.findByText('Investimentos');
    expect(tituloPaginaInvestimentos).toBeInTheDocument();
  });

essa foi a linha que fiz diferente : "const tituloPaginaInvestimentos = await screen.findByText('Investimentos');" . Queria saber porque deu erro ao colocar a palavra investimentos dentro do parenteses?

fiz o testes com outras palavras e passou beleza.

findByText('Estatísticas') => Ok. findByText('Renda variável') => Ok. findByText('Renda Fixa') => Ok.

1 resposta
solução!

Olá Jheimys, como vai você? Espero que esteja bem!

O problema que você está enfrentando pode estar relacionado ao tempo de renderização da página ou ao tempo que leva para o texto 'Investimentos' aparecer na tela após o clique. O método findByText retorna uma promessa que resolve quando o elemento com o texto especificado é encontrado. Ele tentará recuperar o elemento por cerca de 1000ms antes de rejeitar a promessa. Se o texto 'Investimentos' não estiver disponível no DOM dentro desse tempo, a promessa será rejeitada e o teste falhará.

Uma possível solução seria aumentar o tempo de espera do findByText, você pode fazer isso passando um objeto de opções como segundo argumento para o findByText. Aqui está um exemplo:

const tituloPaginaInvestimentos = await screen.findByText('Investimentos', {}, { timeout: 3000 });

Nesse exemplo, o findByText esperará até 3000ms antes de rejeitar a promessa.

Porém, é importante mencionar que aumentar o tempo de espera pode não ser a melhor solução, pois pode tornar seus testes mais lentos. Se o texto 'Investimentos' demora muito para aparecer, talvez haja algum problema com a renderização da sua página ou com a lógica de exibição desse texto.

Espero ter ajudado e bons estudos!