1
resposta

Teste passa, porém uma mensagem de erro aparece no terminal

Tentei implementar um teste para verificar um erro ao inserir valor de deposito zerado ou com valor negativo, porém, embora o teste funcione e passe corretamente, e logado no console um mensagem de erro. Pelo que eu entendi estaria vinculado a alguma mudança de estado no componente ou busca a API, porém é apenas um teste unitário de uma função (aparentemente) pura. As vezes refaço o teste e essa mensagem, depois retorna. Dificulta bastante a compreensão do teste devido "sujar" o console.

MÉTODO "calcularNovoSaldo":

export const calcularNovoSaldo = (valores, saldo) => {
  if (valores.valor <= 0) throw new RangeError("Número inválido");

  if (valores.transacao === 'deposito') return saldo + parseInt(valores.valor);

  return saldo - parseInt(valores.valor);
};

TESTE:

it('should show message "Número inválido"', () => {
        const balance = 1000;
        try {
          calcularNovoSaldo({ transacao: 'deposito', valor: 0}, balance);
        } catch (error) {
          expect(error.message).toBe('Número inválido');
        }
      });

LOG ERRO

Cannot log after tests are done. Did you forget to wait for something async in your test?
    Attempted to log "Warning: An update to App inside a test was not wrapped in act(...).

    When testing, code that causes React state updates should be wrapped into act(...):

    act(() => {
      /* fire events that update state */
    });
    /* assert on the output */
1 resposta

Não precisa importar o método no arquivo de teste ?


import  calcularNovoSaldo from 'caminho da importação'

it('should show message "Número inválido"', () => {
        const balance = 1000;
        try {
             calcularNovoSaldo({ transacao: 'deposito', valor: 0}, balance);
        } catch (error) {
              expect(error.message).toBe('Número inválido');
        }
});

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software