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 */