1
resposta

Minha solução para o desafio

Para evitar que um saque com o valor maior que o saldo seja realizado, eu adicionei uma condição que trava a transação e mantem o valor do saldo atual, segue abaixo a modificação feita no arquivo App.js a partir da linha 9

export const calcularNovoSaldo = (valores, saldo) => {
  if (valores.transacao === 'deposito') {
    return saldo + parseInt(valores.valor)
  } else if (valores.valor > saldo){
    //alert('Operação não autorizada: Valor do saque maior que o saldo')
    return saldo
  } else {
    return saldo - parseInt(valores.valor);
  }
}``

Para o teste passar, fiz da seguinte maneira:

    it('que é um saque e o valor do saque é maior que o saldo da conta, a transação não deve ser realizada', () => {
        const { getByText, getByTestId, getByLabelText} = render (<App />);

        const saldo = getByText('R$ 1000');
        const transacao = getByLabelText('Saque');
        const valor = getByTestId('valor');
        const botaoTransacao =  getByText('Realizar operação')

        expect(saldo.textContent).toBe('R$ 1000');

        fireEvent.click(transacao, {target: {value:'saque'}})
        fireEvent.change(valor, {target: {value: 2000}})
        fireEvent.click(botaoTransacao)

        expect(saldo.textContent).toBe('R$ 1000')

    })
1 resposta

Boa Vitor! Ótima solução! Parabéns :D