1
resposta

[Sugestão] Warning: An update to EnviaLance inside a test was not wrapped in act(...)

Estava recebendo o seguinte warning:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Pesquisando, entendi que o problema se dá porque a função enviaLance é assíncrona, então precisa estar dentro do método waitFor, que é assíncrono. Para isso, também é necessário inserir o async no início da função de teste. A solução ficou da seguinte maneira:

import { fireEvent, render, waitFor } from '@testing-library/react-native';

describe('telas/Leilao/componentes/EnviaLance', () => {
    it('deve enviar o lance quando o botão for pressionado', async () => {
        const enviaLance = jest.fn(
            () => new Promise((resolve) => resolve(ENVIADO))
        );

        // ...

        await waitFor(() => expect(enviaLance).toHaveBeenCalledWith('10'));
    });
});
1 resposta

Olá, Luara, tudo bem?

É ótimo ver que você encontrou uma solução para esse problema e decidiu compartilhá-la para ajudar outras pessoas que possam estar enfrentando o mesmo desafio. Dessa forma, você está contribuindo de maneira significativa para a comunidade, tornando-a mais colaborativa e aprimorada. Parabéns pelo seu trabalho!

Bons estudos e qualquer dúvida e so falar para a gente!