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')
})